diff --git a/contracts/btc-staking/src/contract.rs b/contracts/btc-staking/src/contract.rs index fe152ec5..6a18d23e 100644 --- a/contracts/btc-staking/src/contract.rs +++ b/contracts/btc-staking/src/contract.rs @@ -296,7 +296,11 @@ pub(crate) mod tests { }; use cw_controllers::AdminResponse; use hex::ToHex; - use test_utils::{get_btc_delegation, get_finality_provider, get_pub_rand_commit}; + use k256::schnorr::{Signature, SigningKey}; + use test_utils::{ + get_btc_del_unbonding_sig_bytes, get_btc_delegation, get_finality_provider, + get_fp_sk_bytes, get_pub_rand_commit, + }; pub(crate) const CREATOR: &str = "creator"; pub(crate) const INIT_ADMIN: &str = "initial_admin"; @@ -402,6 +406,11 @@ pub(crate) mod tests { new_active_btc_delegation(del) } + pub(crate) fn get_btc_del_unbonding_sig(del_id: i32, fp_ids: &[i32]) -> Signature { + let sig_bytes = get_btc_del_unbonding_sig_bytes(del_id, fp_ids.to_vec()); + Signature::try_from(sig_bytes.as_slice()).unwrap() + } + /// Get public randomness public key, commitment, and signature information /// /// Signature is a Schnorr signature over the commitment @@ -423,6 +432,11 @@ pub(crate) mod tests { new_finality_provider(fp) } + pub(crate) fn create_new_fp_sk(id: i32) -> SigningKey { + let fp_sk_bytes = get_fp_sk_bytes(id); + SigningKey::from_bytes(&fp_sk_bytes).unwrap() + } + #[test] fn instantiate_without_admin() { let mut deps = mock_dependencies(); diff --git a/contracts/btc-staking/src/error.rs b/contracts/btc-staking/src/error.rs index b96481aa..9a744c77 100644 --- a/contracts/btc-staking/src/error.rs +++ b/contracts/btc-staking/src/error.rs @@ -50,6 +50,8 @@ pub enum ContractError { FinalityProviderNotFound(String), #[error("Staking tx hash already exists: {0}")] DelegationAlreadyExists(String), + #[error("BTC delegation is not active: {0}")] + DelegationIsNotActive(String), #[error("Invalid Btc tx: {0}")] InvalidBtcTx(String), #[error("Empty signature from the delegator")] diff --git a/contracts/btc-staking/src/queries.rs b/contracts/btc-staking/src/queries.rs index a0557a10..ad03bc42 100644 --- a/contracts/btc-staking/src/queries.rs +++ b/contracts/btc-staking/src/queries.rs @@ -242,11 +242,13 @@ mod tests { use cosmwasm_std::testing::message_info; use cosmwasm_std::testing::{mock_dependencies, mock_env}; use cosmwasm_std::StdError::NotFound; - use cosmwasm_std::{from_json, Binary, Storage}; + use cosmwasm_std::{from_json, Storage}; use babylon_apis::btc_staking_api::{FinalityProvider, UnbondedBtcDelegation}; - use crate::contract::tests::{create_new_finality_provider, get_params}; + use crate::contract::tests::{ + create_new_finality_provider, get_btc_del_unbonding_sig, get_params, + }; use crate::contract::{execute, instantiate}; use crate::error::ContractError; use crate::finality::tests::mock_env_height; @@ -457,13 +459,14 @@ mod tests { // Unbond the second delegation // Compute staking tx hash let staking_tx_hash_hex = staking_tx_hash(&del2.into()).to_string(); + let unbonding_sig = crate::contract::tests::get_btc_del_unbonding_sig(2, &[1]); let msg = ExecuteMsg::BtcStaking { new_fp: vec![], active_del: vec![], slashed_del: vec![], unbonded_del: vec![UnbondedBtcDelegation { staking_tx_hash: staking_tx_hash_hex, - unbonding_tx_sig: Binary::new(vec![0x01, 0x02, 0x03]), + unbonding_tx_sig: unbonding_sig.to_bytes().into(), }], }; execute(deps.as_mut(), mock_env(), info.clone(), msg).unwrap(); @@ -613,13 +616,14 @@ mod tests { // Unbond the first delegation // Compute staking tx hash let staking_tx_hash_hex = staking_tx_hash(&del1.into()).to_string(); + let unbonding_sig = get_btc_del_unbonding_sig(1, &[1]); let msg = ExecuteMsg::BtcStaking { new_fp: vec![], active_del: vec![], slashed_del: vec![], unbonded_del: vec![UnbondedBtcDelegation { staking_tx_hash: staking_tx_hash_hex, - unbonding_tx_sig: Binary::new(vec![0x01, 0x02, 0x03]), + unbonding_tx_sig: unbonding_sig.to_bytes().into(), }], }; execute(deps.as_mut(), mock_env(), info.clone(), msg).unwrap(); diff --git a/contracts/btc-staking/src/staking.rs b/contracts/btc-staking/src/staking.rs index 1a9b340f..8da5fa71 100644 --- a/contracts/btc-staking/src/staking.rs +++ b/contracts/btc-staking/src/staking.rs @@ -15,7 +15,9 @@ use crate::state::staking::{ FP_DELEGATIONS, FP_SET, TOTAL_POWER, }; use crate::state::BTC_HEIGHT; -use crate::validation::{verify_active_delegation, verify_new_fp}; +use crate::validation::{ + verify_active_delegation, verify_new_fp, verify_slashed_delegation, verify_undelegation, +}; use babylon_apis::btc_staking_api::{ ActiveBtcDelegation, FinalityProvider, NewFinalityProvider, SlashedBtcDelegation, UnbondedBtcDelegation, @@ -79,10 +81,10 @@ pub fn handle_new_fp( new_fp.btc_pk_hex.clone(), )); } - // validate the finality provider data + // basic validations on the finality provider data new_fp.validate()?; - // verify the finality provider registration request + // verify the finality provider registration request (full or lite) verify_new_fp(new_fp)?; // get DB object @@ -147,7 +149,7 @@ pub fn handle_active_delegation( )); } - // full validations on the active delegation + // verify the active delegation (full or lite) verify_active_delegation(¶ms, active_delegation, &staking_tx)?; // All good, construct BTCDelegation and insert BTC delegation @@ -224,9 +226,16 @@ fn handle_undelegation( let staking_tx_hash = Txid::from_str(&undelegation.staking_tx_hash)?; let mut btc_del = DELEGATIONS.load(storage, staking_tx_hash.as_ref())?; - // TODO: Ensure the BTC delegation is active + // Ensure the BTC delegation is active + if !btc_del.is_active() { + return Err(ContractError::DelegationIsNotActive( + staking_tx_hash.to_string(), + )); + } - // TODO: Verify the signature on the unbonding tx is from the delegator + // verify the early unbonded delegation (full or lite) + let params = PARAMS.load(storage)?; + verify_undelegation(¶ms, &btc_del, &undelegation.unbonding_tx_sig)?; // Add the signature to the BTC delegation's undelegation and set back btc_undelegate( @@ -268,7 +277,16 @@ fn handle_slashed_delegation( let staking_tx_hash = Txid::from_str(&delegation.staking_tx_hash)?; let mut btc_del = DELEGATIONS.load(storage, staking_tx_hash.as_ref())?; - // TODO: Ensure the BTC delegation is active + // Ensure the BTC delegation is active + if !btc_del.is_active() { + return Err(ContractError::DelegationIsNotActive( + staking_tx_hash.to_string(), + )); + } + + // verify the slashed delegation (full or lite) + let recovered_fp_sk_hex = delegation.recovered_fp_btc_sk.clone(); + verify_slashed_delegation(&btc_del, &recovered_fp_sk_hex)?; // Discount the voting power from the affected finality providers let affected_fps = DELEGATION_FPS.load(storage, staking_tx_hash.as_ref())?; @@ -402,12 +420,12 @@ pub(crate) fn slash_finality_provider( #[cfg(test)] pub(crate) mod tests { use super::*; - use cosmwasm_std::Binary; use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env}; use crate::contract::tests::{ - create_new_finality_provider, get_active_btc_delegation, get_params, CREATOR, INIT_ADMIN, + create_new_finality_provider, create_new_fp_sk, get_active_btc_delegation, + get_btc_del_unbonding_sig, get_derived_btc_delegation, get_params, CREATOR, INIT_ADMIN, }; use crate::contract::{execute, instantiate}; use crate::msg::{ExecuteMsg, InstantiateMsg}; @@ -582,14 +600,11 @@ pub(crate) mod tests { let params = get_params(); PARAMS.save(deps.as_mut().storage, ¶ms).unwrap(); - // Build valid active delegation - let active_delegation = get_active_btc_delegation(); - // Register one FP first - let mut new_fp = create_new_finality_provider(1); - new_fp - .btc_pk_hex - .clone_from(&active_delegation.fp_btc_pk_list[0]); + let new_fp = create_new_finality_provider(1); + + // Build valid active delegation + let active_delegation = get_derived_btc_delegation(1, &[1]); let msg = ExecuteMsg::BtcStaking { new_fp: vec![new_fp.clone()], @@ -623,10 +638,12 @@ pub(crate) mod tests { } ); + let unbonding_sig = get_btc_del_unbonding_sig(1, &[1]); + // Now send the undelegation message let undelegation = UnbondedBtcDelegation { staking_tx_hash: staking_tx_hash_hex.clone(), - unbonding_tx_sig: Binary::new(vec![0x01, 0x02, 0x03]), // TODO: Use a proper signature + unbonding_tx_sig: unbonding_sig.to_bytes().into(), }; let msg = ExecuteMsg::BtcStaking { @@ -648,7 +665,7 @@ pub(crate) mod tests { BtcUndelegationInfo { unbonding_tx: active_delegation_undelegation.unbonding_tx.into(), slashing_tx: active_delegation_undelegation.slashing_tx.into(), - delegator_unbonding_sig: vec![0x01, 0x02, 0x03], + delegator_unbonding_sig: unbonding_sig.to_bytes().into(), delegator_slashing_sig: active_delegation_undelegation .delegator_slashing_sig .into(), @@ -682,14 +699,11 @@ pub(crate) mod tests { let params = get_params(); PARAMS.save(deps.as_mut().storage, ¶ms).unwrap(); - // Build valid active delegation - let active_delegation = get_active_btc_delegation(); - // Register one FP first - let mut new_fp = create_new_finality_provider(1); - new_fp - .btc_pk_hex - .clone_from(&active_delegation.fp_btc_pk_list[0]); + let new_fp = create_new_finality_provider(1); + + // Build valid active delegation + let active_delegation = get_derived_btc_delegation(1, &[1]); let msg = ExecuteMsg::BtcStaking { new_fp: vec![new_fp.clone()], @@ -716,9 +730,11 @@ pub(crate) mod tests { assert_eq!(fp.power, btc_del.total_sat); // Now send the slashed delegation message + let fp_sk = create_new_fp_sk(1); + let fp_sk_hex = hex::encode(fp_sk.to_bytes()); let slashed = SlashedBtcDelegation { staking_tx_hash: staking_tx_hash_hex.clone(), - recovered_fp_btc_sk: "deadbeef".to_string(), // Currently unused + recovered_fp_btc_sk: fp_sk_hex, }; let msg = ExecuteMsg::BtcStaking { diff --git a/contracts/btc-staking/src/validation/mod.rs b/contracts/btc-staking/src/validation/mod.rs index 1d3e0f30..67545176 100644 --- a/contracts/btc-staking/src/validation/mod.rs +++ b/contracts/btc-staking/src/validation/mod.rs @@ -1,7 +1,8 @@ -use crate::error::ContractError; use crate::state::config::Params; +use crate::{error::ContractError, state::staking::BtcDelegation}; use babylon_apis::btc_staking_api::{ActiveBtcDelegation, NewFinalityProvider}; use bitcoin::Transaction; +use cosmwasm_std::Binary; #[cfg(feature = "full-validation")] use { @@ -10,7 +11,7 @@ use { bitcoin::{consensus::deserialize, Address}, cosmwasm_std::CanonicalAddr, hex::ToHex, - k256::schnorr::{Signature, VerifyingKey}, + k256::schnorr::{Signature, SigningKey, VerifyingKey}, k256::sha2::{Digest, Sha256}, std::str::FromStr, }; @@ -49,6 +50,42 @@ fn verify_pop( Ok(()) } +#[cfg(feature = "full-validation")] +fn decode_pks( + staker_pk_hex: &str, + fp_pk_hex_list: &[String], + cov_pk_hex_list: &[String], +) -> Result<(VerifyingKey, Vec, Vec), ContractError> { + // get staker's public key + let staker_pk_bytes = + hex::decode(&staker_pk_hex).map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + let staker_pk = VerifyingKey::from_bytes(&staker_pk_bytes) + .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + + // get all FP's public keys + let fp_pks: Vec = fp_pk_hex_list + .iter() + .map(|pk_hex| { + let pk_bytes = + hex::decode(pk_hex).map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + VerifyingKey::from_bytes(&pk_bytes) + .map_err(|e| ContractError::SecP256K1Error(e.to_string())) + }) + .collect::, ContractError>>()?; + // get all covenant members' public keys + let cov_pks: Vec = cov_pk_hex_list + .iter() + .map(|pk_hex| { + let pk_bytes = + hex::decode(pk_hex).map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + VerifyingKey::from_bytes(&pk_bytes) + .map_err(|e| ContractError::SecP256K1Error(e.to_string())) + }) + .collect::, ContractError>>()?; + + Ok((staker_pk, fp_pks, cov_pks)) +} + /// verify_new_fp verifies the new finality provider data (full validation version) pub fn verify_new_fp(new_fp: &NewFinalityProvider) -> Result<(), ContractError> { // The following code is marked with `#[cfg(feature = "full-validation")]` @@ -100,34 +137,11 @@ pub fn verify_active_delegation( // TODO: fix contract size when full-validation is enabled #[cfg(feature = "full-validation")] { - // get staker's public key - let staker_pk_bytes = hex::decode(&active_delegation.btc_pk_hex) - .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; - let staker_pk = VerifyingKey::from_bytes(&staker_pk_bytes) - .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; - - // get all FP's public keys - let fp_pks: Vec = active_delegation - .fp_btc_pk_list - .iter() - .map(|pk_hex| { - let pk_bytes = hex::decode(pk_hex) - .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; - VerifyingKey::from_bytes(&pk_bytes) - .map_err(|e| ContractError::SecP256K1Error(e.to_string())) - }) - .collect::, ContractError>>()?; - // get all covenant members' public keys - let cov_pks: Vec = params - .covenant_pks - .iter() - .map(|pk_hex| { - let pk_bytes = hex::decode(pk_hex) - .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; - VerifyingKey::from_bytes(&pk_bytes) - .map_err(|e| ContractError::SecP256K1Error(e.to_string())) - }) - .collect::, ContractError>>()?; + let (staker_pk, fp_pks, cov_pks) = decode_pks( + &active_delegation.btc_pk_hex, + &active_delegation.fp_btc_pk_list, + ¶ms.covenant_pks, + )?; // Check if data provided in request, matches data to which staking tx is // committed @@ -241,3 +255,109 @@ pub fn verify_active_delegation( Ok(()) } + +pub fn verify_undelegation( + params: &Params, + btc_del: &BtcDelegation, + sig: &Binary, +) -> Result<(), ContractError> { + // The following code is marked with `#[cfg(feature = "full-validation")]` + // so that it is included in the build if the `full-validation` feature is + // enabled. + // TODO: fix contract size when full-validation is enabled + #[cfg(feature = "full-validation")] + { + /* + Verify the signature on the unbonding tx is from the delegator + */ + + // get keys + let (staker_pk, fp_pks, cov_pks) = decode_pks( + &btc_del.btc_pk_hex, + &btc_del.fp_btc_pk_list, + ¶ms.covenant_pks, + )?; + + // get the unbonding path script + let staking_tx: Transaction = deserialize(&btc_del.staking_tx) + .map_err(|_| ContractError::InvalidBtcTx(btc_del.staking_tx.encode_hex()))?; + let staking_output = &staking_tx.output[btc_del.staking_output_idx as usize]; + let staking_time = (btc_del.end_height - btc_del.start_height) as u16; + let babylon_script_paths = babylon_btcstaking::scripts_utils::BabylonScriptPaths::new( + &staker_pk, + &fp_pks, + &cov_pks, + params.covenant_quorum as usize, + staking_time, + )?; + let unbonding_path_script = babylon_script_paths.unbonding_path_script; + + // get unbonding tx + let unbonding_tx: Transaction = deserialize(&btc_del.undelegation_info.unbonding_tx) + .map_err(|_| { + ContractError::InvalidBtcTx(btc_del.undelegation_info.unbonding_tx.encode_hex()) + })?; + + // get the staker's signature on the unbonding tx + let staker_sig = k256::schnorr::Signature::try_from(sig.as_slice()) + .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + + // Verify the signature + babylon_btcstaking::sig_verify::verify_transaction_sig_with_output( + &unbonding_tx, + staking_output, + unbonding_path_script.as_script(), + &staker_pk, + &staker_sig, + ) + .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + } + + // make static analyser happy with unused parameters + #[cfg(not(feature = "full-validation"))] + let _ = (params, btc_del, sig); + + Ok(()) +} + +pub fn verify_slashed_delegation( + active_delegation: &BtcDelegation, + slashed_fp_sk_hex: &str, +) -> Result<(), ContractError> { + // The following code is marked with `#[cfg(feature = "full-validation")]` + // so that it is included in the build if the `full-validation` feature is + // enabled. + // TODO: fix contract size when full-validation is enabled + #[cfg(feature = "full-validation")] + { + /* + check if the SK corresponds to a FP PK that the delegation restakes to + */ + + // get the slashed FP's SK + let slashed_fp_sk = hex::decode(&slashed_fp_sk_hex) + .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + let slashed_fp_sk = SigningKey::from_bytes(&slashed_fp_sk) + .map_err(|e| ContractError::SecP256K1Error(e.to_string()))?; + + // calculate the corresponding VerifyingKey + let slashed_fp_pk = slashed_fp_sk.verifying_key(); + let slashed_fp_pk_hex = hex::encode(slashed_fp_pk.to_bytes()); + + // check if the PK corresponds to a FP PK that the delegation restakes to + if !active_delegation + .fp_btc_pk_list + .contains(&slashed_fp_pk_hex) + { + return Err(ContractError::FinalityProviderNotFound( + slashed_fp_pk_hex.to_string(), + )); + } + } + + // make static analyser happy with unused parameters + #[cfg(not(feature = "full-validation"))] + let _ = (active_delegation, slashed_fp_sk_hex); + + Ok(()) +} diff --git a/datagen/utils/btcstaking.go b/datagen/utils/btcstaking.go index af79ef6d..c72ca8cc 100644 --- a/datagen/utils/btcstaking.go +++ b/datagen/utils/btcstaking.go @@ -16,9 +16,11 @@ import ( ) const ( - FP_FILENAME = "finality_provider_%d.dat" - BTC_DEL_FILENAME = "btc_delegation_%d_{%s}.dat" - BTCSTAKING_PARAMS_FILENAME = "btcstaking_params.dat" + FP_FILENAME = "finality_provider_%d.dat" + FP_SK_FILENAME = "fp_sk_%d.dat" + BTC_DEL_FILENAME = "btc_delegation_%d_{%s}.dat" + BTC_DEL_UNBONDING_SIG_FILENAME = "btc_unbonding_sig_%d_{%s}.dat" + BTCSTAKING_PARAMS_FILENAME = "btcstaking_params.dat" ) var ( @@ -88,6 +90,13 @@ func GenFinalityProviders(dir string, numFPs int) { fpPath := filepath.Join(dir, fileName) err = os.WriteFile(fpPath, fpBytes, 0644) require.NoError(t, err) + + // write FP's BTC SK to file + fpSKBytes := fpBTCSK.Serialize() + fileName = fmt.Sprintf(FP_SK_FILENAME, i) + fpSKPath := filepath.Join(dir, fileName) + err = os.WriteFile(fpSKPath, fpSKBytes, 0644) + require.NoError(t, err) } } @@ -183,6 +192,16 @@ func GenBTCDelegations(dir string, covenantSKs []*btcec.PrivateKey, covenantQuor btcDelPath := filepath.Join(dir, fileName) err = os.WriteFile(btcDelPath, btcDelBytes, 0644) require.NoError(t, err) + + // sign unbonding signature + unbondingSig, err := btcDel.SignUnbondingTx(bsParams, net, delSK) + require.NoError(t, err) + unbondingSigBytes := unbondingSig.Serialize() + // write unbonding signature to file + fileName = fmt.Sprintf(BTC_DEL_UNBONDING_SIG_FILENAME, idx, strings.Join(fpIdxListStr, ",")) + unbondingSigPath := filepath.Join(dir, fileName) + err = os.WriteFile(unbondingSigPath, unbondingSigBytes, 0644) + require.NoError(t, err) } func GenBTCDelegationsAndParams(dir string) { diff --git a/packages/proto/babylon b/packages/proto/babylon index 81ee356f..7942dae9 160000 --- a/packages/proto/babylon +++ b/packages/proto/babylon @@ -1 +1 @@ -Subproject commit 81ee356f706d6132fd3056f75650ec143448a7dc +Subproject commit 7942dae93db7f61539e4f84ecc3ff67f32299f44 diff --git a/packages/test-utils/src/lib.rs b/packages/test-utils/src/lib.rs index 5d41704c..12466945 100644 --- a/packages/test-utils/src/lib.rs +++ b/packages/test-utils/src/lib.rs @@ -22,7 +22,9 @@ const BTC_TIMESTAMP_HEADER1: &str = "btc_timestamp_header1.dat"; const PARAMS_DATA: &str = "btcstaking_params.dat"; const FINALITY_PROVIDER_DATA: &str = "finality_provider_{}.dat"; +const FP_SK_DATA: &str = "fp_sk_{}.dat"; const BTC_DELEGATION_DATA: &str = "btc_delegation_{idx}_{fp_idx_list}.dat"; +const BTC_DEL_UNBONDING_SIG_DATA: &str = "btc_unbonding_sig_{idx}_{fp_idx_list}.dat"; const COMMIT_PUB_RAND_DATA: &str = "commit_pub_rand_msg.dat"; const PUB_RAND_VALUE: &str = "pub_rand_value.dat"; const ADD_FINALITY_SIG_DATA: &str = "add_finality_sig_{}_msg.dat"; @@ -153,6 +155,12 @@ pub fn get_finality_provider(id: i32) -> FinalityProvider { FinalityProvider::decode(fp_data).unwrap() } +pub fn get_fp_sk_bytes(id: i32) -> Vec { + let fp_sk_path = find_testdata_path().join(FP_SK_DATA.replace("{}", &id.to_string())); + let fp_sk_data: &[u8] = &fs::read(fp_sk_path).unwrap(); + fp_sk_data.to_vec() +} + pub fn get_btc_delegation(idx: i32, fp_idx_list: Vec) -> BtcDelegation { let fp_idx_list_str = format!( "{{{}}}", @@ -170,6 +178,23 @@ pub fn get_btc_delegation(idx: i32, fp_idx_list: Vec) -> BtcDelegation { BtcDelegation::decode(btc_del_data).unwrap() } +pub fn get_btc_del_unbonding_sig_bytes(idx: i32, fp_idx_list: Vec) -> Vec { + let fp_idx_list_str = format!( + "{{{}}}", + fp_idx_list + .iter() + .map(|&x| x.to_string()) + .collect::>() + .join(",") + ); + let sig_filename = BTC_DEL_UNBONDING_SIG_DATA + .replace("{idx}", &idx.to_string()) + .replace("{fp_idx_list}", &fp_idx_list_str); + let sig_path = find_testdata_path().join(sig_filename); + let sig_data: &[u8] = &fs::read(sig_path).unwrap(); + sig_data.to_vec() +} + pub fn get_pub_rand_commit() -> MsgCommitPubRandList { let pub_rand_commit_path = find_testdata_path().join(COMMIT_PUB_RAND_DATA); let pub_rand_commit_data: &[u8] = &fs::read(pub_rand_commit_path).unwrap(); diff --git a/packages/test-utils/testdata/add_finality_sig_1_msg.dat b/packages/test-utils/testdata/add_finality_sig_1_msg.dat index 554305eb..be7cd99e 100644 --- a/packages/test-utils/testdata/add_finality_sig_1_msg.dat +++ b/packages/test-utils/testdata/add_finality_sig_1_msg.dat @@ -1,4 +1,3 @@ -*bbn164cnh04xxew05543d8afzpxvl7nt4hfk4w6vee G&;I# K33~MHlfe" m=6$I%rib;!5>^[a* - Yk] ltwr,)Gg" GnsޮͿPBBlQ\eF3]" _rN -+* Ec?b" uhِI)\zk)18" 4Vsa)n"=,҃qϗ92 E'*͍2!;\4Ǚ`\&+V: k}{ZA54<"Ke@EO \ No newline at end of file +*bbn1rggrk4pamnrhfekez578gulthsaxfkhy9f6hm5 FhaD)TE?dSiȎ?%xGg&e" ݤab_],/2B* +  !%+hwKXnK/݉z" h:X&uhH:M6kb<\UDSNZ" \uNJ%V#"И^c#>0" J%|MqJg1ҝ*/!8" zj=Hnb,u I:2 IVXpq^ ԂYot7y[i:b<uY#: 6F첟x윦YSwG/> \ No newline at end of file diff --git a/packages/test-utils/testdata/add_finality_sig_2_msg.dat b/packages/test-utils/testdata/add_finality_sig_2_msg.dat index 04ee20f4..072a6c5b 100644 --- a/packages/test-utils/testdata/add_finality_sig_2_msg.dat +++ b/packages/test-utils/testdata/add_finality_sig_2_msg.dat @@ -1,4 +1,3 @@ -*bbn135nx9hs9qy5zfev89m27v3awmyygxvc0lw2ezw G&;I# K33~MHlfe" m=6$I%rib;!5>^[a* - Yk] ltwr,)Gg" GnsޮͿPBBlQ\eF3]" _rN -+* Ec?b" uhِI)\zk)18" 4Vsa)n"=,҃qϗ92 =}OFpqTjtM]^+: ?clKxКq,Sed( \ No newline at end of file +*bbn1e22tjgpyuhwh0fqcqqpxpjwkywej02wcf7qut4 FhaD)TE?dSiȎ?%xGg&e" ݤab_],/2B* +  !%+hwKXnK/݉z" h:X&uhH:M6kb<\UDSNZ" \uNJ%V#"И^c#>0" J%|MqJg1ҝ*/!8" zj=Hnb,u I:2 2-9k`1wA|_c}(Ő: VnX ЛYle%3M) \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_delegation_1_{1,3}.dat b/packages/test-utils/testdata/btc_delegation_1_{1,3}.dat index f7d6826f..591f38bf 100644 Binary files a/packages/test-utils/testdata/btc_delegation_1_{1,3}.dat and b/packages/test-utils/testdata/btc_delegation_1_{1,3}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_1_{1}.dat b/packages/test-utils/testdata/btc_delegation_1_{1}.dat index 5f651f84..30cad837 100644 Binary files a/packages/test-utils/testdata/btc_delegation_1_{1}.dat and b/packages/test-utils/testdata/btc_delegation_1_{1}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_1_{2}.dat b/packages/test-utils/testdata/btc_delegation_1_{2}.dat index 2a2904b4..e75c71bb 100644 Binary files a/packages/test-utils/testdata/btc_delegation_1_{2}.dat and b/packages/test-utils/testdata/btc_delegation_1_{2}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_2_{1}.dat b/packages/test-utils/testdata/btc_delegation_2_{1}.dat index bc3e2866..ee5afa13 100644 Binary files a/packages/test-utils/testdata/btc_delegation_2_{1}.dat and b/packages/test-utils/testdata/btc_delegation_2_{1}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_2_{2}.dat b/packages/test-utils/testdata/btc_delegation_2_{2}.dat index ac8b00d4..7525efa3 100644 Binary files a/packages/test-utils/testdata/btc_delegation_2_{2}.dat and b/packages/test-utils/testdata/btc_delegation_2_{2}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_3_{1}.dat b/packages/test-utils/testdata/btc_delegation_3_{1}.dat index 2bd415bb..9990c39d 100644 Binary files a/packages/test-utils/testdata/btc_delegation_3_{1}.dat and b/packages/test-utils/testdata/btc_delegation_3_{1}.dat differ diff --git a/packages/test-utils/testdata/btc_delegation_3_{2}.dat b/packages/test-utils/testdata/btc_delegation_3_{2}.dat index 0ef5e1d4..486a5792 100644 Binary files a/packages/test-utils/testdata/btc_delegation_3_{2}.dat and b/packages/test-utils/testdata/btc_delegation_3_{2}.dat differ diff --git a/packages/test-utils/testdata/btc_light_client.dat b/packages/test-utils/testdata/btc_light_client.dat index 16b8093d..224942db 100644 --- a/packages/test-utils/testdata/btc_light_client.dat +++ b/packages/test-utils/testdata/btc_light_client.dat @@ -1,202 +1,202 @@  -04000000f67ad7695d9b662a72ff3d8edbbb2de0bfa67b13974bb9910d116d5cbd863e68d6f97c892215e92ef6e3f012cff490fed4c43d1d06448aa75ac2fa89f48a58e57d078653ffff7f2002000000@696b9f5ab87c860422f8cf144690b0b5516c0f790129a8e6b571798bbd0a0a9f"18446744073709551617 +04000000f67ad7695d9b662a72ff3d8edbbb2de0bfa67b13974bb9910d116d5cbd863e688743cad4ad7824610395ba81d72cfb1c2069633754c3fd74125506a7ccc2624f38078653ffff7f2002000000@65d78c62bd05babf7c5fb65c238dd444f1167af3a1f4d46742cce03471fd61de"18446744073709551617  -040000009f0a0abd8b7971b5e6a82901790f6c51b5b0904614cff82204867cb85a9f6b692aabbdaa81232a20fc79f611b748b9dd96b4250346373709d16650dced197d2794088653ffff7f2000000010@494e0594460b6162ee7a35cea8e080190caf569d65569aab48213966c6466088"18446744073709551619 +04000000de61fd7134e0cc4267d4f4a1f37a16f144d48d235cb65f7cbfba05bd628cd765660c0a1bb07147b9e657af5b6975257b2eaf4353f354a11c29c44096f21d835e6d098653ffff7f2002000000@12e25870b478bfd1c41897caab35198f115146b042d5fca09829b47b1695aa66"18446744073709551619  -04000000886046c666392148ab9a56659d56af0c1980e0a8ce357aee62610b4694054e498a5e07b5d387462eee9564979af3c4e2562e4d102e7ac53550ab244fd916711e4c0b8653ffff7f20f4ffffef@0d4ce7c116b3e639f41ba5e6e22a2a33b8fe5791a7f05e649c3acc113643aa6d"18446744073709551621 +0400000066aa95167bb42998a0fcd542b04651118f1935abca9718c4d1bf78b47058e2124240285be85bc0ef145ea164adf80080a3b0f3e2f7abbe4ef292a881f51e77ef680b8653ffff7f2000000010@3c3cc1de42f31eb88fe8dd28b44a299a78dcfa882de7f52f643ce35b51fdfae8"18446744073709551621  -040000006daa433611cc3a9c645ef0a79157feb8332a2ae2e6a51bf439e6b316c1e74c0d0355038afe3b7359b060ab1bab84caf96feab47151308d2b6fa1260d6c8e225dbe0d8653ffff7f20f2ffffef@642ddbdc2a1c45957e0b3e0a5f80adf63c8a36a6a77244e0d433a8d2096bc5ef"18446744073709551623 +04000000e8fafd515be33c642ff5e72d88fadc789a294ab428dde88fb81ef342dec13c3c79976402589570b6043079da8149bea498ebf0c4f7a7f3cb661480dea75a71a8140e8653ffff7f20ffffff1f@2812dc103045fef8c1f411c3b02aeb40f93ee7934a97066213776740533916fa"18446744073709551623  -04000000efc56b09d2a833d4e04472a7a6368a3cf6ad805f0a3e0b7e95451c2adcdb2d649bee1fb62199f08aeff783a68ca867291540c77f323554f8cc58911e74fd38c56f0f8653ffff7f20f2ffffef@2089f1333b4a323915efe3a48e9d2fb7e727f0d603eacb6d4475c89b049a2d28"18446744073709551625 +04000000fa163953406777136206974a93e73ef940eb2ab0c311f4c1f8fe453010dc1228756bf4b21e08ed0ee17e380f044abfcb0ee58b4fa8c3707386902d0e643b41fc8c0f8653ffff7f2002000020@0c66ce44a8b78418cba854239fdc1810fd9b4dbf68edf08296c69c9b1cb97f2c"18446744073709551625  -04000000282d9a049bc875446dcbea03d6f027e7b72f9d8ea4e3ef1539324a3b33f18920cdd5f2a45d0057c6ef6d367099a490691be080aebdace067b38a72183121c29931118653ffff7f20f3ffffef@6612a2175830cc8f30cf94653b883d8f6be939f264f779ad914c07684fa5366d"18446744073709551627 +040000002c7fb91c9b9cc69682f0ed68bf4d9bfd1018dc9f2354a8cb1884b7a844ce660c1f0a29edcf2d772753e0194933102fc816010c68b1380ab126cdc25a58310b307f108653ffff7f20fdffff3f@6cc3bec259a7cafa7377c2408e0274dbe98ad5e1ace38a726789a973904ee0b7"18446744073709551627  -040000006d36a54f68074c91ad79f764f239e96b8f3d883b6594cf308fcc305817a2126659b948b04a95b2c035f7d1e225b27a8e37d2d1103ae71e53699ae92b383eeaf03d128653ffff7f20f3ffffef@75865e7e551d0d8b28fa189cd646fef2847e670147b5955b03310d87120ddeba"18446744073709551629 +04000000b7e04e9073a98967728ae3ace1d58ae9db74028e40c27773facaa759c2bec36c6563127872fadb70d78ca347ff0df85e95c5caf3cfdb1a579f1a76a3c6f500ae29138653ffff7f2001000000@2fee2a60d31f5af8c8aeb9ef59be32d170a4531289a2d1c9ad695743a0e60f83"18446744073709551629  -04000000bade0d12870d31035b95b54701677e84f2fe46d69c18fa288b0d1d557e5e8675a3359380aeee95b0c48a58fde7d8fe4abebcb4735aa4cca114063063fe9b13e8e7148653ffff7f20f2ffffef@4574a98de10e803849420249b25593ee3fcb2fd5e7963e766c4c520a6d7054d7"18446744073709551631 +04000000830fe6a0435769adc9d1a2891253a470d132be59efb9aec8f85a1fd3602aee2f01ab788c03d217a4f6155bac8575a5e4f9c58f2eae036d9904037633deef6bf7d0148653ffff7f20f2ffffef@3faef0745851f2afe13a88392950b067a6a4f29e749e745968ab50d81e4b0e02"18446744073709551631  -04000000d754706d0a524c6c763e96e7d52fcb3fee9355b24902424938800ee18da97445db54c8dd5c9ca93b34087f848b861d1151d790b92d81eb5ed2415592ce36bcd826178653ffff7f20f2ffffef@60a4230c6d35bc4723ba9a4fd62e4c5462c476ca82fe565bbf03d60b9a09592d "18446744073709551633 +04000000020e4b1ed850ab6859749e749ef2a4a667b0502939883ae1aff2515874f0ae3fdf49a055fea905d1f5442d394ebc77585fb923138aab16866151d2c68053fb0d5e178653ffff7f2002000000@42c4bb3590d8c41e7a52b18a9c7bf36f189e3f2d7f0f8f0e3851f0137861fc71 "18446744073709551633  -040000002d59099a0bd603bf5b56fe82ca76c462544c2ed64f9aba2347bc356d0c23a4607d03033ae843f27ff7427f47810ff6776654905352f60c3926da282859d0392dda198653ffff7f20f3ffffef@217dcb5511c8bb1726ee4fe5baf073c7264f2033e2ffa1d5eb46200a29529929 +0400000071fc617813f051380e8f0f7f2d3f9e186ff37b9c8ab1527a1ec4d89035bbc442663d844ddfe2a8ba077a3390ca75404f0a3e048472d2138f77446c246ec79b8fb0198653ffff7f2004000000@25712cd64a2092fde21778090f28493643036364e0d3a7f825a5365dd78825ae "18446744073709551635  -04000000299952290a2046ebd5a1ffe233204f26c773f0bae54fee2617bbc81155cb7d21d9b21b5848f185b209a998d4cc30615c76f4e1004aee2d46d00e543b3f3e2959d81a8653ffff7f20f3ffffef@72b6cd427be31e08a27cbfa56f160a30742e4994b0c111abe638ddc2243dd1d8 "18446744073709551637 +04000000ae2588d75d36a525f8a7d3e0646303433649280f097817e2fd92204ad62c7125ca0c042e0e5a680c7d89fcda10e9cfb14ae81e41d9a68165cde29fd795ab40452a1b8653ffff7f20ffffff1f@2a6e16b3f9ec973a690de7566fce7c37cd79cac156133b5a29146bd7959b8a04 "18446744073709551637  -04000000d8d13d24c2dd38e6ab11c1b094492e74300a166fa5bf7ca2081ee37b42cdb672f0ea84ca5f1595ba17ce8d7d9c9a104c4badea627ccb321c6c96d1c8587cd36e141d8653ffff7f20ffffff1f@435a5b465f3bda10afc49ae55e475fbc79021c9a1418521367cb617b24677d99 "18446744073709551639 +04000000048a9b95d76b14295a3b1356c1ca79cd377cce6f56e70d693a97ecf9b3166e2a977dc65be5ab070c53f670312cb7e09e5498f069261c52b18938bb56ad1314b87a1d8653ffff7f20f2ffffef@0d3246d2aa2da50fb9cbea4a82f27b859432ae8c88ab0405f72c02168ca8e24c "18446744073709551639  -04000000997d67247b61cb67135218149a1c0279bc5f475ee59ac4af10da3b5f465b5a43894840b38b264e28927d1eb1d0dc0f9857261d5752d78e7d553a918d99a6ebe1121e8653ffff7f2000000020@175eb30678986f62302b997567b6afa7d7a78fccded15891b37502f1306fab64 "18446744073709551641 +040000004ce2a88c16022cf70504ab888cae3294857bf2824aeacbb90fa52daad246320d44b819a4f714fb5f395824b28f648970e2ce427e9788ffa2ad0883eb898f960ba61f8653ffff7f20f2ffffef@1fd8e1bb1b9657c11ea1332c4a84e9f1345a33376e2106dbab9d5bc0e2b93989 "18446744073709551641  -0400000064ab6f30f10275b39158d1decc8fa7d7a7afb66775992b30626f987806b35e17ed91de12d6189fee54db85255e4e00b9322728d78ca43b56f82946d9a4077e54d1208653ffff7f2003000000@73c406f5ccbba1591567fe65e6b5180395589898acc216ca1d43087721f0d606"18446744073709551643 +040000008939b9e2c05b9dabdb06216e37335a34f1e9844a2c33a11ec157961bbbe1d81f2c92d91f537ec21567bdc7bac3cac9873bf40bde2405cf0b9a640c545ddc4f2c88218653ffff7f2001000010@29bd3d1c7fa823bd63ea971859a54b91fe4af2acc538249d49b507cb0c87c3bc"18446744073709551643  -0400000006d6f0217708431dca16c2ac989858950318b5e665fe671559a1bbccf506c473a4fb039842e9f0694dde6c91eb44eae78f765c2a148e488e22ca2e4b763a181aa9228653ffff7f2000000030@24c33cc33f4638574276c13f3a2173f50f38ae7ed56aa9c5ebe2e46b60aee2da"18446744073709551645 +04000000bcc3870ccb07b5499d2438c5acf24afe914ba5591897ea63bd23a87f1c3dbd2969b2217e8d94a96c76adbe86c8920ba45c311945780de64487b55453aeadd37e81228653ffff7f20f6ffffef@4d65c6f6d8d3cc7cc604af7b2936e569167809406f68fa92eb87c4594604bf90"18446744073709551645  -04000000dae2ae606be4e2ebc5a96ad57eae380ff573213a3fc176425738463fc33cc324822289339b6d4ad74127b91fff1918c2b26034b081d63074351879c0060ab0010f258653ffff7f2000000010@2496850de0630f81dc76db0ddf941f9bf6fadfa80a7a50c2edb64c7ae2de43fe"18446744073709551647 +0400000090bf044659c487eb92fa686f4009781669e536297baf04c67cccd3d8f6c6654df1b35e5e12a92002d4261a86bea247146b551b3c08d3eb098648817f0c32a0d5e8248653ffff7f2002000010@036cbd3531896a22941c839486d9f3ebaa5034ff74d6f10c5c5f6faf2f980a42"18446744073709551647  -04000000fe43dee27a4cb6edc2507a0aa8dffaf69b1f94df0ddb76dc810f63e00d8596249f3e6593b15b41440984a948af6f50f52a23593d51d183a37b2c6c63f06e4fdfc9268653ffff7f20faffff6f@655ddf5fd178a4994c50d9656573aeb0afb319391543d4280737a470cd44dd91"18446744073709551649 +04000000420a982faf6f5f5c0cf1d674ff3450aaebf3d98694831c94226a893135bd6c03ad40351f73fc318a386eacaedc983d3e3ed4507ca0f626ebb14f7cc622ce3f17f1258653ffff7f20f3ffffef@06e111c69cadb4c7351c5b521ce66a0a251249c7edfea289f53304e3173ba45a"18446744073709551649  -0400000091dd44cd70a4370728d443153919b3afb0ae736565d9504c99a478d15fdf5d65dfb9e46c38f9c909b4340cd9377c9e98983bfe55dc7e9ee9abb134ff83cd5480ff278653ffff7f20ffffff1f@0bb2b71750d3f08831d27d9d4058066f225c5d256300199e0980e1013de5c2a3"18446744073709551651 +040000005aa43b17e30433f589a2feedc74912250a6ae61c525b1c35c7b4ad9cc611e1061cbcefb28ca7c1d8ba104adb6589deb601db7ac580772d3af3b9a6d6237b5a4283288653ffff7f2000000010@50d486dae202329b0d747a55b05863822e7a177f54d750a3c0fce41802652d9b"18446744073709551651  -04000000a3c2e53d01e180099e190063255d5c226f0658409d7dd23188f0d35017b7b20b5a2cce3c2d5b3554bbd74e77834d5ea2982f109fbb6751c42e4e02085009b8be36298653ffff7f20f2ffffef@66c880d9064a09fd902d69b4cdfaf349d2963656d7b9df9e7461f202ab986960"18446744073709551653 +040000009b2d650218e4fcc0a350d7547f177a2e826358b0557a740d9b3202e2da86d45016ad96a63da8c130e5edacb34bf19f5af4d782244a1ff9fc2ca0dfd5d83d6daa8e2a8653ffff7f20f4ffffef@7f04074bef71a6c8ae4f23992f2955b2ee80f9950f19f4e86e0d13fe01c53d57"18446744073709551653  -04000000606998ab02f261749edfb9d7563696d249f3facdb4692d90fd094a06d980c86630861bec492a76cff96703ec940c984e476b42c5fb1fbda2d9e9b207147de512622b8653ffff7f2000000010@36cb58a3df3fceb45c78df01c20f029eac08c1c763b1dfe529e60ef13a6cbbab"18446744073709551655 +04000000573dc501fe130d6ee8f4190f95f980eeb255292f99234faec8a671ef4b07047f8cbd337a433bbb2d95b96e69d0830b321364a48fb14d986b4b95777977f78b029e2b8653ffff7f20feffff2f@7e10691dc09978cbf1afd507eb36798ec6a44a9f5e23df780d3c15fc95f73a9f"18446744073709551655  -04000000abbb6c3af10ee629e5dfb163c7c108ac9e020fc201df785cb4ce3fdfa358cb36f7f583d65e23f46055e44e06669691d0099bcc95fa44809d8ff43d73fac073f4ec2c8653ffff7f2004000000@4066dd7999533565973997d2533160b1b35e455940073605778291586abb1f85"18446744073709551657 +040000009f3af795fc153c0d78df235e9f4aa4c68e7936eb07d5aff1cb7899c01d69107e4b25120486fab086e94d061d69a64a8930233e251fb2cac2712a7be4ae7fe293762d8653ffff7f2001000000@26d293efd1e7ff458f904b2c99cabf18c1f1bf222b203bea63ea3d4b105742d2"18446744073709551657  -04000000851fbb6a589182770536074059455eb3b1603153d29739976535539979dd66405f3f6fbdf4e90da7d7434e7f2017d11fba5c89aaf09e556e5b336826beaac957fe2e8653ffff7f2002000000@1f60cd2d19440f94f12190f0829091a39f3cd2282bc8393807593429ee1e5c4f"18446744073709551659 +04000000d24257104b3dea63ea3b202b22bff1c118bfca992c4b908f45ffe7d1ef93d226386173e3c7e7979a74cf0ece8bedb099456bb74e0362afabb7ab46ae2674f72ce12e8653ffff7f20f5ffffef@3238941c8274eb2e516053101ff3183ba1fbd0cd14b82e397e5af40acbb02075"18446744073709551659  -040000004f5c1eee293459073839c82b28d23c9fa3919082f09021f1940f44192dcd601f35e27733e4f455c8b895761644d72ce245a388266b0d10f9eaa4fd493160be54aa318653ffff7f2000000010@0cfa8a692ec483d7eddf4567c3fc9ba46f12d16220bac7a80285ef52fcff83a9"18446744073709551661 +040000007520b0cb0af45a7e392eb814cdd0fba13b18f31f105360512eeb74821c9438329d0b721078203641e5f92580db00638b674397cf2163c595d72d9095d5aaf42795318653ffff7f2000000010@3034b575fd98afef7d2f026ed32e010afd998cb1eca0ca0fbfe6cf37b39c4033"18446744073709551661  -04000000a983fffc52ef8502a8c7ba2062d1126fa49bfcc36745dfedd783c42e698afa0c2275ced7aa672d97f13b0129cdb42d6ab0ac83251c3401468b966cb65dcfe9b8ab338653ffff7f20f2ffffef@02eca0f5ad4b8b245ffd8946297dfed0230ed717b53f04eb1a9be2f933fa3889"18446744073709551663 +0400000033409cb337cfe6bf0fcaa0ecb18c99fd0a012ed36e022f7defaf98fd75b53430102287d738afb0843769749260a3ccb73cb602d63462781cf8fd389dd00eeb0977338653ffff7f2005000000@5fa1728f48fc4e1cd76d6b86fa3ef751561425c20987969fd830d4277f6b93e3"18446744073709551663  -040000008938fa33f9e29b1aeb043fb517d70e23d0fe7d294689fd5f248b4badf5a0ec02bbcd8377dc1fa1161db6500b3fb6e620ad270c3ba2a9e39a89db9ff9ca2470cbf7348653ffff7f20f2ffffef@43d30d7cfb5ca29756769fadb5a0f6d754174e543d3efa270777c2cf23317930"18446744073709551665 +04000000e3936b7f27d430d89f968709c225145651f73efa866b6dd71c4efc488f72a15ff952a8baca0b81617b895b1f7336e2915c4b5cf95eb04d1d8a6bc5ea2c0ac64254358653ffff7f20f2ffffef@394ec0913e33056f33eba28009c32acfdef34301207ed7ada77b33515824631f"18446744073709551665  -0400000030793123cfc2770727fa3e3d544e1754d7f6a0b5ad9f765697a25cfb7c0dd34365217d8e0840da491ccfb1ff92105cd0e28b34bb842ee7ccc57aea8f33cd48f207368653ffff7f20f2ffffef@2435b329e717871bbe8a1da324571e741455e9fc0228072585d56a60808462ab"18446744073709551667 +040000001f63245851337ba7add77e200143f3decf2ac30980a2eb336f05333e91c04e392ca0cb844a9e1f67abe1d6fc4219bcc1a11d4910404ef66a42d479b4746abbf706378653ffff7f20ffffff1f@32c08650f9418a92999dd57c2e822ce2c8bce31e592def490d9ed4938da5c72f"18446744073709551667  -04000000ab628480606ad58525072802fce95514741e5724a31d8abe1b8717e729b335241ed3d9327afa4fc39fe35c27498127c65677ac12f40681ecc4ed0445180f00b060388653ffff7f20f3ffffef@6f943d44cb2db2af476e93e16b4f8c50828e662e5b7a4aab536b198ea8a19373"18446744073709551669 +040000002fc7a58d93d49e0d49ef2d591ee3bcc8e22c822e7cd59d99928a41f95086c03222c1cc505755ec86b949fa6607c246a1108b3dc0e48970f67bab60ca7d9013c998398653ffff7f2001000000@5e7f619f359f64a8226ec7636da1c2513978d1062a00a8d2b3352239259da512"18446744073709551669  -040000007393a1a88e196b53ab4a7a5b2e668e82508c4f6be1936e47afb22dcb443d946f833ff08b3d8fe1075ae63c70f4a2c4c8e628f63d4323059197327f017f71586182398653ffff7f20f4ffffef@25a4a371ca8b5ee46a2db56f27b8255b87605c2a26d34547b8451615bb9b3683"18446744073709551671 +0400000012a59d25392235b3d2a8002a06d1783951c2a16d63c76e22a8649f359f617f5ed91cd8dd04c67d7218e2490c6fde91a7124040f57abca0e82a6ac9d0428b8081413b8653ffff7f20f3ffffef@69b395b923b7b67f62ad3a8d5441446fb22734ff4ade7ff745e7747676b22c1c"18446744073709551671  -0400000083369bbb151645b84745d3262a5c60875b25b8276fb52d6ae45e8bca71a3a425d344de9b73ca7eaf357e7b8f595bd51e2781802bc791410fcb963f15fa539e658c3a8653ffff7f20f2ffffef@403d5fe929bd05fe6b7ee3fb6d991f6046e41a1e0c8b89b2adfc189b3632c86b"18446744073709551673 +040000001c2cb2767674e745f77fde4aff3427b26f4441548d3aad627fb6b723b995b369bbd6ec1d49c918543b94af3e6133e05e6d2205e341c7f7f757d56da179f64225673c8653ffff7f20f4ffffef@0c706fa55e0b8f3a013692096b834ac8e1772b219bcb05fc32b52b8dcdce0bcd"18446744073709551673  -040000006bc832369b18fcadb2898b0c1e1ae446601f996dfbe37e6bfe05bd29e95f3d40d4a5b6c6ed062733059b3a4b5541f0bc91cab2cc6037b2cff09aa7dac3519b46303c8653ffff7f2001000020@7de54580a329dae57448fbe1596833b6864b0b442627ed5556505de5872ea053"18446744073709551675 +04000000cd0bcecd8d2bb532fc05cb9b212b77e1c84a836b099236013a8f0b5ea56f700ce6ebd51834a066ff140e9b4682d783071115010dfcc45cdcb443e6073c63b5f9103f8653ffff7f20f4ffffef@10aed3eb4f4a682cf8baf993458512d727e81feec7f085a4df0ea8dda0caca87"18446744073709551675  -0400000053a02e87e55d505655ed2726440b4b86b6336859e1fb4874e5da29a38045e57d571f280f53d3e87b42e0e91f683611a36e9cf09212fb68e70f51f19c67710ad7cf3e8653ffff7f20f2ffffef@2543af4a6a9039f6e1a185fa257b587a6097e96ef324e39cc9a62658a9d8dd7d"18446744073709551677 +0400000087cacaa0dda80edfa485f0c7ee1fe827d712854593f9baf82c684a4febd3ae100614137ef5f1c6d15c20f63e58751642a5fbedba7b1c9829bf21014c36335c4caa408653ffff7f20f3ffffef@19409af8dd6f9747ff1cd07b5348e910ff60a5d870a187df4a70b20f326529cf"18446744073709551677  -040000007dddd8a95826a6c99ce324f36ee997607a587b25fa85a1e1f639906a4aaf43250c632d9c3710f3eb4bb7ce6956b6f222f8df82ae2b61a55fa0e0100c8d9cfad719408653ffff7f20f4ffffef@6378eecda00cb62445d15ca366a78d660faff516ce505366792348f22934c630 "18446744073709551679 +04000000cf2965320fb2704adf87a170d8a560ff10e948537bd01cff47976fddf89a40197e587d35d8695403a7f2ddecda5535ff035d15ff5298876e1b08146d1d74851af9418653ffff7f20f8ffffef@2fb9fcba821dc6333ac8b63add66ec0a5da62934a4bf5261d9036926b7d43da5 "18446744073709551679  -0400000030c63429f2482379665350ce16f5af0f668da766a35cd14524b60ca0cdee7863a5313e681a4e8109c07ebee9404f3031731524eb44cee3029c4e1870799a32a145418653ffff7f20f2ffffef@14a2f6c9d4751d4e719aac23dadc0ef2e9cfd820748b2ab096e21fa9ae98c0e5!"18446744073709551681 +04000000a53dd4b7266903d96152bfa43429a65d0aec66dd3ab6c83a33c61d82bafcb92fb890aa5f50fbad28a39dea31a63072f8d60813e19b605d594c72eb183cba81ff6c448653ffff7f20f3ffffef@38ffb492fce76e4edcb811d621bc98555f94b14ca252a16c72c03ed056ac83a0!"18446744073709551681  -04000000e5c098aea91fe296b02a8b7420d8cfe9f20edcda23ac9a714e1d75d4c9f6a214744b40c25765a91f40ceb2fe9a58827e22beebda7560cb747d61bcc46fcd42f868438653ffff7f20fcffff5f@7dd1f0298f296d8ed535d191279b250289950cd60fa0b3ccc6a613b8a4f48236""18446744073709551683 +04000000a083ac56d03ec0726ca152a24cb1945f5598bc21d611b8dc4e6ee7fc92b4ff3887cfbb353ac4c49381574dd6c9aaee0f516348890e53799c1761d584a97e024ec3458653ffff7f2004000010@338378c7bd51ce705111adf3282fffe4957ad841b32af85fa5ca2c985e291cc0""18446744073709551683  -040000003682f4a4b813a6c6ccb3a00fd60c958902259b2791d135d58e6d298f29f0d17d9c5b827124777cec59b89f7dc0bd57074848f4932edf3ac01d1c230ff91e63bd08468653ffff7f2001000000@5abf512a807c3e095ce877cb12ae73dd7666c61e38d3f5c3c425827807ce9fe9#"18446744073709551685 +04000000c01c295e982ccaa55ff82ab341d87a95e4ff2f28f3ad115170ce51bdc7788333b5bc71dd33baa19d55432966e9b3b851106b19318a4b7778ddba09841b9c336449488653ffff7f2001000000@37f31989e7614f72281eb2fc35ca3ec73c279bb2e567af045006c85aa66fda75#"18446744073709551685  -04000000e99fce07788225c4c3f5d3381ec66676dd73ae12cb77e85c093e7c802a51bf5aa56ddc7d517fedd379311947ee27b933c7bb414dfe9c5aa24845ccdb20374c94ac478653ffff7f20f2ffffef@6231eb79f1cd97d4b1e6cab3f0a2f88b289c6ee8002158cd7e0e7bd163ccb2a3$"18446744073709551687 +0400000075da6fa65ac8065004af67e5b29b273cc73eca35fcb21e28724f61e78919f3374b76179e3b08e025679cc8bf52dd6f22cdf8cf5ba385dbd6e49484aea12cf120ec498653ffff7f20fdffff3f@1c120a41e5c86a0bcbfb19c0c427dcb7f5d5d2e7cf79af15b2790c452893d630$"18446744073709551687  -04000000a3b2cc63d17b0e7ecd582100e86e9c288bf8a2f0b3cae6b1d497cdf179eb31621312e9c57bff7f0b36298fd988a99d097f3e316cf430b56a59ed0a305fedfb3b96498653ffff7f20f4ffffef@668c4875691c9dd1bc959e2dba332e65b0b723e824f41d43f271b14656736378%"18446744073709551689 +0400000030d69328450c79b215af79cfe7d2d5f5b7dc27c4c019fbcb0b6ac8e5410a121c4e2cea411efcbca4efbcd00770f609c8303c68918bb37162c52482ebb5a4438be54b8653ffff7f20fcffff4f@4f1bb45ab2ec8330f47f8bd041e9e71638f7e55843cea20a76fd71370c1e8ebd%"18446744073709551689  -040000007863735646b171f2431df424e823b7b0652e33ba2d9e95bcd19d1c6975488c66992cc927417520f43e0ea324068d19a9d25512bde5552f40eac862491b7565295a4c8653ffff7f2001000010@3d147ebc2fdc075632a413600ab4350a251e4b62e2a81ca40480ed807f7dbf93&"18446744073709551691 +04000000bd8e1e0c3771fd760aa2ce4358e5f73816e7e941d08b7ff43083ecb25ab41b4f941c4788b82ead10e4ef1241c7c23ebc058642bec3c935f5754656aacf4e99cef74c8653ffff7f2000000010@1e03291a8180a633f805ff780e6b8a16c5ff3008b501678835e6b597754884ed&"18446744073709551691  -0400000093bf7d7f80ed8004a41ca8e2624b1e250a35b40a6013a4325607dc2fbc7e143d5bf009eeab7459a7b163da617086180aac68c6945e1b16cb338c9772f07c4a00714e8653ffff7f20f3ffffef@3de369e856e9566f7cdd8e9053eca61a185c7c20cd7dbbd2191cbafb0cef4457'"18446744073709551693 +04000000ed84487597b5e635886701b50830ffc5168a6b0e78ff05f833a680811a29031e2c64a2382c14fdf18efb793b4f1bc5c8890a56e2c42ac718549fad9e42c21904634e8653ffff7f20fcffff4f@351fca800be9d07f07d3c56a4cbb6c729b4bcb1d94c241330cb9fb7416c41e08'"18446744073709551693  -040000005744ef0cfbba1c19d2bb7dcd207c5c181aa6ec53908edd7c6f56e956e869e33d30a61de4b61137cb75a72c36e9b161c93f6103e577b072573b87f6d464481b2bc54f8653ffff7f20f2ffffef@2711fd167d851bfb245c97f36b3cf56bcf830ee104bb55737036c13ae923f4ec("18446744073709551695 +04000000081ec41674fbb90c3341c2941dcb4b9b726cbb4c6ac5d3077fd0e90b80ca1f35a9f8b3a19cd92d3bb5003ce06e7718a087a83b1162e3a447684337fa131185553d508653ffff7f2002000030@5ba528d5bd82f492057e11c3db4b94b06214797f2755b6e1115f23e98be7e07c("18446744073709551695  -04000000ecf423e93ac136707355bb04e10e83cf6bf53c6bf3975c24fb1b857d16fd1127a1455825951815362840e1e0355c221ae8fd07c4e8fd6a3dac1222b6620579d51b518653ffff7f20f2ffffef@083c94d1e9aab73015ca451cde310d96114d852902cda66ec275dc50bead5f52)"18446744073709551697 +040000007ce0e78be9235f11e1b655277f791462b0944bdbc3117e0592f482bdd528a55b18d5aa1a2e7eb90cae08cc9d31098ab7c73640168b723c2aad7717c28826416e39518653ffff7f20feffff4f@1b22bba5871f23b79de81ceff6ade159d64cba3e09aeca8767b3713fa8d51015)"18446744073709551697  -04000000525fadbe50dc75c26ea6cd0229854d11960d31de1c45ca1530b7aae9d1943c082b2e31e46221cd380572572fbf8508b53a7c78d683af6e17f43b4ae8da6526e0cb538653ffff7f20f6ffffef@358d86ac483b120499130723cd6fa1cfa0a1c85183ec4b4e1b4ce94118e07340*"18446744073709551699 +040000001510d5a83f71b36787caae093eba4cd659e1adf6ef1ce89db7231f87a5bb221b557828717718111ff8d8a4bbf607c474f246233ab1b4f9fd3dd636126541722948538653ffff7f20fcffff4f@4a10ebb8a9a903a283c54ae93673f02dce975c91b0c2b1c51b4692602ad7681b*"18446744073709551699  -040000004073e01841e94c1b4e4bec8351c8a1a0cfa16fcd2307139904123b48ac868d353982a60a9259edc7b5a289637a8d16daa857331f1a07fe7cec31f960445195ec07568653ffff7f20f4ffffef@4bbfb4f88a9ca3db23e2434c314427079240bbc5bb4cd0617d106a8218c8d65b+"18446744073709551701 +040000001b68d72a6092461bc5b1c2b0915c97ce2df07336e94ac583a203a9a9b8eb104ae237da4ca60b4d0947d99a433c7259db34d4c8d49b60d8c3fc7aaa2ea0cfa3ea09558653ffff7f20ffffff3f@0bc1bedd357b0f4330494489d419e019f1911e8f6bb4b09f32b161072c421457+"18446744073709551701  -040000005bd6c818826a107d61d04cbbc5bb4092072744314c43e223dba39c8af8b4bf4b4f901ab4e7c819c024697809a74a98a6d60953b239f8d0cf072afa0e02a14fff52588653ffff7f20f3ffffef@5cdf48093ed9163c135a1048bddda4fd609d0ca804315decdb63d755087970f7,"18446744073709551703 +040000005714422c0761b1329fb0b46b8f1e91f119e019d489444930430f7b35ddbec10bfb7e7623adb9e80c384bc0c328e3e162abb651c40c7e356c952fba2084df9e7345578653ffff7f20feffff2f@71886af6b6cc594add120ab238ca6c151667e405e99b018b580413e95a85e89b,"18446744073709551703  -04000000f770790855d763dbec5d3104a80c9d60fda4ddbd48105a133c16d93e0948df5cf00afba45e61ddc3b44eb9970eba577df135fc6677381211750d881012d8ea6c355a8653ffff7f20f5ffffef@29331c24f2207953537c6ce1561c3aa89671d9bcc2f08cb688c78f79c0671319-"18446744073709551705 +040000009be8855ae91304588b019be905e46716156cca38b20a12dd4a59ccb6f66a88712b5b8833695a9b54eac39c7dd5dd34db74db5fe3924f7f8b3c53cda975656cdf95588653ffff7f2002000000@48a177f2992c984fb44a69119c48025038b782b682db8b75b5bd588f20ece465-"18446744073709551705  -04000000191367c0798fc788b68cf0c2bcd97196a83a1c56e16c7c53537920f2241c332905c2fad784194bbf12688cb0df118feac74d95fa78181e2632d3feaa3fecaca6325c8653ffff7f20f2ffffef@0bb723cf4da8204a96685d3c70cca0e7a1e70c9c44a23066856fe2d5295fc3d2."18446744073709551707 +0400000065e4ec208f58bdb5758bdb82b682b7385002489c11694ab44f982c99f277a148f6bcd45322225f4167d873df58510d5dcf6af114720f444269b95a4ae27be82d725a8653ffff7f2006000010@72f7a42bc96160bf1a04ace5b79db803dc3bafd90aab12a1db11adbfd27d06af."18446744073709551707  -04000000d2c35f29d5e26f856630a2449c0ce7a1e7a0cc703c5d68964a20a84dcf23b70bfaa093b99d38f3d8f461d2bce6258c75863cf51f9edce3f002d0772077869dae385d8653ffff7f20f2ffffef@649cafc262d123861cb6826a50880e9659e7ca97a14036f0518ac42b1ff2ad25/"18446744073709551709 +04000000af067dd2bfad11dba112ab0ad9af3bdc03b89db7e5ac041abf6061c92ba4f7729c7dca2bf93b499afa98cfe4ae46d0a18e3a7ae360dad2f3729812ca49cb03906c5b8653ffff7f2001000010@6d0c9d2e0c372327149b81057004cb7475cb55a869c0d26a441edb1a039c9942/"18446744073709551709  -0400000025adf21f2bc48a51f03640a197cae759960e88506a82b61c8623d162c2af9c64e3ce8739e181a772f7ec91e0b0323938bd5c0ab64882857196f26d141d73d75e345e8653ffff7f20f2ffffef@3e967131b9a8f15f856ee092a21498dd363013a1935c62d64cc30d7718c4a7990"18446744073709551711 +0400000042999c031adb1e446ad2c069a855cb7574cb047005819b142723370c2e9d0c6dc6c6ef94af9161952fc15ccd9625e0b1c8e47d317633cf2343437796ccdd4b5cf65d8653ffff7f20f3ffffef@2d79673148de0ef83d19e570e47ee0c273be4fbd16a3767bfc1e441a1022d9c10"18446744073709551711  -0400000099a7c418770dc34cd6625c93a1133036dd9814a292e06e855ff1a8b93171963e8f13e55d25a0e1a90e141699b4cae87ff819da1bdeb5b4f9bef89d93eccf28b19a5f8653ffff7f20f2ffffef@7d71919e05e138857cee2e3e96f357ee95f62db22f997244006d2a91b491bf551"18446744073709551713 +04000000c1d922101a441efc7b76a316bd4fbe73c2e07ee470e5193df80ede483167792d2f0b6ee48e0a4e2962fe71046db4122a095cf957e8d8e58b0f1ac48c14393f6e25608653ffff7f20ffffff1f@54573f9797115eb4e3b1016bdbd9f48db38ea7c8c5a662635e8eeaf657f50f7c1"18446744073709551713  -0400000055bf91b4912a6d004472992fb22df695ee57f3963e2eee7c8538e1059e91717d58f2b2ab6b949ffb025ae2fc205a4aa743531549fa7c67fba3249daf269052a300618653ffff7f20fdffff3f@52c30d53ff19bc6617a6d6aed541d5530d5593f91139d50a39c32c69650d75f62"18446744073709551715 +040000007c0ff557f6ea8e5e6362a6c5c8a78eb38df4d9db6b01b1e3b45e1197973f575459a015ba5544d4f57dbddc8c9df84a3baa4d15cfdf5b92626c7d82ec7edafb0167628653ffff7f20f4ffffef@17dd5832f8cdaf63fdd7cbadca703fd50eb65117461d726c17a5c950b5b542ec2"18446744073709551715  -04000000f6750d65692cc3390ad53911f993550d53d541d5aed6a61766bc19ff530dc352f154becd973b08fff886453139dd8ede795089f5c95a3c2f7e15778cdceed556c6628653ffff7f20f2ffffef@031f055f8f236fc79f0778e9b881bea8e70534188b4e643dc2d73eeeaa9731153"18446744073709551717 +04000000ec42b5b550c9a5176c721d461751b60ed53f70caadcbd7fd63afcdf83258dd17393a349ed6a1c2e228d286308054373d4d37edf5a292737b9192aac9f7211014f7648653ffff7f2001000000@4c4fc39274c8f5d6b130b211fde8c4a660b58658bf35e76b466ec17a0e1484bd3"18446744073709551717  -04000000153197aaee3ed7c23d644e8b183405e7a8be81b8e978079fc76f238f5f051f03fdf9472fa7a6b0d01f72b5df5a1fa0287ead6325438ba75eb82ed8ce8f53dbcc6b648653ffff7f20f4ffffef@67b6795906eaffb80c01ab436deabe481f22202c6e2e7fb1ccd82e7bd70b74dd4"18446744073709551719 +04000000bd84140e7ac16e466be735bf5886b560a6c4e8fd11b230b1d6f5c87492c34f4c3091181396391d1ac353fb5080cb2745877935bbb4b88bfef6137649c3bad5222c678653ffff7f20f4ffffef@10868898d55886da1f8ca7851cd55f5424d47eb2ab16fb7205bf972345bc612b4"18446744073709551719  -04000000dd740bd77b2ed8ccb17f2e6e2c20221f48beea6d43ab010cb8ffea065979b667d5640f6ce7b5e42db67dccbf67c12f138504a35ad91bab251224dd4ccbea387942668653ffff7f20f2ffffef@3315dafec7dcc6294957e9b3fc4fac2fec7fe902d6afbbf298eda13cc6fb172d5"18446744073709551721 +040000002b61bc452397bf0572fb16abb27ed424545fd51c85a78c1fda8658d5988886109096417881ef278722eaaf03e9d45c6d1c07b876edb2fb0cf1e0c4741da46a50ca688653ffff7f20f2ffffef@45d25a99aba38a5f6e353ae98e732e115978ea1e9885a0f604a3331b284351255"18446744073709551721  -040000002d17fbc63ca1ed98f2bbafd602e97fec2fac4ffcb3e9574929c6dcc7feda15335148ed500170db7d5761d0f27760bba565fa8af59e4e7ec871ff4576608ab38aef688653ffff7f20f2ffffef@48ec57c2aec0cebc59d41d72d036eb15f529b3ed6eda5018da493da58bf35bf26"18446744073709551723 +04000000255143281b33a304f6a085981eea7859112e738ee93a356e5f8aa3ab995ad2459d2e007681b9d71e0c39704c976e91d8ff45cb50cc90716daab46913eef1032dd2698653ffff7f20f3ffffef@3ebcec173d02a1efe0e951cd7ecfb578f4e9838704e4776dee57869413df4ad56"18446744073709551723  -04000000f25bf38ba53d49da1850da6eedb329f515eb36d0721dd459bccec0aec257ec48a601b10286a275206b0afece369049cecca67a368891b82513a55757da8a51f6676b8653ffff7f20f2ffffef@6be0dc51d81b26575ef15ebd02d9284ce868b20f481bf97e9d75ded4566a00797"18446744073709551725 +04000000d54adf13948657ee6d77e4048783e9f478b5cf7ecd51e9e0efa1023d17ecbc3e0a6020d936e049009b6246ffbcdf0c08bf90eab4374bb3542f12bc05659bd149bf6b8653ffff7f20faffff7f@4f177b1f2a5a8fd76a16cb6ef4fc42d23137c27df8bf64110f5a13de02aa18cc7"18446744073709551725  -0400000079006a56d4de759d7ef91b480fb268e84c28d902bd5ef15e57261bd851dce06bd25323c30c9245945e7ed71f372271cfca740174f293afa4c462024c58ae54a2906d8653ffff7f20f5ffffef@3f5a0430f7dace4642782755507b60aacc6ecd2269e7f4f2005bfd8311a2fe318"18446744073709551727 +04000000cc18aa02de135a0f1164bff87dc23731d242fcf46ecb166ad78f5a2a1f7b174f49898e4c8513b08ee32b74f22472bb422ef175eaacabdee824afcb7f578b98576c6d8653ffff7f2003000000@2437b583341ffca22bcf22880b5b8550e59baddb1ecfea0f75be0f739cac59a28"18446744073709551727  -0400000031fea21183fd5b00f2f4e76922cd6eccaa607b505527784246cedaf730045a3f0e21b5161d1b8a624335801f3f61c872636c816be70f4473e9fbe61907f12b58db6f8653ffff7f20f2ffffef@6338d16f92980389bedef9b0a4556510d6d0cf86b58e866c7f84be15df6301a69"18446744073709551729 +04000000a259ac9c730fbe750feacf1edbad9be550855b0b8822cf2ba2fc1f3483b53724d145a6ed621b064fdd41418fcdd2522177cce4bbaae720c48d2e3535d9c57911676e8653ffff7f20f2ffffef@1b8856059dea66bf7af33df3d46f6d6100e01a338fdad942fcbef3069892218a9"18446744073709551729  -04000000a60163df15be847f6c868eb586cfd0d6106555a4b0f9debe890398926fd138639b749f4c185ab26e9a773d385b9b358b3c0292831e9bd26e5412c8be8cf863166a728653ffff7f20f2ffffef@2231410e16307d27a604c8b165f5e2ccab417d6dff646a765931d35c6418f048:"18446744073709551731 +040000008a21929806f3befc42d9da8f331ae000616d6fd4f33df37abf66ea9d0556881b962f9175569655cd0c3e95e8f8a38f7bfae2f3b030b32e3f8f0c8ae372679877ca708653ffff7f20f4ffffef@7665fcf374a5d6163bd9cff0c854509e50adab5f862ffcbe46b856ecd9350db1:"18446744073709551731  -0400000048f018645cd33159766a64ff6d7d41abcce2f565b1c804a6277d30160e41312278188274e44eba59c0b6254b091578f965686625ad05d4349aaa791ff1eda6ba91748653ffff7f20f2ffffef@70fcaf733d430eae040b452bcfb5a177ff4b0dbfee9a3659608e52dbc66bdc09;"18446744073709551733 +04000000b10d35d9ec56b846befc2f865fabad509e5054c8f0cfd93b16d6a574f3fc65768bc78696e1b9da2000ccfa40fe49727086652bf0b5e159efc5709b6b55a1a2842b728653ffff7f20f2ffffef@6acdc9502e6af8b004f0f26b0fde3dfd7419f0a77ed110ea189433ed0d7db869;"18446744073709551733  -0400000009dc6bc6db528e6059369aeebf0d4bff77a1b5cf2b450b04ae0e433d73affc70b7c7d4904fa171fa7e51ba8154eab96ba903311d9de808782c1560e32e7ac30792758653ffff7f20faffff6f@7a0b201ab40b53ff479e2a6dc706772abd69ba12846ed41f2e959b7f70caa5f4<"18446744073709551735 +0400000069b87d0ded339418ea10d17ea7f01974fd3dde0f6bf2f004b0f86a2e50c9cd6a7ab01d8c2615b54705d1975159c506b864fd7583eecd10a7ef04d3962df4e47940738653ffff7f20f2ffffef@4b59029f8b68c3db7ff07c14a9a0fcca9c76179e13fa6a6ab318e8ad18ec2a9f<"18446744073709551735  -04000000f4a5ca707f9b952e1fd46e8412ba69bd2a7706c76d2a9e47ff530bb41a200b7acc02dd1dc2f5b05379be7e7e648cb0c12a033002f0d5cb6b7a880d9bfcfe2cf9c5768653ffff7f20f2ffffef@1cee0cebe4a1eebe4f87e25cccac881b450867611c094ede91e8123343106196="18446744073709551737 +040000009f2aec18ade818b36a6afa139e17769ccafca0a9147cf07fdbc3688b9f02594bd495f352d9734630e9f4102a5092b135bd8ed533ba906872c87f7cc504987eeb3a748653ffff7f20f5ffffef@0c9c3fadb914c681b431a931e35c29074e94d8b07858df7e971f46ee71fc08c8="18446744073709551737  -04000000966110433312e891de4e091c616708451b88accc5ce2874fbeeea1e4eb0cee1c7ed74aa939f52bd5cc47ccab9c72f1a1871b3832cbdad6eb82aef720aff3804190788653ffff7f20f2ffffef@63db9e9d34e0f62691b15d50241c83182b4e55751d239fc1d55dcb1cff24c4d9>"18446744073709551739 +04000000c808fc71ee461f977edf5878b0d8944e07295ce331a931b481c614b9ad3f9c0cd4a22f7e033040d1b1c0ae412e32e6204fad1d6a70fc7df4a73fe17cd0f2a7176e768653ffff7f20ffffff2f@2bc40730ec393c16de2d034c4452ff5a77f8e59cdd50e0a1ae54810f6c703c0a>"18446744073709551739  -04000000d9c424ff1ccb5dd5c19f231d75554e2b18831c24505db19126f6e0349d9edb63bbd535cbe076203528a9a834aa3191c48cb03817174e7aaf8a30f0bbc456f287ac7a8653ffff7f20fdffff3f@33a8e586d43277b0aac45746add5ec270d2a6c09bae3d7a62d98b63dcc458371?"18446744073709551741 +040000000a3c706c0f8154aea1e050dd9ce5f8775aff52444c032dde163c39ec3007c42b029ae188bcfe1ef21206dd69dc5a37e3cf88f6086fe1f1c5a3d68d5a398137a21c788653ffff7f20f3ffffef@1a09c5939441f635a9f3f5f15457ce77ca3ec989ea8050f8dcd4a821e3dd557c?"18446744073709551741  -04000000718345cc3db6982da6d7e3ba096c2a0d27ecd5ad4657c4aab07732d486e5a833b96ef91b02d4e80003483754b850b6bb738200b0a2d86568c845fb9d65902584d07b8653ffff7f2000000010@3ed82afacf17d50ccd93381c051117f828318e3339d3dd5bb7c836465c6ae28c@"18446744073709551743 +040000007c55dde321a8d4dcf85080ea89c93eca77ce5754f1f5f3a935f6419493c5091a458f6c050808fd61aab885e7e84a2a75125649a59e8d3354acc6ede8bafd686f1a7a8653ffff7f20f3ffffef@563692610169ed33850f3b6d70c6e18b654f2606dcf1b32870dc5ebdadaed83a@"18446744073709551743  -040000008ce26a5c4636c8b75bddd339338e3128f81711051c3893cd0cd517cffa2ad83eda373ecb0d70b620435ae4b56f6ba317e8184adc14a69dca657c126b66d453c1697d8653ffff7f2001000000@2ad787c8d377a479f9c3c12e4e91a43eae0873c919b2ab8cfb9bd862d8fdbb16A"18446744073709551745 +040000003ad8aeadbd5edc7028b3f1dc06264f658be1c6706d3b0f8533ed69016192365631a437874370a07f7e7f70521ccbb58bc8b2f9eb1b285e94532afc98b9e151f4b07b8653ffff7f20f2ffffef@2f5ab97fb37686cacfefaf5d853905f788d9121fe4070653a79ddfba3455ddf0A"18446744073709551745  -0400000016bbfdd862d89bfb8cabb219c97308ae3ea4914e2ec1c3f979a477d3c887d72a8a859dae90d8c4a9b7afb5a854ad5c4daf3cd2262fa5dedb91571c3bb7f6055dc87f8653ffff7f20f2ffffef@60ad0d6a0b2c3c840f83b91fed2cdf89753ce497b867b24cf09b8f903b62ceedB"18446744073709551747 +04000000f0dd5534badf9da7530607e41f12d988f70539855dafefcfca8676b37fb95a2f453dc0a682c952fdf0ee58d61cd9852977136d9e4dd591c5755913992362a080e67d8653ffff7f20f3ffffef@2fd2cc1d06201063107aa554f4679f08fef3d36d9072e6550b39e9bb5a5f181eB"18446744073709551747  -04000000edce623b908f9bf04cb267b897e43c7589df2ced1fb9830f843c2c0b6a0dad608e8564873d2237c544a1bb102262a413e2d087c8a13307fea38b518a170074bfaf818653ffff7f20f5ffffef@1706ddec967ab1a8be773aa26482a4837ba3943431622455fd240839a3ec3403C"18446744073709551749 +040000001e185f5abbe9390b55e672906dd3f3fe089f67f454a57a10631020061dccd22fc71f69804c3c0790d4a653743f7bfb5798c5b79ce6594e3eab8c15c3d9a24fd35c808653ffff7f20feffff4f@5b767ca43a8777dd101174c4a40076363c910374be91b33791c83f8b4695dd73C"18446744073709551749  -040000000334eca3390824fd552462313494a37b83a48264a23a77bea8b17a96ecdd0617a4ff7bdb5153c6e2962f3ad2b8e5d3e388e963302b8ced8c7b46fbaf5ff33624d7828653ffff7f20f2ffffef@7bb11fa2e49c86446762fbab6927feb0974c2fe9a6cf0e938395bad1324489e6D"18446744073709551751 +0400000073dd95468b3fc89137b391be7403913c367600a4c4741110dd77873aa47c765b2c281e3a3d0c3715335f8bb6184ebaea1c72b4ed465c0c22380eb9dcfc68378932828653ffff7f20f2ffffef@4a4649d98fb2bfaa941c89e7d1d4f56af0b2a3a85bc73306fb97e1d7a12a325dD"18446744073709551751  -04000000e6894432d1ba9583930ecfa6e92f4c97b0fe2769abfb626744869ce4a21fb17b1b4773f27a491bf2fd720cee9a449aab2c64548cc52c1d526ca6c4b8e72fa93159858653ffff7f20f2ffffef@24b02f8c40b1a7f367de9e74eb4af74e730db806df42e530b0ac06c7c69321f6E"18446744073709551753 +040000005d322aa1d7e197fb0633c75ba8a3b2f06af5d4d1e7891c94aabfb28fd949464ae604f9b05e5094f1456fed09e4de8d79dcda91bad157dd12c46f228792e0f49dd4838653ffff7f20f3ffffef@01c8e6690fc37c4dd5381d2d2716a47ac6d388ca25bef941fb53911e7c29d75cE"18446744073709551753  -04000000f62193c6c706acb030e542df06b80d734ef74aeb749ede67f3a7b1408c2fb024b8d9bb3b30f4dc45d97e455facfe74fe249be4a094a26d48af0d25d4a76a16d18a868653ffff7f20f3ffffef@25b09e1d86dee966f03663c17c5f95661ec0974e226bd9e9ba9c30c61bc5384fF"18446744073709551755 +040000005cd7297c1e9153fb41f9be25ca88d3c67aa416272d1d38d54d7cc30f69e6c80111c5a6da097384f943bd98b98e4e2ef5ffaee5ecf82688122e14cb8269eb967a12868653ffff7f20f3ffffef@13b82438c93247ad25396eab7f95c66669bbb07586cf1a9c92f8fde93f8574d4F"18446744073709551755  -040000004f38c51bc6309cbae9d96b224e97c01e66955f7cc16336f066e9de861d9eb025ff41b7d07941b45db158a93b57d4e15b52c163524686b9c44366343d471bece0d5888653ffff7f20f2ffffef@253c4b1c49cbcd7ec76575e3c9c84f64f742323d9313aa3643d2798968ffa3e0G"18446744073709551757 +04000000d474853fe9fdf8929c1acf8675b0bb6966c6957fab6e3925ad4732c93824b813901cce25dd6a5cd5e83d289c5f75e7421055c050e7097948fed202a30eac8eb821888653ffff7f2001000000@0239d4385916a99fd920c379391fa023c0341a95fdf29de9c7444d1f0a7e45a2G"18446744073709551757  -04000000e0a3ff688979d24336aa13933d3242f7644fc8c9e37565c77ecdcb491c4b3c25322c01f99923b094307cc7fd111631aa142e6b6379994b48675a2c41f388959d768b8653ffff7f20f2ffffef@28f52b91576b0a49258c3597003cb3d2b963bb00129afd48f32cadf9a0e5506dH"18446744073709551759 +04000000a2457e0a1f4d44c7e99df2fd951a34c023a01f3979c320d99fa9165938d43902a54bbf6c2fed74255f6166c937a8bcae1278e28c0371904cc63a6e61cc233aa8e2898653ffff7f20ffffff1f@55aef9207199baa807577e9dc83e6a4808a4d7a616d224bdb13d4299be12de1fH"18446744073709551759  -040000006d50e5a0f9ad2cf348fd9a1200bb63b9d2b33c0097358c25490a6b57912bf528d7e5c9e1016dd9dc5bbccc9a588c44e14c44560f9ed57921cc5ce6388f4ff999798c8653ffff7f20f2ffffef@2a6d1f18126174c0e707e61998c2a3bab7ce9d6d35bc1e72f1df55ef74a59a66I"18446744073709551761 +040000001fde12be99423db1bd24d216a6d7a408486a3ec89d7e5707a8ba997120f9ae55a64ca387e25fa0c09d5cfc89ed40bb3e72fc0977405d038ae436ab1b3df0243af78a8653ffff7f20ffffff1f@4189f270ee5f0e46491733901b686b34384f7625c55e4c02bf5a90867f47dc9fI"18446744073709551761  -04000000669aa574ef55dff1721ebc356d9dceb7baa3c29819e607e7c0746112181f6d2a9fd9d1fd807330c7d422457fb16fd0d3fd0aaaa0561bef598243c5b0564ab10df08e8653ffff7f20ffffff1f@380460db48c695a24a09efa8ab23c307c145c8f00bbf5798de2c53b8577b210aJ"18446744073709551763 +040000009fdc477f86905abf024c5ec525764f38346b681b90331749460e5fee70f28941da10d93034310b7205c785796eb82c293a9f23372191042b012e669c2042de6e0e8d8653ffff7f20ffffff1f@65c9c6ed61ae5cd90e48b4119e0188e463388c012f3eebfbdad00cc058cccb02J"18446744073709551763  -040000000a217b57b8532cde9857bf0bf0c845c107c323aba8ef094aa295c648db6004386e98b7d6122ec458cdf2a38e3b3a573ccb8a776b77701d6c9e2012d996950e8b93918653ffff7f2001000000@4f28d75f8ddf9cf880cd9bcd5bee9d00b6cf166c3bf77c1fa5d9321359584d13K"18446744073709551765 +0400000002cbcc58c00cd0dafbeb3e2f018c3863e488019e11b4480ed95cae61edc6c9659795a3f40dbb0865f196dd92d3d28bacfa2e1c6b0980fb9bf2fa0ebeb3b7b80c838e8653ffff7f20feffff2f@7d64c1c445d70272eb969e88253a8ce9f2ecef0df4d182c2920d8adf4fc5e887K"18446744073709551765  -04000000134d58591332d9a51f7cf73b6c16cfb6009dee5bcd9bcd80f89cdf8d5fd7284fd960bec8d490cdcd7f1324ded314f6e68ed46b1de05a62541320ac22c3b99a3570938653ffff7f2001000000@3a4656113a1ae127e105755c3c2cba58e92fb929fb85a1b3ddb6db841fee5375L"18446744073709551767 +0400000087e8c54fdf8a0d92c282d1f40defecf2e98c3a25889e96eb7202d745c4c1647d338e7a586667a19329a5e5d187da41ccd8ed848b3ddc6606678e7f4ec4624836be908653ffff7f20f5ffffef@27c022fa376090fcaf9b1f957478986e9bea68fa4ed412812cfb05b1ed06efe1L"18446744073709551767  -040000007553ee1f84dbb6ddb3a185fb29b92fe958ba2c3c5c7505e127e11a3a1156463a8a217aa14a9298c433896e68ad5b67ab0d31bd8fe522d4d440150a111ef4c179d2948653ffff7f20f6ffffef@7bee236566109af4b41ef6e7c424f65bebde0c2afb1fd460d734b137c82a1746M"18446744073709551769 +04000000e1ef06edb105fb2c8112d44efa68ea9b6e987874951f9baffc906037fa22c0270c04f4c296e6de3406d9ea3d243e6fa7f56adf8280da5b43a73e6882338579f7ac928653ffff7f20f2ffffef@41bc4244353a24b0b1398207da48fad96bbadd4a00e58cf05d1d18eaf1ad35feM"18446744073709551769  -0400000046172ac837b134d760d41ffb2a0cdeeb5bf624c4e7f61eb4f49a10666523ee7bac513c657d0865c7afc86cee2876d3d7616f9f7a158c819d29cccf45ab8bc060d1968653ffff7f20f6ffffef@24aac85636c004d34a278a2bbfcdf2934eead4da4fe3506ec41d3f78f48325a5N"18446744073709551771 +04000000fe35adf1ea181d5df08ce5004addba6bd9fa48da078239b1b0243a354442bc4122550f577525f5b48ffa2ac165086b61779273ebedcf46e50fcc63cbab9f4e7906958653ffff7f20f5ffffef@01b2a3d2e5184ef8b3a257e6421d71dd2625ea13518ad00b3d5fe3e7b3c56693N"18446744073709551771  -04000000a52583f4783f1dc46e50e34fdad4ea4e93f2cdbf2b8a274ad304c03656c8aa24722185189949c089e93b923ef0366518f79980d8903f09de7c09e510ba3173bb69998653ffff7f20f2ffffef@46528623b99a8983a93393fab065b9cc7db7ee9698acf082264e035ffc5488a8O"18446744073709551773 +040000009366c5b3e7e35f3d0bd08a5113ea2526dd711d42e657a2b3f84e18e5d2a3b201bba9b09b9e67610255bf1dd0b6338933474a29d10a767b817c11630a565f2ae42a968653ffff7f2003000000@29a711bd9f5491aaabe31763c8f30c57fe0c2275e04923d5d268c12852dcb587O"18446744073709551773  -04000000a88854fc5f034e2682f0ac9896eeb77dccb965b0fa9333a983899ab923865246e53f9c8f6578788a0ffcd5c46f80959b0eb451f7d0dc8a47791aa368fbfa86b5e99b8653ffff7f20f4ffffef@6015007b318b56a00cdbe847a46287f7d84fcf592429011c4b0a60045e92a1fcP"18446744073709551775 +0400000087b5dc5228c168d2d52349e075220cfe570cf3c86317e3abaa91549fbd11a729bb45e7867f24fb62cc317582a0e18ba4bd1cc93b4b609b8e3cce336ebf1b4c1599988653ffff7f20f2ffffef@6025325cff0870183fa44825347cfa255a833140ba4e8a3a2162dd7255518235P"18446744073709551775  -04000000fca1925e04600a4b1c01292459cf4fd8f78762a447e8db0ca0568b317b001560437f819d7e4d88921adc62d5d70625201e97bf9cd2a36239118bb938a47ac6e0b09e8653ffff7f20f3ffffef@3dcedf4cfa32006ceae8ca2f8b106b0fbe6104718b5d75924d1435ebbcafb476Q"18446744073709551777 +040000003582515572dd62213a8a4eba4031835a25fa7c342548a43f187008ff5c3225608468d658655310e910d92a5de171ae7889f0473a5a8351d109b1b8c5f60ee636a59a8653ffff7f20f5ffffef@7ed25af873282b8f01dbe6992a8fc83a2dbdc542b2751f142c23b8049aed97baQ"18446744073709551777  -0400000076b4afbceb35144d92755d8b710461be0f6b108b2fcae8ea6c0032fa4cdfce3df9909c1ced13e55712c642b25263c8ae8d7586a2239c0d28b5fa7e26040116bf1da08653ffff7f20f2ffffef@481fdb10da0d4807f32acf911163a1fa6662c455f9e2950d6dc158dfac041b9eR"18446744073709551779 +04000000ba97ed9a04b8232c141f75b242c5bd2d3ac88f2a99e6db018f2b2873f85ad27eb3c51319224f5f1fdee3abfc185ecc37c4c1239980f9a23d7b6ce919a1188f13b09b8653ffff7f20f3ffffef@74652f222ef1a1e348f565a73c83127f5190574ee39474ea54b631da936affd4R"18446744073709551779  -040000009e1b04acdf58c16d0d95e2f955c46266faa1631191cf2af307480dda10db1f486494a840552b1e703fd9cfc92361911107b1e9af1f3dd7014a3e29d64741c277aca18653ffff7f20f3ffffef@5154c3f62ef63755a073a6138bc2e61b69d860624a0fdf68917c85d987e5bb17S"18446744073709551781 +04000000d4ff6a93da31b654ea7494e34e5790517f12833ca765f548e3a1f12e222f6574bc45daeee03fafa7355dbd5c476d8439cde4995b086e7785e32f38d981ce6047e99d8653ffff7f20f4ffffef@719f0b8b80cf039e7b57f57c31978917c48086ec96cf7e56a885d7984b2a3669S"18446744073709551781  -0400000017bbe587d9857c9168df0f4a6260d8691be6c28b13a673a05537f62ef6c3545150e58d781d158c6f8971a22399ea97ed68f158e7ccf556335762ec8db7ee235e67a48653ffff7f20f3ffffef@5e9e16955ab9a04b25d7bb39b0bd24153c03b7ba80f9877f56993e422ee87b9aT"18446744073709551783 +0400000069362a4b98d785a8567ecf96ec8680c4178997317cf5577b9e03cf808b0b9f71a512ba9040cabea9a4f98e37533bea91130fc196b652e8de1d67ea94e27d4f62079f8653ffff7f20f2ffffef@68807d9ee888089423cfceb2dde8bdf8fdbde2ab613af43e1ff106de051352a2T"18446744073709551783  -040000009a7be82e423e99567f87f980bab7033c1524bdb039bbd7254ba0b95a95169e5e7927c2ca2a01faba9ebc23dbe3dea7e61380d2891af54c075cf0363a55bd53a3d4a58653ffff7f20f3ffffef@0da0adbaac821c082d0f8bde85baf635f32917d819e498aa4c9b87f76e7ca634U"18446744073709551785 +04000000a2521305de06f11f3ef43a61abe2bdfdf8bde8ddb2cecf23940888e89e7d8068fe7dd55d379bf81df21a90181148a9e4a2be4dabce095da5d6d4c2fe1c67292e2ea18653ffff7f20f2ffffef@49ee4f6a715cbdd1f4594ba9955872441e20e8927da976db95d591813cfc6b03U"18446744073709551785  -0400000034a67c6ef7879b4caa98e419d81729f335f6ba85de8b0f2d081c82acbaada00dc8c06a7159d79cc9c795337ddff4f6ae8549c016e684f6491e0070ca09ea97dd38a78653ffff7f20f3ffffef@0fae08b1ad8cb7ff46a8c04ed647101c073fb90d8695e57b5fcdce7d48d1a89aV"18446744073709551787 +04000000036bfc3c8191d595db76a97d92e8201e44725895a94b59f4d1bd5c716a4fee49b83935048de8e06d96c93802576bce0708becb3f6035f8848e3e437fb2703bae1aa38653ffff7f20f2ffffef@50d27cf6f459e5f2b7c6eb6e3e643122e317484a40ea3b44cdb05e853837e1e2V"18446744073709551787  -040000009aa8d1487dcecd5f7be595860db93f071c1047d64ec0a846ffb78cadb108ae0f43f1467e60656d91e8b0e142f0a8a1546297b38d989bb1bebb57a2d9e2e005893da88653ffff7f2001000000@2052025bc391917b11b0bd63f4342df6e4e7736ef15f0b083cc02bbc30445dcfW"18446744073709551789 +04000000e2e13738855eb0cd443bea404a4817e32231643e6eebc6b7f2e559f4f67cd250cb9f18462fbf6d627126151417d75dbdc75c5a376b496f6f3f5962d7e2e229e6bda58653ffff7f2000000010@649084cb8981690a5939628a56df0d54a35be3acee6fa0c58008e83f3d817026W"18446744073709551789  -04000000cf5d4430bc2bc03c080b5ff16e73e7e4f62d34f463bdb0117b9191c35b025220bae10cbfdcedf5b3115b61b940f303d47965d4020a79e3f9fafce6d1e0b198b04fa98653ffff7f2003000000@241e874738eca9e233720e7d937a137c0b6f4ccc250c9b85f0c57267fceb33d3X"18446744073709551791 +040000002670813d3fe80880c5a06feeace35ba3540ddf568a6239590a698189cb84906436afc863c4985fff278f5b666a540298b16ddcc25a521a7f8e439cca8dbba41ae7a78653ffff7f20feffff2f@5be2dd90d9936abaff22e607a5e2912ec331b34830ad6adefa3a1e2b23f93a12X"18446744073709551791  -04000000d333ebfc6772c5f0859b0c25cc4c6f0b7c137a937d0e7233e2a9ec3847871e2463bac0e88e37c49c07ddfc157f4cb2401531ce9c22e559916e2c3d656cac72e458aa8653ffff7f20f2ffffef@114e036c50cba05491a2ad5c0e9146a7a98d4ce85782e66cda9dad2e5ec99383Y"18446744073709551793 +04000000123af9232b1e3afade6aad3048b331c32e91e2a507e622ffba6a93d990dde25b4310cba79e11874aaba7dfdaa08a9840d96775ddf5ca8d54535e59b0c9403ca621a98653ffff7f2000000010@4b39ea90af726e90582adbbc48cd1876e507f567f3797c9ddd9870c30e3826d7Y"18446744073709551793  -040000008393c95e2ead9dda6ce68257e84c8da9a746910e5cada29154a0cb506c034e11f9c3890a04bad3f83f7b53fd24f9fb57a5d06acf142b646b208ff487c48a88a3a3ac8653ffff7f20f4ffffef@3213e37e30774a550bcd02b34f810a39aca2d231a0028dc81c833c53e6191f61Z"18446744073709551795 +04000000d726380ec37098dd9d7c79f367f507e57618cd48bcdb2a58906e72af90ea394bd05e69edb21622046196d896fd78dc701f9fd0435b2668599a3448b3f6abb2ad06ab8653ffff7f20ffffff1f@3859cca526b7f3008e83b638e418d04205ccf80c6ca18a12a9e6a94b68758e27Z"18446744073709551795  -04000000611f19e6533c831cc88d02a031d2a2ac390a814fb302cd0b554a77307ee313327ff4c3883ad87f7714933320753721fc9f2c36f635de833aab1653cc9ea6b8efa2ae8653ffff7f20f4ffffef@77515d15349ba7fb477be0df225aa10aa2da6bd763bd60be749e7616e68a5c5e["18446744073709551797 +04000000278e75684ba9e6a9128aa16c0cf8cc0542d018e438b6838e00f3b726a5cc5938646d83a9f11b0a9b4554d6cc15ef0a4910031531b4b185b6ba9bd7a70fdf44647dac8653ffff7f2003000000@53dbf2544c7d80632e1ac1d634a1819565ba52fa2bbd9011d8cd478bfe6ec26d["18446744073709551797  -040000005e5c8ae616769e74be60bd63d76bdaa20aa15a22dfe07b47fba79b34155d5177644ec66b66501377861eaa252dc53a2fcc242e0f9a37f42b7a7062d9b51178d0b0b08653ffff7f20f5ffffef@38d5f29eb40a88b2268c10ac9e81d71b898493701a08587cf4e48f53323c4fbf\"18446744073709551799 +040000006dc26efe8b47cdd81190bd2bfa52ba659581a134d6c11a2e63807d4c54f2db53a332486ded374186dcfc370cb71c3c3e546a69232a1674eda0fd253a139ec0fc24ae8653ffff7f20f2ffffef@4e50cf1973f1cce967b3eaaa6ceac1b0ff92c6be7bf2f83dc77661815c340588\"18446744073709551799  -04000000bf4f3c32538fe4f47c58081a709384891bd7819eac108c26b2880ab49ef2d5382b299b8828215a4585c40d1608df80715d02e2010e712a2b81ecebb0ce9cac8d20b28653ffff7f20f3ffffef@0d956610fa10849d1bdea8d54568e0fc6f9ff912399243a39d557116e3475154]"18446744073709551801 +040000008805345c816176c73df8f27bbec692ffb0c1ea6caaeab367e9ccf17319cf504e804877e432a685c7e515838d111490dc9308ed4ea843d191fee6c0064f9dff32b8af8653ffff7f20f2ffffef@1b3f58038bb840a6d48d6e5b3b0b5e0f62805c0873539cdb0658ed1e144df674]"18446744073709551801  -04000000545147e31671559da343923912f99f6ffce06845d5a8de1b9d8410fa1066950dcb7fa476b844ee08cc173f57857efd8d3da01d41170b191704b8c254c2bb985b1fb48653ffff7f20f2ffffef@35af71edce8f0b638e87f62813c0e384b903c32664605a4c1b53bfb9fd854007^"18446744073709551803 +0400000074f64d141eed5806db9c5373085c80620f5e0b3b5b6e8dd4a640b88b03583f1b2324f82be93e660e87b5367b1c58d94454eb1da195afe264bbe5fc6fe1f0260f20b28653ffff7f20ffffff1f@71aa2f3eced8195f1daa4728b10c242c083c3bed2653efe42c34b66fc8b36792^"18446744073709551803  -04000000074085fdb9bf531b4c5a606426c303b984e3c01328f6878e630b8fceed71af35cf607991696bc6fcb7b6b92dd2e347d0336f5d2b3e2509dfefeb07df36cf47e485b68653ffff7f20f2ffffef@00e558e89117fc6846aebb2e367a5fde6b10b059c401945b23f69f22f82815da_"18446744073709551805 +040000009267b3c86fb6342ce4ef5326ed3b3c082c240cb12847aa1d5f19d8ce3e2faa71313f49e52b53aae2557823b2a938a01053ef533b9b00867f017d8edac4366937d8b48653ffff7f20f2ffffef@641e1acc0dfce35eedd4429d6ee80a49721aee280c9430252196371c3d2adf0e_"18446744073709551805  -04000000da1528f8229ff6235b9401c459b0106bde5f7a362ebbae4668fc1791e858e50008f775996c0ebe0b9c36933484fc4450356667fa3117ca8c925d8a8aac56bef2f3b88653ffff7f20f8ffffef@6dc0e7ded70882bb7f98b10fd5edb0b3656b6828dd55e507be21d15f27d7ab30`"18446744073709551807 +040000000edf2a3d1c3796212530940c28ee1a72490ae86e9d42d4ed5ee3fc0dcc1a1e6427490aeb8de090af159c3a37e6260692c8884c1afd3fa0dc18325f819b548f8d55b78653ffff7f20f3ffffef@08f7d7486c76925a61d0c8b9228f1dc62d73b646f80ccd378e8a47066ffd0a83`"18446744073709551807  -0400000030abd7275fd121be07e555dd28686b65b3b0edd50fb1987fbb8208d7dee7c06de4ab7c20d52dabe260a515d5ead17da144028a68b9dc3598e0222d60a12b337ab8ba8653ffff7f20f3ffffef@63f51d9f85dd11c60b77c68c668bdd9741db4b6ac05c11f82f68e714ea003890a"18446744073709551809 +04000000830afd6f06478a8e37cd0cf846b6732dc61d8f22b9c8d0615a92766c48d7f7081ad653876fdbc6f1c7a0bffd372866231ee21776f95575deedebaeeced4a634e7eb88653ffff7f20f2ffffef@1eaedbe8d955ceccdd566b1f4228caff92153e54036feb9a1ddea4b6004c5d1ba"18446744073709551809  -04000000903800ea14e7682ff8115cc06a4bdb4197dd8b668cc6770bc611dd859f1df563badad8eb5a0793ac3f089b432ba1f80a5e303de6735554f054f998438a82d74c67bc8653ffff7f20f2ffffef@4208a04b4e158cbb16ce3d5f3185e19a24364dd850c3ae2e851e598509cb09f4b"18446744073709551811 +040000001b5d4c00b6a4de1d9aeb6f03543e1592ffca28421f6b56ddccce55d9e8dbae1e284db9e948d55e5585fe1e4f3b93da337c60a63a8b1f89bcbb5a566d002c370644bb8653ffff7f20f3ffffef@023317f7e95b4ea48eda620961af4e15e805a29038f7f076fcddc1c908dc6082b"18446744073709551811  -04000000f409cb0985591e852eaec350d84d36249ae185315f3dce16bb8c154e4ba00842bee1f83e291ddb52119fabeb8709b94d8f0679c93b2211985a29e12051ea240194bd8653ffff7f20f2ffffef@52d60b4113ce0b6dff84788535bd795c9630892cec3586c035b2f40932cddb30c"18446744073709551813 +040000008260dc08c9c1ddfc76f0f73890a205e8154eaf610962da8ea44e5be9f7173302ddafe7c912237f6e7ef74a2fe3a37eae27939fe7ff2c38f81c552fd92430be4548bc8653ffff7f2000000010@25db2f30ce8a065a2d17fd705deb42bac43083ffabb639848f2e9d8845db4632c"18446744073709551813  -0400000030dbcd3209f4b235c08635ec2c8930965c79bd35857884ff6d0bce13410bd652e643e3fc7999aa5c094e5cfb254e84e79ae3c4c277f8e822b9a0a5471c3e49498ebf8653ffff7f20ffffff1f@1d5dc15919f350b57e392ea9a91bdb615a1e9c58ddbdf9f056f81a6e9db9550ad"18446744073709551815 \ No newline at end of file +040000003246db45889d2e8f8439b6abff8330c4ba42eb5d70fd172d5a068ace302fdb25a8807367102a579966491717b5e059fd24020dd2537d232484e5ba2849cdd063ebbe8653ffff7f20ffffff1f@5510ab2e9d7ad51abab09a9d4c104fa93c7e7f6b459304db28233727f7ad2eefd"18446744073709551815 \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_light_client_fork.dat b/packages/test-utils/testdata/btc_light_client_fork.dat index bcd9c4b1..9c56af25 100644 --- a/packages/test-utils/testdata/btc_light_client_fork.dat +++ b/packages/test-utils/testdata/btc_light_client_fork.dat @@ -1,23 +1,23 @@  -04000000611f19e6533c831cc88d02a031d2a2ac390a814fb302cd0b554a77307ee313325ce63eff3da92119e83a63ec3146e226c07f09afa4520bf3466f1333634d442133af8653ffff7f20f2ffffef@39b574494a8f0c5c095f94d5f49fbe0ee38ca9525cd60d83bc47c7c2c0368639["18446744073709551797 +04000000278e75684ba9e6a9128aa16c0cf8cc0542d018e438b6838e00f3b726a5cc5938b3b2104cd43a59d065b2d06e8eed928163a23279d15bd0d12717cc8fe4b3ab2a8aad8653ffff7f2000000020@0bb8e4d4e628d9e3f1165e2db289f9bb9af86808dc042a0b9e48ee6d61304c62["18446744073709551797  -04000000398636c0c2c747bc830dd65c52a98ce30ebe9ff4d5945f095c0c8f4a4974b53911914a833c7f22451c2e1005fd557f6e1c86735d619374fad2e22657b00ef06968b18653ffff7f20fcffff4f@5fcbab886cd71206eb9289376e9ceac408a5a226d7cc7120b7029d09d28d057d\"18446744073709551799 +04000000624c30616dee489e0b2a04dc0868f89abbf989b22d5e16f1e3d928e6d4e4b80b5caf9fb63dc0c90c470e76c0811d0711b803162f7798b6f195797cd8be9e1382c9ae8653ffff7f20f4ffffef@3d188614499dc65b2ba3046e504849825a0690d6839303c961f4fbec1e10102a\"18446744073709551799  -040000007d058dd2099d02b72071ccd726a2a508c4ea9c6e378992eb0612d76c88abcb5f74c8f0957effa10a86122add1796b3f686378e8c9aabf0b075d0ae86df7d51acf2b38653ffff7f2000000010@365352a7a10f5a7f8c338585fa8e84f5e726bd5fcbf975a51f4483b8bb79ea09]"18446744073709551801 +040000002a10101eecfbf461c9039383d690065a824948506e04a32b5bc69d491486183d342b910725138a2e8dd1a7189cd9f537fb122643955a026f490b4ec54e8f2a5061b08653ffff7f20f2ffffef@1aeb8c124feef785ac9a9862ccf71c199b2594d0845e56411069586bf187db07]"18446744073709551801  -0400000009ea79bbb883441fa575f9cb5fbd26e7f5848efa8585338c7f5a0fa1a75253366ea9e36242cd3b4506fb04fec1d6a6d688314597f0b6978fef3b8d190197a57c24b68653ffff7f20f2ffffef@6956adc0b09b8577737b94830ce4d1c437c5b79151a3a9acb3dcd0a6c52e4fe1^"18446744073709551803 +0400000007db87f16b58691041565e84d094259b191cf7cc62989aac85f7ee4f128ceb1a8b3f7dbc020aec856b005c37d6ac420a1f49857bd089cfdbb65022ebbe7d6d16b3b28653ffff7f20f2ffffef@0fc44cceca098bc30c0424be1133dbb336e25ab017636de22cc0e3ddb62ad140^"18446744073709551803  -04000000e14f2ec5a6d0dcb3aca9a35191b7c537c4d1e40c83947b7377859bb0c0ad5669c3e3b827873363953af67998a7d491a1c1aae746eecf575cca01927dccdf9da2ebb78653ffff7f2002000010@67cf42deb41cbffdb697e208ee56c580e4bfc49cd826615b4e4d7455a17921d9_"18446744073709551805 +0400000040d12ab6dde3c02ce26d6317b05ae236b3db3311be24040cc38b09cace4cc40f8b94c14a89567c6fb8f49e5a09ebd9e4d101a9f24b1632a15135580ff849413a15b58653ffff7f20f2ffffef@3d38e9f9874be5b27f73bcba2fd2974acb5a52c16bdb0656c28b81e820974366_"18446744073709551805  -04000000d92179a155744d4e5b6126d89cc4bfe480c556ee08e297b6fdbf1cb4de42cf67c8ea6462fad26d51fb100f5e76a63d8233015c722b105a31961d6ae77b2bff07b2b98653ffff7f2001000000@5a561bcc6d22959234a477911a939d1de0702982f351445e8ae8453710124c87`"18446744073709551807 +0400000066439720e8818bc25606db6bc1525acb4a97d22fbabc737fb2e54b87f9e9383de0cb58c3b0b36614d4d3f35d2e9eb6864f78bc8cf632e2ca5f5816e94567927e89b68653ffff7f20f2ffffef@3d2f93e77729d0cb209bdbfc40312bee2f7757069fb24439d1f45dba8675a593`"18446744073709551807  -04000000874c12103745e88a5e4451f3822970e01d9d931a9177a4349295226dcc1b565a4a728da07969f14f78cddd9eadeaa27245d3f448621c0dda4718442a8b36966cfebb8653ffff7f2002000020@718d29619a7eb94b44b77774d9f9409a1b044b8c5bba8613d05cbc77ca3b60f7a"18446744073709551809 +0400000093a57586ba5df4d13944b29f0657772fee2b3140fcdb9b20cbd02977e7932f3de2c29787920e33448061b10b13f378ed0fe392d932366289f945c6eaa67abb98dfb78653ffff7f20ffffff2f@79bc8e40e9aac25188d46feb9ba02defe4eb07ab5778d7dcf172f42d978e3739a"18446744073709551809  -04000000f7603bca77bc5cd01386ba5b8c4b041b9a40f9d97477b7444bb97e9a61298d71b109e638363d146d2ea862ad3e685f079575961ffa2785a6ee5378acf988a03433be8653ffff7f2000000010@537d908bd28d39f0bf954470ac3b70ce60d02e3d14cfe2cb721a6862db691517b"18446744073709551811 +0400000039378e972df472f1dcd77857ab07ebe4ef2da09beb6fd48851c2aae9408ebc7923bc6ccdf6f28601640ad11acb8ecfb08849db28fd61ef5231bad6cc5e4ebdfe67b98653ffff7f20f2ffffef@0307ff11774e5f29704953025c351112d1d1f9fdedee67911e5309a6c8b4f624b"18446744073709551811  -04000000171569db62681a72cbe2cf143d2ed060ce703bac704495bff0398dd28b907d53f6eb786de3527610c9a7b3e41e0a990998e5515768778dab234433b7810bfac7f5c08653ffff7f2002000010@4c914afcc14e3c95c3414f8ee17e2c657ecc651024f1fbc17d56bbc66574f40bc"18446744073709551813 +0400000024f6b4c8a609531e9167eeedfdf9d1d11211355c02534970295f4e7711ff07035efabe440f91ac36d5cbaaf9227f79710934372d3c42581d8f40130a199dbe70d0bb8653ffff7f20f4ffffef@60f10cba7ae02f0c4771ff1a098c205d4790abe024a016d47fe4dd87911e04e9c"18446744073709551813  -040000000bf47465c6bb567dc1fbf1241065cc7e652c7ee18e4f41c3953c4ec1fc4a914cafdb452e96ed021d2247f4a205941dc320536885730164e448c0577c90c3bc53b9c38653ffff7f2001000010@009c7b4e3c9065c32497cff257ad822922af6a0cb498e8311a5eac4b653d1ec7d"18446744073709551815 +04000000e9041e9187dde47fd416a024e0ab90475d208c091aff71470c2fe07aba0cf1606a67bebd3ddfe4a090960e199217026a3674fc81b0d7183385a44e9e4b318e7079be8653ffff7f20f2ffffef@1bacf8d6341d162fdc597690a66a774f4a2b1cb230f9428f5d3ee6f02e6ada21d"18446744073709551815  -04000000c71e3d654bac5e1a31e898b40c6aaf222982ad57f2cf9724c365903c4e7b9c00e41dbfbd7cba2d36a5cf97f58624a55bb60fb000e25a0108d958ff43dc93ec3f76c68653ffff7f2001000010@495044c8976c8235a7ae3af20f1cfed661ed55c2da1b97987b185bf3e3b897b7e"18446744073709551817 \ No newline at end of file +0400000021da6a2ef0e63e5d8f42f930b21c2b4a4f776aa6907659dc2f161d34d6f8ac1b395b160b829292a840e3a07954c17fdd236bceb495739073d08dd57aa0538d8b0dc08653ffff7f20ffffff1f@19b3e466b3ba9fd75f56b4ba3403f71e81d503e65f9fa7946c745f1d0ad08492e"18446744073709551817 \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_light_client_fork_msg.json b/packages/test-utils/testdata/btc_light_client_fork_msg.json index 0eab0ba0..df142528 100644 --- a/packages/test-utils/testdata/btc_light_client_fork_msg.json +++ b/packages/test-utils/testdata/btc_light_client_fork_msg.json @@ -1 +1 @@ -{"btc_headers":{"headers":[{"version":4,"prev_blockhash":"3213e37e30774a550bcd02b34f810a39aca2d231a0028dc81c833c53e6191f61","merkle_root":"34316062408e6036c39949cd26d779c05e01acf851f28b85e4eec3ef6e5d176c","time":1401335367,"bits":545259519,"nonce":4026531830},{"version":4,"prev_blockhash":"3d7d5d050aafada290aaa656b41b838497fc326d171ab17a7b8a93acf6bb57be","merkle_root":"9199e8f7572c4fa68faca180d02e575bf15cc8e9e3f68b69f1a32a030056678b","time":1401335772,"bits":545259519,"nonce":4026531829},{"version":4,"prev_blockhash":"5b9c1f0305a2bc8104a2de2dfd5342553276650a40e0fe57f7d03f625ed51625","merkle_root":"7a5ea3eba3f6cf4318ba8f0951d30fe5ca3cab82f23d4e4e5032c7c5180fab08","time":1401336334,"bits":545259519,"nonce":4026531828},{"version":4,"prev_blockhash":"2fed0c7a8fca6e1e5aca8807a145e641819e0b0cd666479a015ec9c21b8e8461","merkle_root":"397f1f0ce388bcba492cd6f26406021403629bb53f9bf3c5f9853c8f62599d06","time":1401336625,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"67bec98b290eeb52de94204b650170a686cf6f97232e298f99864fbc002bd387","merkle_root":"80883622e59daf0f3b25dc224d212caf2573e819622a4fbb1b046ebe119a4c94","time":1401336908,"bits":545259519,"nonce":4026531827},{"version":4,"prev_blockhash":"345265dc0c0cf5b61f3db95167aa4894114159ddf2c8dcb848aff5b720322fe7","merkle_root":"b59b70b3497ca97392c09f81fd717a54d0e4c895f80f224a7cfefe2b5243da9e","time":1401337288,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"1af7600b27e26a0aa7dc8b395fb11edf11e48b5456d1c5ed05f38413958d9178","merkle_root":"f4e81260072bbe031aa90db76a66ae5f15edf890e30318d7035649fbd95a5bdf","time":1401337807,"bits":545259519,"nonce":4026531829},{"version":4,"prev_blockhash":"62927d3afb36ef776c42700bd75a7b32bb95453adc4408422f78ff559020cd20","merkle_root":"9824557b355ebef20ee8a00f063bfc082442c13829c38678db2b65a607ab4410","time":1401338376,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"07180f6ddb7921b05e1f01c474e9e8fcdd975dcfbc5fe3ab0ab5f0d6018a674c","merkle_root":"21c036832f92e4ff60cabe5aa607b76fe777807ba22d3fa4858f98858671b93d","time":1401338694,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"7e4f02f8ea642354c25474e4cda089becd45fcb4c48286497f5a33b1566f631f","merkle_root":"63af2017e790a347751298415a86c95b49f9dbc512460dd6bd31d6ed543b6e96","time":1401339211,"bits":545259519,"nonce":268435456},{"version":4,"prev_blockhash":"200ff3d850a0ca3f4ebbe7494dbac050c6709a22b79cb628e0308a527c6fa424","merkle_root":"525497cb67267bb2a13e24ed8f02fb20f48a67eecdc846523b95827897c01990","time":1401339540,"bits":545259519,"nonce":1073741821}]}} \ No newline at end of file +{"btc_headers":{"headers":[{"version":4,"prev_blockhash":"3859cca526b7f3008e83b638e418d04205ccf80c6ca18a12a9e6a94b68758e27","merkle_root":"08e311cf73f913a8ded214aa72986b95d9d94b8824fd4ce4a66e09d577ce2e6e","time":1401335178,"bits":545259519,"nonce":1},{"version":4,"prev_blockhash":"2aa1c82172b4d77a10d31b0a95bc6bc1f11693eae023921e96a543610757de84","merkle_root":"2a3b19226c4af3a4230658d29505591afbb8b410ad7c60e731ccbb9757b21597","time":1401335607,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"2a0307f5d55693a915e2a599a520164346b90a92a535b0f4bf998e708acb1b7c","merkle_root":"2527c2bcb0c54d5dcbf652d69a03539a3c803d942448255dbddde4780af5de13","time":1401335922,"bits":545259519,"nonce":1},{"version":4,"prev_blockhash":"6502972f6ef20f1f33b36f8ccbc3e5d6b4cba6bd49b013287224701809191282","merkle_root":"072a35262f80c5587797cbf190a3c35aa748a4bc3f322f4d09a216c69c3b6e68","time":1401336222,"bits":545259519,"nonce":4026531827},{"version":4,"prev_blockhash":"73876675fbd611edacb6a526866a211dc4f6a5b6b291449ea6857090634d2905","merkle_root":"3ad84794465c1993e413447535bb05977e4bfee0932bd739fe31da8b8e103e08","time":1401336822,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"56132dc4f88d6264d9c5a1e44102caedd8f07f4b43ab1c56fb0fa389ba2f3348","merkle_root":"f60670f495231451ed31cbeb887676100bcb109a7fff7de089199a8d5b1212de","time":1401337154,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"60327feaf30ba19fe684cff9b71ac5b579e3bf664bd4d4eb1438636a9ffcc28a","merkle_root":"90e7ffe41037b26b8171ac85466e0e89731ef3e54e7a1d07919d757f75b9aaf8","time":1401337488,"bits":545259519,"nonce":536870911},{"version":4,"prev_blockhash":"730a096d860778a7e4abbada6615c943a71d4e76a31ca67a5f5a0a489dd986a8","merkle_root":"5659e58dfc28af7d703cef203d3a8eec452087ff44cd79d56eff4754dda0ff9c","time":1401338184,"bits":545259519,"nonce":1},{"version":4,"prev_blockhash":"0e2ff6b6d98242d7827af707b3b2b88429982bd1e9d218cd6c3f2bd84e3abf33","merkle_root":"13f7dc74b3e025934c6c5e7d968420035cfefc994cb583c6e8ed1587b1fc40d7","time":1401338784,"bits":545259519,"nonce":2},{"version":4,"prev_blockhash":"0bfd468184adb024dec165f29529b1241df19fc7a7e0a90b580bdb91bff1efee","merkle_root":"302fca4e07d15ce17ce5c0e97751b295248d29aafa2c57ce7c89befbc5fc49f6","time":1401339347,"bits":545259519,"nonce":4026531826},{"version":4,"prev_blockhash":"6c7c9fc802e171075576404dd9ea8a0eb5a6e8758eb8120a36cd7f06408c19f8","merkle_root":"a8c019336f13a7e7c1a060d74d00e48cbdaada4b4d00f7a09358eedacfd47a81","time":1401339980,"bits":545259519,"nonce":4026531826}]}} \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_timestamp.dat b/packages/test-utils/testdata/btc_timestamp.dat index 8d21d41e..61420daa 100644 Binary files a/packages/test-utils/testdata/btc_timestamp.dat and b/packages/test-utils/testdata/btc_timestamp.dat differ diff --git a/packages/test-utils/testdata/btc_timestamp_header0.dat b/packages/test-utils/testdata/btc_timestamp_header0.dat index 527b2f2c..39f87a62 100644 Binary files a/packages/test-utils/testdata/btc_timestamp_header0.dat and b/packages/test-utils/testdata/btc_timestamp_header0.dat differ diff --git a/packages/test-utils/testdata/btc_timestamp_header1.dat b/packages/test-utils/testdata/btc_timestamp_header1.dat index 526fd58d..7b4d6b94 100644 --- a/packages/test-utils/testdata/btc_timestamp_header1.dat +++ b/packages/test-utils/testdata/btc_timestamp_header1.dat @@ -1 +1 @@ -{Z߯K7s̠@o*c\J6 ] :0>`AEXZ6>!@QS- \ No newline at end of file +Sb%Ovd&|lEbc*HIrB}MMK5X )ug숂?# / \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_1_{1,3}.dat b/packages/test-utils/testdata/btc_unbonding_sig_1_{1,3}.dat new file mode 100644 index 00000000..d513754c --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_1_{1,3}.dat @@ -0,0 +1,2 @@ +2s -vS2?~PvM Xjĵ[\h=$E~9!b< +-B \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_1_{1}.dat b/packages/test-utils/testdata/btc_unbonding_sig_1_{1}.dat new file mode 100644 index 00000000..c20dd7fa Binary files /dev/null and b/packages/test-utils/testdata/btc_unbonding_sig_1_{1}.dat differ diff --git a/packages/test-utils/testdata/btc_unbonding_sig_1_{2}.dat b/packages/test-utils/testdata/btc_unbonding_sig_1_{2}.dat new file mode 100644 index 00000000..425a01b2 --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_1_{2}.dat @@ -0,0 +1 @@ +:2;f+$Kׅ~P}lt]LKci'&3/񑿔9hP>qu[[ \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_2_{1}.dat b/packages/test-utils/testdata/btc_unbonding_sig_2_{1}.dat new file mode 100644 index 00000000..7f87ba99 --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_2_{1}.dat @@ -0,0 +1,2 @@ + Fԉ@tQOq}χ7$# +¤tu!>/q \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_2_{2}.dat b/packages/test-utils/testdata/btc_unbonding_sig_2_{2}.dat new file mode 100644 index 00000000..f0523237 --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_2_{2}.dat @@ -0,0 +1,2 @@ +&+J#v%e\N4lCA +y*2玽-OW}i2g07u \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_3_{1}.dat b/packages/test-utils/testdata/btc_unbonding_sig_3_{1}.dat new file mode 100644 index 00000000..03d7c307 --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_3_{1}.dat @@ -0,0 +1 @@ +M)y? O7p!'טƪ3Al~D->od>d&8}N/Z2% \ No newline at end of file diff --git a/packages/test-utils/testdata/btc_unbonding_sig_3_{2}.dat b/packages/test-utils/testdata/btc_unbonding_sig_3_{2}.dat new file mode 100644 index 00000000..ba700c9a --- /dev/null +++ b/packages/test-utils/testdata/btc_unbonding_sig_3_{2}.dat @@ -0,0 +1 @@ +yΦ/&<P;zLG@:W/v[З3Y εNa`Pt \ No newline at end of file diff --git a/packages/test-utils/testdata/btcstaking_params.dat b/packages/test-utils/testdata/btcstaking_params.dat index bd0e942e..f79e0331 100644 Binary files a/packages/test-utils/testdata/btcstaking_params.dat and b/packages/test-utils/testdata/btcstaking_params.dat differ diff --git a/packages/test-utils/testdata/commit_pub_rand_msg.dat b/packages/test-utils/testdata/commit_pub_rand_msg.dat index be340032..8491035f 100644 --- a/packages/test-utils/testdata/commit_pub_rand_msg.dat +++ b/packages/test-utils/testdata/commit_pub_rand_msg.dat @@ -1,3 +1,3 @@ -*bbn1jq22yfmz80uqkrusfg6etkvcfp5x5ff6k07p55 G&;I# K33~MHlfd -* C<Owk'C GҡF+,72@ oBP$Гĩ7#ⶹiS^HkֹZ1;ov`.< \ No newline at end of file +*bbn1pv8fwkrmd8f434qkxvsfyvrayc4afzgh4prazy FhaD)TE?dSiȎ?%xGg&d +* i9$kП`[.2AfjgsqMK2@oc]q=s (]'"(H̷J consumer-3 \ No newline at end of file diff --git a/packages/test-utils/testdata/fp_sk_1.dat b/packages/test-utils/testdata/fp_sk_1.dat new file mode 100644 index 00000000..30aa3e72 Binary files /dev/null and b/packages/test-utils/testdata/fp_sk_1.dat differ diff --git a/packages/test-utils/testdata/fp_sk_2.dat b/packages/test-utils/testdata/fp_sk_2.dat new file mode 100644 index 00000000..ce92dfa2 --- /dev/null +++ b/packages/test-utils/testdata/fp_sk_2.dat @@ -0,0 +1 @@ +.dͥ2#lfmz#>k) \ No newline at end of file diff --git a/packages/test-utils/testdata/fp_sk_3.dat b/packages/test-utils/testdata/fp_sk_3.dat new file mode 100644 index 00000000..b178f67d --- /dev/null +++ b/packages/test-utils/testdata/fp_sk_3.dat @@ -0,0 +1 @@ +ud2@Ŕ D[%Q \ No newline at end of file diff --git a/packages/test-utils/testdata/pub_rand_value.dat b/packages/test-utils/testdata/pub_rand_value.dat index 3a2601e8..8e844e84 100644 --- a/packages/test-utils/testdata/pub_rand_value.dat +++ b/packages/test-utils/testdata/pub_rand_value.dat @@ -1 +1 @@ -m=6$I%rib;!5>^[a \ No newline at end of file +ݤab_],/2B \ No newline at end of file diff --git a/packages/test-utils/testdata/raw_ckpt.dat b/packages/test-utils/testdata/raw_ckpt.dat index bfcdc357..9ed114ac 100644 Binary files a/packages/test-utils/testdata/raw_ckpt.dat and b/packages/test-utils/testdata/raw_ckpt.dat differ