diff --git a/components/zcash_protocol/src/consensus.rs b/components/zcash_protocol/src/consensus.rs index 0ad1d04e11..802918bc9a 100644 --- a/components/zcash_protocol/src/consensus.rs +++ b/components/zcash_protocol/src/consensus.rs @@ -506,6 +506,8 @@ const UPGRADES_IN_ORDER: &[NetworkUpgrade] = &[ NetworkUpgrade::Canopy, NetworkUpgrade::Nu5, NetworkUpgrade::Nu6, + #[cfg(zcash_unstable = "zfuture")] + NetworkUpgrade::ZFuture, ]; /// The "grace period" defined in [ZIP 212]. diff --git a/devtools/src/bin/inspect/transaction.rs b/devtools/src/bin/inspect/transaction.rs index 3521430765..ec33fde53c 100644 --- a/devtools/src/bin/inspect/transaction.rs +++ b/devtools/src/bin/inspect/transaction.rs @@ -31,7 +31,7 @@ use crate::{ GROTH16_PARAMS, ORCHARD_VK, }; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] use zcash_primitives::transaction::components::tze; pub fn is_coinbase(tx: &Transaction) -> bool { @@ -148,7 +148,7 @@ impl Authorization for PrecomputedAuth { type SaplingAuth = sapling::bundle::Authorized; type OrchardAuth = orchard::bundle::Authorized; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] type TzeAuth = tze::Authorized; } @@ -211,7 +211,7 @@ pub(crate) fn inspect( f_transparent, (), (), - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] (), ); let txid_parts = tx.digest(TxIdDigester); diff --git a/zcash_client_sqlite/src/wallet.rs b/zcash_client_sqlite/src/wallet.rs index 9e5584375f..a84c58847a 100644 --- a/zcash_client_sqlite/src/wallet.rs +++ b/zcash_client_sqlite/src/wallet.rs @@ -1399,6 +1399,10 @@ pub(crate) fn get_transaction( tx_data.sprout_bundle().cloned(), tx_data.sapling_bundle().cloned(), tx_data.orchard_bundle().cloned(), + #[cfg(zcash_unstable = "zsf")] + tx_data.zsf_deposit(), + #[cfg(zcash_unstable = "tze")] + tx_data.tze_bundle().cloned(), ) .freeze() .map(|t| (expiry_height, t)) diff --git a/zcash_client_sqlite/src/wallet/init.rs b/zcash_client_sqlite/src/wallet/init.rs index 9832a04ef1..06b937bd65 100644 --- a/zcash_client_sqlite/src/wallet/init.rs +++ b/zcash_client_sqlite/src/wallet/init.rs @@ -736,6 +736,10 @@ mod tests { None, None, None, + #[cfg(zcash_unstable = "zsf")] + None, + #[cfg(zcash_unstable = "tze")] + None, ) .freeze() .unwrap(); diff --git a/zcash_extensions/src/lib.rs b/zcash_extensions/src/lib.rs index 5dc0c812cc..087369b314 100644 --- a/zcash_extensions/src/lib.rs +++ b/zcash_extensions/src/lib.rs @@ -6,7 +6,7 @@ // For workspace compilation reasons, we have this crate in the workspace and just leave // it empty if `zfuture` is not enabled. -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] pub mod consensus; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] pub mod transparent; diff --git a/zcash_extensions/src/transparent/demo.rs b/zcash_extensions/src/transparent/demo.rs index 597bda6a5b..aff097863c 100644 --- a/zcash_extensions/src/transparent/demo.rs +++ b/zcash_extensions/src/transparent/demo.rs @@ -672,7 +672,7 @@ mod tests { precondition: tze::Precondition::from(0, &Precondition::open(hash_1)), }; - let tx_a = TransactionData::from_parts_zfuture( + let tx_a = TransactionData::from_parts( TxVersion::ZFuture, BranchId::ZFuture, 0, @@ -681,6 +681,8 @@ mod tests { None, None, None, + #[cfg(zcash_unstable = "zsf")] + None, Some(Bundle { vin: vec![], vout: vec![out_a], @@ -703,7 +705,7 @@ mod tests { precondition: tze::Precondition::from(0, &Precondition::close(hash_2)), }; - let tx_b = TransactionData::from_parts_zfuture( + let tx_b = TransactionData::from_parts( TxVersion::ZFuture, BranchId::ZFuture, 0, @@ -712,6 +714,8 @@ mod tests { None, None, None, + #[cfg(zcash_unstable = "zsf")] + None, Some(Bundle { vin: vec![in_b], vout: vec![out_b], @@ -730,7 +734,7 @@ mod tests { witness: tze::Witness::from(0, &Witness::close(preimage_2)), }; - let tx_c = TransactionData::from_parts_zfuture( + let tx_c = TransactionData::from_parts( TxVersion::ZFuture, BranchId::ZFuture, 0, diff --git a/zcash_primitives/src/transaction/builder.rs b/zcash_primitives/src/transaction/builder.rs index b40655dc55..3ec2d9cd3f 100644 --- a/zcash_primitives/src/transaction/builder.rs +++ b/zcash_primitives/src/transaction/builder.rs @@ -32,6 +32,9 @@ use crate::{ }, }; +#[cfg(zcash_unstable = "zsf")] +use zcash_protocol::value::ZatBalance; + #[cfg(feature = "transparent-inputs")] use crate::transaction::components::transparent::builder::TransparentInputInfo; @@ -287,6 +290,8 @@ pub struct Builder<'a, P, U: sapling::builder::ProverProgress> { // derivatives for proving and signing to complete transaction creation. sapling_asks: Vec, orchard_saks: Vec, + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: Option, #[cfg(zcash_unstable = "zfuture")] tze_builder: TzeBuilder<'a, TransactionData>, #[cfg(not(zcash_unstable = "zfuture"))] @@ -372,6 +377,8 @@ impl<'a, P: consensus::Parameters> Builder<'a, P, ()> { orchard_builder, sapling_asks: vec![], orchard_saks: Vec::new(), + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: None, #[cfg(zcash_unstable = "zfuture")] tze_builder: TzeBuilder::empty(), #[cfg(not(zcash_unstable = "zfuture"))] @@ -400,6 +407,8 @@ impl<'a, P: consensus::Parameters> Builder<'a, P, ()> { orchard_builder: self.orchard_builder, sapling_asks: self.sapling_asks, orchard_saks: self.orchard_saks, + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: self.zsf_deposit, tze_builder: self.tze_builder, progress_notifier, } @@ -524,6 +533,11 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< .map_err(|_| BalanceError::Overflow) }, )?, + #[cfg(zcash_unstable = "zsf")] + -self + .zsf_deposit + .map(Into::into) + .unwrap_or(ZatBalance::zero()), #[cfg(zcash_unstable = "zfuture")] self.tze_builder.value_balance()?, ]; @@ -631,6 +645,11 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< .map_err(FeeError::FeeRule) } + #[cfg(zcash_unstable = "zsf")] + pub fn set_zsf_deposit(&mut self, deposit: Option) { + self.zsf_deposit = deposit; + } + /// Builds a transaction from the configured spends and outputs. /// /// Upon success, returns a tuple containing the final transaction, and the @@ -743,7 +762,7 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< None => (None, orchard::builder::BundleMetadata::empty()), }; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] let (tze_bundle, tze_signers) = self.tze_builder.build(); let unauthed_tx: TransactionData = TransactionData { @@ -755,7 +774,9 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< sprout_bundle: None, sapling_bundle, orchard_bundle, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: self.zsf_deposit, + #[cfg(zcash_unstable = "tze")] tze_bundle, }; @@ -773,7 +794,7 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< ) }); - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] let tze_bundle = unauthed_tx .tze_bundle .clone() @@ -823,7 +844,9 @@ impl<'a, P: consensus::Parameters, U: sapling::builder::ProverProgress> Builder< sprout_bundle: unauthed_tx.sprout_bundle, sapling_bundle, orchard_bundle, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: self.zsf_deposit, + #[cfg(zcash_unstable = "tze")] tze_bundle, }; @@ -978,6 +1001,8 @@ mod tests { expiry_height: sapling_activation_height + DEFAULT_TX_EXPIRY_DELTA, transparent_builder: TransparentBuilder::empty(), sapling_builder: None, + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: None, #[cfg(zcash_unstable = "zfuture")] tze_builder: TzeBuilder::empty(), #[cfg(not(zcash_unstable = "zfuture"))] @@ -1139,6 +1164,24 @@ mod tests { ); } + // Fail if there is only a ZSF deposit + // 0.0005 ZSF deposit out, 0.0001 t-ZEC fee + #[cfg(zcash_unstable = "zsf")] + { + let build_config = BuildConfig::Standard { + sapling_anchor: Some(sapling::Anchor::empty_tree()), + orchard_anchor: Some(orchard::Anchor::empty_tree()), + }; + let mut builder = Builder::new(TEST_NETWORK, tx_height, build_config); + builder.set_zsf_deposit(Some(NonNegativeAmount::const_from_u64(50000))); + + assert_matches!( + builder.mock_build(OsRng), + Err(Error::InsufficientFunds(expected)) if expected == + (NonNegativeAmount::const_from_u64(50000) + MINIMUM_FEE).unwrap().into() + ); + } + let note1 = to.create_note( sapling::value::NoteValue::from_raw(59999), Rseed::BeforeZip212(jubjub::Fr::random(&mut rng)), @@ -1179,6 +1222,40 @@ mod tests { ); } + // Fail if there is insufficient input + // 0.0003 z-ZEC out, 0.0002 t-ZEC out, 0.0001 ZSF deposit out, 0.0001 t-ZEC fee, 0.00059999 z-ZEC in + #[cfg(zcash_unstable = "zsf")] + { + let build_config = BuildConfig::Standard { + sapling_anchor: Some(witness1.root().into()), + orchard_anchor: Some(orchard::Anchor::empty_tree()), + }; + let mut builder = Builder::new(TEST_NETWORK, tx_height, build_config); + builder + .add_sapling_spend::(&extsk, note1.clone(), witness1.path().unwrap()) + .unwrap(); + builder + .add_sapling_output::( + ovk, + to, + NonNegativeAmount::const_from_u64(30000), + MemoBytes::empty(), + ) + .unwrap(); + builder + .add_transparent_output( + &TransparentAddress::PublicKeyHash([0; 20]), + NonNegativeAmount::const_from_u64(10000), + ) + .unwrap(); + #[cfg(zcash_unstable = "zsf")] + builder.set_zsf_deposit(Some(NonNegativeAmount::const_from_u64(10000))); + assert_matches!( + builder.mock_build(OsRng), + Err(Error::InsufficientFunds(expected)) if expected == Amount::const_from_i64(1) + ); + } + let note2 = to.create_note( sapling::value::NoteValue::from_raw(1), Rseed::BeforeZip212(jubjub::Fr::random(&mut rng)), @@ -1221,5 +1298,47 @@ mod tests { Ok(res) if res.transaction().fee_paid(|_| Err(BalanceError::Overflow)).unwrap() == Amount::const_from_i64(10_000) ); } + + // Succeeds if there is sufficient input + // 0.0003 z-ZEC out, 0.0002 t-ZEC out, 0.0001 t-ZEC fee, 0.0006 z-ZEC in + #[cfg(zcash_unstable = "zsf")] + { + let note1 = to.create_note( + sapling::value::NoteValue::from_raw(70000), + Rseed::BeforeZip212(jubjub::Fr::random(&mut rng)), + ); + let cmu1 = Node::from_cmu(¬e1.cmu()); + let mut tree = CommitmentTree::::empty(); + tree.append(cmu1).unwrap(); + let witness1 = IncrementalWitness::from_tree(tree.clone()); + + let build_config = BuildConfig::Standard { + sapling_anchor: Some(witness1.root().into()), + orchard_anchor: Some(orchard::Anchor::empty_tree()), + }; + let mut builder = Builder::new(TEST_NETWORK, tx_height, build_config); + builder + .add_sapling_spend::(&extsk, note1, witness1.path().unwrap()) + .unwrap(); + builder + .add_sapling_output::( + ovk, + to, + NonNegativeAmount::const_from_u64(30000), + MemoBytes::empty(), + ) + .unwrap(); + builder + .add_transparent_output( + &TransparentAddress::PublicKeyHash([0; 20]), + NonNegativeAmount::const_from_u64(20000), + ) + .unwrap(); + builder.set_zsf_deposit(Some(NonNegativeAmount::const_from_u64(10000))); + assert_matches!( + builder.mock_build(OsRng), + Ok(res) if res.transaction().fee_paid(|_| Err(BalanceError::Overflow)).unwrap() == Amount::const_from_i64(10_000) + ); + } } } diff --git a/zcash_primitives/src/transaction/mod.rs b/zcash_primitives/src/transaction/mod.rs index adf1dffdf1..c8ef035e0a 100644 --- a/zcash_primitives/src/transaction/mod.rs +++ b/zcash_primitives/src/transaction/mod.rs @@ -38,7 +38,10 @@ use self::{ util::sha256d::{HashReader, HashWriter}, }; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "zsf")] +use {components::amount::NonNegativeAmount, zcash_protocol::value::ZatBalance}; + +#[cfg(zcash_unstable = "tze")] use self::components::tze::{self, TzeIn, TzeOut}; const OVERWINTER_VERSION_GROUP_ID: u32 = 0x03C48270; @@ -56,9 +59,9 @@ const V5_VERSION_GROUP_ID: u32 = 0x26A7270A; /// should be removed as appropriate in favor of the new consensus /// transaction version and group. #[cfg(zcash_unstable = "zfuture")] -const ZFUTURE_VERSION_GROUP_ID: u32 = 0xFFFFFFFF; +pub const ZFUTURE_VERSION_GROUP_ID: u32 = 0xFFFFFFFF; #[cfg(zcash_unstable = "zfuture")] -const ZFUTURE_TX_VERSION: u32 = 0x0000FFFF; +pub const ZFUTURE_TX_VERSION: u32 = 0x0000FFFF; /// The identifier for a Zcash transaction. /// @@ -263,7 +266,7 @@ pub trait Authorization { type SaplingAuth: sapling::bundle::Authorization; type OrchardAuth: orchard::bundle::Authorization; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] type TzeAuth: tze::Authorization; } @@ -276,7 +279,7 @@ impl Authorization for Authorized { type SaplingAuth = sapling::bundle::Authorized; type OrchardAuth = orchard::bundle::Authorized; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] type TzeAuth = tze::Authorized; } @@ -293,7 +296,7 @@ impl Authorization for Unauthorized { type OrchardAuth = orchard::builder::InProgress; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] type TzeAuth = tze::builder::Unauthorized; } @@ -329,7 +332,9 @@ pub struct TransactionData { sprout_bundle: Option, sapling_bundle: Option>, orchard_bundle: Option>, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: Option, + #[cfg(zcash_unstable = "tze")] tze_bundle: Option>, } @@ -345,6 +350,8 @@ impl TransactionData { sprout_bundle: Option, sapling_bundle: Option>, orchard_bundle: Option>, + #[cfg(zcash_unstable = "zsf")] zsf_deposit: Option, + #[cfg(zcash_unstable = "tze")] tze_bundle: Option>, ) -> Self { TransactionData { version, @@ -355,36 +362,10 @@ impl TransactionData { sprout_bundle, sapling_bundle, orchard_bundle, - #[cfg(zcash_unstable = "zfuture")] - tze_bundle: None, - } - } - - /// Constructs a `TransactionData` from its constituent parts, including speculative - /// future parts that are not in the current Zcash consensus rules. - #[cfg(zcash_unstable = "zfuture")] - #[allow(clippy::too_many_arguments)] - pub fn from_parts_zfuture( - version: TxVersion, - consensus_branch_id: BranchId, - lock_time: u32, - expiry_height: BlockHeight, - transparent_bundle: Option>, - sprout_bundle: Option, - sapling_bundle: Option>, - orchard_bundle: Option>, - tze_bundle: Option>, - ) -> Self { - TransactionData { - version, - consensus_branch_id, - lock_time, - expiry_height, - transparent_bundle, - sprout_bundle, - sapling_bundle, - orchard_bundle, + #[cfg(zcash_unstable = "tze")] tze_bundle, + #[cfg(zcash_unstable = "zsf")] + zsf_deposit, } } @@ -422,7 +403,12 @@ impl TransactionData { self.orchard_bundle.as_ref() } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + pub fn zsf_deposit(&self) -> Option { + self.zsf_deposit + } + + #[cfg(zcash_unstable = "tze")] pub fn tze_bundle(&self) -> Option<&tze::Bundle> { self.tze_bundle.as_ref() } @@ -449,6 +435,11 @@ impl TransactionData { self.orchard_bundle .as_ref() .map_or_else(Amount::zero, |b| *b.value_balance()), + #[cfg(zcash_unstable = "zsf")] + -self + .zsf_deposit + .map(Into::into) + .unwrap_or(ZatBalance::zero()), ]; value_balances @@ -468,7 +459,9 @@ impl TransactionData { digester.digest_transparent(self.transparent_bundle.as_ref()), digester.digest_sapling(self.sapling_bundle.as_ref()), digester.digest_orchard(self.orchard_bundle.as_ref()), - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + digester.digest_zsf(self.zsf_deposit.as_ref()), + #[cfg(zcash_unstable = "tze")] digester.digest_tze(self.tze_bundle.as_ref()), ) } @@ -488,10 +481,9 @@ impl TransactionData { f_orchard: impl FnOnce( Option>, ) -> Option>, - #[cfg(zcash_unstable = "zfuture")] f_tze: impl FnOnce( + #[cfg(zcash_unstable = "tze")] f_tze: impl FnOnce( Option>, - ) - -> Option>, + ) -> Option>, ) -> TransactionData { TransactionData { version: self.version, @@ -502,7 +494,9 @@ impl TransactionData { sprout_bundle: self.sprout_bundle, sapling_bundle: f_sapling(self.sapling_bundle), orchard_bundle: f_orchard(self.orchard_bundle), - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: self.zsf_deposit, + #[cfg(zcash_unstable = "tze")] tze_bundle: f_tze(self.tze_bundle), } } @@ -512,7 +506,7 @@ impl TransactionData { f_transparent: impl transparent::MapAuth, mut f_sapling: impl sapling_serialization::MapAuth, mut f_orchard: impl orchard_serialization::MapAuth, - #[cfg(zcash_unstable = "zfuture")] f_tze: impl tze::MapAuth, + #[cfg(zcash_unstable = "tze")] f_tze: impl tze::MapAuth, ) -> TransactionData { TransactionData { version: self.version, @@ -539,7 +533,9 @@ impl TransactionData { |f, a| f.map_authorization(a), ) }), - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: self.zsf_deposit, + #[cfg(zcash_unstable = "tze")] tze_bundle: self.tze_bundle.map(|b| b.map_authorization(f_tze)), } } @@ -608,9 +604,9 @@ impl Transaction { TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => { Self::read_v4(reader, version, consensus_branch_id) } - TxVersion::Zip225 => Self::read_v5(reader.into_base_reader(), version), + TxVersion::Zip225 => Self::read_v5(&mut reader.into_base_reader(), version), #[cfg(zcash_unstable = "zfuture")] - TxVersion::ZFuture => Self::read_v5(reader.into_base_reader(), version), + TxVersion::ZFuture => Self::read_v5(&mut reader.into_base_reader(), version), } } @@ -685,7 +681,9 @@ impl Transaction { ) }), orchard_bundle: None, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit: None, + #[cfg(zcash_unstable = "tze")] tze_bundle: None, }, }) @@ -721,13 +719,16 @@ impl Transaction { let sapling_bundle = sapling_serialization::read_v5_bundle(&mut reader)?; let orchard_bundle = orchard_serialization::read_v5_bundle(&mut reader)?; - #[cfg(zcash_unstable = "zfuture")] - let tze_bundle = if version.has_tze() { - Self::read_tze(&mut reader)? + #[cfg(zcash_unstable = "zsf")] + let zsf_deposit = if version == TxVersion::ZFuture { + Some(Self::read_zsf_deposit(&mut reader)?) } else { None }; + #[cfg(zcash_unstable = "tze")] + let tze_bundle = Self::read_tze(&mut reader)?; + let data = TransactionData { version, consensus_branch_id, @@ -737,7 +738,9 @@ impl Transaction { sprout_bundle: None, sapling_bundle, orchard_bundle, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit, + #[cfg(zcash_unstable = "tze")] tze_bundle, }; @@ -765,7 +768,14 @@ impl Transaction { sapling_serialization::read_v5_bundle(reader) } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + fn read_zsf_deposit(mut reader: R) -> io::Result { + NonNegativeAmount::from_u64(reader.read_u64::()?) + .map_err(|_| io::Error::new(io::ErrorKind::InvalidData, "zsfDeposit out of range")) + .map(Into::into) + } + + #[cfg(zcash_unstable = "tze")] fn read_tze(mut reader: &mut R) -> io::Result>> { let vin = Vector::read(&mut reader, TzeIn::read)?; let vout = Vector::read(&mut reader, TzeOut::read)?; @@ -855,7 +865,13 @@ impl Transaction { self.write_transparent(&mut writer)?; self.write_v5_sapling(&mut writer)?; orchard_serialization::write_v5_bundle(self.orchard_bundle.as_ref(), &mut writer)?; - #[cfg(zcash_unstable = "zfuture")] + + #[cfg(zcash_unstable = "zsf")] + if let Some(zsf_deposit) = self.zsf_deposit { + writer.write_u64::(zsf_deposit.into())?; + } + + #[cfg(zcash_unstable = "tze")] self.write_tze(&mut writer)?; Ok(()) } @@ -880,7 +896,7 @@ impl Transaction { sapling_serialization::write_v5_bundle(writer, self.sapling_bundle.as_ref()) } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] pub fn write_tze(&self, mut writer: W) -> io::Result<()> { if let Some(bundle) = &self.tze_bundle { Vector::write(&mut writer, &bundle.vin, |w, e| e.write(w))?; @@ -919,7 +935,9 @@ pub struct TxDigests { pub transparent_digests: Option>, pub sapling_digest: Option, pub orchard_digest: Option, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + pub zsf_deposit_digest: Option, + #[cfg(zcash_unstable = "tze")] pub tze_digests: Option>, } @@ -929,7 +947,10 @@ pub trait TransactionDigest { type SaplingDigest; type OrchardDigest; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + type ZsfDepositDigest; + + #[cfg(zcash_unstable = "tze")] type TzeDigest; type Digest; @@ -957,7 +978,10 @@ pub trait TransactionDigest { orchard_bundle: Option<&orchard::Bundle>, ) -> Self::OrchardDigest; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + fn digest_zsf(&self, zsf_deposit: Option<&NonNegativeAmount>) -> Self::ZsfDepositDigest; + + #[cfg(zcash_unstable = "tze")] fn digest_tze(&self, tze_bundle: Option<&tze::Bundle>) -> Self::TzeDigest; fn combine( @@ -966,7 +990,8 @@ pub trait TransactionDigest { transparent_digest: Self::TransparentDigest, sapling_digest: Self::SaplingDigest, orchard_digest: Self::OrchardDigest, - #[cfg(zcash_unstable = "zfuture")] tze_digest: Self::TzeDigest, + #[cfg(zcash_unstable = "zsf")] zsf_digest: Self::ZsfDepositDigest, + #[cfg(zcash_unstable = "tze")] tze_digest: Self::TzeDigest, ) -> Self::Digest; } @@ -982,14 +1007,16 @@ pub mod testing { use super::{ components::{ - orchard::testing::{self as orchard}, - sapling::testing::{self as sapling}, - transparent::testing::{self as transparent}, + orchard::testing as orchard, sapling::testing as sapling, + transparent::testing as transparent, }, Authorized, Transaction, TransactionData, TxId, TxVersion, }; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + use {super::components::amount::NonNegativeAmount, zcash_protocol::value::MAX_MONEY}; + + #[cfg(zcash_unstable = "tze")] use super::components::tze::testing::{self as tze}; pub fn arb_txid() -> impl Strategy { @@ -1010,7 +1037,7 @@ pub mod testing { } } - #[cfg(not(zcash_unstable = "zfuture"))] + #[cfg(all(not(zcash_unstable = "zsf"), not(zcash_unstable = "tze")))] prop_compose! { pub fn arb_txdata(consensus_branch_id: BranchId)( version in arb_tx_version(consensus_branch_id), @@ -1035,7 +1062,61 @@ pub mod testing { } } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(all(zcash_unstable = "zsf", not(zcash_unstable = "tze")))] + prop_compose! { + pub fn arb_txdata(consensus_branch_id: BranchId)( + version in arb_tx_version(consensus_branch_id) + )( + lock_time in any::(), + expiry_height in any::(), + transparent_bundle in transparent::arb_bundle(), + sapling_bundle in sapling::arb_bundle_for_version(version), + orchard_bundle in orchard::arb_bundle_for_version(version), + version in Just(version), + zsf_deposit in 0..MAX_MONEY, + ) -> TransactionData { + TransactionData { + version, + consensus_branch_id, + lock_time, + expiry_height: expiry_height.into(), + transparent_bundle, + sprout_bundle: None, + sapling_bundle, + orchard_bundle, + zsf_deposit: Some(NonNegativeAmount::from_u64(zsf_deposit).unwrap()), + } + } + } + + #[cfg(all(not(zcash_unstable = "zsf"), zcash_unstable = "tze"))] + prop_compose! { + pub fn arb_txdata(consensus_branch_id: BranchId)( + version in arb_tx_version(consensus_branch_id), + )( + lock_time in any::(), + expiry_height in any::(), + transparent_bundle in transparent::arb_bundle(), + sapling_bundle in sapling::arb_bundle_for_version(version), + orchard_bundle in orchard::arb_bundle_for_version(version), + tze_bundle in tze::arb_bundle(consensus_branch_id), + version in Just(version) + ) -> TransactionData { + TransactionData { + version, + consensus_branch_id, + lock_time, + expiry_height: expiry_height.into(), + transparent_bundle, + sprout_bundle: None, + sapling_bundle, + orchard_bundle, + tze_bundle + } + } + } + + #[cfg(all(zcash_unstable = "zsf", zcash_unstable = "tze"))] prop_compose! { pub fn arb_txdata(consensus_branch_id: BranchId)( version in arb_tx_version(consensus_branch_id), @@ -1046,6 +1127,7 @@ pub mod testing { sapling_bundle in sapling::arb_bundle_for_version(version), orchard_bundle in orchard::arb_bundle_for_version(version), tze_bundle in tze::arb_bundle(consensus_branch_id), + zsf_deposit in 0..MAX_MONEY, version in Just(version) ) -> TransactionData { TransactionData { @@ -1057,6 +1139,7 @@ pub mod testing { sprout_bundle: None, sapling_bundle, orchard_bundle, + zsf_deposit: Some(NonNegativeAmount::from_u64(zsf_deposit).unwrap()), tze_bundle } } diff --git a/zcash_primitives/src/transaction/sighash_v5.rs b/zcash_primitives/src/transaction/sighash_v5.rs index 60b02b8b75..64a1b128de 100644 --- a/zcash_primitives/src/transaction/sighash_v5.rs +++ b/zcash_primitives/src/transaction/sighash_v5.rs @@ -16,7 +16,7 @@ use crate::transaction::{ Authorization, TransactionData, TransparentDigests, TxDigests, }; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] use { crate::transaction::{components::tze, TzeDigests}, byteorder::WriteBytesExt, @@ -27,7 +27,7 @@ const ZCASH_TRANSPARENT_INPUT_HASH_PERSONALIZATION: &[u8; 16] = b"Zcash___TxInHa const ZCASH_TRANSPARENT_AMOUNTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxTrAmountsHash"; const ZCASH_TRANSPARENT_SCRIPTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxTrScriptsHash"; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] const ZCASH_TZE_INPUT_HASH_PERSONALIZATION: &[u8; 16] = b"Zcash__TzeInHash"; fn hasher(personal: &[u8; 16]) -> State { @@ -138,7 +138,7 @@ fn transparent_sig_digest( } } -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] fn tze_input_sigdigests( bundle: &tze::Bundle, input: &SignableInput<'_>, @@ -195,7 +195,9 @@ pub fn v5_signature_hash< ), txid_parts.sapling_digest, txid_parts.orchard_digest, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + txid_parts.zsf_deposit_digest, + #[cfg(zcash_unstable = "tze")] tx.tze_bundle .as_ref() .zip(txid_parts.tze_digests.as_ref()) diff --git a/zcash_primitives/src/transaction/tests.rs b/zcash_primitives/src/transaction/tests.rs index 6aa63b29c8..448f24cb74 100644 --- a/zcash_primitives/src/transaction/tests.rs +++ b/zcash_primitives/src/transaction/tests.rs @@ -9,10 +9,7 @@ use crate::{ use super::{ sapling, - sighash::{ - SignableInput, TransparentAuthorizingContext, SIGHASH_ALL, SIGHASH_ANYONECANPAY, - SIGHASH_NONE, SIGHASH_SINGLE, - }, + sighash::{SignableInput, TransparentAuthorizingContext}, sighash_v4::v4_signature_hash, sighash_v5::v5_signature_hash, testing::arb_tx, @@ -21,8 +18,10 @@ use super::{ Authorization, Transaction, TransactionData, TxDigests, TxIn, }; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] use super::components::tze; +#[cfg(not(zcash_unstable = "tze"))] +use super::sighash::{SIGHASH_ALL, SIGHASH_ANYONECANPAY, SIGHASH_NONE, SIGHASH_SINGLE}; #[test] fn tx_read_write() { @@ -44,7 +43,7 @@ fn check_roundtrip(tx: Transaction) -> Result<(), TestCaseError> { let txo = Transaction::read(&txn_bytes[..], tx.consensus_branch_id).unwrap(); prop_assert_eq!(tx.version, txo.version); - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] prop_assert_eq!(tx.tze_bundle.as_ref(), txo.tze_bundle.as_ref()); prop_assert_eq!(tx.lock_time, txo.lock_time); prop_assert_eq!( @@ -202,10 +201,11 @@ impl Authorization for TestUnauthorized { type SaplingAuth = sapling::bundle::Authorized; type OrchardAuth = orchard::bundle::Authorized; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "tze")] type TzeAuth = tze::Authorized; } +#[cfg(not(zcash_unstable = "tze"))] #[test] fn zip_0244() { fn to_test_txdata( @@ -252,7 +252,6 @@ fn zip_0244() { }, }); - #[cfg(not(zcash_unstable = "zfuture"))] let tdata = TransactionData::from_parts( txdata.version(), txdata.consensus_branch_id(), @@ -262,17 +261,9 @@ fn zip_0244() { txdata.sprout_bundle().cloned(), txdata.sapling_bundle().cloned(), txdata.orchard_bundle().cloned(), - ); - #[cfg(zcash_unstable = "zfuture")] - let tdata = TransactionData::from_parts_zfuture( - txdata.version(), - txdata.consensus_branch_id(), - txdata.lock_time(), - txdata.expiry_height(), - test_bundle, - txdata.sprout_bundle().cloned(), - txdata.sapling_bundle().cloned(), - txdata.orchard_bundle().cloned(), + #[cfg(zcash_unstable = "zsf")] + txdata.zsf_deposit, + #[cfg(zcash_unstable = "tze")] txdata.tze_bundle().cloned(), ); (tdata, txdata.digest(TxIdDigester)) @@ -356,3 +347,77 @@ fn zip_0244() { ); } } + +#[cfg(all(zcash_unstable = "zsf", not(zcash_unstable = "tze")))] +#[test] +fn zip_zsf() { + fn to_test_txdata( + tv: &self::data::zip_zsf::TestVector, + ) -> (TransactionData, TxDigests) { + let tx = Transaction::read(&tv.tx[..], BranchId::ZFuture).unwrap(); + + assert_eq!(tx.txid.as_ref(), &tv.txid); + assert_eq!(tx.auth_commitment().as_ref(), &tv.auth_digest); + + let txdata = tx.deref(); + + let input_amounts = tv + .amounts + .iter() + .map(|amount| NonNegativeAmount::from_nonnegative_i64(*amount).unwrap()) + .collect(); + let input_scriptpubkeys = tv + .script_pubkeys + .iter() + .map(|s| Script(s.clone())) + .collect(); + + let test_bundle = txdata + .transparent_bundle + .as_ref() + .map(|b| transparent::Bundle { + // we have to do this map/clone to make the types line up, since the + // Authorization::ScriptSig type is bound to transparent::Authorized, and we need + // it to be bound to TestTransparentAuth. + vin: b + .vin + .iter() + .map(|vin| TxIn { + prevout: vin.prevout.clone(), + script_sig: vin.script_sig.clone(), + sequence: vin.sequence, + }) + .collect(), + vout: b.vout.clone(), + authorization: TestTransparentAuth { + input_amounts, + input_scriptpubkeys, + }, + }); + + let tdata = TransactionData::from_parts( + txdata.version(), + txdata.consensus_branch_id(), + txdata.lock_time(), + txdata.expiry_height(), + test_bundle, + txdata.sprout_bundle().cloned(), + txdata.sapling_bundle().cloned(), + txdata.orchard_bundle().cloned(), + txdata.zsf_deposit, + #[cfg(zcash_unstable = "tze")] + None, + ); + + (tdata, txdata.digest(TxIdDigester)) + } + + for tv in self::data::zip_zsf::make_test_vectors() { + let (txdata, txid_parts) = to_test_txdata(&tv); + + assert_eq!( + v5_signature_hash(&txdata, &SignableInput::Shielded, &txid_parts).as_ref(), + tv.sighash_shielded + ); + } +} diff --git a/zcash_primitives/src/transaction/tests/data.rs b/zcash_primitives/src/transaction/tests/data.rs index 5b73779fea..aa8e754829 100644 --- a/zcash_primitives/src/transaction/tests/data.rs +++ b/zcash_primitives/src/transaction/tests/data.rs @@ -5685,6 +5685,7 @@ pub mod zip_0243 { } } +#[cfg(not(zcash_unstable = "tze"))] pub mod zip_0244 { pub struct TestVector { pub tx: Vec, @@ -7373,3 +7374,2203 @@ pub mod zip_0244 { ] } } + +#[cfg(all(zcash_unstable = "zsf", not(zcash_unstable = "tze")))] +pub mod zip_zsf { + pub struct TestVector { + pub tx: Vec, + pub txid: [u8; 32], + pub auth_digest: [u8; 32], + pub amounts: Vec, + pub zsf_deposit: u64, + pub script_pubkeys: Vec>, + pub transparent_input: Option, + pub sighash_shielded: [u8; 32], + pub sighash_all: Option<[u8; 32]>, + pub sighash_none: Option<[u8; 32]>, + pub sighash_single: Option<[u8; 32]>, + pub sighash_all_anyone: Option<[u8; 32]>, + pub sighash_none_anyone: Option<[u8; 32]>, + pub sighash_single_anyone: Option<[u8; 32]>, + } + + // From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/zip_zsf.py + pub fn make_test_vectors() -> Vec { + vec![ + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, + 0xa2, 0x13, 0x90, 0xc8, 0x36, 0xe4, 0x0e, 0x03, 0x89, 0x80, 0x1f, 0x68, 0x57, + 0x17, 0xae, 0xf8, 0xf1, 0x88, 0xb7, 0x51, 0x21, 0x07, 0x79, 0x72, 0xf1, 0x8f, + 0x21, 0xbd, 0x21, 0x88, 0xb2, 0x7c, 0x6d, 0x54, 0xec, 0x21, 0xbb, 0x62, 0x2d, + 0x45, 0xd5, 0x78, 0x9e, 0xcb, 0x04, 0x63, 0x63, 0x6a, 0x00, 0x7e, 0x3e, 0xce, + 0x7a, 0x11, 0x21, 0xb4, 0xa9, 0xfa, 0xa1, 0x8f, 0x08, 0x8b, 0xce, 0x5d, 0xc7, + 0xbc, 0xc8, 0x97, 0x1b, 0xc0, 0x0e, 0xde, 0x98, 0x44, 0x3c, 0x64, 0x5f, 0xb1, + 0x8c, 0x0c, 0x89, 0x4d, 0xc6, 0x22, 0xdd, 0xd9, 0x05, 0xea, 0x16, 0x06, 0x51, + 0xac, 0x65, 0x51, 0xac, 0x52, 0x64, 0x82, 0xa5, 0xed, 0x29, 0x94, 0x99, 0x52, + 0x34, 0x0c, 0x1a, 0x56, 0xf1, 0x00, 0x1e, 0x4c, 0x94, 0x3c, 0xf8, 0x74, 0x04, + 0xbc, 0x7f, 0xe4, 0xcc, 0xf7, 0x9e, 0x60, 0x2a, 0x1e, 0x43, 0x7c, 0x7d, 0xe4, + 0x28, 0xef, 0x11, 0xaf, 0x54, 0xa2, 0x06, 0xac, 0xac, 0x52, 0x6a, 0x63, 0x00, + 0x96, 0x37, 0x6c, 0x1c, 0x00, 0x02, 0x77, 0xbe, 0xa7, 0xa4, 0x2f, 0xe7, 0xa4, + 0xf9, 0x96, 0xee, 0x42, 0x03, 0x69, 0x8f, 0x43, 0x3e, 0x71, 0x4b, 0x73, 0x70, + 0xfe, 0xe7, 0xc6, 0xff, 0x27, 0x58, 0x02, 0x20, 0x60, 0x5b, 0xb3, 0xa9, 0x9c, + 0x70, 0xe4, 0x1c, 0xbb, 0xf3, 0x4a, 0x9b, 0x01, 0x25, 0x87, 0x74, 0x2a, 0xba, + 0x90, 0xf2, 0x00, 0xbc, 0x6b, 0x0d, 0x17, 0x1a, 0x10, 0x10, 0x5d, 0x9c, 0x37, + 0x07, 0xb3, 0x71, 0x3f, 0x51, 0xc1, 0x39, 0x51, 0x2a, 0x4d, 0x76, 0x93, 0x07, + 0x4d, 0x29, 0x5b, 0xa7, 0x3d, 0x36, 0x06, 0x67, 0xcf, 0xf0, 0x2d, 0x59, 0x8d, + 0x82, 0x8b, 0x2c, 0x8e, 0x2f, 0x36, 0x52, 0x9d, 0xbf, 0xaa, 0x0b, 0xd1, 0x83, + 0x55, 0xab, 0xc7, 0x57, 0x94, 0x85, 0xf6, 0xa8, 0xb9, 0xd3, 0xff, 0x08, 0xaf, + 0xe3, 0x68, 0x91, 0x15, 0x54, 0x9b, 0xcb, 0x06, 0x8c, 0x3e, 0x33, 0x09, 0x64, + 0x5e, 0x9f, 0x35, 0xd9, 0xa0, 0xec, 0xf5, 0x4a, 0x04, 0xd4, 0x08, 0x60, 0xa7, + 0xaf, 0x91, 0x9d, 0xbd, 0xa1, 0xb1, 0x60, 0x9d, 0xa9, 0x41, 0x6e, 0x6a, 0x7f, + 0x4e, 0x73, 0x69, 0xb5, 0xea, 0x9e, 0x12, 0x5c, 0xd7, 0x5f, 0xbd, 0x30, 0x5d, + 0xf7, 0xa7, 0xa6, 0x49, 0xaf, 0x5e, 0xed, 0xe7, 0xa0, 0x28, 0x73, 0x7a, 0x98, + 0x71, 0x38, 0x40, 0xe9, 0xb2, 0x87, 0x0b, 0xb8, 0x62, 0x22, 0x58, 0x93, 0xf0, + 0x74, 0x33, 0x63, 0x02, 0x58, 0xe5, 0x88, 0x12, 0xbb, 0x72, 0xbc, 0x72, 0x2d, + 0xf0, 0x55, 0xff, 0xb5, 0x73, 0x97, 0x3f, 0x21, 0x67, 0x6d, 0xb5, 0xc5, 0x72, + 0x92, 0xcd, 0x9d, 0xf0, 0xb9, 0x7a, 0xd6, 0x4a, 0xc8, 0xd7, 0x1f, 0x19, 0x78, + 0xd3, 0x43, 0x10, 0x53, 0x3d, 0x49, 0x50, 0x50, 0xa0, 0xa4, 0x96, 0xcd, 0xc6, + 0x82, 0xc7, 0x7a, 0x6f, 0x4f, 0x54, 0xed, 0x8d, 0x30, 0xa5, 0xc0, 0xf0, 0x81, + 0x2f, 0x59, 0x4c, 0x57, 0x27, 0x15, 0x1d, 0x58, 0x18, 0x6d, 0x83, 0x7c, 0x1d, + 0xdb, 0xa4, 0x19, 0x4a, 0x5f, 0x8f, 0x00, 0x50, 0x66, 0x86, 0xc8, 0xda, 0xc8, + 0x91, 0x4b, 0xf9, 0x8a, 0xc4, 0x37, 0xef, 0x31, 0x87, 0x8a, 0x02, 0xa9, 0x1b, + 0x29, 0xd5, 0xe7, 0xac, 0x77, 0x1f, 0xf1, 0x77, 0xed, 0xc3, 0xeb, 0x03, 0x71, + 0x75, 0x38, 0x5e, 0x31, 0xfe, 0xa1, 0x20, 0xce, 0x01, 0xa9, 0xc1, 0xe6, 0x6d, + 0xf4, 0x63, 0x36, 0xc7, 0x82, 0x14, 0x5b, 0xa5, 0xab, 0xbd, 0x6b, 0x77, 0xb4, + 0x98, 0xb7, 0x4e, 0xe2, 0x7c, 0xc9, 0x63, 0x68, 0xab, 0xe9, 0x45, 0x00, 0x03, + 0xe2, 0x4d, 0x16, 0x00, 0x99, 0xda, 0x82, 0xfc, 0x70, 0xea, 0x52, 0xe4, 0x40, + 0x6a, 0x3a, 0xac, 0x2e, 0x4f, 0x4e, 0x12, 0x7b, 0x98, 0x9e, 0xef, 0xf6, 0xe3, + 0x26, 0xd4, 0xca, 0xec, 0x8f, 0x99, 0xbf, 0xdf, 0xf7, 0x5c, 0x6e, 0x35, 0xa0, + 0x43, 0x76, 0xbf, 0x7b, 0x3b, 0x1d, 0x42, 0x5c, 0x2a, 0x0a, 0x03, 0x5d, 0x8d, + 0x76, 0xdd, 0xdb, 0x32, 0xca, 0xec, 0xef, 0x33, 0x30, 0xc9, 0xaf, 0xb4, 0x35, + 0xca, 0x6c, 0xd4, 0xa8, 0xcc, 0x46, 0xe7, 0xa8, 0x67, 0x1e, 0xd3, 0xf8, 0xbc, + 0x18, 0x9a, 0xed, 0x66, 0x50, 0x6e, 0xac, 0x21, 0x33, 0x1d, 0xc5, 0x24, 0x94, + 0x83, 0x72, 0xca, 0x46, 0x90, 0xf1, 0x9e, 0x4e, 0xb5, 0x27, 0x87, 0xdb, 0x96, + 0xee, 0xb4, 0x14, 0x66, 0x8e, 0x15, 0xb1, 0xf4, 0xe9, 0xda, 0x0d, 0x80, 0xb4, + 0xd3, 0x8f, 0xa4, 0x7a, 0x2e, 0xe9, 0xef, 0xaf, 0x2a, 0x73, 0x12, 0xb2, 0x33, + 0x81, 0x6e, 0xa5, 0x48, 0xde, 0xf5, 0xab, 0x51, 0xf4, 0x7c, 0xf6, 0xb1, 0xc2, + 0xe9, 0x08, 0x35, 0x78, 0x82, 0x07, 0xb4, 0x6c, 0x47, 0x00, 0xf0, 0xff, 0xed, + 0x87, 0xe5, 0x55, 0xe8, 0xd0, 0x21, 0x33, 0x32, 0x84, 0x77, 0x88, 0x85, 0xb9, + 0x4a, 0x87, 0x87, 0x03, 0xa6, 0xd8, 0x50, 0x13, 0xc0, 0x68, 0xf8, 0xb1, 0x0e, + 0xd0, 0xc3, 0x86, 0x2a, 0xc4, 0x9e, 0x96, 0xa1, 0x6c, 0x27, 0xaa, 0x2f, 0x44, + 0xac, 0x32, 0x52, 0xf2, 0x93, 0xd0, 0x77, 0x34, 0x98, 0x1a, 0x1b, 0xd0, 0xf5, + 0x9f, 0x18, 0xcc, 0x4b, 0x5e, 0xde, 0x83, 0x9c, 0x80, 0x13, 0x4c, 0x9c, 0xe8, + 0xf1, 0x43, 0x29, 0x76, 0xfd, 0x66, 0x90, 0x72, 0x11, 0xd7, 0x9c, 0xa2, 0x4c, + 0xa7, 0xf7, 0xf9, 0xf3, 0x51, 0xfb, 0xf4, 0xff, 0x72, 0x6b, 0xd1, 0x16, 0xcd, + 0xb6, 0x7b, 0x50, 0xcc, 0x5c, 0xd8, 0x4c, 0x92, 0x7a, 0x7f, 0x9d, 0x5d, 0x54, + 0x7a, 0x64, 0xde, 0x8d, 0x42, 0xb0, 0xce, 0x49, 0xbb, 0x8f, 0x1a, 0x70, 0xe6, + 0x6c, 0x03, 0xd1, 0x28, 0x68, 0x88, 0x0d, 0x27, 0xb7, 0x1a, 0xef, 0xcc, 0x85, + 0x4c, 0x3e, 0xdc, 0x07, 0x46, 0x48, 0xbc, 0x61, 0x2b, 0xc2, 0x64, 0x36, 0xf8, + 0x38, 0x03, 0x3a, 0x61, 0x81, 0xfb, 0xb5, 0x6a, 0x30, 0xaa, 0xfb, 0xed, 0x05, + 0x15, 0xb8, 0xe5, 0x1e, 0x45, 0xeb, 0xa7, 0xc6, 0xcb, 0xa2, 0x50, 0x2a, 0x04, + 0xe3, 0xfb, 0xd2, 0xe3, 0x79, 0xa8, 0x45, 0x2a, 0xc3, 0x8d, 0x03, 0xfa, 0x03, + 0xa3, 0x7d, 0xf2, 0x5a, 0x64, 0xc4, 0x72, 0xd2, 0x57, 0x7f, 0xa9, 0x8a, 0xc7, + 0x5f, 0xfd, 0x8b, 0x1e, 0x05, 0x32, 0x79, 0x96, 0x01, 0xc4, 0xec, 0x0d, 0x15, + 0x54, 0x30, 0x22, 0xd3, 0x7a, 0xcb, 0x3a, 0x2f, 0x76, 0xec, 0x09, 0xca, 0xc3, + 0x1e, 0x02, 0xa2, 0xbd, 0xc9, 0x87, 0x6a, 0xad, 0xdf, 0xe0, 0x4b, 0x6f, 0x85, + 0x00, 0x42, 0x64, 0x1c, 0x39, 0xc9, 0xa2, 0xac, 0xd1, 0x24, 0x19, 0x21, 0xe4, + 0xab, 0xf9, 0xea, 0x72, 0x42, 0x59, 0xb5, 0x0e, 0x6b, 0xfe, 0xbb, 0x55, 0x59, + 0x63, 0x92, 0x30, 0x76, 0x09, 0x73, 0x72, 0xce, 0x72, 0x51, 0xf1, 0xef, 0x5d, + 0x88, 0x5a, 0x2b, 0xe2, 0x7a, 0x2f, 0x6b, 0x48, 0xe8, 0x0c, 0xa9, 0xa4, 0x75, + 0x93, 0x8f, 0xe1, 0x17, 0xe2, 0x90, 0xc5, 0x3c, 0xd2, 0xaf, 0x38, 0x90, 0x9f, + 0x79, 0xb4, 0x58, 0x24, 0x23, 0x10, 0x40, 0x03, 0x7e, 0x29, 0xca, 0x93, 0xb2, + 0x34, 0xf0, 0x94, 0x99, 0xff, 0xa3, 0x00, 0x94, 0x9b, 0x7f, 0xf8, 0x6d, 0x6c, + 0x8b, 0xbf, 0x16, 0x9e, 0x73, 0xc8, 0xb2, 0x3f, 0x15, 0x8f, 0xcf, 0x37, 0x47, + 0x6c, 0xb0, 0x0f, 0xf0, 0x56, 0xe9, 0x02, 0x0c, 0x23, 0x93, 0x67, 0xe1, 0x6d, + 0x6c, 0x19, 0xbd, 0x59, 0x20, 0xf9, 0xd8, 0x4f, 0xc8, 0x79, 0xee, 0xdf, 0x8d, + 0x30, 0x69, 0xfd, 0xf9, 0xe5, 0xf0, 0xb2, 0x1b, 0x59, 0xa3, 0x97, 0xa8, 0x1f, + 0xe4, 0xab, 0xf8, 0x5b, 0x69, 0x02, 0xb7, 0xe2, 0x1d, 0x37, 0x5d, 0x3f, 0x1e, + 0x96, 0x84, 0x14, 0xd3, 0xc5, 0x51, 0x1c, 0x6b, 0xe0, 0x9c, 0x3a, 0x73, 0x6e, + 0x4f, 0x39, 0xc2, 0xa1, 0x38, 0xb6, 0x97, 0xd3, 0x03, 0x9b, 0xd6, 0xa3, 0x6c, + 0x7b, 0xdd, 0x35, 0x24, 0xf1, 0xe7, 0xa1, 0x81, 0xa3, 0x9e, 0x46, 0x07, 0x5d, + 0xdd, 0x0d, 0x9c, 0x87, 0xdf, 0xbe, 0x75, 0x2d, 0x0a, 0x47, 0x66, 0x6d, 0x9e, + 0x41, 0x36, 0x45, 0x93, 0x2e, 0x45, 0x32, 0x80, 0x68, 0xe7, 0x3c, 0x40, 0x03, + 0x64, 0x51, 0x13, 0xba, 0xd1, 0xe8, 0xa1, 0x99, 0x3e, 0x6f, 0xe0, 0xfc, 0xf2, + 0x8a, 0x3a, 0xf1, 0x81, 0x35, 0x60, 0x45, 0xec, 0x22, 0xb6, 0x08, 0x55, 0xd8, + 0x28, 0x3f, 0x33, 0xe0, 0x53, 0xf8, 0x61, 0x42, 0x53, 0x7a, 0x03, 0x3d, 0x27, + 0x28, 0xda, 0x55, 0x4d, 0x7c, 0xaa, 0xc9, 0xe8, 0x09, 0x60, 0x44, 0x46, 0x28, + 0xc9, 0x6c, 0xbd, 0xbd, 0x54, 0x7a, 0x32, 0x15, 0x77, 0x25, 0x64, 0xf1, 0x53, + 0x37, 0xbb, 0x77, 0x54, 0x63, 0x5b, 0x3e, 0x06, 0x8b, 0xf6, 0x4a, 0xa8, 0x73, + 0x8d, 0xad, 0xfc, 0x4d, 0xe0, 0xb0, 0xe2, 0x0d, 0x68, 0x40, 0x13, 0x94, 0xc7, + 0x8b, 0xe4, 0xe2, 0x6d, 0x42, 0xc5, 0x81, 0x57, 0xcd, 0x89, 0xf4, 0x6b, 0xb7, + 0x6f, 0xac, 0x66, 0x49, 0xd5, 0x27, 0x97, 0xb6, 0x4a, 0xf9, 0x05, 0xd6, 0x93, + 0xac, 0x18, 0x37, 0xdd, 0x87, 0xb1, 0xc1, 0x29, 0x33, 0xe4, 0x4b, 0xe8, 0x16, + 0xe4, 0xe0, 0xa5, 0xd3, 0xc9, 0x09, 0x0e, 0x7b, 0xbd, 0xcf, 0x9f, 0x90, 0x85, + 0x45, 0x1d, 0x64, 0x1d, 0xac, 0x9e, 0x99, 0x1d, 0xa1, 0x56, 0x34, 0x83, 0x42, + 0x89, 0x48, 0x27, 0x8e, 0x00, 0x5e, 0x2e, 0xc9, 0xc1, 0x50, 0x69, 0x94, 0xa2, + 0x13, 0xd6, 0x63, 0x65, 0x64, 0x8f, 0x43, 0x3b, 0x25, 0x55, 0x1c, 0xb0, 0xc3, + 0xa9, 0x64, 0x64, 0x5b, 0xe7, 0xe8, 0xf8, 0x36, 0x5b, 0x64, 0x87, 0x71, 0xcd, + 0xbd, 0xec, 0x00, 0xc9, 0x9d, 0x26, 0x4f, 0x3d, 0x42, 0x0d, 0x5e, 0xe7, 0x96, + 0xbd, 0x9c, 0x1e, 0x55, 0x01, 0x38, 0x45, 0x7f, 0x84, 0x48, 0x84, 0x9c, 0x9a, + 0x72, 0x70, 0x2c, 0x7f, 0xf5, 0xbb, 0x10, 0xc7, 0x18, 0xdd, 0x3f, 0x50, 0x89, + 0x16, 0x30, 0x8e, 0x05, 0x05, 0xe8, 0xce, 0xd2, 0x34, 0x89, 0x9c, 0x99, 0x8b, + 0x12, 0x13, 0x4b, 0x49, 0x96, 0xe3, 0xc1, 0xf4, 0x84, 0x77, 0xef, 0x3c, 0x03, + 0x34, 0x9b, 0x8f, 0xef, 0xb0, 0xd9, 0xfb, 0xc0, 0x68, 0xa9, 0x17, 0x0b, 0x69, + 0x0f, 0x2b, 0x4e, 0x3c, 0xef, 0xb7, 0x29, 0xb4, 0xcf, 0x41, 0xa5, 0xcc, 0x14, + 0x65, 0x11, 0x30, 0x60, 0xec, 0xb9, 0x2f, 0x80, 0x32, 0x31, 0xed, 0x21, 0x45, + 0x7c, 0xc1, 0x04, 0xcd, 0xa4, 0x6e, 0xe1, 0x2a, 0xf2, 0xff, 0xee, 0x1e, 0x55, + 0xb4, 0x15, 0x9b, 0x4c, 0xe7, 0x29, 0x95, 0x5e, 0x86, 0xd1, 0x18, 0xae, 0x07, + 0x46, 0xc3, 0x71, 0x32, 0x03, 0x19, 0xc1, 0x32, 0x74, 0x9b, 0x69, 0xd5, 0x81, + 0xbb, 0x91, 0x0f, 0xbe, 0x5d, 0x30, 0x21, 0xf0, 0x0c, 0x14, 0x19, 0xa5, 0xc3, + 0xe1, 0xf1, 0x4e, 0x2e, 0x0c, 0xa8, 0xd0, 0xcb, 0x2b, 0x6b, 0x79, 0xd4, 0x6e, + 0x8e, 0x2a, 0xdf, 0x94, 0xf2, 0xa3, 0xa1, 0x67, 0x57, 0x87, 0x34, 0xa0, 0x28, + 0x1a, 0xef, 0xf2, 0xf6, 0x89, 0x1a, 0xf3, 0xeb, 0x72, 0xf5, 0x6b, 0x1c, 0x2c, + 0xfc, 0x6b, 0x80, 0x12, 0x61, 0x97, 0xdb, 0x35, 0x35, 0xcb, 0x00, 0xb2, 0x72, + 0x64, 0xdc, 0x8b, 0x0c, 0xfe, 0x20, 0x0a, 0xaa, 0xf2, 0xf3, 0xfa, 0x12, 0xd5, + 0xc6, 0xfe, 0x11, 0xd7, 0x2f, 0x19, 0x12, 0x31, 0x58, 0xf7, 0xc8, 0xc5, 0x11, + 0x2d, 0x3c, 0xd4, 0x96, 0x29, 0xd9, 0xdb, 0x87, 0x90, 0x2c, 0xa6, 0xf9, 0xfe, + 0x06, 0xf1, 0x0d, 0x51, 0xf6, 0x83, 0x67, 0x78, 0x81, 0x2c, 0xc0, 0x3c, 0x54, + 0x4a, 0xb1, 0x25, 0xb6, 0xda, 0xd1, 0x56, 0xde, 0xf9, 0xad, 0xff, 0xc4, 0xa3, + 0x52, 0x71, 0x9b, 0x2b, 0x9b, 0xcd, 0xec, 0x51, 0x67, 0x59, 0x28, 0x86, 0x95, + 0xb7, 0x1a, 0x91, 0xcd, 0x37, 0xf9, 0x5c, 0xfd, 0x49, 0x73, 0x4d, 0x53, 0xf5, + 0x1b, 0xd9, 0xfd, 0xd9, 0xda, 0xba, 0xe9, 0xd4, 0x7c, 0x51, 0x91, 0x88, 0x2c, + 0x1a, 0xba, 0x05, 0x11, 0x88, 0x48, 0x43, 0x35, 0x1e, 0x15, 0x37, 0x16, 0x2a, + 0x45, 0x54, 0xd4, 0x39, 0x64, 0xe1, 0x66, 0xeb, 0x76, 0x08, 0xb4, 0x7a, 0xbc, + 0x61, 0xea, 0xbb, 0xda, 0x5c, 0xd1, 0x69, 0xc3, 0x59, 0x40, 0x4a, 0x52, 0x74, + 0x8f, 0xb2, 0xd9, 0x5c, 0xf9, 0x26, 0x6a, 0x7a, 0x0e, 0xef, 0x13, 0x0d, 0xfc, + 0x41, 0xb6, 0x31, 0x3c, 0x49, 0x80, 0x22, 0x28, 0x14, 0xd6, 0xb6, 0xc6, 0xf1, + 0x71, 0x1a, 0x22, 0x4f, 0xc1, 0x3a, 0x0b, 0xc5, 0xba, 0xfc, 0xa0, 0x1c, 0x71, + 0xd9, 0xc4, 0xf4, 0x2a, 0xfd, 0x3f, 0xa4, 0x27, 0x7d, 0x85, 0xee, 0x38, 0x2d, + 0x30, 0xb0, 0x43, 0xf5, 0xdd, 0x10, 0x86, 0x24, 0x59, 0xf0, 0x82, 0x32, 0xcd, + 0xd5, 0xb7, 0x68, 0xfd, 0xf2, 0x12, 0x60, 0x97, 0xa4, 0x48, 0x00, 0x8e, 0xe4, + 0x7a, 0xb5, 0x89, 0x2f, 0x3d, 0xd3, 0x2d, 0xe3, 0x99, 0x74, 0x7a, 0xf5, 0xc7, + 0xd5, 0xdd, 0x97, 0xeb, 0xf7, 0x47, 0x8f, 0x30, 0xaf, 0xfb, 0xd6, 0x04, 0x44, + 0x8a, 0x9f, 0x52, 0xa9, 0xc1, 0x22, 0xd6, 0x48, 0x76, 0x23, 0x3f, 0x74, 0x4a, + 0x05, 0xe3, 0x42, 0x51, 0xd1, 0x7f, 0x82, 0x96, 0xee, 0x52, 0x27, 0x51, 0x57, + 0xba, 0xe7, 0x6e, 0x29, 0xfe, 0x01, 0x15, 0xb2, 0x7b, 0x9e, 0x59, 0x3b, 0xb5, + 0xd8, 0xb5, 0x77, 0x94, 0xa3, 0x32, 0x78, 0xf6, 0xb3, 0x3d, 0x66, 0x17, 0xee, + 0x7f, 0x11, 0x73, 0x8e, 0x84, 0x8b, 0x1f, 0xb4, 0x2a, 0xa2, 0x74, 0x9c, 0x12, + 0x0e, 0x04, 0x5d, 0x51, 0x35, 0x82, 0xdd, 0x29, 0x61, 0x0f, 0x39, 0x81, 0x2d, + 0x15, 0x01, 0x6e, 0x1e, 0x44, 0xa9, 0x3b, 0x9b, 0x59, 0x29, 0x43, 0x82, 0xde, + 0xf7, 0xcf, 0xc6, 0xc9, 0x0a, 0xe8, 0x9c, 0x54, 0xba, 0x84, 0x0a, 0x87, 0xc8, + 0xfe, 0x04, 0x00, 0x52, 0xa6, 0x69, 0xbf, 0x8d, 0xed, 0x0d, 0x90, 0x90, 0x90, + 0xab, 0x48, 0xa3, 0xdf, 0x92, 0xbc, 0x39, 0x9e, 0x7f, 0x35, 0x8a, 0xa9, 0xb5, + 0x5c, 0x93, 0x37, 0x56, 0x85, 0xb1, 0xc8, 0x7e, 0x4e, 0xba, 0x2a, 0x25, 0x92, + 0x1c, 0x93, 0x3c, 0x41, 0x10, 0x06, 0x4b, 0xe8, 0xf3, 0xf5, 0x28, 0x76, 0xe0, + 0x15, 0xa5, 0x27, 0x73, 0xd0, 0xbd, 0x4b, 0x40, 0xe3, 0x08, 0x23, 0xcf, 0xf5, + 0x59, 0xd5, 0x42, 0xb7, 0x58, 0x0c, 0x8c, 0x23, 0x5e, 0xcc, 0x42, 0xbd, 0x8b, + 0xb1, 0x39, 0x40, 0x2e, 0x7e, 0x82, 0xb5, 0x8a, 0x61, 0xf2, 0x98, 0x0c, 0x3e, + 0x32, 0xbd, 0xff, 0xac, 0x46, 0x80, 0x01, 0xa6, 0x70, 0x83, 0x00, 0xeb, 0x20, + 0x97, 0x52, 0xbc, 0x95, 0xbe, 0x47, 0xb8, 0xbf, 0x2c, 0x0d, 0xc1, 0x8e, 0x2c, + 0x9e, 0x9f, 0x7c, 0x25, 0x99, 0x86, 0xca, 0xf6, 0x6c, 0xd9, 0xc6, 0xba, 0x58, + 0x5d, 0x05, 0x8f, 0x8d, 0x04, 0xea, 0xd6, 0xd9, 0xfb, 0xc5, 0xee, 0xe7, 0xf3, + 0x40, 0x24, 0x18, 0xe4, 0xbd, 0x9d, 0x41, 0xf2, 0x39, 0x28, 0xc3, 0x6f, 0x64, + 0x9a, 0x28, 0xe2, 0xa9, 0x44, 0xaf, 0x0f, 0x10, 0xb7, 0xa9, 0xa2, 0x05, 0xa1, + 0x51, 0xd6, 0xaa, 0x39, 0xf0, 0xf8, 0x70, 0x80, 0x75, 0xff, 0x53, 0x0d, 0x42, + 0x48, 0x29, 0x64, 0x83, 0xa7, 0xee, 0x04, 0xe7, 0xad, 0x6b, 0x27, 0x9b, 0x84, + 0x83, 0x9c, 0xd8, 0x4a, 0xa6, 0xb0, 0x94, 0xdc, 0x18, 0x39, 0xf5, 0x00, 0xc3, + 0x6d, 0x50, 0x03, 0x31, 0xed, 0xa7, 0xf7, 0xc2, 0x2f, 0xbf, 0xe3, 0xfe, 0x67, + 0x13, 0x1c, 0xf5, 0xa5, 0x72, 0xf1, 0x11, 0x19, 0xa6, 0xa8, 0xd8, 0x5f, 0x2c, + 0x54, 0x36, 0xbf, 0x83, 0x5f, 0xf6, 0x67, 0x09, 0x45, 0x4d, 0xc0, 0x37, 0x19, + 0x79, 0x0e, 0xa3, 0xba, 0x72, 0x40, 0x71, 0x8e, 0x36, 0x49, 0x94, 0xde, 0x0a, + 0x93, 0x98, 0xdb, 0x7f, 0x94, 0xa7, 0xcc, 0x24, 0x25, 0x78, 0x9b, 0x1d, 0x16, + 0x53, 0xe3, 0xc9, 0x94, 0xa7, 0xcc, 0xc8, 0xbf, 0x7a, 0x11, 0xea, 0xea, 0xda, + 0x05, 0x47, 0x50, 0xbb, 0xca, 0xd3, 0x55, 0x38, 0x53, 0xff, 0x5e, 0x5d, 0x8a, + 0x0c, 0xee, 0xfa, 0x4e, 0x25, 0x01, 0x7f, 0x11, 0x09, 0x9a, 0x2f, 0x08, 0xcc, + 0xe8, 0x7f, 0x27, 0x1d, 0x24, 0xcc, 0x6e, 0x9c, 0xf1, 0x46, 0xb2, 0xf2, 0x01, + 0x2d, 0xfb, 0xed, 0xec, 0xba, 0x59, 0xcf, 0x48, 0x43, 0xfc, 0x4b, 0x58, 0xa9, + 0x2a, 0x6e, 0xb2, 0xfc, 0x89, 0xbe, 0x55, 0xc9, 0x1a, 0x24, 0xf7, 0xc1, 0x68, + 0x24, 0x94, 0xcd, 0x0a, 0xb5, 0x85, 0x34, 0xa7, 0xf5, 0xcf, 0xa6, 0xe8, 0x0c, + 0x00, 0x6a, 0x4d, 0x8e, 0x1f, 0x67, 0x83, 0xd2, 0x79, 0x3f, 0x74, 0x53, 0x11, + 0xc4, 0x57, 0x78, 0xf4, 0xa5, 0x3c, 0xa8, 0x85, 0x6a, 0xfb, 0x05, 0xc0, 0x53, + 0x84, 0xa0, 0x92, 0xd5, 0x08, 0x34, 0x60, 0x43, 0x9f, 0xc0, 0xe7, 0x92, 0xb7, + 0xd0, 0xf2, 0x13, 0x76, 0xa3, 0x6e, 0x60, 0x4d, 0x76, 0xef, 0xa3, 0xeb, 0x60, + 0x44, 0xd6, 0x2a, 0x49, 0xd4, 0x52, 0xa2, 0x6c, 0xdf, 0x01, 0x5d, 0x4e, 0xe4, + 0x7a, 0x39, 0x05, 0xe9, 0x82, 0x80, 0x30, 0x2f, 0x54, 0x1a, 0x0d, 0x1c, 0x9f, + 0x33, 0xe1, 0xbc, 0x62, 0xd9, 0x25, 0xfb, 0xf3, 0x29, 0x39, 0xe4, 0x93, 0xd4, + 0xa2, 0xa2, 0x4a, 0x79, 0xc8, 0x9a, 0x41, 0x9e, 0x61, 0x5f, 0x0a, 0xb8, 0x7a, + 0x37, 0x2d, 0x25, 0x41, 0x0f, 0x8b, 0x7a, 0x72, 0xa8, 0x44, 0x06, 0x54, 0x78, + 0x5e, 0x05, 0xe9, 0x23, 0x4e, 0x2c, 0xf9, 0x34, 0xca, 0xae, 0x8e, 0x6b, 0x75, + 0xd7, 0x65, 0xe9, 0xc3, 0x6d, 0x55, 0xdc, 0xf7, 0xd0, 0x69, 0xcb, 0x1c, 0xc0, + 0x2a, 0xbc, 0x81, 0x4f, 0xa0, 0x4a, 0x9b, 0x15, 0xe1, 0xec, 0x30, 0x1f, 0x32, + 0x5b, 0x4e, 0xe4, 0x5f, 0xd0, 0xdc, 0xfd, 0xe3, 0xaf, 0xbd, 0xc5, 0x91, 0xe7, + 0xfe, 0xdd, 0x5e, 0x99, 0x09, 0x93, 0x10, 0x70, 0xd2, 0x66, 0x0d, 0xcc, 0x96, + 0x06, 0x08, 0xee, 0xe1, 0x4a, 0x0f, 0x65, 0x40, 0xa1, 0x62, 0x43, 0x79, 0x6b, + 0xb2, 0xd8, 0xaf, 0x33, 0xde, 0xd0, 0x36, 0xdf, 0xef, 0xe5, 0x1c, 0xaa, 0x92, + 0xca, 0x8b, 0x92, 0x2b, 0x67, 0x65, 0x6c, 0x04, 0xfa, 0xd7, 0xa1, 0xbd, 0xd7, + 0x7d, 0x67, 0x49, 0xd4, 0x92, 0x5c, 0x09, 0x34, 0x9e, 0xcc, 0xe9, 0x65, 0x6f, + 0xb4, 0x42, 0x61, 0x6b, 0xfa, 0x9f, 0x71, 0x13, 0xcc, 0xa0, 0xe0, 0x9d, 0x3a, + 0x9f, 0xc7, 0x9d, 0xf6, 0x5f, 0xcb, 0x9d, 0xb1, 0xf9, 0x75, 0xbb, 0xf9, 0xf9, + 0x46, 0x12, 0xa9, 0x48, 0xa9, 0x6b, 0x35, 0x53, 0xd8, 0x72, 0x00, 0x93, 0xdb, + 0x84, 0x0a, 0xc2, 0x6a, 0xcc, 0x35, 0x05, 0xda, 0x95, 0xd8, 0x0d, 0x3c, 0x5a, + 0x3c, 0xb1, 0x80, 0x9d, 0x47, 0x82, 0xa5, 0x2a, 0xe2, 0x76, 0x84, 0xb9, 0xa3, + 0x11, 0xf9, 0x09, 0x86, 0xa9, 0x2c, 0xcf, 0x8e, 0x58, 0x8c, 0x93, 0x69, 0x35, + 0xa1, 0x0d, 0x18, 0x3b, 0x65, 0x7f, 0xe4, 0x89, 0xcf, 0x19, 0xd5, 0xc1, 0xf2, + 0x61, 0x3d, 0x8b, 0x96, 0x7f, 0x0e, 0x55, 0x7f, 0x58, 0x6c, 0xc9, 0x19, 0x80, + 0x96, 0x32, 0xea, 0xbd, 0x13, 0xe8, 0x36, 0x12, 0x7d, 0x7d, 0x74, 0xff, 0x1c, + 0xb9, 0xc2, 0xe8, 0x4a, 0xe8, 0xb9, 0x6e, 0xd4, 0x87, 0x2d, 0x5c, 0x13, 0x6a, + 0xfb, 0xec, 0x2e, 0x77, 0xfa, 0xfd, 0x21, 0x83, 0x77, 0xda, 0x60, 0x99, 0x96, + 0x22, 0x12, 0xf1, 0xe8, 0x7c, 0xc4, 0xee, 0xbd, 0x6c, 0x73, 0x99, 0xc2, 0x93, + 0x70, 0x13, 0x91, 0xb8, 0x82, 0x5b, 0xc0, 0x61, 0xc3, 0x26, 0xa5, 0x80, 0x85, + 0x77, 0x7f, 0x5d, 0xa3, 0xf9, 0x66, 0xd6, 0xba, 0xa5, 0x3b, 0x95, 0x3d, 0x23, + 0xe6, 0x5d, 0x72, 0x23, 0xc4, 0xb5, 0x80, 0xcf, 0x2b, 0x1d, 0x5c, 0x22, 0xc8, + 0xc8, 0xf1, 0x5c, 0x28, 0xbc, 0xab, 0x72, 0x86, 0x92, 0xa8, 0x07, 0x76, 0x59, + 0x6a, 0xdc, 0x5a, 0xe6, 0x23, 0x84, 0xe0, 0x23, 0x42, 0x40, 0xfd, 0x51, 0x4e, + 0xed, 0xee, 0x5a, 0x37, 0x67, 0x10, 0xcc, 0x47, 0xd3, 0xca, 0x84, 0xf5, 0x47, + 0x04, 0xc0, 0x0e, 0x2e, 0x09, 0xec, 0x31, 0x8b, 0x30, 0xa9, 0xe4, 0x5e, 0xc0, + 0x0e, 0x28, 0x8d, 0x94, 0x3c, 0x42, 0x62, 0xf5, 0x24, 0x20, 0x9f, 0xc0, 0x7b, + 0x28, 0x56, 0xcc, 0x71, 0xa8, 0xd9, 0x40, 0x95, 0xb8, 0xec, 0x6f, 0x7e, 0x24, + 0x09, 0x45, 0x31, 0xb9, 0xec, 0x17, 0x7a, 0x19, 0xb5, 0x73, 0x95, 0x26, 0x68, + 0xc8, 0x99, 0xad, 0xe7, 0xe9, 0x6d, 0x5f, 0x6c, 0xcc, 0xb9, 0xa6, 0xfa, 0x1e, + 0x02, 0x66, 0xe9, 0x70, 0x2c, 0x10, 0xd3, 0x60, 0xbb, 0x6b, 0xab, 0xc8, 0xc1, + 0x41, 0x78, 0xc4, 0xe6, 0xc9, 0xba, 0x91, 0x74, 0x8c, 0xf5, 0xb5, 0x89, 0x9a, + 0x0b, 0xb9, 0x65, 0x90, 0x33, 0xea, 0x7e, 0x52, 0x93, 0xd0, 0x9a, 0x29, 0x03, + 0x72, 0x1b, 0x3e, 0x90, 0x66, 0xf1, 0x9a, 0x68, 0xea, 0xfa, 0x1a, 0xe6, 0x4f, + 0x1a, 0x3e, 0x84, 0xa4, 0x25, 0x9d, 0xf7, 0x6d, 0xb8, 0x97, 0x57, 0xc4, 0xbb, + 0xef, 0x9d, 0x85, 0xc7, 0xee, 0x02, 0xa1, 0xd6, 0x09, 0xd8, 0xb6, 0xe4, 0xd3, + 0xb3, 0x79, 0x4b, 0xa2, 0xce, 0x1a, 0x54, 0xb9, 0xc0, 0xe9, 0x32, 0x0a, 0xb4, + 0x47, 0xeb, 0x49, 0x77, 0xa9, 0x62, 0x0c, 0x00, 0x57, 0x12, 0x1e, 0xe3, 0xf1, + 0xce, 0x01, 0x00, + ], + txid: [ + 0x30, 0xd2, 0x19, 0x4d, 0xe7, 0x4b, 0x03, 0xbc, 0x72, 0x83, 0xc7, 0xa3, 0xc0, + 0xdf, 0x56, 0x9e, 0x71, 0xbe, 0xe0, 0x6c, 0x72, 0x9e, 0x72, 0x20, 0xf1, 0x6f, + 0xc7, 0x6a, 0xd7, 0x13, 0x6e, 0x68, + ], + auth_digest: [ + 0xf0, 0x1d, 0x70, 0x40, 0x79, 0x39, 0xc9, 0xc8, 0x6c, 0xe6, 0x98, 0x72, 0x76, + 0x41, 0x01, 0x37, 0x76, 0x5f, 0xed, 0x5f, 0xd1, 0x60, 0x87, 0x1f, 0x4c, 0x4d, + 0xf0, 0xe2, 0xe4, 0xad, 0x8c, 0xa0, + ], + amounts: vec![2002665803571713, 531521585593360, 1483825548543377], + zsf_deposit: 509013269549655, + script_pubkeys: vec![ + vec![0xac, 0x51, 0xac, 0x51, 0x53, 0x63], + vec![0x51, 0x51, 0x00], + vec![0x6a, 0x53, 0x51, 0x6a, 0x65, 0x53, 0xac], + ], + transparent_input: Some(1), + sighash_shielded: [ + 0x0b, 0x4c, 0xb0, 0x0f, 0x5d, 0x09, 0x09, 0x33, 0x37, 0x8a, 0x0c, 0x21, 0x38, + 0x86, 0x9c, 0x8e, 0x3a, 0x69, 0x1a, 0x8b, 0xed, 0x95, 0xc6, 0x62, 0x1c, 0x20, + 0xd8, 0x26, 0x7c, 0x3d, 0xc2, 0x2a, + ], + sighash_all: Some([ + 0x4f, 0xad, 0x5e, 0xa0, 0xc8, 0x25, 0xaa, 0x15, 0x48, 0x04, 0xe1, 0x7e, 0x5d, + 0xab, 0x81, 0x4c, 0xf7, 0x47, 0xf2, 0x1a, 0xe5, 0x21, 0x01, 0x47, 0xc5, 0x9c, + 0x84, 0x4b, 0xc9, 0x85, 0xe2, 0x62, + ]), + sighash_none: Some([ + 0xb6, 0x4b, 0xc2, 0xab, 0x2a, 0x9b, 0xeb, 0xc3, 0x50, 0xb9, 0x41, 0x86, 0x98, + 0x76, 0x7b, 0x9f, 0x93, 0xb7, 0x55, 0x23, 0x77, 0x9d, 0x41, 0x63, 0x58, 0x51, + 0x5a, 0x68, 0xa1, 0x95, 0xaf, 0xc8, + ]), + sighash_single: None, + sighash_all_anyone: Some([ + 0x04, 0xfe, 0x87, 0x4e, 0x00, 0x6f, 0x53, 0x96, 0x0d, 0x38, 0x28, 0x25, 0x93, + 0x52, 0xcc, 0xc2, 0x11, 0x2f, 0x6f, 0x5d, 0xd6, 0x4e, 0x4a, 0xb3, 0x12, 0x93, + 0x57, 0x7c, 0xed, 0xae, 0x4c, 0x3d, + ]), + sighash_none_anyone: Some([ + 0x85, 0xd5, 0xc0, 0x03, 0x46, 0xdd, 0xed, 0x22, 0x9a, 0xb6, 0xf8, 0x4f, 0xb2, + 0x59, 0x54, 0x09, 0x4f, 0x6e, 0x34, 0x0c, 0xbb, 0x1f, 0xea, 0x24, 0x4e, 0xd0, + 0xd8, 0xb3, 0xfc, 0xd6, 0x09, 0x0a, + ]), + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, + 0x96, 0x08, 0x41, 0x8b, 0xd5, 0x63, 0x09, 0x03, 0xc0, 0x2c, 0xdf, 0xc6, 0x5a, + 0xab, 0x96, 0x81, 0x15, 0xcf, 0x7d, 0x94, 0x86, 0x78, 0xf2, 0x13, 0xa9, 0x54, + 0x73, 0x19, 0x31, 0xea, 0x49, 0x15, 0x13, 0x1d, 0xdf, 0xa6, 0xa4, 0x06, 0x09, + 0xf3, 0x66, 0x12, 0x77, 0x58, 0x01, 0x65, 0x2d, 0x87, 0x2d, 0x98, 0xab, 0x3f, + 0xc1, 0x19, 0x3a, 0x44, 0xab, 0xb6, 0xcf, 0x32, 0x73, 0xed, 0xfb, 0x91, 0x68, + 0x6c, 0xf3, 0x9b, 0xf5, 0x40, 0xa0, 0x27, 0xcf, 0x3f, 0x00, 0x89, 0xb9, 0x35, + 0x48, 0xd1, 0xaa, 0x8c, 0xe5, 0x8e, 0x5e, 0xe1, 0x01, 0x51, 0x92, 0xbe, 0x47, + 0xa4, 0x2c, 0xee, 0xac, 0x63, 0xa8, 0x22, 0x32, 0x25, 0x35, 0x42, 0x57, 0xe3, + 0xe3, 0x45, 0x30, 0xee, 0x2e, 0x01, 0x6b, 0x90, 0x91, 0xfc, 0xdc, 0x07, 0x24, + 0x79, 0xe7, 0xc3, 0x77, 0xa8, 0xf2, 0x51, 0x92, 0xa8, 0xdd, 0x1d, 0x09, 0xac, + 0x52, 0x6a, 0x51, 0x63, 0x52, 0x63, 0xac, 0x53, 0xde, 0x27, 0xd8, 0xdb, 0x03, + 0xb1, 0x60, 0xd7, 0x78, 0x27, 0x66, 0x00, 0x00, 0x02, 0x65, 0x53, 0x87, 0x8c, + 0x29, 0xe3, 0xe7, 0x5b, 0x00, 0x00, 0x06, 0x6a, 0x53, 0x6a, 0x52, 0x63, 0x53, + 0x6d, 0xd9, 0x2d, 0xa9, 0xff, 0x0b, 0x05, 0x00, 0x02, 0x6a, 0x52, 0x00, 0x00, + 0x03, 0xa2, 0x8b, 0x59, 0x59, 0xe5, 0x4e, 0x36, 0x53, 0x0e, 0xc7, 0x4b, 0xe8, + 0x29, 0x22, 0x1d, 0x07, 0x57, 0x4c, 0xb1, 0xe2, 0xae, 0xb0, 0xe2, 0xd9, 0xa6, + 0xf1, 0x03, 0x22, 0x74, 0xc0, 0x1a, 0x98, 0xab, 0x5c, 0x27, 0xea, 0x2e, 0x3d, + 0xba, 0xe0, 0x48, 0x75, 0xaf, 0x4a, 0xd9, 0x76, 0x75, 0xab, 0x20, 0xb8, 0xbf, + 0xd0, 0x8d, 0xf7, 0xf9, 0x03, 0xf1, 0xd0, 0x5e, 0x66, 0x0d, 0x7f, 0x32, 0x24, + 0x5a, 0x94, 0xca, 0x69, 0xeb, 0x67, 0x3d, 0x62, 0x64, 0x09, 0xe8, 0x1a, 0x5e, + 0x7b, 0x30, 0x9d, 0x65, 0x27, 0xc8, 0x12, 0x84, 0xa6, 0x2d, 0x78, 0x2f, 0xe1, + 0x88, 0x2c, 0x80, 0xd1, 0x49, 0x90, 0x2f, 0x97, 0xfb, 0xb0, 0x6d, 0x77, 0xa3, + 0x9c, 0x29, 0x43, 0xfd, 0xcc, 0xde, 0xe8, 0x8e, 0x4a, 0x42, 0xa1, 0xda, 0x6f, + 0xa6, 0xe5, 0xb4, 0x4d, 0x75, 0x0e, 0xc3, 0xbd, 0x5a, 0x51, 0x47, 0x1c, 0x95, + 0xf0, 0x53, 0xe2, 0x05, 0xea, 0x53, 0x89, 0xda, 0x31, 0x7d, 0x34, 0x4c, 0x61, + 0x14, 0xe1, 0x04, 0x3e, 0xe8, 0x01, 0x5d, 0xe4, 0x25, 0x34, 0x25, 0xea, 0x93, + 0x0f, 0xc9, 0xa1, 0x63, 0x3f, 0xd9, 0xdc, 0xa4, 0x97, 0x05, 0x85, 0xaf, 0x87, + 0x55, 0xe8, 0xea, 0xd7, 0x1d, 0xa3, 0xd0, 0xb5, 0x83, 0x43, 0x7a, 0x14, 0x75, + 0x93, 0xa5, 0x91, 0xb0, 0x1b, 0x11, 0x5f, 0xda, 0x10, 0xad, 0x54, 0xbb, 0xbe, + 0x08, 0x5b, 0x23, 0x5c, 0x4a, 0xdf, 0xc2, 0x80, 0xa1, 0x62, 0xf2, 0x86, 0x28, + 0x18, 0x6c, 0xef, 0xca, 0xeb, 0x2f, 0x13, 0xa0, 0x06, 0x78, 0x79, 0x37, 0x6b, + 0x4a, 0xe4, 0xc5, 0x71, 0x75, 0xc7, 0x7a, 0x21, 0xd1, 0x96, 0x37, 0xce, 0xb1, + 0x5a, 0x99, 0x3a, 0x4d, 0x0a, 0x66, 0x94, 0x70, 0x5e, 0xce, 0xba, 0x19, 0x76, + 0xa8, 0xe3, 0xb0, 0xcd, 0x62, 0x55, 0xe1, 0x70, 0xe3, 0x49, 0x75, 0x3e, 0xe4, + 0x30, 0xd5, 0xf7, 0x77, 0x68, 0xa9, 0x1d, 0xf7, 0xb2, 0x13, 0xae, 0x78, 0xc0, + 0x55, 0x5c, 0x4d, 0x74, 0xf9, 0xea, 0xcc, 0x74, 0x40, 0x3b, 0x0b, 0x8d, 0xe7, + 0x84, 0x79, 0xf3, 0xaf, 0x49, 0x30, 0x83, 0x5f, 0xa3, 0xcc, 0x53, 0x74, 0x37, + 0x6f, 0xb7, 0x9f, 0xaa, 0x30, 0x83, 0x94, 0x6e, 0xec, 0x52, 0xf1, 0x21, 0x4d, + 0x98, 0xe7, 0xdb, 0xa4, 0x08, 0x58, 0x0f, 0x05, 0xf3, 0x98, 0xde, 0x3c, 0x1f, + 0xab, 0xbf, 0xee, 0xe5, 0x3b, 0x69, 0xb7, 0x38, 0xcf, 0x17, 0x0d, 0xd5, 0x24, + 0xb3, 0x5a, 0xd8, 0x54, 0x66, 0xf9, 0x28, 0xc9, 0x47, 0xaf, 0xd9, 0x2f, 0xbe, + 0xb8, 0x24, 0x7c, 0x6e, 0xd5, 0xa6, 0xc2, 0x69, 0xdb, 0xb0, 0x82, 0x90, 0x11, + 0xc5, 0x78, 0xa2, 0x3c, 0x41, 0xa8, 0xdc, 0x2c, 0xc8, 0xa1, 0x71, 0xc5, 0x61, + 0x31, 0xea, 0xe3, 0x68, 0xca, 0x84, 0x36, 0xb7, 0x8b, 0x89, 0xce, 0x35, 0x05, + 0x48, 0x00, 0x0d, 0xd3, 0x6b, 0xe5, 0xa6, 0xef, 0x84, 0xbb, 0xdc, 0xd9, 0xf6, + 0x1c, 0xf2, 0xe4, 0x63, 0x5e, 0x17, 0x59, 0x2e, 0x1e, 0x53, 0x78, 0x45, 0x7b, + 0xb0, 0xbf, 0xc7, 0x98, 0x31, 0xb1, 0x3e, 0xa3, 0xc7, 0x93, 0x63, 0xfd, 0x12, + 0x30, 0x7f, 0xf1, 0xf3, 0x46, 0x0c, 0x53, 0xc9, 0x05, 0xab, 0xd4, 0xc2, 0x0d, + 0x2c, 0xa1, 0x18, 0x55, 0xf4, 0x9d, 0x20, 0x75, 0x52, 0x53, 0x57, 0x24, 0x97, + 0xcb, 0x87, 0xf7, 0x70, 0x73, 0xe5, 0xd6, 0x13, 0x6b, 0xe2, 0xa3, 0xcf, 0x3b, + 0xea, 0x98, 0xa7, 0x72, 0xe8, 0x0f, 0x1e, 0x90, 0xc3, 0x39, 0x04, 0xc5, 0x09, + 0xb6, 0x7a, 0xfd, 0x4c, 0x3e, 0x82, 0x7c, 0x8b, 0x05, 0xcb, 0xc3, 0x4f, 0x2f, + 0xc2, 0x75, 0xcc, 0xfe, 0x8d, 0xdb, 0x8e, 0xd8, 0x38, 0x2c, 0x7f, 0x2f, 0x1f, + 0xd1, 0x9f, 0xe8, 0x7a, 0x1c, 0x76, 0x0a, 0x48, 0x9d, 0x22, 0x6e, 0x3c, 0xc1, + 0xa0, 0x85, 0xc6, 0x1d, 0xff, 0xdd, 0x8c, 0x4a, 0x63, 0xc4, 0xb7, 0xb3, 0x8a, + 0x74, 0x7a, 0x22, 0x80, 0x2a, 0x1b, 0x12, 0xfa, 0x4e, 0x74, 0xcc, 0xa6, 0xae, + 0x7f, 0xdc, 0xcb, 0xdb, 0x4a, 0x1e, 0xb4, 0x40, 0xe0, 0xe8, 0x10, 0x3c, 0x0e, + 0xb0, 0xe5, 0xb6, 0x17, 0x37, 0x80, 0xbd, 0xab, 0xf4, 0x25, 0xdb, 0x2a, 0xb0, + 0x99, 0x01, 0x27, 0xf8, 0x68, 0x71, 0x8a, 0x68, 0xf2, 0x18, 0x26, 0xf9, 0xf0, + 0x58, 0x23, 0x3d, 0x58, 0xa5, 0x7e, 0xd7, 0x56, 0xc3, 0x65, 0x2b, 0xc7, 0xe6, + 0x19, 0xee, 0xac, 0xa3, 0x58, 0x44, 0x12, 0xef, 0xf8, 0x5d, 0x47, 0x4a, 0x94, + 0x7a, 0x4c, 0xc3, 0xda, 0x7f, 0xdf, 0xc9, 0x8e, 0xf1, 0x05, 0xa4, 0x37, 0x3b, + 0x01, 0x1c, 0x02, 0xb7, 0x34, 0x02, 0xaf, 0xf6, 0x6a, 0xe9, 0x59, 0xdc, 0xe5, + 0xb4, 0x40, 0x17, 0xb9, 0x1f, 0x56, 0x38, 0xf0, 0x10, 0x25, 0x06, 0x9f, 0xbe, + 0x18, 0x11, 0x34, 0xbe, 0x87, 0x5d, 0x22, 0xd1, 0xc1, 0x39, 0x10, 0x60, 0xc9, + 0x1b, 0x0f, 0x4d, 0x9f, 0xac, 0xc0, 0x53, 0x43, 0x2d, 0x61, 0x10, 0x14, 0x39, + 0x82, 0x23, 0x0d, 0xaa, 0x4c, 0x96, 0x42, 0x02, 0x8d, 0xb3, 0xa5, 0x1c, 0xb2, + 0xa6, 0x93, 0x65, 0xe5, 0xdc, 0x70, 0x28, 0xd6, 0x7c, 0x53, 0xdf, 0x4f, 0x6b, + 0x4d, 0xcf, 0x13, 0x9d, 0x1d, 0x43, 0xe0, 0xd7, 0x18, 0xbe, 0xd2, 0x27, 0xb7, + 0x4b, 0x40, 0xba, 0x66, 0xe8, 0x14, 0x34, 0x12, 0x3e, 0x87, 0x10, 0xd9, 0xbc, + 0x7f, 0xd3, 0x9d, 0x61, 0xa5, 0x20, 0x52, 0xd4, 0xae, 0xd6, 0xf3, 0x61, 0xb8, + 0x58, 0x2e, 0xe1, 0x10, 0x2a, 0xd3, 0x77, 0xec, 0xfa, 0xd7, 0x18, 0xdf, 0xb1, + 0xa3, 0xad, 0xe1, 0xc1, 0x8a, 0x40, 0x58, 0x70, 0x8e, 0x9b, 0x5c, 0x6f, 0xf3, + 0x33, 0x5a, 0x17, 0xea, 0xd8, 0xa2, 0x46, 0x96, 0x94, 0xa0, 0x14, 0x48, 0xcb, + 0xe0, 0xb4, 0xaa, 0x50, 0xaf, 0x50, 0x78, 0x4e, 0x44, 0x21, 0x7f, 0x61, 0xe1, + 0xb1, 0x31, 0x4f, 0xa1, 0x75, 0x41, 0x5a, 0xc6, 0x31, 0x81, 0xa4, 0x61, 0x13, + 0x3f, 0xc3, 0xe9, 0xc7, 0xa0, 0x82, 0xca, 0xeb, 0xc8, 0x1a, 0xb4, 0xd1, 0x5a, + 0xf9, 0x62, 0xa7, 0x9a, 0xed, 0x93, 0xd0, 0xf7, 0xe9, 0x84, 0x56, 0xe4, 0x59, + 0xf7, 0xad, 0x63, 0x94, 0x9e, 0xc8, 0xce, 0x2d, 0x76, 0x11, 0x6f, 0x1e, 0xd6, + 0xfe, 0x10, 0xe0, 0x44, 0x9e, 0x2f, 0xa6, 0x13, 0xa9, 0xfc, 0x83, 0x53, 0xa3, + 0x16, 0x8b, 0x5e, 0xab, 0xe8, 0x52, 0x48, 0xed, 0x68, 0x5c, 0x75, 0x0c, 0x9c, + 0x31, 0xd6, 0x96, 0xfb, 0x22, 0x3f, 0x58, 0xe9, 0xee, 0x25, 0x4d, 0x2d, 0x72, + 0x1f, 0x9f, 0x42, 0x3e, 0xd9, 0xb9, 0x8d, 0xbe, 0xfa, 0x89, 0x38, 0xbd, 0x76, + 0x4c, 0xc7, 0x25, 0x0b, 0x82, 0x29, 0xfb, 0x65, 0xc5, 0x71, 0xaf, 0x2e, 0x32, + 0x73, 0x05, 0xd6, 0x2d, 0x7c, 0x08, 0x0b, 0x84, 0xa1, 0xf8, 0x2e, 0x43, 0x4e, + 0xc7, 0xae, 0x6e, 0x0a, 0xc5, 0x31, 0x95, 0x80, 0xf7, 0xce, 0xbf, 0x88, 0x0b, + 0x3c, 0xf5, 0xc6, 0xe7, 0xb7, 0x09, 0x67, 0x92, 0x75, 0x4c, 0x06, 0x00, 0x28, + 0x7e, 0x44, 0xb8, 0x41, 0xd8, 0x5b, 0x02, 0xae, 0x56, 0xdd, 0xbe, 0xd8, 0x7a, + 0x41, 0x50, 0x19, 0xf5, 0x23, 0xdd, 0x04, 0x65, 0x2c, 0x98, 0xc8, 0x36, 0x10, + 0x78, 0x0e, 0xd7, 0xa2, 0xfa, 0xae, 0x4a, 0x70, 0xdc, 0xe5, 0xe9, 0x42, 0xad, + 0x1b, 0x66, 0x41, 0x30, 0xf5, 0xde, 0x76, 0xc4, 0x59, 0xfa, 0x81, 0xa4, 0xb2, + 0xad, 0x72, 0x3d, 0x5b, 0x1d, 0x0b, 0xbc, 0xeb, 0x2a, 0x9c, 0x11, 0x01, 0x1e, + 0xf2, 0x36, 0xae, 0xfc, 0x3f, 0x2e, 0x8b, 0xbb, 0xd9, 0x40, 0x51, 0x28, 0xda, + 0x41, 0x53, 0xef, 0xda, 0xd4, 0xa7, 0x9f, 0x28, 0xf5, 0x2a, 0xc4, 0x22, 0x32, + 0x7d, 0xbe, 0xeb, 0x14, 0xf4, 0x6f, 0x60, 0xad, 0x37, 0xa0, 0x10, 0x20, 0x4d, + 0xa8, 0xc1, 0xd6, 0x07, 0xb9, 0x1b, 0xac, 0xdc, 0xb5, 0x00, 0x12, 0xc2, 0x5f, + 0x8b, 0xc1, 0x51, 0xfb, 0xf8, 0x06, 0x07, 0xdb, 0x90, 0x2d, 0x44, 0xa0, 0x8a, + 0x4c, 0x08, 0x4e, 0x00, 0x24, 0x74, 0x5e, 0xc0, 0x87, 0x78, 0xab, 0x46, 0x0f, + 0x01, 0x7c, 0x9a, 0x3c, 0xee, 0x30, 0x8c, 0x9a, 0xfe, 0x79, 0xf8, 0xc6, 0xb5, + 0xc8, 0x24, 0x65, 0x9b, 0xd0, 0x87, 0x37, 0x72, 0x07, 0x7d, 0x9e, 0x4a, 0x57, + 0x60, 0x7c, 0x34, 0x31, 0x0b, 0xa8, 0x99, 0x1e, 0x98, 0x22, 0x15, 0x99, 0x30, + 0x50, 0xc9, 0x0a, 0x8c, 0x80, 0x39, 0x03, 0x41, 0x25, 0x67, 0x66, 0xd5, 0x5c, + 0xfc, 0x28, 0x6b, 0x37, 0x86, 0x75, 0x76, 0xe1, 0x19, 0x7e, 0x1f, 0x1c, 0xe5, + 0x9a, 0xb5, 0xcb, 0x54, 0xe9, 0x39, 0x29, 0xac, 0xdb, 0x18, 0xd0, 0xda, 0xe4, + 0x16, 0xba, 0x07, 0x47, 0x61, 0x87, 0x77, 0x0d, 0xde, 0xd0, 0xf6, 0x47, 0xa0, + 0x6b, 0x32, 0x60, 0xbb, 0x2f, 0x03, 0x32, 0xc1, 0xf6, 0x88, 0x2d, 0x25, 0x04, + 0xba, 0x38, 0x10, 0x6f, 0xf5, 0xbb, 0xdd, 0xf3, 0x3a, 0xab, 0x76, 0x17, 0xe1, + 0xe0, 0xe8, 0xd1, 0x8e, 0xb7, 0xec, 0xdf, 0x5e, 0xf7, 0xb0, 0xf5, 0x3b, 0x6a, + 0xb7, 0xbb, 0x55, 0xb2, 0x4b, 0x51, 0x52, 0x34, 0x67, 0x9c, 0xa9, 0x62, 0x05, + 0x91, 0x93, 0xd2, 0xc5, 0x1a, 0xb0, 0xb8, 0x79, 0x75, 0x2a, 0x38, 0x76, 0x08, + 0x92, 0xf8, 0xe8, 0xb3, 0xe5, 0xfa, 0xbe, 0xe5, 0x51, 0xa3, 0x78, 0x07, 0x0a, + 0x2f, 0x37, 0x17, 0x59, 0x47, 0xef, 0xb5, 0x1b, 0xaf, 0xe0, 0x79, 0x58, 0xe1, + 0xb1, 0x77, 0xef, 0x2a, 0x65, 0xa2, 0x74, 0x02, 0xd9, 0xdc, 0x09, 0x41, 0xf4, + 0x75, 0x75, 0x19, 0x13, 0x0a, 0x24, 0x5e, 0x2e, 0x91, 0xb5, 0xc8, 0x7a, 0x52, + 0x24, 0x00, 0xb9, 0xb2, 0x07, 0x95, 0x98, 0xc4, 0xb4, 0x9e, 0x62, 0x05, 0x95, + 0xf0, 0xf6, 0x72, 0x79, 0xc2, 0x6e, 0x73, 0x9f, 0x87, 0xb3, 0x3d, 0x8f, 0x1e, + 0xad, 0xd6, 0x2f, 0xb6, 0x8f, 0x73, 0x03, 0xc0, 0xd9, 0xa7, 0x44, 0xfd, 0x4e, + 0x2c, 0xa3, 0x66, 0x21, 0x10, 0xfe, 0xda, 0x6d, 0xea, 0xdc, 0x16, 0x04, 0x01, + 0xc6, 0x57, 0x23, 0x6d, 0xc5, 0x93, 0xa5, 0x8d, 0x56, 0x31, 0xbb, 0xa3, 0x3e, + 0xf3, 0xe9, 0x34, 0x4c, 0x53, 0x6f, 0x3f, 0x20, 0x4c, 0xee, 0x7b, 0x5f, 0x15, + 0xd8, 0xfd, 0x41, 0xa4, 0xf5, 0x7c, 0x9c, 0xac, 0x57, 0xcd, 0x50, 0x17, 0xe8, + 0x06, 0x69, 0x5b, 0xb1, 0xa0, 0x6d, 0xe5, 0x68, 0x7c, 0x55, 0xac, 0x37, 0x3b, + 0xf2, 0x3f, 0xa8, 0x99, 0xe7, 0x54, 0x07, 0xb4, 0x92, 0xf8, 0x75, 0x20, 0xf5, + 0x7a, 0x1a, 0x6b, 0xe2, 0x5e, 0xd6, 0x91, 0x39, 0x3d, 0xbf, 0x9d, 0xa1, 0x48, + 0x3c, 0x28, 0x2c, 0x0c, 0x26, 0x59, 0xbd, 0x90, 0x67, 0x76, 0x35, 0x37, 0x73, + 0x00, 0xa1, 0x77, 0x9d, 0xea, 0x26, 0x7e, 0x72, 0x0e, 0xc7, 0xf6, 0x4d, 0x23, + 0x96, 0x49, 0x24, 0x85, 0x78, 0xdb, 0x66, 0x0b, 0xfb, 0xe3, 0x4a, 0xa9, 0x17, + 0x1a, 0x2a, 0x3a, 0x42, 0x3b, 0x5d, 0x92, 0x7b, 0x06, 0x91, 0x12, 0x01, 0xd1, + 0xe5, 0xfc, 0xac, 0x8d, 0x0e, 0xfa, 0x3f, 0xe4, 0x2b, 0x97, 0xe3, 0x9f, 0x3c, + 0xf0, 0xfd, 0x74, 0xd7, 0x45, 0x7f, 0x63, 0xed, 0xf5, 0xcd, 0xab, 0xfd, 0x83, + 0x78, 0x12, 0x4a, 0xe8, 0x21, 0x3f, 0x97, 0x9d, 0x35, 0xf3, 0xe7, 0xd6, 0xab, + 0xa4, 0x40, 0x39, 0xfb, 0xf0, 0x70, 0xc6, 0x92, 0xec, 0x0a, 0x8c, 0x85, 0x56, + 0xc4, 0xf5, 0xd3, 0x0a, 0xaa, 0x23, 0xe6, 0x98, 0xcc, 0xc2, 0xd0, 0x10, 0xdf, + 0x7e, 0x49, 0x6e, 0xc2, 0xbb, 0xf5, 0x53, 0xab, 0x38, 0xb1, 0x94, 0x0c, 0x35, + 0x95, 0x2e, 0xc3, 0x2b, 0x8b, 0x7e, 0xc7, 0x3f, 0xb3, 0xfb, 0x73, 0x70, 0x4d, + 0xaa, 0x23, 0xb1, 0xa9, 0x04, 0xbb, 0x66, 0x40, 0x07, 0x19, 0x46, 0x18, 0xf0, + 0x40, 0x31, 0x6e, 0x4d, 0xfd, 0x4e, 0xbc, 0x5d, 0x4f, 0x6f, 0x14, 0xa1, 0xec, + 0x01, 0x6b, 0xa4, 0x41, 0xf3, 0x7b, 0xff, 0xa7, 0xa1, 0x9e, 0xd6, 0x1d, 0xd3, + 0x59, 0xde, 0x0d, 0xc0, 0xe4, 0xd0, 0xbd, 0x8e, 0x39, 0x90, 0x2a, 0x02, 0x3a, + 0x6b, 0xe8, 0x08, 0x77, 0x17, 0x55, 0xf5, 0xe2, 0x51, 0xf1, 0x5d, 0x7b, 0x8c, + 0x1e, 0x6f, 0xd5, 0x44, 0x4e, 0x39, 0x1f, 0xe5, 0xbc, 0xeb, 0x77, 0x93, 0xdb, + 0xd8, 0x12, 0x5a, 0xc5, 0x29, 0xa5, 0x76, 0x1a, 0xe6, 0xdb, 0xc9, 0x6f, 0x88, + 0xec, 0xe7, 0x37, 0xa4, 0x84, 0x38, 0xab, 0x43, 0x12, 0x73, 0xf0, 0xdc, 0x6f, + 0x8c, 0x05, 0xd1, 0x8c, 0xbf, 0xcb, 0xd4, 0x55, 0xa7, 0x9d, 0x4c, 0xbe, 0x52, + 0x16, 0x55, 0x04, 0x55, 0x0e, 0x01, 0x4f, 0xae, 0xcb, 0x40, 0x46, 0x36, 0x57, + 0x9c, 0x37, 0xa0, 0x5b, 0xab, 0xad, 0xc8, 0x98, 0x6b, 0xaf, 0x81, 0xbc, 0xd9, + 0x38, 0x5c, 0xab, 0x7d, 0x1f, 0x89, 0x8a, 0xbd, 0x4c, 0x23, 0x01, 0x93, 0x6c, + 0xd9, 0xef, 0x86, 0xf9, 0x87, 0x3e, 0xd1, 0x0a, 0x6d, 0x80, 0x5b, 0x7b, 0x6f, + 0x6e, 0xbb, 0xaf, 0xb3, 0x0e, 0x56, 0x89, 0x44, 0xd7, 0xb0, 0xbc, 0x74, 0xd5, + 0xc3, 0xf6, 0xde, 0x0d, 0xdc, 0x87, 0xc0, 0xc9, 0x5f, 0xf1, 0x32, 0x16, 0x4b, + 0x38, 0x33, 0xe5, 0xc2, 0x46, 0x23, 0xae, 0x51, 0x18, 0xdd, 0x22, 0xe9, 0x19, + 0x64, 0x99, 0x0a, 0x8f, 0xae, 0x23, 0x38, 0x4e, 0x22, 0xb9, 0xa0, 0xc9, 0x99, + 0x00, 0x68, 0x13, 0x2d, 0xf8, 0xb2, 0x24, 0xc6, 0xd4, 0x4f, 0xca, 0x33, 0x60, + 0x5c, 0x83, 0x17, 0x4d, 0xb8, 0x49, 0x23, 0x9b, 0xe2, 0x99, 0x3e, 0xe6, 0xd7, + 0xbe, 0x08, 0xe2, 0x6f, 0x19, 0x72, 0x1f, 0x87, 0x5a, 0xcd, 0xb8, 0x7e, 0x67, + 0x8e, 0xea, 0x42, 0xae, 0x82, 0x3c, 0x3f, 0x01, 0x01, 0xc8, 0xad, 0x15, 0xdb, + 0xa5, 0xeb, 0xa5, 0x7c, 0xee, 0xae, 0x0c, 0xee, 0x51, 0x3a, 0xca, 0x02, 0x96, + 0x98, 0x01, 0x76, 0x15, 0xe8, 0x8b, 0x49, 0x52, 0x7f, 0x2c, 0x00, 0xf6, 0x52, + 0x39, 0x47, 0x78, 0x70, 0x6c, 0xdb, 0xfe, 0xd8, 0xae, 0x75, 0xa9, 0xda, 0x3b, + 0x70, 0x4d, 0x92, 0xaf, 0x80, 0x19, 0x56, 0xfd, 0xe0, 0x06, 0x62, 0x11, 0xf4, + 0xcf, 0x24, 0xa1, 0xc7, 0x96, 0xc2, 0xd5, 0x16, 0x0d, 0xc3, 0x57, 0xaa, 0xcd, + 0x0b, 0x87, 0xa8, 0xd3, 0x99, 0x69, 0x64, 0xad, 0x31, 0x9b, 0x06, 0x0b, 0x87, + 0xfb, 0x8a, 0x7e, 0xe8, 0xd3, 0x20, 0xb1, 0xdf, 0x5e, 0xcc, 0x2a, 0xf1, 0x7a, + 0x69, 0xb5, 0x88, 0x67, 0x22, 0xb6, 0x7a, 0x27, 0xfa, 0xce, 0x68, 0x3e, 0x63, + 0xd1, 0x7c, 0x41, 0xf7, 0xa3, 0xa3, 0x3a, 0x87, 0x50, 0xeb, 0xab, 0x0a, 0xc7, + 0xf4, 0x52, 0x13, 0x10, 0x1f, 0xf4, 0xce, 0xe2, 0xe1, 0xce, 0x3d, 0x33, 0xba, + 0x96, 0xcc, 0xcf, 0x72, 0x09, 0x4a, 0x73, 0xef, 0xfb, 0xb1, 0x8b, 0x39, 0x55, + 0x97, 0x86, 0x46, 0x75, 0x37, 0xe1, 0x27, 0xd9, 0x90, 0xab, 0x72, 0xd0, 0xbd, + 0xfb, 0x35, 0x34, 0x6f, 0xe4, 0x17, 0x36, 0x00, 0x10, 0xe2, 0xbe, 0x05, 0x42, + 0x3a, 0xe4, 0x89, 0xdb, 0xe0, 0x2d, 0x40, 0x05, 0xa0, 0x53, 0x30, 0xe5, 0x18, + 0x8d, 0xa0, 0x62, 0x69, 0xd5, 0xcb, 0xc2, 0xc3, 0x80, 0x4e, 0x8e, 0x55, 0x9f, + 0xf7, 0x2b, 0x7f, 0x2e, 0x0f, 0xec, 0x1a, 0x23, 0x4b, 0xb2, 0x25, 0x93, 0xdb, + 0x39, 0xd5, 0xb5, 0x75, 0x58, 0xe1, 0xed, 0x82, 0x97, 0x2c, 0x23, 0x66, 0x98, + 0xcf, 0xcf, 0x08, 0xc2, 0x28, 0x54, 0xd8, 0x51, 0x4d, 0x1b, 0x82, 0x4f, 0xb8, + 0x14, 0xa5, 0x20, 0x77, 0xeb, 0x52, 0xc2, 0x67, 0x8c, 0xb1, 0xf0, 0x55, 0x6d, + 0x70, 0x05, 0xc0, 0x90, 0xde, 0xce, 0x13, 0xe9, 0xc6, 0xc2, 0x55, 0x0e, 0x8f, + 0x02, 0x3f, 0xc8, 0x6c, 0x98, 0x00, 0x5d, 0xa4, 0x24, 0x1e, 0x6c, 0x03, 0xcf, + 0x3f, 0xd8, 0x0f, 0x30, 0x5d, 0xd0, 0xea, 0xe4, 0xf8, 0x83, 0xb2, 0x9d, 0x46, + 0x86, 0xb6, 0xab, 0x6d, 0x1a, 0x0a, 0x68, 0x22, 0x9f, 0x7e, 0x64, 0xec, 0x14, + 0x53, 0x7c, 0x6e, 0x3b, 0x10, 0xe0, 0xf2, 0xbb, 0xc5, 0x3e, 0xb9, 0x0c, 0x2f, + 0x6b, 0x56, 0xa6, 0x55, 0xb8, 0x0b, 0xfe, 0xe8, 0x51, 0x5e, 0xf5, 0x31, 0x9c, + 0xe8, 0x7d, 0xbb, 0x13, 0x59, 0xc2, 0x3f, 0xd6, 0x8b, 0xf9, 0x78, 0x34, 0x23, + 0xc7, 0xa7, 0x43, 0xd6, 0xba, 0x4c, 0x59, 0x65, 0xda, 0x59, 0x45, 0x93, 0x6c, + 0x9e, 0xb0, 0xf3, 0x9d, 0xd2, 0xed, 0xc0, 0x97, 0x09, 0x79, 0x82, 0x1f, 0xa3, + 0x45, 0x12, 0xda, 0x44, 0x1b, 0xe9, 0x04, 0xde, 0x6c, 0x4e, 0xf4, 0x16, 0xa7, + 0x8b, 0xe4, 0x20, 0x0e, 0x4a, 0x80, 0x75, 0xac, 0xdf, 0xaa, 0x16, 0xb4, 0x70, + 0x52, 0x55, 0x32, 0x48, 0x4c, 0xa3, 0x9a, 0x7e, 0x91, 0x74, 0x46, 0x28, 0xd4, + 0x20, 0x0b, 0xdc, 0x8b, 0x1f, 0x6e, 0x44, 0x2e, 0xf0, 0x4b, 0xdc, 0xd0, 0x7e, + 0xcb, 0x67, 0x2c, 0x09, 0x92, 0xc4, 0xf9, 0x46, 0xa9, 0x6d, 0x31, 0x08, 0x05, + 0x41, 0xf3, 0xaf, 0x18, 0xd0, 0xbf, 0x07, 0x43, 0x34, 0x03, 0xe6, 0x66, 0x7f, + 0x0a, 0xe8, 0x17, 0x87, 0x28, 0xa0, 0x60, 0xb7, 0x48, 0x10, 0xd1, 0x6f, 0x2a, + 0x7a, 0xcd, 0xdb, 0x2e, 0x50, 0x00, 0x26, 0x1a, 0xe9, 0x02, 0x22, 0xd5, 0xf7, + 0xcf, 0x32, 0xfc, 0x0a, 0xeb, 0x5f, 0xfc, 0x3e, 0x6e, 0x3a, 0x71, 0x4d, 0x32, + 0x9d, 0xa5, 0xd8, 0x95, 0xa9, 0x1f, 0x17, 0x9e, 0x6f, 0x6b, 0x18, 0xbf, 0xc2, + 0xdb, 0x55, 0x35, 0x0f, 0x6c, 0xb6, 0x1c, 0x0c, 0x11, 0x38, 0x86, 0x87, 0x8c, + 0x3e, 0x81, 0xdd, 0xb4, 0xa2, 0xf2, 0x65, 0xd9, 0x08, 0x3e, 0x9c, 0x8c, 0xb0, + 0x14, 0x6d, 0x16, 0x50, 0x6a, 0xf8, 0xd1, 0xdd, 0xea, 0xaf, 0xfd, 0x1a, 0x64, + 0x13, 0x70, 0xae, 0x87, 0x40, 0xbb, 0x62, 0x89, 0x06, 0x19, 0x70, 0xf1, 0x70, + 0x3b, 0x8a, 0xcf, 0x49, 0x74, 0x42, 0x5f, 0x0e, 0x38, 0x36, 0x30, 0x9d, 0x50, + 0xe7, 0xdd, 0x9b, 0x48, 0x51, 0x51, 0x73, 0x80, 0x2b, 0xe0, 0x74, 0x57, 0xe5, + 0x59, 0xa9, 0x42, 0x49, 0x1c, 0x9d, 0x03, 0xd7, 0x38, 0x1a, 0x29, 0xd8, 0x52, + 0x88, 0xf1, 0x28, 0xa1, 0xf6, 0xd9, 0xab, 0x6d, 0xcb, 0xf2, 0xa5, 0xb3, 0xd6, + 0xaf, 0x72, 0x68, 0x8a, 0x34, 0x14, 0x49, 0x6b, 0x05, 0x94, 0x27, 0x3f, 0x02, + 0x29, 0xb7, 0x33, 0x1b, 0x02, 0x6d, 0x03, 0x57, 0x25, 0x35, 0xbd, 0x01, 0x00, + 0xdb, 0xbf, 0x04, 0x41, 0x67, 0xac, 0x2b, 0x3e, 0x27, 0x31, 0x6e, 0xa0, 0x59, + 0x98, 0xe3, 0x3d, 0x4e, 0x30, 0x35, 0x14, 0xbb, 0xbf, 0x78, 0xa4, 0xa5, 0xdd, + 0x10, 0xc3, 0xae, 0x25, 0x00, 0x1b, 0x54, 0xdc, 0xcb, 0x42, 0x46, 0xac, 0x81, + 0x07, 0xfc, 0x66, 0xf1, 0x4f, 0x46, 0x43, 0x8d, 0x35, 0xb2, 0x47, 0xe4, 0x20, + 0x98, 0xb7, 0xe0, 0xc2, 0x0c, 0x46, 0xda, 0xbd, 0x9c, 0x55, 0xa8, 0x8d, 0x25, + 0xf0, 0xd0, 0xff, 0xb6, 0x81, 0x66, 0xa0, 0x52, 0xd7, 0x37, 0xd9, 0x25, 0xce, + 0x84, 0x0b, 0xd8, 0x7c, 0xba, 0x8e, 0xee, 0x8b, 0x60, 0x3e, 0x4c, 0x86, 0x22, + 0x2f, 0xa4, 0xd4, 0x47, 0x67, 0xb5, 0xbd, 0xb9, 0xc3, 0xa6, 0xfc, 0x35, 0x75, + 0x87, 0xb4, 0xfc, 0xec, 0xae, 0xe3, 0x94, 0xda, 0x14, 0x64, 0x18, 0xcb, 0xf7, + 0x62, 0xd7, 0x6a, 0x94, 0xf7, 0x8d, 0xe3, 0xed, 0xa2, 0x1d, 0x80, 0x15, 0x01, + 0x08, 0x6f, 0xc7, 0x97, 0x22, 0x5e, 0xc8, 0x47, 0x95, 0xc6, 0x2e, 0x11, 0xfc, + 0xc2, 0xc4, 0x46, 0x30, 0x56, 0xa2, 0xcf, 0xe3, 0x02, 0xe9, 0xfe, 0x2b, 0x47, + 0x9c, 0xc6, 0x31, 0xc0, 0x07, 0x18, 0x25, 0x57, 0x1a, 0xa7, 0xe7, 0x3e, 0x31, + 0x17, 0x47, 0xd7, 0x6e, 0x44, 0x82, 0x15, 0x35, 0x60, 0x35, 0xc2, 0x12, 0x42, + 0xb0, 0x75, 0xd4, 0xdb, 0xae, 0xf3, 0x70, 0xbb, 0xef, 0x08, 0x91, 0xff, 0xd8, + 0x12, 0xc0, 0xf1, 0xbe, 0x05, 0x00, 0xb6, 0xe9, 0xf0, 0x75, 0x23, 0xe7, 0x9b, + 0xde, 0x28, 0x6f, 0xfa, 0xb3, 0xf8, 0x0b, 0x29, 0xf5, 0x77, 0xbe, 0xa8, 0x35, + 0x4b, 0x5c, 0xd5, 0xc7, 0xc6, 0x2f, 0x75, 0x2a, 0x49, 0x97, 0x55, 0xb6, 0x49, + 0xc4, 0x77, 0xc7, 0x33, 0xd4, 0x2d, 0xce, 0xa1, 0xdb, 0x14, 0x3a, 0xb3, 0x28, + 0xbc, 0x60, 0xc3, 0x8c, 0xe1, 0xa1, 0x14, 0x42, 0x2f, 0xeb, 0x40, 0x45, 0x59, + 0x10, 0x4c, 0x08, 0x77, 0x54, 0x6a, 0xb1, 0x66, 0x98, 0xca, 0xd1, 0xbf, 0x85, + 0xc2, 0xb5, 0x20, 0x3d, 0xa9, 0xdd, 0x29, 0x5d, 0x95, 0x1f, 0x9a, 0xbd, 0xa4, + 0x14, 0xa2, 0x3a, 0xe8, 0xce, 0xe1, 0x32, 0x04, 0x91, 0x55, 0x24, 0x56, 0xa3, + 0xa2, 0xcd, 0xee, 0xdd, 0x58, 0x73, 0x62, 0x07, 0x02, 0x3f, 0x03, 0xad, 0x7a, + 0xdf, 0x2e, 0xba, 0xca, 0x1f, 0x4c, 0x0b, 0x58, 0xcc, 0xb8, 0x0e, 0xb7, 0x17, + 0x4e, 0x21, 0x12, 0x4c, 0xaa, 0xff, 0xca, 0xdd, 0xbd, 0x27, 0x45, 0x74, 0xc2, + 0xb3, 0x2c, 0xbc, 0x7e, 0xa3, 0xde, 0x32, 0x71, 0x8c, 0xb9, 0x86, 0x49, 0x32, + 0x56, 0x96, 0x96, 0x5b, 0x4c, 0x26, 0x0f, 0xde, 0xae, 0x84, 0x01, 0x3a, 0xbc, + 0xd1, 0x18, 0xd2, 0xc3, 0x56, 0x83, 0xfe, 0x9d, 0x11, 0xbe, 0xa0, 0xc8, 0xdf, + 0x03, 0x18, 0x00, 0x00, + ], + txid: [ + 0x22, 0xd9, 0x5d, 0x75, 0xfa, 0x60, 0x75, 0x07, 0xdf, 0x43, 0x0f, 0x1a, 0xf1, + 0x82, 0x43, 0xe3, 0xe4, 0x16, 0x7f, 0xa0, 0x35, 0x3a, 0x7b, 0x69, 0x40, 0xfe, + 0xa2, 0x65, 0xed, 0xcd, 0xa6, 0xa8, + ], + auth_digest: [ + 0xcc, 0x54, 0xf0, 0x52, 0xa5, 0x08, 0x87, 0x9b, 0xd3, 0xcc, 0xd9, 0xe5, 0x95, + 0x7a, 0xcb, 0x04, 0x01, 0x5a, 0xb0, 0x66, 0x92, 0x26, 0xa7, 0x85, 0x91, 0x50, + 0x63, 0x22, 0x3d, 0xb9, 0x6f, 0x08, + ], + amounts: vec![803018142857488, 559207292003968, 576242288915192], + zsf_deposit: 26404918436030, + script_pubkeys: vec![ + vec![0x51, 0x52, 0xac, 0x52, 0x6a, 0x53], + vec![0x63, 0x51, 0x53], + vec![0x65, 0x51, 0x52, 0x52], + ], + transparent_input: Some(1), + sighash_shielded: [ + 0x86, 0x72, 0xe6, 0xc2, 0xaa, 0x1e, 0xc2, 0x8e, 0xe8, 0x16, 0xfd, 0x5c, 0x31, + 0xb7, 0x50, 0x8c, 0xc4, 0x30, 0x04, 0x47, 0x13, 0x42, 0x56, 0x41, 0xd1, 0xfe, + 0x7d, 0x8d, 0x79, 0x03, 0x5e, 0x8b, + ], + sighash_all: Some([ + 0xa4, 0xd4, 0xde, 0xcd, 0xe8, 0x1f, 0x67, 0xa1, 0xe4, 0xfa, 0x23, 0x29, 0xaa, + 0x19, 0x52, 0xd3, 0xf6, 0x4f, 0xe5, 0x02, 0x41, 0xad, 0x52, 0xc0, 0xde, 0x91, + 0xb9, 0x9b, 0x13, 0xe8, 0xb6, 0xdd, + ]), + sighash_none: Some([ + 0x1c, 0xbd, 0xb1, 0x82, 0x19, 0x93, 0x5a, 0xa1, 0xc9, 0x28, 0xd3, 0x23, 0x09, + 0x33, 0x0b, 0xc9, 0xef, 0x96, 0x94, 0x02, 0x67, 0xb2, 0x45, 0x08, 0xad, 0x45, + 0xc1, 0x33, 0x26, 0x28, 0xd3, 0xed, + ]), + sighash_single: Some([ + 0x8d, 0x1b, 0xe4, 0x89, 0x05, 0x0b, 0x9e, 0x58, 0x31, 0xf8, 0xc6, 0x38, 0xa3, + 0xdd, 0xa6, 0x71, 0x41, 0xfe, 0xbe, 0xa1, 0x4f, 0xd5, 0xa8, 0x01, 0x6f, 0x0d, + 0x02, 0x78, 0x13, 0xdb, 0x66, 0x42, + ]), + sighash_all_anyone: Some([ + 0xd0, 0xd9, 0x48, 0x2a, 0x87, 0x08, 0xb1, 0xfc, 0x30, 0x43, 0x94, 0x24, 0xa1, + 0xf0, 0xc5, 0x59, 0x57, 0xa7, 0xe3, 0xc6, 0x36, 0xae, 0xbf, 0xd3, 0xfc, 0xa7, + 0x84, 0x22, 0xaf, 0x36, 0x1d, 0x6e, + ]), + sighash_none_anyone: Some([ + 0xe0, 0xcb, 0xa6, 0x64, 0xda, 0xd7, 0x3a, 0xaf, 0x49, 0x77, 0x8c, 0xae, 0x81, + 0x71, 0x5f, 0xd6, 0x63, 0x5e, 0xc8, 0x0f, 0xf6, 0x97, 0x28, 0x80, 0x86, 0xfb, + 0xf7, 0x7e, 0x2a, 0xde, 0x35, 0x6f, + ]), + sighash_single_anyone: Some([ + 0x8a, 0x16, 0x9b, 0x19, 0x11, 0xf5, 0x1a, 0x38, 0x9d, 0xcc, 0x70, 0x9c, 0x78, + 0xb3, 0xc9, 0xad, 0xcb, 0x12, 0x5d, 0xe3, 0x1c, 0x71, 0x33, 0xf1, 0xc6, 0x31, + 0x3a, 0xa3, 0xe6, 0x75, 0x7b, 0xc9, + ]), + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4a, + 0x26, 0x6f, 0x12, 0x2a, 0x96, 0xcf, 0x14, 0x01, 0xfe, 0x0b, 0x71, 0x0d, 0x7f, + 0x06, 0x34, 0x00, 0xc4, 0xfc, 0xe9, 0x96, 0x9d, 0xc6, 0xf0, 0x12, 0xaa, 0x8d, + 0xaa, 0x53, 0xd8, 0x70, 0x81, 0x06, 0xef, 0xe6, 0x8f, 0xc3, 0xe1, 0x2d, 0xfe, + 0xc8, 0xa8, 0xe8, 0x7f, 0x53, 0x06, 0x65, 0x51, 0x6a, 0xac, 0x63, 0x6a, 0x4a, + 0x61, 0x92, 0xfd, 0x00, 0x00, 0x00, 0x04, 0x7f, 0x6d, 0xeb, 0x59, 0xe3, 0xfd, + 0x52, 0x00, 0x42, 0x65, 0xba, 0xa3, 0xf8, 0xae, 0x32, 0x26, 0x7a, 0x85, 0x00, + 0x5d, 0x5d, 0xda, 0xf6, 0x6c, 0x6b, 0x0b, 0x11, 0xc5, 0xbd, 0x6b, 0x45, 0x0f, + 0x5d, 0xda, 0xe9, 0x18, 0x7e, 0x77, 0xd7, 0xd5, 0x3c, 0xe6, 0xf9, 0x1d, 0x86, + 0x5d, 0x5c, 0x4d, 0x8e, 0x3a, 0xd1, 0x0c, 0x44, 0xe4, 0xc2, 0x80, 0x71, 0x0f, + 0xa1, 0x23, 0xaf, 0xc4, 0xa2, 0x3a, 0x96, 0x71, 0x2b, 0xe5, 0x01, 0x2f, 0xb9, + 0x9b, 0x72, 0xc3, 0x69, 0x54, 0x10, 0xc8, 0x91, 0xbf, 0x88, 0xcf, 0xf6, 0x08, + 0xcf, 0xcb, 0xf5, 0x28, 0x85, 0x9d, 0xd6, 0xa9, 0x57, 0x94, 0x79, 0x2f, 0xa5, + 0xe2, 0x88, 0x10, 0xc7, 0xce, 0x88, 0x0a, 0x7a, 0xb4, 0x73, 0xa1, 0xfe, 0x1c, + 0x20, 0x05, 0x5e, 0x27, 0x06, 0xe0, 0x2a, 0x48, 0xcb, 0x11, 0x19, 0x12, 0xec, + 0x92, 0x82, 0x8c, 0x12, 0x20, 0xdb, 0x89, 0x51, 0xa0, 0x7b, 0xb0, 0x91, 0x08, + 0x92, 0x1e, 0xc9, 0x69, 0x19, 0x7d, 0x38, 0x79, 0xc9, 0x64, 0xc3, 0xd6, 0xbc, + 0x1c, 0x5c, 0xcc, 0x75, 0xa3, 0x01, 0x60, 0xed, 0x60, 0x3d, 0xab, 0x85, 0xcf, + 0x32, 0x91, 0x71, 0xae, 0xef, 0x49, 0xf8, 0x2d, 0x54, 0x26, 0x8b, 0x99, 0xbb, + 0x0c, 0x0b, 0x34, 0x1f, 0x14, 0x99, 0x6a, 0xf9, 0xb3, 0x1b, 0x42, 0xd7, 0x13, + 0x5f, 0x1f, 0xfc, 0x79, 0x56, 0xe6, 0x45, 0x65, 0x35, 0xfb, 0x08, 0x44, 0xe7, + 0x9f, 0xdc, 0xd7, 0x11, 0x85, 0x08, 0x9b, 0xc2, 0xa7, 0xbc, 0xd3, 0xa6, 0xc2, + 0x62, 0x09, 0x88, 0x4c, 0x3f, 0x36, 0x5c, 0x77, 0x23, 0x71, 0x27, 0x55, 0x0c, + 0x50, 0xdd, 0x77, 0x10, 0x90, 0x53, 0x22, 0x1e, 0xf5, 0x0a, 0xc5, 0x58, 0x0a, + 0xd0, 0xb0, 0x7b, 0xcf, 0xb8, 0x67, 0x4c, 0x52, 0x38, 0xed, 0xa6, 0xe9, 0x68, + 0x78, 0x0d, 0xe5, 0xc0, 0x0d, 0x77, 0xc4, 0xbc, 0x57, 0x14, 0x2b, 0xd9, 0x14, + 0x30, 0x5c, 0x98, 0x9d, 0x45, 0x3a, 0x10, 0xa7, 0xbd, 0xc6, 0x52, 0x70, 0xf7, + 0x3d, 0xcf, 0xd4, 0x2b, 0xa7, 0x7d, 0x4f, 0x70, 0x7e, 0x11, 0x2a, 0xbd, 0x07, + 0x3e, 0x8c, 0xa7, 0xb4, 0x0d, 0xa7, 0x2b, 0x89, 0x9b, 0x43, 0x4f, 0xc2, 0x82, + 0xc0, 0x6c, 0x4d, 0x34, 0x12, 0x89, 0x08, 0x6a, 0xe6, 0xe8, 0x38, 0x56, 0xbb, + 0x3b, 0x31, 0x1f, 0xc8, 0xe0, 0x83, 0xc3, 0x54, 0xd8, 0x9e, 0x73, 0x54, 0xfd, + 0x1c, 0xb8, 0x6c, 0x73, 0x39, 0xa9, 0x47, 0x59, 0x42, 0x8c, 0xf0, 0xba, 0x40, + 0x64, 0x7b, 0x1b, 0x0f, 0xb3, 0x60, 0xea, 0xd5, 0x74, 0x7b, 0x73, 0xb8, 0x3d, + 0x97, 0xd3, 0x1a, 0x42, 0x16, 0xe6, 0x5c, 0xd0, 0x32, 0xdd, 0x07, 0x36, 0x99, + 0x9e, 0x93, 0x91, 0x46, 0xd6, 0x5f, 0xa7, 0xf1, 0xe8, 0x1b, 0xab, 0xb1, 0x4c, + 0x3e, 0x26, 0x0b, 0xa3, 0x1c, 0x2a, 0x71, 0xe6, 0x8b, 0x13, 0x27, 0xa8, 0xde, + 0x05, 0x98, 0x71, 0x58, 0x2e, 0x80, 0xba, 0x47, 0xe7, 0x8a, 0x06, 0x14, 0x21, + 0x60, 0x0c, 0x0e, 0x3f, 0x49, 0xf2, 0xc9, 0xa6, 0xae, 0xfa, 0x74, 0x3b, 0x7e, + 0x8a, 0xd8, 0xaa, 0x1b, 0xcb, 0xd5, 0x84, 0x31, 0x76, 0xfe, 0x9e, 0xcb, 0x33, + 0x28, 0x05, 0xbc, 0x39, 0x5f, 0x87, 0x7e, 0x04, 0xe0, 0x5c, 0x19, 0x6b, 0x11, + 0x0f, 0xec, 0xf2, 0x10, 0x5d, 0xdf, 0xb3, 0xd6, 0x62, 0xe9, 0xd3, 0x6a, 0x7a, + 0xe9, 0x41, 0xd0, 0xf1, 0x17, 0xf3, 0x5b, 0x36, 0xc3, 0x0a, 0x1b, 0x15, 0x1a, + 0xa6, 0xeb, 0x14, 0x79, 0xd9, 0x58, 0x35, 0xe1, 0x76, 0xf2, 0x3a, 0xe1, 0x08, + 0x20, 0x4f, 0x39, 0x70, 0x90, 0x51, 0x85, 0xe0, 0x8f, 0xf5, 0xe3, 0xbd, 0x68, + 0xff, 0x2b, 0x9e, 0xff, 0xd7, 0x5a, 0x1c, 0x5f, 0x48, 0x2b, 0xd2, 0x78, 0x15, + 0xa7, 0x33, 0x80, 0x4b, 0x55, 0x35, 0x3e, 0x1d, 0x0e, 0x98, 0x45, 0x43, 0x6b, + 0x9b, 0xf4, 0x00, 0x34, 0xab, 0xf1, 0xe5, 0x45, 0x6e, 0x4a, 0x88, 0x77, 0xdc, + 0x87, 0x4b, 0xd7, 0x72, 0x62, 0x7a, 0x65, 0x44, 0xdf, 0xd9, 0x41, 0xc6, 0x73, + 0x6a, 0x9d, 0x45, 0x00, 0x9f, 0x32, 0xcd, 0xf9, 0x9b, 0xaa, 0xac, 0x8c, 0x69, + 0x9f, 0xfa, 0xc3, 0x0a, 0x7b, 0x50, 0x9a, 0x3a, 0x3b, 0xcf, 0x2f, 0x19, 0x64, + 0x25, 0xdc, 0xb5, 0xed, 0xed, 0x87, 0xf9, 0xfe, 0x6a, 0xc4, 0x33, 0x5b, 0xe4, + 0x5d, 0xd0, 0x55, 0xf3, 0xee, 0x3c, 0xcf, 0xef, 0x45, 0x90, 0xdb, 0xa2, 0xb5, + 0x8c, 0xee, 0xfc, 0x7e, 0x69, 0x51, 0x4e, 0xae, 0x54, 0xa8, 0x3a, 0x95, 0xfd, + 0xa6, 0xc5, 0x8f, 0xaa, 0x2f, 0xa5, 0xea, 0x90, 0xcc, 0xc8, 0x7f, 0xc0, 0x8e, + 0x47, 0xb3, 0xd4, 0x35, 0x14, 0xb7, 0x1b, 0xf9, 0x92, 0x58, 0x4e, 0x74, 0xe0, + 0x55, 0x43, 0x16, 0xd1, 0x74, 0xc9, 0x05, 0x1d, 0x1d, 0x94, 0x35, 0xfe, 0x0c, + 0x17, 0xa5, 0x2c, 0x34, 0x0d, 0x0a, 0xab, 0xd2, 0x69, 0xc8, 0x2f, 0x76, 0xea, + 0xf2, 0xbf, 0x5c, 0x85, 0x56, 0x3c, 0x64, 0x5d, 0xa6, 0x38, 0x70, 0x3e, 0x95, + 0x98, 0xe2, 0x3d, 0xc3, 0x60, 0xb9, 0x8c, 0xde, 0x1e, 0x53, 0xf7, 0x90, 0xb4, + 0x98, 0x5b, 0x22, 0x99, 0x6f, 0x95, 0x9f, 0x01, 0x5c, 0x48, 0x52, 0x08, 0x60, + 0xb0, 0x1e, 0xc0, 0xf9, 0xd6, 0x0d, 0x0e, 0xea, 0xf7, 0x24, 0x7a, 0xe6, 0x4e, + 0xc5, 0xcd, 0xaf, 0x54, 0x76, 0x11, 0x98, 0xc0, 0x86, 0x0e, 0xd2, 0x19, 0xeb, + 0x0f, 0xf4, 0xe3, 0x11, 0xa8, 0x4c, 0xc0, 0x6f, 0xce, 0x52, 0x11, 0x6f, 0x85, + 0xe0, 0xbd, 0x8a, 0x30, 0x4f, 0x8f, 0x7b, 0x88, 0x99, 0x77, 0x1e, 0x94, 0x1f, + 0xca, 0x76, 0x69, 0x89, 0x1d, 0x8f, 0x90, 0x36, 0x0b, 0x09, 0xc1, 0xe1, 0x5e, + 0x61, 0x7b, 0x53, 0x21, 0x92, 0xd7, 0x6d, 0xb5, 0xaf, 0x39, 0xbc, 0x92, 0x96, + 0xd6, 0x5a, 0xbd, 0xe8, 0xa9, 0x35, 0x0f, 0xca, 0x91, 0x05, 0xf3, 0x5b, 0x57, + 0xc0, 0xff, 0x82, 0x80, 0xe5, 0xc5, 0x45, 0x01, 0xa2, 0xbe, 0x5f, 0x51, 0x1c, + 0xce, 0x99, 0xd8, 0x5b, 0xcf, 0x2d, 0xb7, 0x04, 0x60, 0xc4, 0x18, 0xe2, 0x2c, + 0x23, 0xef, 0x5f, 0x23, 0x41, 0x0d, 0x15, 0x98, 0xce, 0xfb, 0x3c, 0x7d, 0x50, + 0x07, 0xb9, 0xa6, 0xb9, 0x02, 0xa9, 0xcc, 0x37, 0x4f, 0xb1, 0xc6, 0xfd, 0x25, + 0x2f, 0xea, 0x09, 0xf0, 0x1f, 0xdc, 0x7b, 0xc3, 0x28, 0x50, 0x67, 0x38, 0x2a, + 0xbf, 0x23, 0x9f, 0x6f, 0x0b, 0xb9, 0x53, 0xe3, 0xb0, 0x0a, 0xfe, 0xf1, 0x62, + 0xc7, 0x21, 0xbe, 0xab, 0x8c, 0x63, 0x1c, 0x4d, 0x5e, 0x13, 0xd4, 0x4e, 0x44, + 0x5b, 0x04, 0x08, 0x1f, 0xcf, 0x53, 0x00, 0x9b, 0x60, 0x4d, 0x04, 0x08, 0x07, + 0x46, 0xa0, 0xcc, 0x0a, 0x69, 0x5c, 0x65, 0xe6, 0xad, 0x63, 0xa6, 0x4d, 0xaa, + 0x7d, 0x41, 0x03, 0xc4, 0x78, 0xbd, 0xdf, 0x9c, 0x17, 0xb0, 0xcc, 0xc4, 0x5d, + 0xfd, 0x3a, 0xb7, 0x39, 0x16, 0xaa, 0x9a, 0xf3, 0x5c, 0x05, 0x0c, 0xeb, 0xb9, + 0x5c, 0xb9, 0xcd, 0x12, 0xce, 0x28, 0x0e, 0xd4, 0x7e, 0x49, 0xa6, 0x64, 0x2f, + 0x32, 0xcb, 0x96, 0x0f, 0x29, 0x0c, 0x9a, 0xcc, 0xae, 0x0b, 0xea, 0xda, 0xe9, + 0xa5, 0xc1, 0x01, 0xa0, 0xfa, 0xbe, 0x0c, 0xba, 0xc7, 0xab, 0x79, 0x23, 0xdc, + 0xe0, 0xd8, 0x2b, 0xd6, 0xa1, 0xb3, 0x38, 0x74, 0x96, 0x36, 0xa2, 0x14, 0xa7, + 0xea, 0x31, 0x43, 0x7a, 0x1f, 0xd0, 0xc7, 0xb4, 0x3d, 0xea, 0x5f, 0xb6, 0x9f, + 0x93, 0x04, 0x4f, 0x9c, 0x8f, 0x70, 0xfb, 0xd2, 0x99, 0xf9, 0x6b, 0xf7, 0xce, + 0x7c, 0xe1, 0xd0, 0xc5, 0x3b, 0xbc, 0x99, 0x2d, 0x4f, 0x06, 0xcb, 0x52, 0xdb, + 0xa1, 0xc7, 0x8c, 0xd6, 0x54, 0xcc, 0xca, 0x0b, 0xd8, 0xb2, 0x72, 0x23, 0x32, + 0xd8, 0xbb, 0xbf, 0xf0, 0x81, 0x34, 0xdb, 0xaf, 0xf6, 0xe4, 0xfa, 0x4e, 0xe0, + 0x60, 0x67, 0xbc, 0xa2, 0xb7, 0x50, 0x57, 0x2c, 0x6e, 0x31, 0x40, 0xd1, 0xb6, + 0x69, 0xc9, 0x59, 0x92, 0x5e, 0xba, 0xb0, 0xb5, 0x24, 0x2c, 0xee, 0xb0, 0x8c, + 0x4f, 0x14, 0xde, 0x19, 0x02, 0x66, 0x12, 0x97, 0x20, 0x16, 0x29, 0xe0, 0x88, + 0xb3, 0xe5, 0x5d, 0x52, 0xc6, 0x3d, 0xca, 0xf1, 0x7d, 0x60, 0x4f, 0x6f, 0xb9, + 0x4a, 0x1f, 0x24, 0x25, 0x2f, 0x9f, 0x01, 0xe6, 0x4a, 0x5c, 0x94, 0x03, 0x58, + 0xda, 0x04, 0xc6, 0x13, 0xb4, 0x65, 0xa0, 0x0c, 0x01, 0xca, 0x06, 0xab, 0x89, + 0xd1, 0xbd, 0x11, 0x0e, 0xe8, 0x23, 0x91, 0x19, 0x20, 0x22, 0xa7, 0x5b, 0xe2, + 0xfe, 0xc8, 0xc8, 0x4e, 0x8c, 0xc7, 0xe8, 0x60, 0xa7, 0x2c, 0xfa, 0xef, 0xc0, + 0x86, 0xb8, 0xf4, 0x3e, 0xc6, 0x83, 0x5a, 0x40, 0x66, 0x45, 0x81, 0xcb, 0xfd, + 0x4b, 0xb5, 0xc6, 0x45, 0xb8, 0x35, 0x5c, 0xdf, 0xd4, 0x29, 0x23, 0x05, 0xdd, + 0x2d, 0x73, 0x7a, 0x68, 0x96, 0xd1, 0xa1, 0x75, 0xfc, 0x08, 0x15, 0xce, 0xe8, + 0x29, 0x55, 0x57, 0x53, 0x2f, 0xff, 0xef, 0x0e, 0xf3, 0x78, 0xfb, 0x26, 0xb0, + 0xab, 0x45, 0xe6, 0x8b, 0xad, 0xc0, 0x8c, 0x4e, 0x1c, 0xfe, 0x42, 0xe4, 0xaf, + 0xdd, 0xa2, 0x57, 0xba, 0x6a, 0x82, 0x17, 0xb8, 0x4a, 0x1f, 0xe2, 0xc7, 0x55, + 0x7b, 0xab, 0x89, 0x01, 0x68, 0x5e, 0x97, 0x89, 0x25, 0x90, 0x0e, 0x1a, 0x17, + 0xa8, 0x03, 0x1b, 0x23, 0x78, 0xdf, 0xb8, 0x2e, 0x9e, 0x42, 0x38, 0xaf, 0x58, + 0x6b, 0x30, 0x9f, 0xb0, 0x20, 0x76, 0x5e, 0x13, 0x16, 0x67, 0x56, 0x41, 0xf6, + 0xa8, 0x98, 0x76, 0xb9, 0x2b, 0xe8, 0x98, 0xeb, 0x65, 0x82, 0xdf, 0x85, 0x42, + 0x59, 0xa5, 0x03, 0xd9, 0xcb, 0x4f, 0x99, 0xe3, 0xa2, 0x95, 0x77, 0xa0, 0xee, + 0x91, 0x73, 0x97, 0xfb, 0xe8, 0xef, 0x5d, 0xe8, 0x9d, 0x69, 0x97, 0x43, 0x5a, + 0xc5, 0xe0, 0x62, 0xb1, 0x59, 0xc8, 0x27, 0xf8, 0xed, 0xc8, 0xc6, 0xf1, 0xb6, + 0xe6, 0x33, 0xdc, 0xe4, 0x46, 0x49, 0x3f, 0x9d, 0x33, 0x91, 0xc4, 0xde, 0x13, + 0xd1, 0x4e, 0x75, 0x91, 0xd5, 0x0c, 0xf8, 0x38, 0xff, 0xf9, 0x6a, 0x78, 0x82, + 0x7c, 0x0a, 0xb3, 0x1f, 0x77, 0xd1, 0xda, 0x33, 0x1c, 0x2c, 0x19, 0x0e, 0x8f, + 0x18, 0x30, 0x23, 0xff, 0x2d, 0x0e, 0x22, 0xf6, 0xb2, 0x3b, 0x92, 0xfe, 0x07, + 0xaa, 0x4b, 0x16, 0x57, 0xf6, 0xde, 0x97, 0x68, 0x25, 0xa3, 0x80, 0x88, 0x4f, + 0x63, 0xf7, 0x6a, 0x08, 0xad, 0xca, 0x9f, 0xa8, 0x94, 0x0e, 0x7a, 0x43, 0x16, + 0x2b, 0x42, 0x39, 0xdb, 0xd9, 0x45, 0xf2, 0x53, 0x1a, 0xab, 0x33, 0x48, 0x3f, + 0x52, 0x12, 0x24, 0xf7, 0xce, 0xf1, 0x31, 0x0a, 0x2e, 0xd0, 0xc1, 0x5e, 0xc4, + 0x8f, 0x6e, 0xe5, 0x64, 0x92, 0x59, 0x02, 0x3a, 0xe9, 0x0d, 0xc2, 0xd2, 0x9c, + 0x71, 0xa7, 0xbf, 0xd9, 0xcb, 0xee, 0xaa, 0xcb, 0x12, 0x08, 0x5b, 0x08, 0x52, + 0xe0, 0xf4, 0x70, 0xcc, 0x47, 0xba, 0x97, 0xa9, 0xca, 0x83, 0x65, 0x3f, 0xd2, + 0x4d, 0x43, 0x33, 0xed, 0xf1, 0xb2, 0xe9, 0x0b, 0xb4, 0xa8, 0x42, 0x66, 0x38, + 0x58, 0x57, 0xca, 0x25, 0xe6, 0xea, 0x49, 0x01, 0x79, 0x2d, 0x25, 0xd2, 0x01, + 0xff, 0x2c, 0x7c, 0x89, 0x3b, 0x19, 0x0f, 0x47, 0xf8, 0x32, 0xfd, 0xcb, 0xa8, + 0x7b, 0x48, 0x29, 0xd9, 0xf1, 0x05, 0x9e, 0xb6, 0x7a, 0x67, 0xc8, 0xe3, 0x6c, + 0xf4, 0xca, 0xe3, 0xb2, 0xac, 0xe1, 0x34, 0x87, 0x09, 0x11, 0x9d, 0xa3, 0x4a, + 0x7c, 0x62, 0xb3, 0xf5, 0x06, 0x6b, 0x24, 0xb9, 0x2f, 0xbb, 0x39, 0xb6, 0xc4, + 0x8b, 0x9d, 0x59, 0x45, 0xe2, 0x84, 0x57, 0xa3, 0xba, 0xd1, 0xef, 0xa7, 0xaf, + 0x62, 0x6d, 0xd7, 0x59, 0x58, 0xd0, 0xed, 0x9c, 0xa8, 0x9a, 0x2a, 0x47, 0xaf, + 0xc3, 0xa7, 0xa6, 0x48, 0xb2, 0x55, 0x24, 0x65, 0x8a, 0xdb, 0x3b, 0x91, 0x0a, + 0xec, 0x9d, 0x47, 0x4c, 0x7e, 0x88, 0x0d, 0xff, 0x8c, 0x86, 0x08, 0xd5, 0x29, + 0xe2, 0xeb, 0x34, 0xd2, 0xd5, 0x71, 0x47, 0xec, 0xb3, 0x7f, 0x7c, 0x6b, 0xab, + 0x6e, 0x07, 0x8a, 0xe4, 0x2b, 0x97, 0x5f, 0x5c, 0x3e, 0xb1, 0xaa, 0xc5, 0x74, + 0x19, 0xcc, 0x13, 0x96, 0xfe, 0xfd, 0x36, 0x2b, 0x35, 0xa6, 0x9d, 0xdd, 0x3d, + 0xe8, 0x96, 0x34, 0x31, 0xb1, 0x59, 0x50, 0x43, 0x43, 0xa1, 0xbb, 0xd4, 0xea, + 0x93, 0xfc, 0x34, 0xc3, 0x41, 0x38, 0xe8, 0xdc, 0x07, 0x63, 0xee, 0x6f, 0x48, + 0xc3, 0x2d, 0x13, 0xfc, 0x9b, 0x8b, 0xd3, 0x83, 0xaa, 0x18, 0x6f, 0x6a, 0x2c, + 0xc7, 0xc5, 0x79, 0xfc, 0x27, 0xca, 0x6b, 0x24, 0x6e, 0x0d, 0xd8, 0x69, 0x74, + 0x4e, 0xe0, 0x81, 0x34, 0x44, 0xe5, 0xc2, 0x1d, 0x53, 0xf7, 0x8b, 0x57, 0x01, + 0x4a, 0xc4, 0xd8, 0x55, 0xc7, 0x06, 0x7b, 0xca, 0x44, 0x1f, 0xf1, 0x19, 0x10, + 0x60, 0x9e, 0x4c, 0xa7, 0x83, 0xc9, 0xb4, 0x00, 0x9d, 0xd2, 0x4f, 0xce, 0xd3, + 0x89, 0x0a, 0xe1, 0x7c, 0x04, 0x12, 0x3f, 0x48, 0x49, 0x77, 0x33, 0xc4, 0xec, + 0x11, 0xa6, 0xd5, 0x55, 0x0f, 0x0c, 0x14, 0x11, 0xdb, 0x62, 0x42, 0x2d, 0xca, + 0x01, 0x17, 0x08, 0xe8, 0xfa, 0x86, 0x37, 0x9f, 0xde, 0x5a, 0x16, 0x5b, 0x14, + 0xf8, 0x24, 0x53, 0xea, 0x5c, 0x10, 0xb9, 0xe6, 0x16, 0x4d, 0xde, 0x27, 0x48, + 0x33, 0x02, 0x98, 0x7d, 0xa7, 0x87, 0x47, 0x0a, 0xdd, 0x2d, 0x18, 0x88, 0x0d, + 0xf3, 0xae, 0x74, 0xf1, 0x4f, 0xca, 0x63, 0x9a, 0x60, 0x33, 0xcb, 0x3d, 0x0f, + 0xb3, 0x0e, 0x8b, 0x0a, 0xdd, 0xac, 0x8c, 0x7d, 0x81, 0x6f, 0x68, 0x95, 0x9a, + 0x66, 0xa7, 0x00, 0x48, 0x81, 0x84, 0x39, 0x35, 0x71, 0x73, 0x16, 0xbe, 0xa7, + 0x7c, 0x70, 0x86, 0x1c, 0xf5, 0x47, 0xf4, 0x5b, 0x3d, 0x00, 0x1b, 0x70, 0xfa, + 0x58, 0xed, 0x94, 0xbc, 0x62, 0xa3, 0x6d, 0x40, 0x2b, 0x9e, 0xf2, 0x11, 0x80, + 0x49, 0x3d, 0x78, 0x7c, 0x71, 0x0f, 0x36, 0xfd, 0x5c, 0xf7, 0x22, 0xc9, 0x5d, + 0xd5, 0xa3, 0xd3, 0xa0, 0x44, 0x1e, 0x71, 0x8e, 0x1c, 0x09, 0xb4, 0xc2, 0x46, + 0x08, 0x8c, 0xd1, 0x67, 0xb3, 0x93, 0xcc, 0x19, 0xb8, 0x2e, 0xcb, 0x23, 0x36, + 0x98, 0x81, 0xb3, 0xc0, 0x91, 0xae, 0x86, 0xc3, 0x0a, 0x3c, 0xcf, 0x8f, 0x8a, + 0xd7, 0x96, 0x08, 0x3e, 0xb9, 0x64, 0x35, 0x9a, 0xb0, 0x30, 0xab, 0xc6, 0xfd, + 0x0a, 0xa0, 0x72, 0x60, 0xaa, 0xd9, 0x94, 0x3a, 0xc5, 0x6b, 0xd4, 0x63, 0x29, + 0x4c, 0x90, 0x0e, 0x6f, 0xaa, 0xc9, 0xf3, 0xca, 0x42, 0xe9, 0xd6, 0x2e, 0xb9, + 0xdf, 0xa8, 0x91, 0x95, 0xc4, 0xa0, 0xe4, 0x2d, 0xf6, 0x8b, 0x9a, 0x04, 0x24, + 0xbd, 0xc8, 0x00, 0x50, 0xdc, 0x7d, 0x85, 0x81, 0x72, 0x22, 0xf5, 0xd1, 0xb8, + 0xa6, 0x08, 0x35, 0x16, 0xae, 0x38, 0xae, 0xd9, 0x33, 0xa0, 0x5f, 0xe7, 0xae, + 0xf4, 0xf9, 0x30, 0xb7, 0xbd, 0x22, 0x76, 0x34, 0xe4, 0xce, 0x7b, 0xe2, 0xde, + 0x82, 0x96, 0x6a, 0x43, 0xa1, 0x4f, 0x92, 0x6b, 0xa9, 0x55, 0x04, 0xfe, 0x3c, + 0x12, 0x43, 0x62, 0xd6, 0x54, 0x88, 0xd5, 0x42, 0xa4, 0x10, 0xa0, 0xcc, 0xca, + 0x8f, 0xc5, 0xba, 0x96, 0x74, 0x0e, 0xb5, 0x77, 0x5d, 0x8c, 0x11, 0x4e, 0xbe, + 0x5a, 0x5b, 0xd4, 0x53, 0x7f, 0xe6, 0x38, 0xb8, 0xfc, 0x07, 0xf6, 0x34, 0x05, + 0x85, 0x04, 0x8c, 0x1a, 0x5d, 0xd6, 0xc5, 0x31, 0xf6, 0xcc, 0x2a, 0xda, 0x24, + 0x14, 0x84, 0x75, 0x1f, 0x96, 0x0f, 0x71, 0x5c, 0x42, 0xc5, 0xea, 0x2e, 0x49, + 0xb5, 0x07, 0x7e, 0x21, 0x42, 0xe4, 0x59, 0x1c, 0x43, 0x0c, 0x31, 0xb9, 0x65, + 0xc2, 0x29, 0xc6, 0x1e, 0x99, 0x0c, 0x19, 0xea, 0x2a, 0xb3, 0x8f, 0xcd, 0xf5, + 0xc2, 0xd4, 0x80, 0x5e, 0x1f, 0xb0, 0xed, 0x87, 0x39, 0xa0, 0x67, 0x72, 0x0d, + 0x8b, 0xa0, 0x35, 0xbd, 0x2e, 0x0d, 0x32, 0x81, 0x77, 0xa1, 0x39, 0xc8, 0x11, + 0x03, 0x6e, 0x34, 0x1d, 0x66, 0xac, 0x84, 0x41, 0x24, 0xda, 0xf4, 0x2e, 0x2f, + 0xae, 0xe0, 0x2f, 0x58, 0x8a, 0xfb, 0xd8, 0x78, 0x54, 0x07, 0xdb, 0x21, 0x73, + 0x02, 0xd6, 0x09, 0x4c, 0x7c, 0x2d, 0x42, 0x7e, 0x01, 0xc7, 0xd9, 0x2e, 0x68, + 0xf2, 0x22, 0x91, 0x7e, 0xde, 0xc8, 0x20, 0xae, 0xbe, 0x2c, 0xbe, 0xfb, 0xbd, + 0x13, 0x66, 0xbd, 0xde, 0xb0, 0x7e, 0xc6, 0x0b, 0xd3, 0xaf, 0xae, 0x9d, 0xfc, + 0xb8, 0x7a, 0x07, 0x91, 0x8b, 0xc9, 0xa4, 0x74, 0x32, 0x7a, 0xe4, 0x62, 0x44, + 0xde, 0x3c, 0x8d, 0xdc, 0x33, 0x18, 0x9a, 0x9a, 0x56, 0xd5, 0xb2, 0x1e, 0x13, + 0x74, 0x0e, 0xb5, 0x6c, 0x52, 0xfe, 0x14, 0x3e, 0xd3, 0x94, 0x64, 0xd4, 0x74, + 0x43, 0xed, 0x86, 0x5d, 0x56, 0x88, 0xef, 0xd3, 0xe0, 0x3c, 0x1f, 0x40, 0x2f, + 0x13, 0x63, 0x83, 0xe5, 0x35, 0xce, 0x33, 0xbc, 0x95, 0x57, 0x65, 0xa0, 0x77, + 0x83, 0xd7, 0x31, 0x36, 0x74, 0x73, 0xac, 0x8b, 0xbe, 0xc0, 0x2c, 0xa1, 0xea, + 0xfc, 0x52, 0xcf, 0xa0, 0xd5, 0xca, 0xd2, 0x86, 0x4b, 0xc3, 0x0a, 0x0f, 0x19, + 0x88, 0x5a, 0x78, 0xa3, 0x49, 0xbe, 0x5e, 0xf2, 0x8b, 0x85, 0xad, 0x35, 0xb8, + 0x0a, 0x7c, 0x02, 0x4b, 0x68, 0x44, 0x79, 0x4e, 0x82, 0x72, 0x2f, 0x8c, 0xf3, + 0xbb, 0xcc, 0x74, 0x37, 0x77, 0xde, 0xce, 0x6f, 0x56, 0xb0, 0x51, 0xe2, 0xec, + 0x02, 0x2c, 0x30, 0x74, 0x20, 0xf9, 0x8a, 0x30, 0x76, 0x2c, 0x0a, 0x9b, 0x40, + 0x01, 0xa7, 0x35, 0xa1, 0xe5, 0x89, 0xe3, 0x89, 0x7d, 0x97, 0x18, 0x82, 0x1b, + 0xf5, 0x08, 0xd3, 0x88, 0x0d, 0x4a, 0xf9, 0x60, 0x5d, 0x23, 0xbf, 0x81, 0xf1, + 0xf0, 0xb9, 0xef, 0x2f, 0x7b, 0xf6, 0xb0, 0x04, 0x6e, 0xec, 0x4b, 0xa4, 0xa4, + 0x06, 0x4c, 0x97, 0x55, 0x9e, 0x1e, 0x5c, 0x99, 0x2d, 0x4a, 0xb9, 0x3a, 0x12, + 0x0e, 0x3f, 0xb2, 0xe2, 0xcb, 0x8b, 0x02, 0x8d, 0x24, 0x61, 0x51, 0x81, 0x93, + 0xd6, 0x72, 0x8c, 0x33, 0x16, 0xd2, 0x86, 0xa4, 0x3b, 0x29, 0x8f, 0x05, 0xcd, + 0xcf, 0xd2, 0xd8, 0x23, 0xfa, 0x2a, 0x27, 0xc4, 0x84, 0x0e, 0x0e, 0x0b, 0x3c, + 0x49, 0xe6, 0xca, 0xe3, 0x5b, 0xba, 0x6d, 0xa4, 0x28, 0x27, 0x3f, 0xeb, 0x6a, + 0x7e, 0x7e, 0x92, 0xb0, 0xd8, 0xf0, 0x21, 0xeb, 0xb5, 0xc7, 0x82, 0x49, 0x54, + 0xdb, 0x5d, 0x43, 0x54, 0xc3, 0x39, 0x17, 0x45, 0x66, 0x2a, 0xda, 0x0c, 0x29, + 0x4a, 0x0f, 0x88, 0x94, 0x63, 0x3f, 0x19, 0xdf, 0x6e, 0xff, 0x93, 0xf8, 0xa2, + 0x0d, 0x74, 0xb3, 0x6d, 0x1e, 0xdf, 0x3d, 0x65, 0x2c, 0x69, 0xde, 0x68, 0x41, + 0xb5, 0x17, 0xd0, 0x96, 0x95, 0xfb, 0xdf, 0x04, 0x32, 0x6b, 0x76, 0xf3, 0x09, + 0x4c, 0x72, 0x72, 0x52, 0x65, 0x69, 0xf5, 0x0a, 0x3f, 0x2c, 0x3e, 0x00, 0x01, + 0x59, 0xe3, 0x52, 0x62, 0x87, 0xd7, 0xab, 0xc7, 0x1c, 0xa4, 0x53, 0x5e, 0x31, + 0xfc, 0x8e, 0x5c, 0xb4, 0xe2, 0x30, 0xea, 0xae, 0xf6, 0x2d, 0x08, 0x81, 0x27, + 0x41, 0x18, 0x04, 0xbd, 0x36, 0x1d, 0x82, 0x5d, 0x48, 0x33, 0x26, 0x95, 0x70, + 0x34, 0xb4, 0x55, 0x0d, 0x9f, 0x8b, 0x24, 0x3c, 0x71, 0x2a, 0x04, 0xfb, 0xdb, + 0x89, 0x59, 0x2e, 0x8f, 0xb8, 0x91, 0x55, 0x1d, 0x40, 0x00, 0x66, 0x20, 0x55, + 0x37, 0x04, 0xf8, 0x38, 0x89, 0x42, 0x16, 0x6e, 0xec, 0x40, 0x95, 0xfa, 0x64, + 0xc6, 0xf8, 0xdc, 0x49, 0x31, 0xcc, 0xb4, 0x41, 0x65, 0xa4, 0xca, 0xfb, 0xac, + 0x09, 0xd9, 0xed, 0xa6, 0xa0, 0x4f, 0x51, 0x17, 0x6f, 0xf3, 0xb0, 0x78, 0xa5, + 0xbc, 0x3d, 0x07, 0x32, 0x4d, 0x81, 0x99, 0x29, 0x9e, 0xa7, 0xbd, 0x30, 0xa8, + 0xf1, 0xa6, 0x2a, 0x84, 0xcd, 0x3d, 0x70, 0x12, 0x65, 0xd5, 0xfa, 0xc6, 0x94, + 0x05, 0x54, 0xce, 0x62, 0xda, 0x5a, 0xf3, 0x3f, 0xc4, 0x84, 0x0a, 0xb5, 0x3c, + 0x81, 0x95, 0x55, 0x83, 0x93, 0x7b, 0x2f, 0x75, 0x6e, 0x6a, 0xef, 0x14, 0x84, + 0xbc, 0x16, 0x17, 0x27, 0xea, 0xf6, 0x80, 0x7e, 0x41, 0x52, 0x2c, 0x0f, 0x84, + 0x9a, 0xbb, 0xd9, 0xdf, 0x92, 0xa8, 0x91, 0xa2, 0x97, 0xd8, 0xd3, 0x2d, 0x37, + 0xb1, 0x73, 0x17, 0x59, 0x83, 0x09, 0x42, 0x52, 0xa8, 0x85, 0x2d, 0x0c, 0x81, + 0x79, 0xee, 0x43, 0x36, 0x9f, 0x0d, 0x94, 0x0d, 0x40, 0x8d, 0x55, 0x4f, 0xf9, + 0x85, 0xa6, 0x05, 0x49, 0x9c, 0x17, 0x50, 0xd3, 0x5f, 0xe4, 0xfa, 0x1f, 0xe2, + 0xfd, 0xfe, 0x8f, 0x7f, 0xea, 0xf6, 0xf1, 0xba, 0xdf, 0x7d, 0x89, 0x85, 0xb0, + 0x03, 0x55, 0x41, 0x32, 0x4b, 0x15, 0x8c, 0x14, 0xad, 0x65, 0x56, 0x12, 0xa1, + 0x82, 0x5b, 0x75, 0x42, 0x00, 0x99, 0x7f, 0x14, 0x8d, 0x44, 0x3b, 0xa7, 0xa4, + 0x14, 0xdf, 0x79, 0x12, 0xca, 0x53, 0x6a, 0x75, 0xba, 0x5c, 0xed, 0x52, 0x66, + 0xef, 0x7e, 0xb9, 0x69, 0xd3, 0x13, 0xf8, 0x47, 0x52, 0x89, 0x65, 0x61, 0x2e, + 0x2a, 0xf2, 0x73, 0x65, 0x32, 0x00, 0x35, 0xd7, 0x0f, 0x56, 0xf9, 0x5f, 0x81, + 0x7f, 0xdd, 0xd8, 0xf0, 0x93, 0x0f, 0xa7, 0x1e, 0xca, 0x2c, 0xc0, 0x22, 0xad, + 0x94, 0x14, 0x2b, 0xf8, 0xe1, 0x44, 0xaa, 0x4f, 0x9b, 0x74, 0xef, 0xd5, 0x67, + 0x11, 0xf9, 0x4d, 0x9c, 0xc1, 0x6e, 0x28, 0xe8, 0xa0, 0xf2, 0x39, 0xb7, 0x97, + 0x33, 0xd4, 0x35, 0x94, 0xb6, 0x39, 0x30, 0x06, 0xba, 0x75, 0x94, 0x6d, 0xc2, + 0xdb, 0x50, 0x71, 0xaf, 0xb7, 0xe5, 0x41, 0x88, 0x1f, 0xb6, 0x13, 0x6b, 0x56, + 0x83, 0xe7, 0xcc, 0x4e, 0x22, 0x72, 0xfd, 0x8b, 0x55, 0x33, 0xed, 0xe5, 0x69, + 0xad, 0xc1, 0x26, 0xd9, 0xd9, 0x97, 0xa9, 0x03, 0xb2, 0xce, 0x63, 0x84, 0x15, + 0xbf, 0x4d, 0x07, 0x26, 0x64, 0x37, 0x4d, 0x9c, 0xf7, 0x7b, 0x3a, 0x76, 0x60, + 0x33, 0xc4, 0x74, 0x47, 0xe0, 0x07, 0x82, 0x30, 0x41, 0xef, 0x5f, 0x9c, 0x36, + 0xa7, 0xf9, 0x1b, 0x8e, 0xca, 0x97, 0x8f, 0x6b, 0x87, 0x77, 0x20, 0x83, 0xe5, + 0xc1, 0xeb, 0x04, 0x99, 0xe1, 0x14, 0xb5, 0xca, 0xcf, 0x0c, 0xd6, 0xf5, 0x16, + 0x5e, 0xb8, 0xc8, 0x9f, 0xcb, 0xe2, 0x8e, 0xec, 0xec, 0xd3, 0x34, 0x89, 0x35, + 0xf0, 0x7e, 0x22, 0x43, 0xdd, 0xbc, 0x9c, 0xb9, 0x1c, 0xc5, 0x04, 0x98, 0x1b, + 0x9c, 0xab, 0x78, 0x6f, 0xc7, 0x68, 0x80, 0x81, 0xff, 0x0a, 0xb4, 0x51, 0x18, + 0x9f, 0xa6, 0x3d, 0xa1, 0x80, 0x3b, 0xf5, 0xce, 0x59, 0x16, 0xed, 0xae, 0x6c, + 0x72, 0x13, 0xce, 0x39, 0xb9, 0x83, 0x42, 0x2b, 0x55, 0xc1, 0xb9, 0xf4, 0xcd, + 0xe9, 0xe6, 0xd0, 0xfa, 0x2b, 0xcc, 0xaa, 0xbe, 0xa3, 0x8d, 0xb2, 0xfa, 0xb7, + 0xff, 0xf2, 0xcf, 0xba, 0xf1, 0x2f, 0xf3, 0x8e, 0x1a, 0x5f, 0xfa, 0x74, 0x6d, + 0x1e, 0x40, 0x44, 0x59, 0x6f, 0x7e, 0x80, 0x46, 0xd9, 0x97, 0x1c, 0x26, 0x1a, + 0xb6, 0x85, 0x4d, 0x7e, 0x7e, 0xcd, 0x60, 0xa7, 0x12, 0x42, 0x28, 0x00, 0x70, + 0x3b, 0x6a, 0x61, 0x7b, 0x84, 0x85, 0x51, 0x5d, 0x74, 0x8c, 0xf4, 0x83, 0xcf, + 0x77, 0x36, 0x56, 0x3d, 0x09, 0xdf, 0x17, 0xe3, 0x12, 0xf0, 0xf0, 0x7d, 0xc7, + 0x96, 0x5c, 0x88, 0x55, 0xfe, 0xb9, 0xc0, 0xd2, 0x9a, 0xd2, 0x86, 0xe6, 0xd4, + 0x7a, 0x62, 0x08, 0x85, 0x81, 0x9b, 0xf4, 0x96, 0x32, 0x4b, 0x14, 0x63, 0x80, + 0x49, 0xfd, 0xe5, 0x79, 0x57, 0xf1, 0x15, 0x0a, 0x7d, 0xce, 0xaa, 0xd2, 0x1a, + 0x4b, 0x79, 0x8c, 0xc9, 0xcc, 0xa4, 0x32, 0xd4, 0xde, 0x2f, 0x0b, 0xfb, 0x90, + 0x36, 0x80, 0x30, 0xa9, 0xf7, 0xbb, 0x53, 0x0b, 0xb1, 0x9b, 0xf8, 0x98, 0x83, + 0xec, 0x52, 0xa3, 0x91, 0x47, 0xf8, 0x25, 0x17, 0xc4, 0x5c, 0x1f, 0x2a, 0xea, + 0x46, 0xe4, 0xf5, 0x9b, 0x26, 0x50, 0x14, 0x5f, 0x91, 0xce, 0x37, 0xd0, 0xa3, + 0x99, 0x18, 0xa9, 0x39, 0x76, 0x8b, 0xf4, 0x62, 0x9e, 0xc3, 0x1c, 0xfb, 0xb0, + 0x9d, 0x77, 0x7f, 0xf6, 0x8a, 0x2e, 0xc9, 0x61, 0xf6, 0x2b, 0x6b, 0x2d, 0x0e, + 0x6f, 0x38, 0xed, 0xd0, 0x5d, 0x43, 0x61, 0x07, 0xa2, 0x5d, 0x83, 0x9e, 0x1b, + 0x08, 0x77, 0xb0, 0xf1, 0xef, 0x0d, 0x6d, 0x40, 0xec, 0x80, 0x58, 0x12, 0x1b, + 0xf3, 0xbd, 0x46, 0x11, 0xf7, 0x6c, 0x03, 0x7b, 0x33, 0x42, 0x35, 0x1d, 0xc4, + 0x31, 0xed, 0xe3, 0xb5, 0xf0, 0x6b, 0xfa, 0xb6, 0xf0, 0xb7, 0xf7, 0x02, 0xeb, + 0x7c, 0x59, 0x06, 0x83, 0x3c, 0x01, 0x00, 0x42, 0x21, 0x06, 0x41, 0x18, 0x84, + 0xd3, 0x37, 0x6a, 0x0f, 0x9c, 0xe6, 0xc1, 0x80, 0x8d, 0xf4, 0x05, 0xbe, 0xa1, + 0x2c, 0x5f, 0xef, 0x4f, 0x37, 0xdd, 0xec, 0x93, 0x68, 0x12, 0x33, 0xff, 0x29, + 0xa8, 0xef, 0xae, 0xb9, 0x6c, 0xed, 0xf2, 0xb0, 0x43, 0x20, 0x2e, 0x53, 0x8d, + 0xe8, 0x66, 0x33, 0x59, 0xd9, 0xec, 0x01, 0xb2, 0x9b, 0x7e, 0x1e, 0x8a, 0x44, + 0x16, 0x44, 0x93, 0xa1, 0x37, 0x24, 0x0a, 0xee, 0x3a, 0x9f, 0x0b, 0x31, 0x57, + 0x0d, 0x47, 0x9f, 0x3f, 0x81, 0xbc, 0x80, 0xe7, 0xee, 0x06, 0xce, 0x4b, 0xb7, + 0xcf, 0x7d, 0xa0, 0xde, 0xd9, 0x28, 0xaa, 0x3f, 0x44, 0x8a, 0x56, 0x52, 0x9e, + 0xa6, 0x7d, 0x6e, 0xc7, 0x06, 0x9d, 0x80, 0xf9, 0xc4, 0x33, 0x4a, 0x42, 0x5f, + 0x33, 0xe2, 0xf1, 0x98, 0xb3, 0xf7, 0xaf, 0xc8, 0x2a, 0x22, 0xb0, 0x42, 0xc5, + 0xa0, 0xed, 0xcb, 0xab, 0x2f, 0xc2, 0xf9, 0x14, 0xa9, 0xb8, 0xce, 0xaf, 0x77, + 0x4f, 0x3b, 0xe8, 0xb1, 0xf1, 0xef, 0x71, 0x5f, 0x4e, 0xb0, 0xa7, 0x9a, 0x50, + 0x29, 0x82, 0x08, 0x6d, 0x04, 0x79, 0xff, 0x67, 0x37, 0xe7, 0xbe, 0x14, 0x5d, + 0x4c, 0xf2, 0xe4, 0x80, 0x2c, 0x34, 0x8c, 0xda, 0x39, 0x71, 0xda, 0xba, 0x14, + 0x6c, 0x7c, 0x3d, 0x2a, 0x7b, 0x46, 0x5f, 0x62, 0x1b, 0xab, 0xa6, 0xcf, 0x21, + 0xb0, 0x2c, 0x15, 0xfa, 0xa7, 0x48, 0xce, 0x8c, 0xed, 0xe5, 0xf1, 0xcd, 0x12, + 0xea, 0x9a, 0x85, 0x69, 0xb7, 0x9d, 0x30, 0x3e, 0x64, 0x3e, 0xe1, 0x0e, 0x18, + 0x9d, 0x7f, 0x82, 0x9f, 0x49, 0x47, 0xbf, 0x37, 0x39, 0x0c, 0x0c, 0x5b, 0x7b, + 0x1c, 0x66, 0xe4, 0x19, 0x62, 0xba, 0xca, 0x8e, 0x93, 0xce, 0xd3, 0xa6, 0xd9, + 0xd5, 0xe6, 0xeb, 0x63, 0x42, 0x31, 0xe1, 0x60, 0xd3, 0x37, 0xc3, 0xfd, 0xf2, + 0x64, 0x27, 0x2d, 0xff, 0xd1, 0x68, 0x88, 0xcf, 0x08, 0x98, 0xd8, 0x2a, 0x84, + 0x1e, 0xf1, 0xfd, 0x0b, 0xa7, 0x72, 0xf2, 0xd4, 0xa2, 0xa4, 0x85, 0xbf, 0xbd, + 0xd1, 0x05, 0xb7, 0xe5, 0xe4, 0x25, 0x73, 0xfe, 0x93, 0x46, 0x03, 0xfd, 0xc5, + 0x01, 0x8f, 0x45, 0xb2, 0x92, 0xbf, 0x20, 0x13, 0xa3, 0xfb, 0x36, 0x00, 0xc7, + 0x05, 0x77, 0xd6, 0x0b, 0x27, 0x4b, 0x73, 0x82, 0x04, 0xc4, 0x1a, 0x37, 0xd8, + 0x1f, 0x09, 0xc2, 0xc5, 0x35, 0x13, 0x7e, 0x9f, 0xdb, 0x19, 0x1e, 0xe6, 0x1b, + 0xa4, 0x79, 0xe9, 0x70, 0xe6, 0x6a, 0xf2, 0xca, 0xca, 0xaf, 0xd0, 0x49, 0x86, + 0xbf, 0x57, 0x57, 0x9b, 0x1d, 0x26, 0xa8, 0x7a, 0xe7, 0x03, 0x0c, 0x21, 0xe7, + 0x68, 0xd0, 0x9d, 0xa5, 0xdf, 0x87, 0xa1, 0x08, 0xce, 0x5a, 0x93, 0x9d, 0x31, + 0x00, 0x76, 0xa9, 0xeb, 0x54, 0xc7, 0xe5, 0xd8, 0x50, 0x5c, 0x76, 0x21, 0x5b, + 0x5d, 0xb3, 0x06, 0x4d, 0x58, 0xd2, 0x2a, 0x15, 0xc4, 0x00, 0x0f, 0xe8, 0x35, + 0xf0, 0xf5, 0x55, 0xa1, 0x38, 0x9d, 0xa3, 0x4c, 0x98, 0x39, 0x8e, 0xb7, 0x11, + 0xab, 0x61, 0x5f, 0x9a, 0x70, 0x66, 0x16, 0x99, 0xac, 0x12, 0xed, 0xe4, 0xce, + 0x46, 0x3f, 0x10, 0xdb, 0xa6, 0x9e, 0x6b, 0x77, 0xa6, 0xef, 0xa3, 0xbc, 0xeb, + 0xf8, 0xd3, 0xcd, 0x47, 0x45, 0x62, 0x96, 0x72, 0x65, 0xbf, 0xec, 0x74, 0x2c, + 0x06, 0x80, 0xd1, 0x4f, 0xcf, 0x59, 0x39, 0x3d, 0x04, 0xba, 0x25, 0xde, 0xf2, + 0x06, 0x55, 0x95, 0x6b, 0x28, 0x02, 0xfe, 0x69, 0x5e, 0x6d, 0xbc, 0xe0, 0x38, + 0x65, 0x43, 0x3b, 0x8d, 0x1e, 0xca, 0xa6, 0x4f, 0xce, 0x0e, 0x6c, 0x45, 0x12, + 0xe3, 0x97, 0x9f, 0x67, 0x4b, 0x1b, 0x78, 0xaf, 0x36, 0x3f, 0x2d, 0xe7, 0xbd, + 0x06, 0x16, 0x3f, 0xf9, 0xf7, 0xfc, 0xe9, 0x84, 0x65, 0x3d, 0x52, 0x13, 0xc2, + 0xe1, 0x00, 0xc3, 0x9c, 0xf2, 0xfc, 0x85, 0x34, 0xf2, 0x98, 0x8c, 0x31, 0x7e, + 0x99, 0x00, 0x00, + ], + txid: [ + 0x7e, 0x32, 0x58, 0x64, 0xae, 0xc2, 0xe0, 0x83, 0x26, 0x85, 0xce, 0xb6, 0x24, + 0xc7, 0xfd, 0xdf, 0x23, 0x67, 0x40, 0x2e, 0x1e, 0x60, 0x0e, 0x48, 0x3e, 0xce, + 0x18, 0x1b, 0x16, 0x38, 0x5f, 0xc3, + ], + auth_digest: [ + 0x26, 0x29, 0xa5, 0x2e, 0x0c, 0xa9, 0x5c, 0x9e, 0xbd, 0x52, 0xda, 0xb0, 0x36, + 0x14, 0x89, 0xf2, 0x9b, 0xd3, 0x5f, 0xa6, 0xfa, 0x82, 0x88, 0x2e, 0x8b, 0xc1, + 0x1d, 0x6a, 0x8d, 0xcf, 0x15, 0xba, + ], + amounts: vec![792085059419188], + zsf_deposit: 168767276226802, + script_pubkeys: vec![vec![0x51, 0xac, 0x51, 0x53, 0xac, 0x65, 0x00, 0x63, 0x6a]], + transparent_input: Some(0), + sighash_shielded: [ + 0x6d, 0x21, 0xb4, 0xe6, 0x4d, 0xe3, 0x1c, 0xa2, 0xde, 0xb3, 0xea, 0x75, 0x07, + 0x5c, 0x50, 0x8f, 0x11, 0x6b, 0x64, 0x6a, 0xed, 0x04, 0x07, 0x7d, 0x60, 0x80, + 0x6f, 0x3a, 0x28, 0x4d, 0x43, 0x2b, + ], + sighash_all: Some([ + 0xf3, 0x6d, 0xc1, 0xa3, 0x1d, 0xb0, 0x8e, 0x00, 0x79, 0x7b, 0x7c, 0xb8, 0x30, + 0xa0, 0xb7, 0x0a, 0x33, 0x94, 0xf1, 0x38, 0x3a, 0xaa, 0x8b, 0x99, 0x91, 0xb0, + 0xf1, 0x13, 0xe8, 0xed, 0xfa, 0xf4, + ]), + sighash_none: Some([ + 0xef, 0x9c, 0xd8, 0xf6, 0x78, 0x62, 0xc9, 0x6d, 0xd0, 0x0b, 0x30, 0xf3, 0x8f, + 0x73, 0x16, 0xcc, 0x54, 0x81, 0x89, 0x84, 0x4a, 0xdb, 0x7d, 0xc0, 0x88, 0xfe, + 0x08, 0x2f, 0xc6, 0x43, 0x46, 0xc7, + ]), + sighash_single: None, + sighash_all_anyone: Some([ + 0xd6, 0xf8, 0xa4, 0xda, 0xc6, 0xe9, 0xcf, 0x41, 0xec, 0x38, 0xca, 0xb0, 0x6e, + 0x52, 0x66, 0xa6, 0x20, 0x46, 0xbf, 0x25, 0x2f, 0x9c, 0x87, 0x77, 0xea, 0xf3, + 0x22, 0x41, 0x50, 0xbe, 0x3f, 0xde, + ]), + sighash_none_anyone: Some([ + 0x7f, 0x7b, 0xb3, 0x1d, 0x3c, 0x1a, 0x6b, 0xa7, 0x83, 0xe3, 0x38, 0xfe, 0x0c, + 0x0b, 0x2c, 0xda, 0xd3, 0x82, 0xb2, 0xc5, 0x2a, 0x53, 0xe8, 0xa7, 0x4a, 0x57, + 0x67, 0x50, 0xb1, 0x70, 0x03, 0xf9, + ]), + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, + 0x0a, 0xe9, 0xfb, 0x15, 0x4c, 0x85, 0x09, 0x02, 0x9f, 0x3d, 0xc3, 0xd0, 0x29, + 0xcf, 0xae, 0xdc, 0xcd, 0x80, 0x15, 0x4a, 0x67, 0x28, 0x82, 0xea, 0x26, 0xba, + 0x6a, 0x9c, 0xe9, 0x02, 0x63, 0xf0, 0xac, 0xe6, 0x6f, 0x12, 0x23, 0x75, 0x0e, + 0x24, 0x06, 0xa1, 0xda, 0xd4, 0x00, 0x3d, 0xb6, 0x2e, 0x45, 0x50, 0xcf, 0x84, + 0x5e, 0x33, 0x2a, 0xb2, 0x29, 0x20, 0xcb, 0x9b, 0xce, 0x2d, 0x5e, 0x8b, 0x13, + 0x68, 0x0e, 0xe2, 0x3d, 0x5c, 0x77, 0x6f, 0xe1, 0x4a, 0x83, 0x94, 0xfa, 0x2d, + 0xe3, 0x8e, 0x78, 0x74, 0x98, 0x97, 0xe4, 0x06, 0x6a, 0x52, 0x52, 0x65, 0x6a, + 0x52, 0xe2, 0xf8, 0xe5, 0x04, 0x01, 0xdc, 0x03, 0x76, 0x93, 0x07, 0xc9, 0x01, + 0x00, 0x06, 0x00, 0x65, 0x53, 0x51, 0x63, 0x6a, 0x00, 0x00, 0x00, 0xaf, 0x8a, + 0x53, 0xa6, 0xba, 0x0b, 0x05, 0x00, + ], + txid: [ + 0x4f, 0x45, 0x74, 0xe8, 0xf1, 0x1f, 0xdc, 0x10, 0x7e, 0xc4, 0x27, 0x1f, 0x4c, + 0xca, 0xc1, 0x8c, 0x77, 0x6e, 0xd8, 0xa4, 0xc3, 0xff, 0x04, 0x12, 0x01, 0xc4, + 0x5f, 0x4c, 0x0c, 0xba, 0xb3, 0xfa, + ], + auth_digest: [ + 0x3f, 0x5e, 0x16, 0x74, 0x90, 0x6f, 0x31, 0xbb, 0xb9, 0x37, 0x14, 0xd3, 0xef, + 0xf4, 0x1d, 0x86, 0x39, 0xb0, 0xe8, 0x14, 0x7f, 0xd5, 0xd9, 0xc8, 0x61, 0x77, + 0x86, 0xa6, 0x76, 0x0d, 0xa7, 0x5e, + ], + amounts: vec![2098065188448400, 1091591811102429], + zsf_deposit: 1420271165868719, + script_pubkeys: vec![ + vec![0x65, 0x63, 0x51, 0x65, 0x52, 0x52, 0x52], + vec![0xac, 0x51, 0x53, 0x6a, 0x63, 0x65, 0x65, 0x52, 0x00], + ], + transparent_input: Some(0), + sighash_shielded: [ + 0x6a, 0xf1, 0x18, 0xc4, 0xdb, 0xc6, 0xf5, 0x44, 0x36, 0x3f, 0x4b, 0x68, 0x03, + 0x8f, 0x9c, 0x55, 0x7c, 0xa9, 0xd8, 0x1d, 0xbb, 0x1a, 0x7f, 0xcc, 0x10, 0x47, + 0x59, 0x95, 0xfe, 0xbe, 0xec, 0x9d, + ], + sighash_all: Some([ + 0x09, 0x00, 0x01, 0xa3, 0x15, 0xb6, 0xc1, 0xef, 0x33, 0x88, 0xc8, 0xa1, 0xe6, + 0x0e, 0x62, 0x31, 0x9d, 0x9b, 0x30, 0x2c, 0x3b, 0x4a, 0x75, 0x64, 0x88, 0x4a, + 0xe6, 0x7e, 0x8c, 0x7c, 0x78, 0xe7, + ]), + sighash_none: Some([ + 0x6a, 0xae, 0xc0, 0x0d, 0x0e, 0x79, 0x07, 0xb9, 0xff, 0xb3, 0x5d, 0x68, 0x9d, + 0xf7, 0xe2, 0xe8, 0xc2, 0xcd, 0xb1, 0xf9, 0xa2, 0xb1, 0x8a, 0x57, 0x3c, 0xec, + 0x24, 0x78, 0xd0, 0x11, 0x43, 0x3a, + ]), + sighash_single: Some([ + 0xa4, 0xd3, 0x70, 0x0a, 0xc7, 0x76, 0xbc, 0x95, 0xe4, 0xd1, 0x48, 0x7c, 0x01, + 0x86, 0x16, 0x80, 0x61, 0xc7, 0x4c, 0xa9, 0x79, 0x58, 0x0f, 0x30, 0xea, 0xf1, + 0x7e, 0x28, 0xbf, 0x9d, 0x3b, 0x6a, + ]), + sighash_all_anyone: Some([ + 0x93, 0x05, 0x1b, 0x6c, 0xc2, 0x7c, 0x23, 0x4f, 0x49, 0xdd, 0xe2, 0xbd, 0x40, + 0xd3, 0x81, 0x63, 0x04, 0x97, 0x9c, 0x32, 0x3a, 0x09, 0x56, 0x77, 0xd4, 0x83, + 0xd7, 0x6d, 0xee, 0xdf, 0xfb, 0x61, + ]), + sighash_none_anyone: Some([ + 0x05, 0xb7, 0x25, 0xa9, 0xc1, 0x9d, 0xfb, 0x7f, 0x6c, 0x94, 0xe4, 0x54, 0x9c, + 0x22, 0xe3, 0x0d, 0xbc, 0x06, 0x69, 0xb6, 0x9d, 0x62, 0xc2, 0xdf, 0xd6, 0x67, + 0xaf, 0x31, 0xcf, 0x33, 0x87, 0xd6, + ]), + sighash_single_anyone: Some([ + 0xb2, 0x18, 0x13, 0xe6, 0xeb, 0x98, 0xeb, 0x00, 0x75, 0xb9, 0xd5, 0x80, 0x83, + 0x72, 0x01, 0xca, 0xdf, 0x73, 0x8a, 0xf5, 0x26, 0x7a, 0x69, 0x72, 0x54, 0x14, + 0xd9, 0x51, 0xe3, 0xe2, 0x15, 0x4a, + ]), + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, + 0x45, 0x0f, 0xd1, 0x7d, 0x9c, 0x39, 0x01, 0x03, 0xd9, 0x62, 0xe6, 0x39, 0x5e, + 0xbc, 0xb7, 0xc4, 0xfc, 0xcc, 0x9c, 0xed, 0x64, 0x5c, 0xe7, 0x51, 0xb8, 0x62, + 0xba, 0x56, 0xad, 0xcd, 0x8a, 0xa8, 0xf6, 0x11, 0xe8, 0x65, 0x88, 0x73, 0x83, + 0xdb, 0x7c, 0x38, 0xe8, 0x93, 0x04, 0x51, 0x52, 0x65, 0x65, 0x34, 0xbe, 0xa8, + 0x71, 0xa5, 0x40, 0x57, 0x32, 0x7b, 0xf1, 0xf8, 0x43, 0x11, 0x93, 0xdd, 0x68, + 0xfe, 0x2f, 0x5d, 0x1b, 0x73, 0xb9, 0x28, 0xc7, 0x95, 0x8e, 0xbc, 0xa2, 0x19, + 0x0e, 0xd8, 0x53, 0xd4, 0x99, 0x2a, 0x4f, 0x53, 0x75, 0x72, 0x00, 0x08, 0x53, + 0x53, 0x53, 0xac, 0x65, 0x00, 0x52, 0x65, 0xe3, 0x47, 0x39, 0x81, 0x0c, 0x43, + 0x31, 0x40, 0xd2, 0x0e, 0x14, 0xa5, 0x27, 0x3c, 0xda, 0xd6, 0x2c, 0x33, 0xbb, + 0xf9, 0xd8, 0x83, 0xb5, 0x29, 0x0b, 0x5d, 0xae, 0xcd, 0x90, 0xf3, 0x54, 0x6c, + 0xa4, 0x1a, 0x58, 0xcb, 0x91, 0x31, 0x8a, 0xb2, 0x07, 0x52, 0xac, 0x51, 0x51, + 0x53, 0x52, 0x00, 0xbc, 0xbd, 0xce, 0xb1, 0x00, 0x01, 0x5b, 0x57, 0x0c, 0xf2, + 0xdf, 0x73, 0xfe, 0x6a, 0xba, 0x65, 0x65, 0x3d, 0x6b, 0x0b, 0x67, 0x89, 0xed, + 0x4a, 0x1c, 0x12, 0xfa, 0xcf, 0x16, 0x36, 0x40, 0x32, 0x53, 0x6c, 0xb7, 0x91, + 0x58, 0xd6, 0xfc, 0xb4, 0xb5, 0x9d, 0xcf, 0xcc, 0x11, 0x7d, 0xe6, 0x0b, 0xf9, + 0xbb, 0xd5, 0x90, 0x14, 0x57, 0x4f, 0xb9, 0xf8, 0xf5, 0x10, 0x02, 0xc9, 0xe7, + 0x51, 0x7c, 0x36, 0x84, 0xf5, 0xcf, 0xa7, 0x13, 0xa5, 0x04, 0x7c, 0xb6, 0xdf, + 0x71, 0x25, 0x94, 0xa1, 0xf5, 0xd2, 0x4b, 0x79, 0x27, 0xf9, 0xab, 0x42, 0x95, + 0x59, 0x3b, 0x4d, 0x7e, 0xda, 0xe1, 0xc5, 0xd6, 0x77, 0xc4, 0x20, 0xc6, 0xf9, + 0x82, 0x01, 0xca, 0x01, 0x74, 0x01, 0x62, 0x9f, 0x7d, 0xff, 0x19, 0x6d, 0xad, + 0xa6, 0xe7, 0xf5, 0x75, 0xf5, 0x2f, 0x7e, 0x76, 0x0a, 0x86, 0xb3, 0x43, 0x5c, + 0x3a, 0x8c, 0x25, 0x88, 0x28, 0x74, 0x13, 0x6a, 0xc6, 0xf8, 0x63, 0xcb, 0x5e, + 0xca, 0x0c, 0xc1, 0x67, 0x2a, 0x8a, 0xa2, 0x99, 0xe4, 0xe8, 0x91, 0x6a, 0xfe, + 0x28, 0x12, 0x86, 0x5b, 0x36, 0x76, 0x42, 0xa5, 0x70, 0x67, 0x23, 0x89, 0x7b, + 0x29, 0x04, 0x10, 0x07, 0x1c, 0x4f, 0x24, 0xda, 0x24, 0xad, 0x68, 0x66, 0xa6, + 0x33, 0x04, 0x22, 0x59, 0xe5, 0xd8, 0xa5, 0x4d, 0xf8, 0xb7, 0xec, 0x4f, 0xce, + 0x84, 0x23, 0xfe, 0x5a, 0xf6, 0xa4, 0xa4, 0xec, 0xc7, 0x08, 0xf2, 0xe3, 0x8c, + 0xe9, 0x0d, 0x22, 0xd4, 0xd1, 0xf8, 0xea, 0x24, 0x98, 0xbb, 0xc3, 0x9a, 0xc5, + 0x93, 0x0b, 0x1f, 0x4f, 0xf3, 0xad, 0x2a, 0x88, 0xf3, 0xfd, 0x94, 0x38, 0x16, + 0x6d, 0x0f, 0x0d, 0xc6, 0x59, 0xa8, 0xc6, 0x86, 0x63, 0x3f, 0xb6, 0x2c, 0x9e, + 0x0e, 0x99, 0x5b, 0x68, 0x23, 0xb1, 0x75, 0xc7, 0x9d, 0xc6, 0xe1, 0xa5, 0xfd, + 0x97, 0x5c, 0x31, 0xa4, 0x2e, 0xf6, 0xb8, 0x46, 0x52, 0x98, 0x6b, 0x3e, 0x1b, + 0x5e, 0x3b, 0x20, 0x96, 0x81, 0xa3, 0x27, 0x21, 0x69, 0xd4, 0xfc, 0xae, 0xfd, + 0x6e, 0x0f, 0x51, 0xf7, 0x9a, 0xc1, 0xca, 0xe7, 0xee, 0x0e, 0x05, 0xe6, 0x30, + 0xf0, 0xe8, 0xdb, 0x27, 0xd8, 0xf5, 0xb3, 0xfb, 0xdb, 0x1c, 0xbb, 0xa2, 0xa8, + 0x3a, 0x0f, 0x11, 0x17, 0xd1, 0xd4, 0x73, 0x33, 0x0a, 0x46, 0x2a, 0x6b, 0x01, + 0xbe, 0xf1, 0xc4, 0x51, 0xf2, 0x13, 0xd1, 0x34, 0xb1, 0xa9, 0x65, 0xb0, 0x2b, + 0x7e, 0xf4, 0xf4, 0x9e, 0x01, 0xf7, 0x3e, 0x9e, 0xd8, 0x7c, 0x49, 0x32, 0x5e, + 0x41, 0xd6, 0x07, 0xa3, 0x09, 0xa2, 0xe8, 0x76, 0x04, 0x0f, 0x89, 0x31, 0x48, + 0x61, 0xff, 0xb1, 0x15, 0x96, 0x7c, 0xf5, 0x61, 0xb4, 0x7e, 0xaa, 0x6b, 0xd2, + 0x18, 0x9a, 0xa4, 0xa5, 0x8e, 0xff, 0xd4, 0x11, 0x3e, 0x43, 0x11, 0x20, 0x9a, + 0x7e, 0xc6, 0x13, 0x46, 0xc2, 0xc7, 0xba, 0x85, 0xe0, 0xd8, 0x4a, 0x75, 0x92, + 0x53, 0x34, 0xe3, 0x91, 0x7d, 0xdf, 0xe1, 0x5f, 0x1e, 0xf9, 0x30, 0x56, 0x6b, + 0x9e, 0x34, 0x37, 0xf3, 0x9c, 0x4b, 0x5a, 0x2e, 0x08, 0x1a, 0x49, 0x86, 0x08, + 0xb0, 0x0f, 0x6d, 0xec, 0x32, 0xaa, 0xdf, 0x3a, 0xdb, 0xe3, 0x5e, 0xf7, 0xb6, + 0x8a, 0x46, 0x32, 0xa7, 0x7c, 0x20, 0xe1, 0x6d, 0x17, 0x86, 0xe3, 0xda, 0xc3, + 0x73, 0xe6, 0xd4, 0xc6, 0x1a, 0xb8, 0x71, 0xc4, 0xa8, 0xad, 0xc7, 0xd0, 0x71, + 0x6c, 0x17, 0x5f, 0x80, 0x0a, 0x3c, 0xd2, 0xfc, 0x0a, 0x0d, 0x07, 0x07, 0x9d, + 0x18, 0x06, 0x1d, 0xc8, 0x03, 0x81, 0x00, 0xf7, 0xd9, 0x0c, 0x93, 0xdf, 0xcd, + 0x63, 0x5b, 0x13, 0xa6, 0xf0, 0x05, 0x38, 0x2a, 0x49, 0x31, 0x86, 0x9a, 0x0d, + 0xb3, 0xd1, 0x45, 0xc7, 0x3c, 0x8f, 0xdc, 0xc3, 0x65, 0x60, 0x90, 0xb2, 0x39, + 0x1f, 0xdd, 0x9d, 0x83, 0x01, 0x0c, 0x03, 0x77, 0x1f, 0xcf, 0xf5, 0x41, 0x16, + 0xe9, 0xe4, 0xbc, 0xc9, 0x63, 0x89, 0x1c, 0x2b, 0xbb, 0x60, 0xea, 0x2e, 0x0c, + 0xe2, 0xd7, 0xd1, 0x26, 0x22, 0xdc, 0x04, 0xc1, 0xe6, 0xed, 0xed, 0x3f, 0xbf, + 0x0d, 0x95, 0x28, 0x44, 0x24, 0x59, 0x06, 0xf5, 0xaa, 0x45, 0xc6, 0x46, 0x64, + 0xa8, 0x02, 0x25, 0x08, 0x93, 0xde, 0x13, 0xcc, 0xac, 0xa0, 0x1f, 0x3c, 0x23, + 0x8e, 0x1c, 0xd0, 0x51, 0x76, 0x89, 0xa4, 0x22, 0xeb, 0x66, 0x2b, 0x91, 0x27, + 0x03, 0x0c, 0xfd, 0x88, 0x92, 0xf4, 0x09, 0xf8, 0xad, 0xac, 0x8b, 0x11, 0xc3, + 0x91, 0x59, 0xcd, 0xb4, 0xb8, 0xfe, 0x6e, 0xfe, 0xcc, 0x6e, 0xa2, 0xef, 0xd8, + 0x35, 0x2e, 0xba, 0xc5, 0xcc, 0x74, 0x5f, 0x4c, 0x40, 0x47, 0xc8, 0xb1, 0x7b, + 0x90, 0x08, 0xd8, 0xdf, 0xc5, 0x9e, 0x63, 0x48, 0xa8, 0x54, 0x24, 0xf9, 0x7c, + 0x99, 0x57, 0x66, 0xdf, 0x6e, 0x96, 0xed, 0xd4, 0x48, 0x40, 0x07, 0x53, 0xac, + 0xd8, 0x2f, 0x0a, 0x5b, 0xbb, 0xb5, 0xaf, 0xb8, 0xb3, 0xce, 0xd8, 0xdd, 0xcf, + 0x91, 0xed, 0x18, 0x29, 0xa8, 0x36, 0xef, 0xc8, 0xde, 0xce, 0x72, 0x87, 0xcc, + 0xc3, 0xcd, 0x9f, 0x22, 0x14, 0x4f, 0xeb, 0x64, 0x25, 0x55, 0xec, 0xbd, 0x26, + 0xbb, 0x6d, 0x15, 0xe4, 0x96, 0xd6, 0x4c, 0xe1, 0x6e, 0x20, 0x20, 0xdc, 0x01, + 0x46, 0x94, 0xc8, 0x61, 0x57, 0x8a, 0x4f, 0xb4, 0x25, 0xf6, 0xed, 0xd2, 0xa1, + 0xc6, 0x1a, 0x1b, 0x44, 0x8c, 0xeb, 0x6f, 0x7b, 0x73, 0xb5, 0x0c, 0x69, 0x39, + 0xbd, 0xff, 0xdf, 0x9f, 0x93, 0x8f, 0x4a, 0x1a, 0x9c, 0xda, 0xbe, 0x08, 0x33, + 0x76, 0x6c, 0x94, 0xca, 0x1a, 0x96, 0x00, 0xaf, 0x25, 0xbb, 0xb8, 0x5c, 0xe4, + 0x7e, 0x01, 0xf8, 0xe3, 0xac, 0x7e, 0x0d, 0x6f, 0xda, 0xc5, 0xf6, 0x6a, 0x67, + 0xeb, 0xb7, 0x71, 0xfe, 0xcd, 0x6e, 0xe5, 0xa4, 0x9f, 0xd1, 0x1c, 0x2b, 0x68, + 0xf8, 0x16, 0xa0, 0x3b, 0xcd, 0x23, 0xdb, 0x60, 0x7a, 0x90, 0xc8, 0xd1, 0x6f, + 0x4e, 0x9b, 0xbf, 0x88, 0x96, 0xc5, 0xa8, 0xd4, 0x51, 0x2b, 0x4c, 0xb0, 0x21, + 0x73, 0xc8, 0x9c, 0x2c, 0x60, 0x1a, 0x54, 0x2e, 0xd7, 0x0c, 0x69, 0x99, 0xd5, + 0x71, 0x68, 0xa5, 0x8a, 0x78, 0xa7, 0xf8, 0x48, 0xd7, 0xd0, 0x45, 0x7b, 0x27, + 0x0a, 0x00, 0x7b, 0x45, 0x6d, 0xa2, 0xc0, 0x49, 0x5b, 0xbf, 0x9f, 0x2e, 0xe0, + 0x3c, 0x93, 0x86, 0x43, 0x82, 0xf3, 0x85, 0x39, 0x6b, 0xde, 0x00, 0x00, 0x36, + 0x29, 0xd7, 0x75, 0x96, 0x68, 0x10, 0x86, 0x4d, 0x4b, 0xbe, 0x0d, 0x06, 0x21, + 0xe2, 0x2e, 0xe2, 0x23, 0x5c, 0xc5, 0x39, 0x54, 0xf8, 0x3b, 0x59, 0x5c, 0x94, + 0x07, 0x66, 0x8a, 0x82, 0x0a, 0x42, 0x06, 0x68, 0xdd, 0xfb, 0x93, 0x7b, 0x31, + 0xfd, 0x41, 0xec, 0xc1, 0x0e, 0xf1, 0x44, 0x50, 0xa7, 0xe0, 0xe8, 0x81, 0xcd, + 0xcc, 0x5e, 0x5c, 0xd0, 0xfb, 0x7f, 0xe5, 0x39, 0xc3, 0x8e, 0xb8, 0xa4, 0x74, + 0x1c, 0x33, 0x02, 0x0b, 0x0f, 0xa1, 0x78, 0xc7, 0xb8, 0x1a, 0x8c, 0xad, 0xa3, + 0xbb, 0xff, 0x81, 0x8f, 0x77, 0x30, 0x83, 0x2f, 0x5d, 0x00, 0xf5, 0x9e, 0x5c, + 0x37, 0x16, 0x1c, 0x0f, 0x44, 0x86, 0xbd, 0x48, 0x48, 0xf2, 0xcc, 0xc6, 0x59, + 0x13, 0xa9, 0xca, 0xe9, 0xd4, 0xb6, 0xd6, 0xfc, 0xf3, 0x30, 0x8a, 0xcc, 0x0a, + 0x32, 0xfe, 0x5c, 0x8b, 0xf9, 0x36, 0x87, 0x0b, 0xd2, 0x1c, 0x74, 0xae, 0x76, + 0x68, 0xac, 0xf6, 0x9b, 0xb4, 0x06, 0xe5, 0x50, 0x3b, 0x87, 0x07, 0x94, 0x40, + 0x0e, 0x96, 0x17, 0x9c, 0xc7, 0xd3, 0x6a, 0x7a, 0x80, 0x10, 0x32, 0xef, 0xa3, + 0xe2, 0x09, 0x53, 0xdf, 0x92, 0x99, 0x44, 0xdf, 0x67, 0xf5, 0xba, 0x0a, 0xd2, + 0xf4, 0x97, 0xfb, 0xad, 0x57, 0x0a, 0xa9, 0xfc, 0xec, 0xa0, 0x62, 0x56, 0x6f, + 0x23, 0x65, 0xb6, 0xdc, 0xf6, 0x3c, 0xe7, 0x69, 0x52, 0xf4, 0xec, 0x7f, 0x45, + 0xb3, 0xfa, 0xb6, 0xa6, 0x2a, 0x35, 0x7e, 0x0a, 0x60, 0xdf, 0xd4, 0x52, 0x3d, + 0x24, 0x70, 0x87, 0x93, 0x6a, 0x1c, 0xe8, 0xff, 0xfe, 0xc7, 0x7e, 0xdd, 0x3f, + 0x84, 0x41, 0x7f, 0xb2, 0x46, 0xc7, 0x3d, 0x56, 0x3b, 0xfe, 0x72, 0xc8, 0xb4, + 0xb0, 0x37, 0xa7, 0x96, 0x8e, 0xcd, 0x4d, 0xa0, 0xe3, 0x41, 0x11, 0x4e, 0x8e, + 0x8c, 0xec, 0xf4, 0x67, 0x82, 0x14, 0x9e, 0x35, 0xce, 0x35, 0x72, 0x93, 0xbc, + 0x61, 0x30, 0x9a, 0xe2, 0x3d, 0x94, 0x67, 0x9a, 0x77, 0xee, 0x44, 0x99, 0x36, + 0x7e, 0x4b, 0x60, 0x46, 0xd8, 0xd3, 0x8e, 0x52, 0x53, 0x98, 0x33, 0x47, 0xc6, + 0x08, 0xdd, 0x90, 0x8b, 0x34, 0x52, 0x8c, 0x25, 0xf6, 0x39, 0x7e, 0x2c, 0x50, + 0x88, 0x9d, 0xd7, 0xa8, 0x9f, 0xcb, 0x29, 0x24, 0x99, 0x29, 0x55, 0x42, 0x7b, + 0x69, 0xe2, 0x99, 0x63, 0xe4, 0x7a, 0xe2, 0x11, 0xc5, 0xf2, 0x85, 0x30, 0x9f, + 0x99, 0x14, 0x98, 0x1c, 0x93, 0xb5, 0xbc, 0x88, 0xf3, 0x1e, 0xc5, 0xd3, 0x65, + 0x64, 0xfc, 0x4e, 0xa5, 0x8f, 0xce, 0xe6, 0xa9, 0x43, 0x58, 0x2a, 0x08, 0xa7, + 0x4e, 0x6c, 0xce, 0xa1, 0x5e, 0xb3, 0x5d, 0x6d, 0x7b, 0x70, 0xe7, 0x6c, 0x47, + 0xdd, 0x8b, 0x24, 0x26, 0x4c, 0x8c, 0x25, 0x27, 0x32, 0x5c, 0x1c, 0x8e, 0x2c, + 0x3c, 0x0c, 0xf9, 0x8f, 0xd8, 0x4c, 0xf9, 0xc9, 0x99, 0x77, 0x25, 0xd2, 0x96, + 0xcf, 0xd2, 0xf6, 0x90, 0x0c, 0x5a, 0x9d, 0xa2, 0xc9, 0x38, 0xda, 0x18, 0x53, + 0x09, 0xd6, 0x94, 0xc0, 0x0d, 0x8c, 0xa7, 0xc4, 0x20, 0xce, 0x19, 0x06, 0x03, + 0xde, 0x10, 0xcf, 0x2c, 0xd7, 0x1b, 0x5e, 0x5c, 0x2c, 0xff, 0x2a, 0x17, 0x2e, + 0x05, 0xf5, 0x84, 0x9f, 0x3e, 0xda, 0x92, 0x82, 0x0a, 0xc9, 0x4c, 0x67, 0xae, + 0xf0, 0xad, 0xaf, 0x38, 0x90, 0x84, 0x6d, 0xaf, 0xf7, 0xea, 0xba, 0x9d, 0x82, + 0x84, 0x86, 0x56, 0x23, 0xd8, 0x8c, 0xe3, 0x3a, 0xeb, 0x44, 0x96, 0xcc, 0xcd, + 0x12, 0x75, 0x9a, 0x5e, 0x1b, 0xd5, 0x44, 0xd5, 0xb7, 0x1c, 0x28, 0x61, 0x78, + 0x1f, 0x88, 0xe6, 0x4e, 0x7e, 0xb6, 0x27, 0x1b, 0x95, 0x41, 0x3f, 0x14, 0x39, + 0xdd, 0x11, 0x45, 0xb5, 0x5e, 0xdd, 0xe2, 0x34, 0x55, 0x8c, 0x7b, 0x79, 0x17, + 0xd9, 0x85, 0x84, 0xa1, 0x1f, 0xa6, 0xf7, 0x75, 0x52, 0xd6, 0xed, 0xf8, 0xda, + 0x9d, 0x29, 0x35, 0x9b, 0xdb, 0x2d, 0x9a, 0x81, 0x1b, 0x2c, 0xd5, 0x51, 0x0c, + 0xfb, 0x50, 0x66, 0x69, 0xc1, 0xf5, 0xd3, 0xa8, 0x3e, 0x09, 0x02, 0x24, 0x7b, + 0x3f, 0xee, 0xb4, 0x7e, 0x42, 0xfe, 0xd5, 0x68, 0x2f, 0x09, 0x83, 0xc8, 0x37, + 0x00, 0x8f, 0x3e, 0xbd, 0xc7, 0xd0, 0x75, 0x8c, 0x2d, 0xf9, 0x11, 0x44, 0x66, + 0x67, 0x35, 0xcc, 0x9b, 0xb0, 0x68, 0x9b, 0x40, 0x1b, 0x1b, 0x90, 0x48, 0x34, + 0xef, 0x38, 0x66, 0xaf, 0x49, 0x8a, 0xf8, 0x25, 0xc2, 0xc0, 0x44, 0xe6, 0x00, + 0xab, 0x27, 0x4f, 0x6e, 0xbc, 0x58, 0x85, 0x10, 0xaf, 0x1e, 0x87, 0x12, 0xcb, + 0x7d, 0xc6, 0xbe, 0xda, 0x5c, 0x37, 0xb2, 0x3e, 0x23, 0x77, 0x8a, 0xca, 0x9a, + 0x6e, 0x62, 0x08, 0xca, 0x3a, 0x08, 0xea, 0xa4, 0xee, 0xb7, 0xb7, 0x2c, 0xcc, + 0xe4, 0xbf, 0xa3, 0xa4, 0x8e, 0x2a, 0x7b, 0x3c, 0xcb, 0xee, 0x85, 0xc8, 0x1e, + 0xda, 0xac, 0x4d, 0xdd, 0xbf, 0x7f, 0x30, 0x27, 0x97, 0xc4, 0xa1, 0xe5, 0x1f, + 0xf6, 0xd8, 0x10, 0x5e, 0x9a, 0x8b, 0x16, 0x90, 0x0b, 0x0a, 0xbc, 0x3a, 0xa4, + 0xc5, 0x18, 0x3d, 0x49, 0x34, 0x02, 0x28, 0xa6, 0xa1, 0x24, 0x33, 0x5b, 0x4b, + 0x27, 0x44, 0x4b, 0x10, 0xda, 0xa1, 0xc5, 0xda, 0xa6, 0xfd, 0xb9, 0x83, 0x88, + 0x4f, 0x08, 0x55, 0x7d, 0x5e, 0x69, 0xaa, 0x9a, 0x59, 0x55, 0xff, 0x41, 0x1f, + 0xd1, 0x20, 0x92, 0x2c, 0x81, 0x3b, 0x42, 0xfb, 0x3f, 0x33, 0xc6, 0x34, 0x49, + 0x97, 0x23, 0xa0, 0x7d, 0xab, 0xe2, 0xf5, 0xcd, 0xa6, 0xbb, 0x7a, 0x83, 0x83, + 0x3a, 0xb4, 0x0b, 0x40, 0x93, 0x6f, 0xb9, 0x6c, 0xdb, 0xab, 0xd2, 0x9a, 0xda, + 0x4b, 0x8e, 0x47, 0x0e, 0x22, 0x9f, 0xb7, 0x41, 0xa9, 0x18, 0x31, 0x9a, 0xa8, + 0xb9, 0x54, 0x7b, 0x55, 0x11, 0xc7, 0x8c, 0x45, 0x92, 0xf0, 0xad, 0xa8, 0xc8, + 0x3f, 0x63, 0x69, 0xac, 0x8d, 0xb3, 0x3f, 0x28, 0x51, 0xa4, 0x90, 0x9b, 0x7c, + 0x43, 0x06, 0xac, 0x50, 0x8d, 0x2c, 0x5c, 0xfd, 0x61, 0x1e, 0xa0, 0x88, 0x73, + 0x53, 0x69, 0x7e, 0xe8, 0x94, 0xe9, 0x57, 0x7b, 0xe3, 0x83, 0xb1, 0xe5, 0x7e, + 0x41, 0x70, 0x6f, 0xeb, 0x49, 0x28, 0xe2, 0xcf, 0xfa, 0x57, 0x2a, 0x96, 0x95, + 0xe3, 0x8b, 0x18, 0x48, 0xe3, 0x8f, 0xdc, 0xac, 0xb8, 0x12, 0xcb, 0x78, 0x92, + 0xfa, 0x9e, 0x95, 0xce, 0x53, 0x8d, 0x83, 0x23, 0xb0, 0x00, 0x8b, 0xe9, 0xd6, + 0x31, 0xc9, 0x47, 0xc5, 0x54, 0x53, 0x33, 0x0d, 0xb8, 0x91, 0xf5, 0x86, 0x40, + 0xa5, 0xcb, 0x25, 0x4d, 0xfe, 0x8b, 0x6f, 0xc4, 0x3b, 0xe8, 0x4b, 0xcb, 0xd9, + 0xd9, 0xd7, 0x5f, 0x49, 0x75, 0x9a, 0xb7, 0xba, 0x87, 0x9a, 0x73, 0x30, 0x95, + 0x6c, 0x7f, 0xb8, 0x0f, 0x2e, 0x5c, 0xc2, 0xac, 0x3c, 0xc9, 0x7a, 0x43, 0x89, + 0x05, 0xa4, 0x76, 0xd8, 0x13, 0x88, 0x00, 0xb8, 0xb3, 0x44, 0xbf, 0x05, 0x7c, + 0x3f, 0x04, 0x20, 0x08, 0x38, 0xdc, 0x37, 0x7d, 0xee, 0x05, 0x10, 0x04, 0xb9, + 0x52, 0xd0, 0xfb, 0x3c, 0x0b, 0x8c, 0x4c, 0x15, 0x9c, 0x2b, 0xc3, 0x70, 0xee, + 0xf4, 0xc8, 0x68, 0x76, 0xc0, 0xc3, 0x85, 0xe2, 0x29, 0xb6, 0xfe, 0x5d, 0x7b, + 0x10, 0x86, 0xf5, 0x2d, 0x6d, 0x66, 0x26, 0xf5, 0xa8, 0x36, 0xff, 0x3b, 0xd8, + 0xb1, 0x6f, 0x92, 0x61, 0xf4, 0xf9, 0xd1, 0xc3, 0xeb, 0x4c, 0x9e, 0xc7, 0x8f, + 0xdd, 0x08, 0x86, 0x10, 0x22, 0x73, 0xb2, 0xda, 0x34, 0x3c, 0xcb, 0x29, 0x24, + 0x3d, 0x4f, 0x34, 0xe1, 0x82, 0x6f, 0xe6, 0x91, 0x2e, 0xca, 0x52, 0x2e, 0x8a, + 0xcd, 0xa9, 0xe5, 0x4d, 0x8f, 0x52, 0xb3, 0xf4, 0xa5, 0x13, 0xd7, 0x97, 0x4e, + 0x49, 0x06, 0x09, 0x01, 0x7c, 0xdc, 0x5b, 0x13, 0xcd, 0x80, 0xc7, 0xa2, 0x53, + 0x16, 0xde, 0x36, 0xf4, 0x5e, 0x09, 0x77, 0xa9, 0x2a, 0x31, 0xab, 0xd8, 0xca, + 0xd1, 0xae, 0x5d, 0x62, 0xc3, 0xa3, 0x1e, 0xe6, 0xdd, 0x1f, 0xc3, 0x9c, 0xe4, + 0x08, 0x8f, 0xbb, 0x22, 0x60, 0x2b, 0x4c, 0x0b, 0x84, 0x3b, 0x0c, 0x3b, 0xf7, + 0xcc, 0xa9, 0xbd, 0xcb, 0x52, 0x9c, 0x9d, 0x90, 0x35, 0xd6, 0x9d, 0x5d, 0x67, + 0x77, 0xe1, 0xe6, 0x9c, 0x64, 0x8a, 0xeb, 0xc5, 0x5d, 0xea, 0x72, 0x1e, 0x1c, + 0x14, 0xa1, 0x62, 0xbb, 0x3c, 0xae, 0xad, 0x30, 0x70, 0xca, 0xcf, 0x04, 0x29, + 0x4f, 0x7e, 0xc7, 0x16, 0x0d, 0x42, 0xcc, 0x2c, 0x74, 0xf6, 0x85, 0x61, 0x2d, + 0x6d, 0x5b, 0x3c, 0x2d, 0x29, 0xce, 0xa5, 0x0d, 0xad, 0xe5, 0xa7, 0xce, 0xf9, + 0xe0, 0x74, 0xd3, 0xba, 0xb5, 0x7d, 0x47, 0xf2, 0x23, 0x55, 0x61, 0x01, 0x85, + 0xd8, 0xca, 0x50, 0x8b, 0xc6, 0xd5, 0x39, 0x76, 0x6d, 0xf2, 0x5b, 0x97, 0x4e, + 0x12, 0xfc, 0xc6, 0x7b, 0x8f, 0xf1, 0x00, 0x09, 0x71, 0xd7, 0xee, 0x83, 0xfb, + 0x06, 0x0b, 0x8d, 0x94, 0xb3, 0x90, 0xe7, 0x62, 0x6f, 0x95, 0xa5, 0xf2, 0x96, + 0xd4, 0xbe, 0x5f, 0x42, 0xae, 0xdf, 0xa1, 0x9e, 0xff, 0x7b, 0xee, 0x19, 0x6a, + 0x78, 0x85, 0x2c, 0x21, 0x88, 0x6c, 0x0c, 0xc1, 0x31, 0x72, 0x77, 0x21, 0x7d, + 0x09, 0xee, 0x26, 0x1b, 0x7a, 0xc1, 0x7d, 0x41, 0x4b, 0x2e, 0xb5, 0x18, 0xbf, + 0x67, 0x49, 0x5d, 0x26, 0x9e, 0xfc, 0xbf, 0x1f, 0xe7, 0x16, 0x90, 0x6b, 0xe1, + 0x8b, 0x48, 0x7e, 0x56, 0x73, 0x92, 0x26, 0x72, 0x55, 0x27, 0x59, 0x28, 0x2a, + 0x99, 0x6c, 0x22, 0x5f, 0x3b, 0x63, 0x24, 0x49, 0xf0, 0x10, 0xc4, 0x9d, 0x54, + 0xd8, 0x64, 0x82, 0xa5, 0x88, 0x3a, 0x3f, 0x56, 0xb4, 0x83, 0x9d, 0xb6, 0x4d, + 0x7b, 0xbc, 0x3e, 0xf4, 0xb8, 0xb6, 0xd9, 0xbe, 0x24, 0x4f, 0x0b, 0x82, 0x91, + 0x79, 0xce, 0x78, 0x4f, 0x74, 0x34, 0x9a, 0x5d, 0x49, 0x81, 0x02, 0xfa, 0xd1, + 0x5d, 0x4b, 0x38, 0x1b, 0x84, 0xd9, 0x61, 0xfe, 0xcb, 0x8e, 0x8b, 0xe8, 0xfd, + 0xa3, 0xf6, 0xfe, 0x20, 0xa1, 0x24, 0x38, 0x80, 0x31, 0x19, 0x88, 0xfa, 0xe1, + 0xb9, 0xf6, 0x8b, 0x45, 0x90, 0x5b, 0xcd, 0xb0, 0xb8, 0x6e, 0x51, 0x83, 0xaf, + 0x2b, 0xef, 0x3b, 0x3d, 0xf3, 0x34, 0x95, 0x6e, 0x29, 0x10, 0xef, 0x29, 0xfc, + 0x76, 0x43, 0x8e, 0x5b, 0xd1, 0x74, 0x6a, 0x72, 0x75, 0xad, 0x4f, 0x04, 0xa5, + 0xe3, 0xbb, 0x7b, 0x75, 0xd6, 0xfa, 0x90, 0xb0, 0xf5, 0xf4, 0xf0, 0x7a, 0x0b, + 0x73, 0x37, 0x8b, 0xb6, 0xa2, 0x80, 0xd9, 0x00, 0xa3, 0x13, 0x77, 0x71, 0x45, + 0x7a, 0xe7, 0x11, 0x84, 0x53, 0x4d, 0xeb, 0x07, 0x51, 0xdf, 0x98, 0x9e, 0x87, + 0xcc, 0x0e, 0x47, 0x1b, 0x33, 0x57, 0xae, 0xb0, 0x1e, 0xf0, 0x3d, 0x89, 0xdd, + 0x2f, 0xa3, 0xac, 0x01, 0x2e, 0xc6, 0x10, 0x2d, 0x2a, 0xf7, 0x9e, 0xa7, 0x39, + 0x04, 0x00, 0xed, 0xcb, 0x88, 0x49, 0xb1, 0x84, 0x9e, 0x0d, 0x40, 0x10, 0xf3, + 0x9d, 0xd9, 0x10, 0x91, 0x83, 0x76, 0x20, 0x2a, 0x0e, 0x74, 0x86, 0xf9, 0xaf, + 0x64, 0xa0, 0x2e, 0xb9, 0x23, 0xb6, 0xf7, 0xd7, 0x8e, 0xc8, 0xad, 0x96, 0x56, + 0x93, 0x31, 0xc1, 0x93, 0x01, 0xc1, 0xe6, 0xfc, 0x43, 0x24, 0x92, 0x5b, 0xf1, + 0x34, 0x2e, 0xef, 0x6d, 0x3f, 0xb2, 0x99, 0xce, 0xd2, 0x72, 0x65, 0x6f, 0xff, + 0x1c, 0xbd, 0xdc, 0x26, 0x07, 0x7d, 0x82, 0xaf, 0xdb, 0xb0, 0x72, 0x29, 0x79, + 0x6c, 0x74, 0x89, 0x03, 0x4a, 0xd2, 0x31, 0xd6, 0xdc, 0xa6, 0x59, 0xca, 0x5d, + 0x60, 0x13, 0xd7, 0x62, 0x74, 0xd2, 0x21, 0x56, 0xfa, 0xb0, 0xd8, 0xab, 0x4b, + 0xbb, 0xa0, 0x56, 0xdf, 0x41, 0xee, 0xce, 0x4f, 0x68, 0xcb, 0x42, 0x4e, 0x08, + 0x5e, 0x73, 0xf5, 0xe4, 0x68, 0xcd, 0xc0, 0x13, 0xdc, 0x80, 0xd6, 0xc4, 0x82, + 0x27, 0xae, 0xf0, 0x8c, 0x13, 0xbb, 0x23, 0x06, 0x42, 0x45, 0xa5, 0xf0, 0x4b, + 0x0c, 0x7b, 0xc8, 0x70, 0x56, 0xfa, 0xbe, 0xcf, 0x44, 0x4d, 0xd0, 0x3e, 0x56, + 0xad, 0x26, 0xfc, 0x16, 0x3b, 0xf3, 0xaa, 0xb3, 0xc5, 0x95, 0xa6, 0xd3, 0xcb, + 0xae, 0x59, 0x1c, 0x32, 0xac, 0x33, 0x32, 0x40, 0xbf, 0x57, 0x1c, 0x41, 0x54, + 0x44, 0xf1, 0x97, 0xa0, 0x2f, 0x71, 0x3c, 0x1e, 0xad, 0x98, 0x5c, 0x4e, 0xa4, + 0x24, 0x0e, 0x77, 0xb0, 0x6e, 0x05, 0xe9, 0x8c, 0x23, 0x6d, 0x0d, 0x5c, 0xa0, + 0x89, 0x19, 0x58, 0x07, 0xce, 0x49, 0x1b, 0x38, 0x08, 0x70, 0x0f, 0xae, 0xca, + 0x64, 0xfe, 0x15, 0x88, 0x42, 0xf4, 0xed, 0xd4, 0x18, 0x3d, 0x38, 0xe7, 0x04, + 0x56, 0xfb, 0x36, 0x08, 0x90, 0x43, 0x1d, 0x92, 0x03, 0x70, 0x35, 0xe9, 0xc1, + 0x5c, 0x4e, 0x0b, 0x46, 0xa5, 0xe4, 0xbf, 0xdf, 0x95, 0x19, 0x05, 0x2d, 0x49, + 0x68, 0x66, 0x80, 0xe3, 0x94, 0xc3, 0x8e, 0x48, 0xda, 0x1d, 0x41, 0x86, 0xf7, + 0x8f, 0xb6, 0x85, 0x90, 0xca, 0x11, 0x53, 0xa1, 0xed, 0xfd, 0x52, 0x75, 0xce, + 0xa2, 0x18, 0x02, 0x46, 0xc4, 0xb4, 0x28, 0x84, 0x18, 0xd4, 0xed, 0x4e, 0x37, + 0xa0, 0x1e, 0x2b, 0x5b, 0xc1, 0x38, 0x86, 0xc0, 0xd1, 0xcb, 0x77, 0x16, 0xc2, + 0x7b, 0x6c, 0xb2, 0x2a, 0xa8, 0xd0, 0x8e, 0x14, 0xb3, 0xc2, 0x41, 0xf7, 0x82, + 0xca, 0x80, 0x77, 0x34, 0x99, 0x5a, 0x70, 0x0f, 0x89, 0x4f, 0xec, 0x93, 0xf4, + 0x36, 0x10, 0x36, 0x82, 0x2d, 0xbe, 0xdb, 0x3b, 0x83, 0x67, 0xe2, 0x12, 0xe4, + 0x82, 0x5a, 0xc0, 0xd9, 0x42, 0xbf, 0xa2, 0x6c, 0x07, 0xb7, 0x0e, 0x55, 0x56, + 0xe0, 0xaf, 0xf7, 0x46, 0x2f, 0xca, 0x70, 0x0b, 0xd0, 0x3c, 0x9b, 0x3b, 0xa9, + 0x31, 0x67, 0x56, 0x83, 0x9b, 0xda, 0x2a, 0x72, 0x6e, 0xa7, 0x95, 0x79, 0xa8, + 0x36, 0x5e, 0x2f, 0xd4, 0x2b, 0xcc, 0xad, 0x7a, 0xa5, 0xd5, 0xba, 0x89, 0x89, + 0x5e, 0x7a, 0xac, 0xb8, 0xcb, 0xe2, 0xd1, 0xca, 0x74, 0x70, 0xd4, 0x01, 0xbc, + 0xa6, 0x35, 0xd4, 0x3d, 0x6a, 0x85, 0x83, 0x2b, 0xe9, 0x8f, 0x0d, 0x1a, 0xce, + 0xe2, 0x52, 0x69, 0x4a, 0x55, 0xea, 0x9a, 0xec, 0xda, 0xd0, 0x3e, 0x46, 0xc7, + 0x52, 0x10, 0xcd, 0x55, 0x69, 0xdf, 0xc0, 0x12, 0xea, 0xeb, 0x66, 0x63, 0x73, + 0xe5, 0x23, 0x7b, 0x9b, 0x54, 0x9e, 0xd9, 0x7d, 0x62, 0xa4, 0x6c, 0x36, 0x9d, + 0xc8, 0x2c, 0xa7, 0xc5, 0x65, 0x56, 0xbb, 0x4d, 0x6b, 0x46, 0x63, 0x32, 0xb5, + 0x59, 0xbd, 0x4b, 0x94, 0x86, 0x0d, 0xbb, 0x8e, 0x26, 0xe9, 0xb8, 0x2b, 0xfd, + 0x7b, 0x0b, 0x86, 0x88, 0x24, 0x43, 0xb2, 0xb6, 0xe4, 0xd1, 0x83, 0x38, 0x0a, + 0xbd, 0x9f, 0xbd, 0x11, 0x16, 0x77, 0x74, 0xab, 0xbe, 0xb1, 0x6d, 0x35, 0x5d, + 0x1b, 0x1a, 0x85, 0x7f, 0x9f, 0xdf, 0x55, 0xa8, 0x54, 0x75, 0xec, 0xfd, 0x8c, + 0xb8, 0x69, 0x7d, 0x51, 0x7f, 0x98, 0xdb, 0x6f, 0x02, 0x4d, 0xa0, 0xe3, 0x58, + 0xaf, 0xa4, 0xda, 0xa1, 0xf8, 0x0c, 0x3e, 0x08, 0x6f, 0x1b, 0xb7, 0x3a, 0xd5, + 0x12, 0xeb, 0xad, 0x53, 0x4a, 0x9b, 0x9b, 0xd0, 0x23, 0xd6, 0x47, 0x98, 0xad, + 0x19, 0x9f, 0x73, 0x5c, 0xf0, 0x3b, 0x8f, 0x0d, 0xeb, 0x97, 0xa4, 0x42, 0xf2, + 0x37, 0x90, 0x5c, 0xf3, 0xf5, 0x16, 0x7c, 0x17, 0xe0, 0xca, 0x1b, 0x83, 0x7d, + 0xe0, 0x1e, 0x9b, 0x63, 0x92, 0x7a, 0xbb, 0xbd, 0x4a, 0x94, 0x82, 0x1f, 0xc1, + 0x02, 0x2f, 0x27, 0x99, 0x04, 0xb2, 0xd3, 0x44, 0xe8, 0xb7, 0x5a, 0xc6, 0x3c, + 0x1e, 0xea, 0x3e, 0x9b, 0x3f, 0xdc, 0x0c, 0x3f, 0xad, 0x43, 0xaf, 0xb3, 0xa4, + 0x9a, 0x29, 0x67, 0xbf, 0x26, 0x4e, 0xa9, 0x56, 0x53, 0xbf, 0x8f, 0x57, 0x17, + 0xb4, 0xca, 0xa9, 0x93, 0x5c, 0xf1, 0xc8, 0xc1, 0x4f, 0x11, 0x29, 0xda, 0x4b, + 0x0d, 0xb0, 0x36, 0x99, 0xad, 0xb1, 0xfc, 0x9a, 0x32, 0x70, 0x0b, 0x28, 0xd7, + 0x0d, 0xa0, 0x9a, 0x8c, 0xe6, 0xde, 0xc5, 0x76, 0x71, 0xb2, 0xe9, 0xb2, 0xc5, + 0x2a, 0xc1, 0xdb, 0xf4, 0x49, 0x9c, 0x5f, 0xa1, 0x20, 0x7b, 0x92, 0x6d, 0x3a, + 0x3e, 0x36, 0x05, 0xf4, 0x17, 0x69, 0x58, 0x4b, 0x7e, 0x7f, 0x82, 0x49, 0xcb, + 0x95, 0x6f, 0x2c, 0x2e, 0xa0, 0xc5, 0x16, 0xf2, 0x24, 0x04, 0x45, 0xdb, 0x60, + 0x53, 0x0d, 0x07, 0x82, 0xae, 0x6b, 0x69, 0xca, 0x8c, 0x69, 0x14, 0x8d, 0xc2, + 0x03, 0xbd, 0x88, 0xb0, 0x62, 0xf5, 0x69, 0x04, 0x00, 0x5f, 0xc1, 0x27, 0x41, + 0xdb, 0x1b, 0xb4, 0xb2, 0x1e, 0xa7, 0x45, 0x22, 0x53, 0x59, 0x00, 0x0e, 0x83, + 0x18, 0x72, 0x5b, 0xad, 0x8a, 0xa4, 0xa6, 0x55, 0x70, 0xb3, 0x4d, 0x97, 0xf7, + 0x45, 0x0d, 0xfd, 0x04, 0x01, 0xdf, 0xe2, 0x45, 0x5d, 0x9f, 0x51, 0xe0, 0xe1, + 0xca, 0x33, 0x3b, 0x4f, 0x37, 0xa5, 0x96, 0x66, 0x37, 0x7b, 0x6f, 0x3a, 0x45, + 0x67, 0xf7, 0x7c, 0x2b, 0x9f, 0xcb, 0x5b, 0x6c, 0xd3, 0x5e, 0xa5, 0xff, 0x52, + 0x3b, 0x88, 0xa5, 0xb8, 0x36, 0x5a, 0x5f, 0x43, 0xfc, 0xbc, 0xff, 0xdd, 0xed, + 0xbb, 0xd1, 0x8d, 0xcd, 0x5e, 0x98, 0x85, 0x3b, 0x1e, 0xa8, 0x9f, 0xd7, 0xcd, + 0x17, 0x57, 0xe0, 0xc4, 0x2c, 0x93, 0x10, 0x97, 0x00, 0x81, 0xcc, 0x32, 0x9b, + 0x5d, 0x2d, 0x9f, 0x64, 0x6e, 0xa4, 0xa7, 0xba, 0xa8, 0xba, 0x26, 0xd3, 0xa8, + 0x4f, 0x56, 0x7a, 0x68, 0x95, 0x0a, 0xbf, 0x0a, 0xcd, 0xc0, 0x9d, 0x6a, 0x97, + 0x95, 0xed, 0xba, 0xde, 0x4b, 0xc3, 0x17, 0xc5, 0x68, 0xd0, 0xff, 0xbd, 0xbc, + 0x99, 0xdc, 0x5b, 0x49, 0xb4, 0xd6, 0x14, 0x53, 0xb6, 0x7a, 0xcd, 0xb5, 0xb2, + 0x19, 0x7a, 0xcb, 0x7e, 0xba, 0x12, 0xe2, 0xbf, 0x0f, 0xea, 0x88, 0x0d, 0x6e, + 0x63, 0xf1, 0xf8, 0x8e, 0xf4, 0x21, 0x10, 0x2a, 0x1b, 0xba, 0x27, 0xd9, 0xc6, + 0x45, 0x4e, 0xfe, 0xe5, 0x1a, 0xfc, 0x56, 0x68, 0x6b, 0xe8, 0x9a, 0x54, 0x4a, + 0x7d, 0xeb, 0x62, 0x50, 0xb8, 0xf3, 0x06, 0xe2, 0x91, 0xdd, 0x53, 0x7f, 0x3c, + 0x5b, 0x0f, 0x76, 0x9b, 0x7e, 0x3a, 0x59, 0xda, 0xf2, 0x0f, 0xbd, 0x2e, 0x1a, + 0xa9, 0x2d, 0xc7, 0x46, 0x77, 0x1f, 0x55, 0xd1, 0x5d, 0x13, 0xfa, 0xc8, 0x30, + 0xaa, 0x73, 0x18, 0x64, 0x7d, 0xac, 0xb3, 0xf3, 0x3a, 0xa3, 0x17, 0x2c, 0xa9, + 0xd6, 0xb8, 0xb5, 0x71, 0x98, 0x93, 0x11, 0x85, 0xca, 0x4b, 0x8f, 0xec, 0x9e, + 0x95, 0xb4, 0xc3, 0x9e, 0x68, 0x9e, 0xe7, 0x0c, 0x35, 0xc3, 0x8b, 0x5a, 0xa4, + 0x64, 0xa9, 0x76, 0x44, 0x4a, 0x85, 0x6e, 0x38, 0xc6, 0xd3, 0xe9, 0x7a, 0x49, + 0x34, 0xdd, 0x05, 0xf7, 0x9f, 0xda, 0xf2, 0x5d, 0x4b, 0x93, 0xe4, 0x21, 0xd0, + 0x2a, 0xa1, 0x8d, 0x87, 0x0a, 0x25, 0x3a, 0x19, 0xd9, 0x54, 0x73, 0xee, 0x68, + 0xb3, 0xe2, 0x22, 0xc3, 0xf4, 0x56, 0x43, 0x4f, 0xff, 0x54, 0x05, 0x9d, 0x96, + 0xd1, 0x0b, 0x20, 0x5f, 0x0e, 0xec, 0x39, 0x60, 0x63, 0x01, 0x62, 0x48, 0xd3, + 0x7f, 0x19, 0xab, 0xc7, 0x4b, 0xa0, 0x68, 0xce, 0x6e, 0x62, 0xa5, 0x07, 0x28, + 0xc6, 0x91, 0x7e, 0x2e, 0xe1, 0xe9, 0x74, 0x03, 0x78, 0xd6, 0xd5, 0x9a, 0x40, + 0x72, 0x15, 0x60, 0xa2, 0xa1, 0xba, 0xea, 0xe2, 0x6a, 0x96, 0x8d, 0xeb, 0x84, + 0xf3, 0x94, 0x40, 0x2a, 0x5b, 0x4a, 0x75, 0xd9, 0xf0, 0x2d, 0x27, 0xa5, 0x11, + 0x13, 0xac, 0x71, 0xdc, 0x5d, 0x17, 0x4d, 0xb1, 0x4a, 0x85, 0xc7, 0x94, 0x39, + 0x73, 0xaf, 0xf5, 0x5e, 0xd8, 0x3b, 0xa0, 0xa5, 0x66, 0xfb, 0xd6, 0xc7, 0x4e, + 0x33, 0x70, 0x06, 0x57, 0xc1, 0x07, 0xa7, 0x0d, 0xea, 0x7e, 0xc9, 0x9c, 0xe5, + 0x79, 0xb0, 0x2e, 0xd7, 0x29, 0x3d, 0xf0, 0xdc, 0x57, 0xac, 0x85, 0xce, 0x32, + 0x26, 0xfd, 0x7b, 0xf7, 0xbf, 0xa4, 0x06, 0xd4, 0x27, 0x6e, 0xbf, 0x40, 0xcb, + 0xe9, 0x54, 0x7e, 0x9d, 0xac, 0xab, 0xf0, 0xfb, 0x3f, 0x92, 0x0f, 0xc5, 0xcb, + 0xbb, 0x30, 0x43, 0x47, 0x3c, 0x68, 0x09, 0x09, 0x2d, 0xf5, 0x37, 0x53, 0x36, + 0x3c, 0x0b, 0xa9, 0xaa, 0x9c, 0xe6, 0x2d, 0xb7, 0x06, 0x00, + ], + txid: [ + 0xa9, 0x37, 0x5b, 0x4f, 0x1b, 0xeb, 0x1b, 0x9c, 0x37, 0xa1, 0x47, 0x4e, 0xcf, + 0xd5, 0xe6, 0x0b, 0x8e, 0x4d, 0xcb, 0x2a, 0x64, 0x71, 0xc4, 0x93, 0x60, 0xd4, + 0xe5, 0xf3, 0xdf, 0x83, 0x19, 0x2d, + ], + auth_digest: [ + 0x10, 0x49, 0x4f, 0xdf, 0xb7, 0x97, 0xb9, 0x53, 0xed, 0x46, 0x34, 0xa2, 0xc7, + 0x23, 0x2f, 0x52, 0x8c, 0x91, 0xf2, 0x45, 0x7b, 0x8d, 0x65, 0x68, 0x63, 0xa2, + 0x43, 0xe0, 0xd2, 0x3e, 0x43, 0xb3, + ], + amounts: vec![1884422654635218, 741515226932432, 1268517997797946], + zsf_deposit: 1890257630702249, + script_pubkeys: vec![ + vec![0x52, 0x51, 0x52, 0x63, 0x63, 0x51], + vec![0x52, 0x52, 0x52, 0x52, 0x52, 0xac], + vec![], + ], + transparent_input: Some(1), + sighash_shielded: [ + 0x14, 0xca, 0x52, 0xd0, 0xdf, 0x30, 0x51, 0xc7, 0x83, 0x16, 0x30, 0xf9, 0x6d, + 0xd7, 0x93, 0x62, 0xf3, 0xfb, 0x5b, 0x82, 0x56, 0x25, 0xc0, 0x47, 0x53, 0x1b, + 0xf5, 0x19, 0xf7, 0xbd, 0x25, 0xb7, + ], + sighash_all: Some([ + 0xc1, 0xcb, 0xac, 0x18, 0x9e, 0x4b, 0x6b, 0x69, 0x7d, 0x12, 0xc2, 0x7f, 0xd0, + 0x67, 0x81, 0x82, 0x1c, 0x2b, 0x09, 0x9d, 0x70, 0x7d, 0xec, 0x9c, 0x04, 0x76, + 0xb2, 0x27, 0xb2, 0x43, 0xf8, 0xfc, + ]), + sighash_none: Some([ + 0x5d, 0x85, 0x5f, 0xee, 0x46, 0x87, 0x8d, 0xc3, 0xaf, 0xb8, 0x8b, 0x98, 0x7c, + 0x11, 0x2e, 0x4b, 0xc6, 0x00, 0x57, 0x20, 0x79, 0xdb, 0x88, 0x52, 0x05, 0x66, + 0xc6, 0xcb, 0x6b, 0x17, 0x67, 0x9b, + ]), + sighash_single: None, + sighash_all_anyone: Some([ + 0x6a, 0x47, 0x61, 0xd3, 0x0a, 0x22, 0x72, 0x0e, 0x80, 0x92, 0x15, 0x6d, 0x54, + 0x18, 0xaf, 0x34, 0xd8, 0x1e, 0x73, 0xdc, 0x48, 0x97, 0x97, 0x07, 0x23, 0xda, + 0xef, 0xf4, 0xe0, 0x7a, 0xb6, 0x50, + ]), + sighash_none_anyone: Some([ + 0x72, 0xb9, 0x1c, 0x3d, 0x95, 0x39, 0x09, 0x0c, 0xb6, 0x49, 0x33, 0x95, 0x21, + 0x66, 0x20, 0xc8, 0x9c, 0x70, 0x10, 0x53, 0x13, 0x88, 0x63, 0x7e, 0xc7, 0x85, + 0xec, 0xc6, 0xce, 0x97, 0xc7, 0xec, + ]), + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, + 0x86, 0x41, 0xcc, 0x05, 0x31, 0x3e, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, 0x04, 0x05, 0x31, 0x3e, 0x12, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x2f, 0xb9, 0xad, 0x70, 0x14, + 0x05, 0x00, + ], + txid: [ + 0xcc, 0x74, 0xe6, 0x45, 0xe2, 0x9a, 0x55, 0xe0, 0x5a, 0x55, 0x91, 0x49, 0x14, + 0xad, 0x80, 0xe8, 0x36, 0x65, 0x51, 0x9b, 0x0a, 0x53, 0x0d, 0xf6, 0x0e, 0xda, + 0xec, 0x5c, 0x89, 0x83, 0xd1, 0x16, + ], + auth_digest: [ + 0x9d, 0x04, 0x8e, 0x96, 0xd3, 0x23, 0x76, 0x27, 0x0f, 0x23, 0x63, 0x38, 0x1b, + 0x2c, 0x2b, 0x86, 0x48, 0x49, 0x82, 0xef, 0xdf, 0xab, 0x10, 0x17, 0xd1, 0x41, + 0x34, 0xc9, 0xfc, 0x35, 0x21, 0x33, + ], + amounts: vec![], + zsf_deposit: 1429849067040605, + script_pubkeys: vec![], + transparent_input: None, + sighash_shielded: [ + 0xcc, 0x74, 0xe6, 0x45, 0xe2, 0x9a, 0x55, 0xe0, 0x5a, 0x55, 0x91, 0x49, 0x14, + 0xad, 0x80, 0xe8, 0x36, 0x65, 0x51, 0x9b, 0x0a, 0x53, 0x0d, 0xf6, 0x0e, 0xda, + 0xec, 0x5c, 0x89, 0x83, 0xd1, 0x16, + ], + sighash_all: None, + sighash_none: None, + sighash_single: None, + sighash_all_anyone: None, + sighash_none_anyone: None, + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, + 0x77, 0x5b, 0xcb, 0x2c, 0x96, 0x0f, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, 0x04, 0x2c, 0x96, 0x0f, 0x11, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x90, 0xfa, 0x30, 0x6a, 0x65, 0xe1, + 0xa3, 0xbb, 0xeb, 0x9e, 0xb4, 0xb5, 0x32, 0x4e, 0xf4, 0x9c, 0x4b, 0xc5, 0x6c, + 0xd9, 0x97, 0x8c, 0x4e, 0xe2, 0xe4, 0xa2, 0x91, 0x5a, 0x2e, 0x38, 0xe3, 0xba, + 0x1e, 0xf4, 0x9f, 0x08, 0x96, 0x79, 0x57, 0x06, 0x44, 0x94, 0xe9, 0x84, 0xfe, + 0x23, 0x7c, 0x51, 0x8b, 0xb1, 0x57, 0x8d, 0xb4, 0x14, 0x7a, 0xc3, 0x9c, 0xa3, + 0xf7, 0x1a, 0x27, 0xda, 0xa3, 0x1c, 0xfb, 0x92, 0xc4, 0x68, 0x19, 0x15, 0x72, + 0x08, 0x27, 0x59, 0xa0, 0xa4, 0xe8, 0x01, 0x68, 0xf6, 0x44, 0xf2, 0x49, 0xb9, + 0xa0, 0x09, 0xd2, 0xe6, 0xb6, 0xa7, 0x2e, 0x26, 0x03, 0x19, 0x54, 0xad, 0x0a, + 0x86, 0x3d, 0x8d, 0x26, 0x81, 0x3f, 0xa9, 0x9f, 0x8f, 0x14, 0x24, 0xe3, 0xfb, + 0xca, 0x1b, 0xc4, 0xe3, 0xd6, 0xfc, 0x49, 0x73, 0x6f, 0x45, 0x23, 0xf6, 0x75, + 0xdb, 0x7b, 0x2e, 0x11, 0x00, 0xcd, 0x9d, 0xa3, 0x2b, 0x99, 0xfb, 0x2e, 0x8c, + 0xd3, 0xb0, 0xa5, 0x53, 0x3d, 0x43, 0x3f, 0xfc, 0x62, 0x35, 0x18, 0x10, 0x16, + 0x33, 0xcb, 0x8f, 0xef, 0xe5, 0x9e, 0x8d, 0x3e, 0x90, 0x11, 0x0c, 0x01, 0x8c, + 0x14, 0xcf, 0xdd, 0x63, 0xd0, 0xe6, 0x0f, 0x76, 0x09, 0x73, 0xc5, 0x57, 0x6a, + 0x78, 0xac, 0x86, 0x20, 0x96, 0xd0, 0xae, 0x81, 0x9d, 0x7f, 0x4c, 0xd0, 0x18, + 0x31, 0x9d, 0xe9, 0x70, 0xd3, 0xf5, 0x75, 0x74, 0x84, 0xea, 0x59, 0x21, 0xe9, + 0xcd, 0x55, 0xde, 0x09, 0x97, 0x41, 0x8d, 0x61, 0x7b, 0x32, 0x86, 0x2b, 0xc6, + 0x28, 0xcf, 0xf3, 0xe8, 0x53, 0xf0, 0x44, 0x48, 0xc6, 0xd3, 0x5a, 0xc8, 0x91, + 0x85, 0x86, 0x48, 0x7c, 0x28, 0xb8, 0x9b, 0x21, 0xa9, 0x5c, 0xd6, 0x52, 0x4c, + 0x42, 0x2e, 0xb5, 0x27, 0xf8, 0xd3, 0xde, 0x28, 0x17, 0x2d, 0xb8, 0x3a, 0xa7, + 0xaf, 0x3e, 0xbb, 0xc3, 0x76, 0xaf, 0x9f, 0x06, 0xba, 0xbb, 0x95, 0xf7, 0x93, + 0x3b, 0xf5, 0x31, 0x02, 0x2f, 0xbe, 0x4c, 0x87, 0x4e, 0x71, 0x25, 0x29, 0x2a, + 0x13, 0xc3, 0x33, 0x12, 0xf2, 0x9a, 0x39, 0x8e, 0xfb, 0x98, 0x73, 0x45, 0xfb, + 0x71, 0x5c, 0x84, 0x0a, 0x1a, 0xb2, 0x7c, 0x6a, 0x85, 0xc1, 0x46, 0x3d, 0x0b, + 0x36, 0x43, 0x0f, 0x4c, 0xc8, 0xb8, 0x4d, 0xf4, 0x54, 0xef, 0x30, 0x27, 0x73, + 0x73, 0x6c, 0xf9, 0x6f, 0xdc, 0x20, 0x50, 0x4d, 0x37, 0x3c, 0x64, 0xcc, 0x19, + 0x34, 0x65, 0x09, 0xdf, 0x7d, 0x38, 0x24, 0xd8, 0x8e, 0xd5, 0x37, 0xbb, 0xdc, + 0xa7, 0x44, 0x03, 0xa0, 0x33, 0xf4, 0xb4, 0xb1, 0x4f, 0x5b, 0xeb, 0xac, 0x54, + 0x52, 0xcd, 0xe0, 0x42, 0x7e, 0x4e, 0xc2, 0xcf, 0x0f, 0x50, 0x1e, 0xb9, 0x21, + 0x41, 0x4f, 0x34, 0x11, 0x33, 0x5c, 0xd7, 0xae, 0xa1, 0xad, 0x49, 0xd9, 0xce, + 0x49, 0x67, 0x07, 0x3c, 0x8b, 0x99, 0x9f, 0xbd, 0x9c, 0x64, 0x1a, 0xb5, 0x9a, + 0xbd, 0x75, 0x8a, 0x39, 0x76, 0x1a, 0x1f, 0x7d, 0x73, 0x57, 0x13, 0xd7, 0x11, + 0x1d, 0x09, 0xcc, 0x3e, 0x98, 0xd2, 0x38, 0x4e, 0xe2, 0x25, 0x36, 0xf7, 0xc2, + 0xdb, 0x87, 0x02, 0x6a, 0xcf, 0x36, 0xcd, 0xad, 0xf8, 0x7b, 0xbb, 0xa9, 0x1a, + 0x0c, 0xab, 0x86, 0x5b, 0x8b, 0xdd, 0x1d, 0x4e, 0xac, 0xc1, 0x66, 0xde, 0x60, + 0x34, 0xb4, 0xc4, 0x4f, 0xc9, 0xe8, 0x01, 0x66, 0x37, 0x7c, 0x93, 0x0b, 0x3c, + 0x58, 0x7b, 0x33, 0x5d, 0xa0, 0x73, 0x04, 0x22, 0x7f, 0xe8, 0xf3, 0xc7, 0x0a, + 0x62, 0x68, 0xf5, 0x89, 0xfb, 0x01, 0xa6, 0xa2, 0xb2, 0xa1, 0x41, 0xc5, 0x5f, + 0x4d, 0xf3, 0xa9, 0x83, 0x2f, 0xb1, 0xb3, 0x2e, 0xce, 0xb8, 0xb5, 0x4b, 0xf8, + 0xbc, 0x0d, 0x36, 0xcd, 0xba, 0xb5, 0x85, 0xff, 0xb0, 0x72, 0x53, 0x54, 0x6d, + 0xd6, 0x90, 0x08, 0xae, 0xe6, 0xb1, 0xee, 0x9a, 0xf8, 0x85, 0x05, 0xb0, 0x84, + 0x1a, 0x19, 0x7f, 0x53, 0x36, 0xcd, 0x50, 0x35, 0x91, 0xa2, 0x15, 0x0f, 0xeb, + 0xb8, 0xbb, 0x21, 0xf6, 0xdc, 0x83, 0x0f, 0x64, 0xfa, 0x64, 0xda, 0xc1, 0x84, + 0x92, 0xfb, 0x53, 0x8f, 0x6c, 0x06, 0x39, 0x35, 0x0d, 0x10, 0x2d, 0xf4, 0xad, + 0xd6, 0x17, 0xda, 0x94, 0x28, 0x48, 0xc2, 0x2d, 0xef, 0xf1, 0x48, 0x35, 0x65, + 0xbd, 0x77, 0x43, 0xdc, 0x09, 0x29, 0xc6, 0xba, 0x8c, 0x86, 0xfd, 0x07, 0x8e, + 0xc3, 0x99, 0x34, 0x6a, 0xce, 0x6f, 0x7b, 0x06, 0x6d, 0x9f, 0xdb, 0x71, 0x87, + 0x12, 0x6b, 0xc7, 0xbf, 0xda, 0x0d, 0xfc, 0xa5, 0x4d, 0x1f, 0xa1, 0xd5, 0xdf, + 0x6c, 0x3e, 0x6b, 0x12, 0x98, 0xc5, 0x70, 0xac, 0x09, 0xb1, 0xfc, 0xde, 0xcd, + 0xae, 0x50, 0xb1, 0x62, 0xec, 0x46, 0x12, 0x6c, 0x9f, 0xa6, 0x70, 0x8f, 0x60, + 0xf5, 0x3d, 0x71, 0xdd, 0x0a, 0xf7, 0x20, 0x65, 0x51, 0xe9, 0x5c, 0x26, 0xa3, + 0x40, 0xd2, 0xcc, 0xdb, 0x8f, 0x01, 0xc9, 0x30, 0xc2, 0x8a, 0xee, 0x9a, 0x25, + 0x81, 0xb2, 0xea, 0xab, 0x79, 0x15, 0x1e, 0x6d, 0x47, 0x94, 0x3d, 0x97, 0xa0, + 0xa2, 0x87, 0x0d, 0x55, 0x00, 0x9a, 0xcd, 0x57, 0xc5, 0xc3, 0xf2, 0xbb, 0x50, + 0xc6, 0x43, 0x66, 0xa2, 0x7b, 0x56, 0xdb, 0x8d, 0xb3, 0xe7, 0xba, 0x65, 0x49, + 0x06, 0x5d, 0xc4, 0xc6, 0xff, 0xa1, 0x07, 0x85, 0x4a, 0x0c, 0xd7, 0xfc, 0x9d, + 0x39, 0x3b, 0x12, 0xdc, 0x81, 0x34, 0xd4, 0x00, 0xf5, 0x2f, 0x06, 0x87, 0xe4, + 0x73, 0xdc, 0x49, 0x83, 0xa9, 0x2c, 0x8b, 0x1a, 0xde, 0x3b, 0x91, 0xbb, 0xb8, + 0x27, 0xf9, 0xb9, 0xc0, 0xd7, 0x32, 0x27, 0xfe, 0x67, 0x02, 0xd6, 0x41, 0x28, + 0x9a, 0xfc, 0x1c, 0x9b, 0x92, 0x8f, 0xd8, 0x65, 0xf4, 0x76, 0x99, 0x20, 0x07, + 0x09, 0xfe, 0x70, 0xb4, 0x3e, 0x0e, 0x14, 0x50, 0x59, 0xd0, 0x54, 0x08, 0xfd, + 0xd4, 0xbe, 0xf8, 0x5e, 0xad, 0x2c, 0xe7, 0x15, 0x96, 0x89, 0xb4, 0xfb, 0xa0, + 0x62, 0x28, 0xf5, 0xc3, 0xb3, 0x8d, 0xf3, 0xdc, 0xc1, 0x1f, 0x9b, 0xd7, 0x9c, + 0x4a, 0xfc, 0xb3, 0x3b, 0x2a, 0x71, 0xf6, 0x6e, 0x02, 0x63, 0xba, 0xe5, 0x77, + 0x91, 0x90, 0x02, 0x00, 0x07, 0xe3, 0x9d, 0xfc, 0x35, 0x6b, 0x9f, 0x73, 0xa8, + 0xf4, 0x88, 0x04, 0x60, 0xef, 0xe8, 0xe6, 0x1b, 0xcb, 0x1c, 0xd3, 0x04, 0x88, + 0x9b, 0xc5, 0x93, 0x7b, 0x04, 0x8f, 0xef, 0x96, 0x00, 0x08, 0xe4, 0x71, 0xfb, + 0xf8, 0xb4, 0x91, 0x7c, 0x4b, 0x58, 0xcc, 0x7e, 0xaf, 0xd8, 0x33, 0xcd, 0x2f, + 0x0e, 0x04, 0x51, 0x3c, 0xa8, 0xbd, 0x08, 0x8b, 0xc4, 0xeb, 0x15, 0xdc, 0xad, + 0xeb, 0xf6, 0xde, 0x26, 0xa6, 0x47, 0x67, 0x90, 0x74, 0x37, 0x23, 0x57, 0x37, + 0x9b, 0x4a, 0xd9, 0x80, 0xa9, 0x88, 0xa1, 0x71, 0x32, 0x00, 0xff, 0xb9, 0x63, + 0x63, 0xef, 0x90, 0x57, 0xcc, 0x9a, 0xe9, 0xb3, 0x61, 0x18, 0xf5, 0x9f, 0x64, + 0x82, 0x4b, 0x8a, 0xd6, 0xc7, 0xa9, 0x76, 0xfb, 0x98, 0xcc, 0xe8, 0x87, 0x98, + 0x55, 0xf5, 0xb7, 0xbe, 0x6c, 0xff, 0x2f, 0x99, 0x09, 0xbb, 0x22, 0xa8, 0x92, + 0xc5, 0x09, 0xb0, 0x04, 0xe3, 0x6d, 0xbd, 0x84, 0xef, 0x71, 0x05, 0x73, 0x07, + 0xf6, 0x72, 0x09, 0xd8, 0x30, 0x8a, 0x48, 0xae, 0xce, 0x09, 0x81, 0x99, 0x0a, + 0x2d, 0xca, 0x26, 0xdc, 0x58, 0x17, 0x06, 0x18, 0x27, 0x67, 0x0d, 0xa8, 0xa8, + 0x17, 0x3f, 0x88, 0x33, 0x51, 0xd1, 0x06, 0x96, 0xb2, 0xba, 0x7f, 0xfe, 0xac, + 0xd3, 0x09, 0x4f, 0x86, 0x8d, 0x77, 0xf5, 0x0e, 0x77, 0x18, 0x2b, 0xd0, 0x70, + 0xee, 0x13, 0x2c, 0x21, 0xaf, 0xda, 0xf5, 0x2e, 0x5b, 0x2f, 0x63, 0x18, 0x8b, + 0x74, 0x36, 0x97, 0x06, 0x16, 0x86, 0x05, 0xbc, 0x74, 0xb4, 0x5a, 0x12, 0x60, + 0x3a, 0x48, 0xde, 0xe0, 0x85, 0x7b, 0xc7, 0x56, 0x8e, 0x17, 0x52, 0x37, 0x82, + 0x07, 0x3f, 0x4d, 0xd2, 0x01, 0x77, 0x6c, 0x74, 0xd0, 0x0a, 0x43, 0x67, 0x8f, + 0x33, 0xb8, 0x48, 0x14, 0xbe, 0xaa, 0xed, 0x96, 0x68, 0xeb, 0xb2, 0xf5, 0x95, + 0x7b, 0x53, 0x9d, 0xc0, 0x11, 0xeb, 0x8f, 0x52, 0x4c, 0xe5, 0x61, 0x7f, 0x1f, + 0x99, 0xa2, 0xcf, 0xda, 0xaa, 0xb4, 0x10, 0xac, 0xc8, 0x4f, 0x43, 0x45, 0xaa, + 0x8f, 0x4a, 0x43, 0x2e, 0xab, 0x48, 0x03, 0xa7, 0x2e, 0xd6, 0x9b, 0x50, 0x24, + 0x0a, 0x31, 0x16, 0x5e, 0xd9, 0xd5, 0x61, 0x77, 0x17, 0x6c, 0x87, 0xfc, 0xf9, + 0x7e, 0x98, 0x7b, 0x25, 0x37, 0x3a, 0x04, 0x55, 0xd1, 0xf2, 0xc7, 0xfc, 0x9f, + 0x55, 0x67, 0x16, 0x07, 0x63, 0xbb, 0xbb, 0x96, 0xb1, 0x43, 0x9f, 0xbf, 0x26, + 0xfa, 0x34, 0x7d, 0xa5, 0x16, 0xa3, 0xc8, 0xa1, 0xbe, 0xbe, 0xc0, 0x2c, 0x55, + 0xf0, 0xa4, 0xdf, 0x26, 0x56, 0x64, 0x6c, 0x37, 0xf4, 0x30, 0x6c, 0xa4, 0x41, + 0xd3, 0xd5, 0x12, 0x45, 0xd5, 0xec, 0xf1, 0x7b, 0x6a, 0xcb, 0xe7, 0x68, 0x49, + 0xe6, 0xcc, 0xc4, 0xde, 0x2a, 0x31, 0xbb, 0x15, 0xb2, 0x60, 0x48, 0xb1, 0x25, + 0x18, 0x65, 0x00, 0xb2, 0x7d, 0x25, 0x6f, 0xdd, 0xe1, 0x00, 0x00, + ], + txid: [ + 0xd2, 0x01, 0x33, 0xc2, 0x0b, 0xb7, 0xc2, 0x06, 0x60, 0x36, 0x6e, 0xa8, 0x03, + 0x67, 0x4e, 0xed, 0x58, 0xcb, 0xd6, 0x78, 0x36, 0x62, 0x04, 0x0e, 0xd2, 0xd0, + 0x8d, 0x34, 0x39, 0x6f, 0xcd, 0x5d, + ], + auth_digest: [ + 0xea, 0x97, 0xa2, 0xd5, 0x80, 0xec, 0x1d, 0x98, 0xc1, 0x9f, 0x91, 0xc5, 0x9b, + 0x34, 0x23, 0x80, 0xf9, 0xe2, 0x08, 0x5e, 0x7f, 0x71, 0x0f, 0xb0, 0x1e, 0x25, + 0x9d, 0xc5, 0xfe, 0xfc, 0xe8, 0x83, + ], + amounts: vec![], + zsf_deposit: 248341168750002, + script_pubkeys: vec![], + transparent_input: None, + sighash_shielded: [ + 0xd2, 0x01, 0x33, 0xc2, 0x0b, 0xb7, 0xc2, 0x06, 0x60, 0x36, 0x6e, 0xa8, 0x03, + 0x67, 0x4e, 0xed, 0x58, 0xcb, 0xd6, 0x78, 0x36, 0x62, 0x04, 0x0e, 0xd2, 0xd0, + 0x8d, 0x34, 0x39, 0x6f, 0xcd, 0x5d, + ], + sighash_all: None, + sighash_none: None, + sighash_single: None, + sighash_all_anyone: None, + sighash_none_anyone: None, + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, + 0xfd, 0xb9, 0x07, 0xf7, 0x36, 0x1b, 0x02, 0x03, 0xbb, 0x85, 0x59, 0x76, 0x08, + 0xd6, 0x99, 0xd9, 0x16, 0x8f, 0x2b, 0x0b, 0x9a, 0xe4, 0x53, 0x5f, 0xeb, 0x0e, + 0xec, 0xf2, 0x0a, 0x22, 0x74, 0x1d, 0xe9, 0x1b, 0x1c, 0x9a, 0x5c, 0xab, 0x82, + 0x89, 0xc2, 0xff, 0x87, 0x8f, 0x09, 0x65, 0x51, 0x53, 0x53, 0x53, 0x63, 0x52, + 0x52, 0x00, 0x87, 0xb4, 0xa6, 0x73, 0xe7, 0x63, 0x2d, 0x4f, 0x88, 0x7c, 0xa0, + 0x44, 0x5f, 0x48, 0x2b, 0xd4, 0x28, 0x66, 0xb0, 0xc4, 0xe5, 0xdc, 0xc3, 0x9b, + 0x19, 0x95, 0x58, 0x32, 0x8b, 0x82, 0x98, 0x09, 0x9c, 0x02, 0x22, 0x1a, 0x2b, + 0xae, 0x12, 0x57, 0x07, 0x63, 0x53, 0x53, 0x52, 0xac, 0xac, 0x6a, 0xa7, 0x2d, + 0x26, 0x22, 0x72, 0x5d, 0x8a, 0xfa, 0x3b, 0xed, 0xb4, 0x20, 0x0b, 0xdd, 0x95, + 0xd2, 0xcf, 0x30, 0xeb, 0x5d, 0xb8, 0xda, 0xcc, 0x36, 0x60, 0xa8, 0xf0, 0xb2, + 0x0b, 0x31, 0x94, 0xb3, 0x75, 0x06, 0x25, 0xe9, 0x58, 0x31, 0x05, 0x4b, 0x08, + 0x51, 0x6a, 0x6a, 0x53, 0x6a, 0x63, 0x6a, 0xac, 0xa2, 0x45, 0xe1, 0x61, 0x00, + 0x02, 0xa5, 0x38, 0x8f, 0x3b, 0xe6, 0x5c, 0xe2, 0xb3, 0x73, 0x53, 0x60, 0xbc, + 0x47, 0x21, 0x39, 0x48, 0xf7, 0xab, 0xaa, 0x45, 0x9f, 0x4e, 0x3e, 0x3f, 0x6c, + 0x1f, 0x96, 0x15, 0xd1, 0x50, 0xba, 0xa2, 0x89, 0x6a, 0xec, 0xdd, 0x14, 0xc1, + 0x85, 0xc7, 0x07, 0x3b, 0xb7, 0xef, 0x62, 0xe4, 0x37, 0xd1, 0xea, 0x54, 0xf1, + 0x7d, 0xf7, 0x0d, 0x1e, 0xcd, 0x51, 0x2a, 0x92, 0xa5, 0x7d, 0x91, 0xf3, 0x86, + 0x14, 0xc8, 0x18, 0x60, 0xf4, 0x01, 0x32, 0xad, 0xa5, 0x44, 0x1d, 0xd9, 0x37, + 0x4e, 0x85, 0x41, 0xd4, 0x9d, 0x1b, 0x54, 0xbf, 0xf2, 0x1c, 0xa9, 0x64, 0x13, + 0x2c, 0x1c, 0x57, 0xa4, 0x4e, 0x1a, 0xf2, 0xd4, 0x78, 0xd3, 0x96, 0x53, 0x62, + 0x1c, 0x05, 0x18, 0x26, 0x49, 0xe8, 0x1b, 0xb4, 0x52, 0x16, 0x1f, 0x3b, 0xf9, + 0x49, 0x09, 0x27, 0x9c, 0x60, 0x2e, 0x35, 0x8a, 0xa0, 0x37, 0xc5, 0xa4, 0xff, + 0xf2, 0x57, 0xba, 0x49, 0x9e, 0x51, 0x95, 0x77, 0x04, 0x47, 0xa7, 0x72, 0xd4, + 0xd3, 0x07, 0xcb, 0x7b, 0x0a, 0x62, 0xab, 0x43, 0x22, 0x38, 0x3b, 0xde, 0xc1, + 0xfa, 0x74, 0xde, 0x68, 0x1f, 0xe6, 0x9c, 0x9e, 0x46, 0xd1, 0x7c, 0x43, 0x50, + 0x2f, 0xde, 0x6a, 0xe3, 0x50, 0xd1, 0x57, 0x33, 0xcb, 0x6c, 0xb3, 0x9f, 0xf9, + 0xee, 0x2a, 0x5d, 0x4e, 0x04, 0xda, 0xc9, 0x83, 0x37, 0xf4, 0x1a, 0x01, 0x80, + 0xa2, 0xcb, 0xbe, 0x28, 0x98, 0x82, 0xea, 0xac, 0x24, 0x41, 0x7a, 0x5a, 0x7d, + 0x31, 0x4b, 0x9c, 0x70, 0x18, 0xd6, 0x25, 0x7b, 0xe1, 0x2d, 0x04, 0xec, 0x99, + 0xd7, 0x27, 0x68, 0x03, 0xa2, 0x2d, 0x31, 0xce, 0x2a, 0x22, 0xd1, 0x6d, 0xb9, + 0xb6, 0xaa, 0xfd, 0xdc, 0x7b, 0x2c, 0xec, 0x73, 0x77, 0x3c, 0xdc, 0xa7, 0x91, + 0x48, 0xb7, 0x90, 0x5e, 0xc9, 0xcf, 0x7a, 0x2b, 0x8c, 0x6e, 0x59, 0x58, 0x0a, + 0x05, 0xa5, 0x1d, 0xb0, 0xf4, 0x8a, 0x5e, 0x51, 0x08, 0xe7, 0xb4, 0x07, 0xa1, + 0x65, 0xf8, 0x00, 0xdf, 0x8b, 0x2d, 0xb4, 0x7e, 0x69, 0x51, 0xcb, 0x20, 0xf1, + 0x90, 0xd3, 0xeb, 0x20, 0xad, 0x2e, 0xa9, 0xc8, 0xe0, 0x3d, 0x0f, 0x37, 0xb9, + 0xbb, 0xb4, 0x08, 0x46, 0xb2, 0x0f, 0x8e, 0xb7, 0xa1, 0x6d, 0xb2, 0x02, 0xe2, + 0x5c, 0x43, 0x42, 0xb2, 0x4a, 0x81, 0xde, 0x7e, 0xe6, 0x9d, 0xc7, 0x3e, 0x6e, + 0xb3, 0xf3, 0x75, 0xab, 0x4e, 0xd8, 0xeb, 0x1b, 0xd3, 0x22, 0xff, 0xfb, 0xf1, + 0xa3, 0x9f, 0xed, 0x1f, 0xd1, 0x5e, 0x1a, 0xa8, 0x07, 0x44, 0xb6, 0xa7, 0xa7, + 0x0b, 0x3c, 0x05, 0xcf, 0xc7, 0xe4, 0x52, 0x82, 0x54, 0x52, 0x1c, 0x1d, 0xe5, + 0xae, 0x0a, 0x76, 0xab, 0x39, 0xeb, 0x66, 0xf0, 0x3e, 0x18, 0x3a, 0x5f, 0x1e, + 0xf6, 0xce, 0xdb, 0x94, 0xeb, 0x11, 0xa3, 0xe0, 0xca, 0xf5, 0xc4, 0x4e, 0xa4, + 0x85, 0x33, 0x00, 0x64, 0x81, 0x08, 0x2e, 0xb8, 0x18, 0x99, 0x1e, 0x6f, 0x47, + 0x7d, 0x40, 0xd6, 0xb1, 0x4e, 0x23, 0x28, 0xa3, 0xae, 0xa8, 0xf2, 0x30, 0x72, + 0xf5, 0x65, 0x2a, 0x5f, 0xec, 0xc8, 0x13, 0xed, 0x5f, 0x0f, 0x4d, 0xb8, 0x02, + 0xfd, 0x84, 0xca, 0xa9, 0x40, 0x99, 0xa8, 0xfa, 0xaa, 0xab, 0xd0, 0x47, 0x1c, + 0x21, 0x6f, 0x50, 0x3d, 0x91, 0x02, 0x94, 0x69, 0x2d, 0xac, 0x96, 0x58, 0xee, + 0xce, 0xa0, 0x43, 0x75, 0xbc, 0xa9, 0xcf, 0x5c, 0x4a, 0xb4, 0xc1, 0x5d, 0xd6, + 0x02, 0x48, 0x90, 0x57, 0xc7, 0x8f, 0xca, 0x93, 0x78, 0xb1, 0x8f, 0xa3, 0xb8, + 0xe9, 0x74, 0xa3, 0x12, 0x80, 0xaf, 0x40, 0xad, 0xc8, 0x42, 0xbf, 0x59, 0x80, + 0xca, 0x56, 0x24, 0x21, 0x79, 0x1c, 0x0b, 0x5f, 0x85, 0x92, 0x83, 0xe3, 0xf6, + 0xdb, 0x5a, 0x7d, 0xb0, 0x1d, 0x4f, 0x11, 0x6f, 0x99, 0x86, 0x56, 0x17, 0xfe, + 0x23, 0x2e, 0x66, 0xfd, 0xac, 0x3b, 0x8d, 0x85, 0x1a, 0x39, 0x80, 0x02, 0x28, + 0x2b, 0xf8, 0x31, 0x85, 0x4f, 0x3c, 0xa3, 0x8b, 0xae, 0x9b, 0x00, 0xfe, 0x78, + 0xbc, 0xc0, 0x06, 0x18, 0xba, 0x07, 0x4c, 0x16, 0x3d, 0x50, 0x83, 0xc2, 0x9a, + 0xe6, 0x2d, 0x9a, 0xea, 0xaa, 0x0a, 0x18, 0x39, 0x3a, 0xa0, 0xc3, 0x15, 0x7b, + 0x9d, 0x55, 0xe5, 0x24, 0x56, 0xb2, 0x52, 0x29, 0x7a, 0x12, 0x6e, 0x2a, 0x45, + 0x44, 0x20, 0x33, 0x08, 0xa5, 0x79, 0xdd, 0xce, 0x34, 0x99, 0xfc, 0xf2, 0xb7, + 0x84, 0x91, 0x6b, 0x83, 0xb8, 0x79, 0x0b, 0x4a, 0xf6, 0x62, 0xd1, 0x85, 0x45, + 0xa0, 0xa0, 0x83, 0x36, 0x6b, 0x12, 0xdf, 0xfd, 0x7d, 0xbf, 0x81, 0x38, 0x67, + 0x29, 0x65, 0x8f, 0xee, 0xf7, 0x40, 0x61, 0x13, 0x88, 0x8e, 0x4d, 0x4b, 0xa7, + 0x68, 0x16, 0xd2, 0x2d, 0xa5, 0x5a, 0x57, 0x89, 0xf9, 0x5f, 0x11, 0x48, 0x7a, + 0xf5, 0x15, 0x1e, 0x24, 0x8e, 0x63, 0x42, 0x92, 0x63, 0x36, 0xb4, 0xe8, 0x3e, + 0x54, 0xb7, 0x62, 0x78, 0xbd, 0x5b, 0xdf, 0xbe, 0xaa, 0x9a, 0xd1, 0xf1, 0x94, + 0xf7, 0x9b, 0x22, 0x47, 0x24, 0x08, 0x5a, 0xd2, 0x2d, 0xea, 0xac, 0x24, 0x22, + 0x65, 0xc8, 0x92, 0xfe, 0xad, 0xe8, 0x8d, 0xcd, 0x8f, 0x8a, 0xc1, 0xa7, 0x14, + 0xbd, 0xaa, 0x1e, 0x73, 0xc9, 0x51, 0x41, 0x41, 0x4a, 0x4a, 0x5d, 0xfd, 0x71, + 0xb4, 0x1e, 0xa2, 0x0b, 0xd3, 0xec, 0xd7, 0xe4, 0x84, 0x30, 0x7a, 0x07, 0x78, + 0xc1, 0xde, 0xac, 0x89, 0xc3, 0x91, 0x53, 0x63, 0x17, 0x3b, 0x8e, 0x61, 0x0b, + 0x6b, 0xe1, 0xbc, 0xdf, 0x05, 0x63, 0x07, 0x08, 0x12, 0x3f, 0x83, 0x31, 0xd4, + 0xe0, 0x0c, 0xd1, 0x67, 0xd9, 0xaf, 0xb5, 0x40, 0xeb, 0xa1, 0x15, 0x0d, 0x14, + 0x13, 0xae, 0x89, 0x65, 0x80, 0x66, 0x7f, 0xf1, 0xe8, 0xa1, 0x7e, 0x3b, 0x22, + 0xc3, 0x34, 0xb8, 0xa5, 0xba, 0xd5, 0x1d, 0x27, 0xd0, 0xc4, 0x60, 0x63, 0xf1, + 0x1c, 0xbc, 0x2b, 0xc9, 0xb2, 0x24, 0xff, 0x7f, 0x26, 0xcf, 0xbc, 0x06, 0xaf, + 0x05, 0x67, 0xd7, 0xaf, 0x4e, 0xe8, 0x00, 0xee, 0xe7, 0xeb, 0xde, 0x99, 0xb5, + 0x3e, 0x7a, 0x05, 0xcb, 0x99, 0x35, 0x01, 0xf6, 0x59, 0x87, 0x58, 0x1a, 0x21, + 0x37, 0xa5, 0xbb, 0x12, 0xbe, 0xdd, 0xce, 0x9b, 0x53, 0xdf, 0xe9, 0xe5, 0x02, + 0x10, 0x51, 0xb7, 0x82, 0x1d, 0xbd, 0x2b, 0x87, 0xf0, 0xd8, 0x7b, 0x2d, 0x88, + 0x88, 0x53, 0x43, 0x5e, 0x60, 0x91, 0x8f, 0xfb, 0x1e, 0x74, 0x4e, 0x1b, 0x00, + 0xc7, 0x67, 0x51, 0xe6, 0x5b, 0xdc, 0x48, 0x20, 0x58, 0x72, 0x64, 0x4e, 0x8d, + 0x57, 0x9c, 0x05, 0xb8, 0x13, 0x85, 0x35, 0x44, 0x45, 0x2d, 0x0d, 0x05, 0x7f, + 0x3a, 0x39, 0x3a, 0x1d, 0x0b, 0xe7, 0x4a, 0x13, 0xef, 0x7c, 0x8d, 0x34, 0x2e, + 0x70, 0x2f, 0x57, 0xd3, 0x78, 0xa3, 0xe5, 0x45, 0x5d, 0x23, 0x60, 0x80, 0x56, + 0xbf, 0x73, 0x5f, 0x5d, 0xa2, 0x3c, 0x65, 0xf7, 0x1a, 0xee, 0x3f, 0x47, 0x13, + 0x9f, 0xee, 0x38, 0xd6, 0x0a, 0x9d, 0x34, 0xc3, 0x88, 0x3d, 0x6c, 0xa3, 0x8b, + 0xcb, 0x3a, 0xb3, 0x57, 0xaf, 0x4a, 0x57, 0x01, 0x00, 0x00, 0x79, 0x7d, 0x8f, + 0x97, 0xbd, 0x69, 0xc6, 0x72, 0x8c, 0x07, 0x0f, 0xcc, 0x83, 0x9c, 0x9d, 0x41, + 0x12, 0x21, 0xc3, 0x9a, 0xf0, 0x3d, 0x0e, 0x10, 0x0e, 0xcb, 0xd2, 0xf9, 0x14, + 0x1f, 0x0c, 0x76, 0x66, 0x1d, 0x5d, 0x55, 0x84, 0xb0, 0xea, 0x07, 0x32, 0x60, + 0x9a, 0x5e, 0x7e, 0x63, 0x6f, 0xe6, 0xd8, 0xb1, 0xf5, 0x42, 0x15, 0xde, 0x5a, + 0x5b, 0x16, 0x99, 0x41, 0x8d, 0x6d, 0xb0, 0xe1, 0xeb, 0x47, 0xd5, 0x0d, 0xe7, + 0x1a, 0x43, 0xe6, 0x35, 0xc1, 0xad, 0xe5, 0x0d, 0x63, 0xdf, 0x5c, 0xbc, 0x90, + 0x3e, 0x94, 0xfb, 0xb2, 0xc0, 0x59, 0x17, 0xff, 0x8c, 0x63, 0xfc, 0xf0, 0xbb, + 0x4a, 0xb8, 0x92, 0x0c, 0x21, 0x3a, 0x51, 0xea, 0x74, 0xe3, 0xb1, 0xd3, 0xe5, + 0x25, 0x16, 0x32, 0x9d, 0x4b, 0xae, 0x36, 0x39, 0x3a, 0xa6, 0x92, 0xe3, 0x8d, + 0x56, 0xef, 0x03, 0x38, 0x1f, 0x4a, 0x69, 0xee, 0x45, 0xdc, 0x87, 0x30, 0xe4, + 0x23, 0x69, 0x32, 0x2a, 0x3e, 0xec, 0xb9, 0x15, 0xf8, 0xdb, 0x40, 0x51, 0xaa, + 0x4d, 0x5d, 0x72, 0x23, 0x50, 0x99, 0x03, 0xa7, 0x49, 0x72, 0x14, 0x4e, 0xb8, + 0xc5, 0xb1, 0x55, 0xc5, 0x35, 0xa4, 0x4f, 0x1e, 0x5b, 0x1e, 0x0e, 0xd4, 0xdc, + 0x2c, 0x37, 0x99, 0x06, 0x14, 0xd0, 0xd9, 0x19, 0xf7, 0x48, 0xf6, 0x18, 0xd6, + 0xbb, 0x6f, 0x54, 0xf8, 0xfb, 0xb7, 0x2c, 0xf4, 0xcf, 0xb0, 0x10, 0x9a, 0x3b, + 0x38, 0xcd, 0x94, 0x2f, 0x4e, 0x74, 0xdc, 0xbe, 0x59, 0x99, 0xfe, 0x46, 0x62, + 0x2f, 0x3a, 0xab, 0xa6, 0x22, 0xbd, 0xfc, 0x5e, 0x94, 0x5f, 0x74, 0x22, 0x38, + 0xf2, 0xec, 0xc2, 0x6d, 0xe3, 0x6b, 0x00, 0xea, 0xc8, 0x89, 0x8e, 0x2d, 0x41, + 0x61, 0x23, 0xc6, 0x93, 0x33, 0x64, 0x3e, 0xca, 0xba, 0xab, 0x5a, 0x1a, 0x4e, + 0xd7, 0xd0, 0x88, 0xa8, 0xa3, 0xb9, 0xe0, 0xdc, 0xab, 0xfe, 0x5d, 0x97, 0x64, + 0x23, 0x07, 0x16, 0xce, 0x08, 0x60, 0x8b, 0x69, 0x2a, 0x9d, 0xce, 0x22, 0x1d, + 0x90, 0x2f, 0x8a, 0x80, 0x75, 0xa0, 0x3e, 0x56, 0xdd, 0x4b, 0x45, 0x42, 0xe4, + 0x32, 0x7d, 0x99, 0xc2, 0x52, 0x49, 0x05, 0xe4, 0x66, 0xa2, 0xd7, 0xbb, 0x84, + 0xf3, 0xec, 0x75, 0x0b, 0xe9, 0x34, 0xed, 0xb1, 0x11, 0x53, 0xe5, 0x47, 0x17, + 0x56, 0xd7, 0x09, 0x39, 0xdb, 0xbb, 0xfa, 0xff, 0x76, 0x49, 0x01, 0x48, 0xe6, + 0x9a, 0xdc, 0xfb, 0x0e, 0x38, 0x1d, 0x97, 0xe9, 0xda, 0x17, 0x5d, 0x80, 0x22, + 0x1e, 0x34, 0x96, 0x3d, 0xdc, 0x3e, 0xa7, 0x9d, 0xae, 0x78, 0xb0, 0x6b, 0x0d, + 0xe4, 0x85, 0x91, 0xb8, 0x2e, 0x4c, 0x43, 0x65, 0xd0, 0x2e, 0x4b, 0x19, 0x47, + 0xf0, 0x68, 0x8f, 0x8f, 0xe6, 0x90, 0x6f, 0x37, 0x5a, 0x28, 0xc8, 0xf6, 0xdb, + 0xba, 0xe2, 0xe4, 0x66, 0xf6, 0x56, 0x2a, 0x66, 0xcb, 0x21, 0x0b, 0xd7, 0xbd, + 0x10, 0xd2, 0x76, 0x44, 0x70, 0xcc, 0x82, 0x71, 0x8f, 0x7e, 0xd0, 0x83, 0x11, + 0x87, 0x74, 0xb8, 0x30, 0xe6, 0xdc, 0x8f, 0x4d, 0xc8, 0xb3, 0xc4, 0x83, 0xce, + 0x4c, 0xcd, 0xd0, 0xe6, 0x56, 0x33, 0x26, 0x34, 0x5c, 0x13, 0x87, 0x4e, 0x10, + 0x35, 0xf9, 0x28, 0x1d, 0x9c, 0x16, 0x47, 0xe6, 0x2e, 0xba, 0x0c, 0x91, 0xe6, + 0xb3, 0xb5, 0x98, 0x88, 0x9f, 0x3f, 0x22, 0x32, 0xef, 0xd3, 0xec, 0x86, 0x26, + 0x8d, 0xf7, 0xc2, 0x3c, 0x10, 0xc6, 0x29, 0x57, 0x1f, 0x14, 0x6e, 0xe2, 0x49, + 0x09, 0xd9, 0xe7, 0x72, 0x81, 0x36, 0x17, 0x09, 0xe0, 0x95, 0x7d, 0xa8, 0xa2, + 0x50, 0x76, 0x94, 0xf0, 0x31, 0x7a, 0xb3, 0x58, 0x32, 0xaf, 0xfd, 0xc9, 0x67, + 0x20, 0x9f, 0xbb, 0xb1, 0xd4, 0x30, 0x80, 0x0c, 0xf2, 0x66, 0x0d, 0x7b, 0xd4, + 0x46, 0x1a, 0xda, 0x11, 0x20, 0xf7, 0x2a, 0xd3, 0x7c, 0xe2, 0xab, 0x5f, 0x51, + 0x5d, 0xd2, 0xcd, 0x3c, 0xa5, 0xe4, 0x81, 0xe9, 0x2e, 0x77, 0x93, 0x32, 0xc2, + 0x75, 0x02, 0xdf, 0x7a, 0x7d, 0x64, 0x07, 0xcb, 0x07, 0xa8, 0xb6, 0xb3, 0x9a, + 0x0c, 0x4c, 0x7c, 0xc8, 0x03, 0x21, 0xc5, 0x5c, 0x97, 0xc4, 0x9e, 0x09, 0x66, + 0x1c, 0x40, 0xcb, 0xec, 0xee, 0xa5, 0x44, 0x43, 0xd2, 0x92, 0x7a, 0x05, 0xd0, + 0x27, 0x43, 0x0f, 0xde, 0xe3, 0xab, 0x38, 0x5d, 0xc9, 0x46, 0x10, 0x8f, 0x3b, + 0x35, 0xeb, 0x4f, 0x05, 0x8f, 0xaa, 0xe1, 0xb1, 0x23, 0xce, 0xaa, 0x9a, 0x21, + 0xc1, 0x26, 0xe3, 0xa4, 0x99, 0xdf, 0xf7, 0xb3, 0xb5, 0x6e, 0xd1, 0xf4, 0xfb, + 0x04, 0x03, 0xa6, 0xe8, 0x15, 0xf7, 0x65, 0x9f, 0x35, 0x37, 0x8b, 0x25, 0x19, + 0xf6, 0x5c, 0x25, 0x22, 0xed, 0x3b, 0xd1, 0x75, 0x46, 0xde, 0x3d, 0xb1, 0xdd, + 0x56, 0x2b, 0x76, 0x49, 0x22, 0x08, 0xdc, 0x7d, 0xcc, 0xf2, 0xd0, 0x4e, 0xe8, + 0x06, 0x6c, 0xb3, 0xe8, 0x77, 0x59, 0xbb, 0x65, 0xdc, 0x01, 0xd4, 0x3d, 0x11, + 0xf2, 0xd7, 0x2b, 0x3f, 0x48, 0x6a, 0x0f, 0x01, 0x84, 0x48, 0x99, 0xdd, 0x59, + 0x9a, 0xa7, 0xb4, 0xb8, 0xb0, 0x6c, 0x55, 0xa5, 0x98, 0x5f, 0xe3, 0x0f, 0x76, + 0xb5, 0xb1, 0x06, 0x9c, 0x11, 0x31, 0x35, 0xaa, 0xad, 0x87, 0xeb, 0x60, 0x81, + 0x64, 0xc7, 0x46, 0xac, 0xa3, 0xa2, 0x00, 0xad, 0xf4, 0xaa, 0x24, 0x38, 0x77, + 0x81, 0x51, 0xbd, 0x23, 0x69, 0x0d, 0xbb, 0xff, 0x2a, 0x67, 0xae, 0x1d, 0xbe, + 0xc7, 0xd4, 0x0f, 0x82, 0x84, 0xbf, 0x07, 0x95, 0x6c, 0x53, 0xe6, 0xcb, 0x79, + 0x51, 0x59, 0x7d, 0xcc, 0x37, 0xb8, 0x9c, 0x73, 0x4b, 0xdf, 0x9a, 0xb4, 0x53, + 0x0c, 0x4e, 0x84, 0x01, 0x59, 0x8e, 0x72, 0x3f, 0x35, 0xa0, 0x70, 0xa0, 0x7a, + 0x9c, 0x22, 0x10, 0x08, 0x73, 0xe5, 0xd7, 0x4d, 0x39, 0x63, 0x3e, 0x95, 0x1a, + 0xd8, 0x5b, 0x5b, 0x98, 0x2d, 0xf4, 0x1e, 0xcd, 0x1b, 0x77, 0xcb, 0xd7, 0xaa, + 0xb3, 0x25, 0x00, 0x02, 0xd4, 0x14, 0xc5, 0x05, 0x7b, 0xd1, 0xff, 0x04, 0xff, + 0x5d, 0xc7, 0xfe, 0xcc, 0x70, 0x98, 0x5f, 0x84, 0x88, 0x8f, 0xc6, 0x24, 0xc5, + 0xf7, 0xff, 0x66, 0x5f, 0xc8, 0x37, 0x88, 0x35, 0xeb, 0xb9, 0x23, 0x5d, 0x53, + 0xc2, 0x38, 0x47, 0x64, 0xdd, 0x1d, 0xd4, 0x4f, 0x1c, 0xe8, 0xe7, 0xc7, 0x99, + 0xa6, 0x48, 0x5f, 0x6c, 0xca, 0x0d, 0xbe, 0xea, 0xf2, 0x91, 0xd4, 0x96, 0x90, + 0x31, 0x14, 0x34, 0x61, 0x48, 0x3d, 0x14, 0x81, 0xe9, 0x21, 0xe8, 0x78, 0x47, + 0x6b, 0x5e, 0x87, 0xa4, 0x90, 0xd0, 0x99, 0xf9, 0xe9, 0xd6, 0xa6, 0x9e, 0x01, + 0xa5, 0xaa, 0x27, 0x59, 0x33, 0x01, 0x2e, 0x7c, 0x1e, 0x8c, 0x09, 0x05, 0xbd, + 0x99, 0xe5, 0x3d, 0x13, 0xce, 0x52, 0xb9, 0xb4, 0x45, 0xd7, 0x0e, 0xb4, 0x5a, + 0xf6, 0xb4, 0xa3, 0x90, 0x3a, 0xd4, 0xf8, 0x0f, 0x21, 0x92, 0xa9, 0x6d, 0xff, + 0xcb, 0x26, 0x04, 0xf4, 0x60, 0x6a, 0xa2, 0x37, 0xa2, 0x7c, 0x88, 0xd2, 0x8d, + 0x03, 0xde, 0xb1, 0xa5, 0xe7, 0xcc, 0xa2, 0x70, 0x7e, 0xa4, 0x56, 0x2e, 0xb5, + 0xb7, 0x48, 0x5a, 0x7a, 0x51, 0x5d, 0xbb, 0x8e, 0xea, 0x44, 0xd7, 0xb8, 0xa8, + 0x95, 0xfe, 0xad, 0x8e, 0x77, 0x4b, 0xfb, 0xc3, 0x3d, 0xd2, 0xcd, 0x93, 0x6b, + 0x78, 0x73, 0xa4, 0x78, 0x6d, 0x7c, 0x8d, 0x02, 0x0c, 0x29, 0x02, 0x3e, 0xf2, + 0x30, 0xc7, 0x80, 0xb9, 0x4a, 0x0d, 0x06, 0xe3, 0x83, 0x0b, 0x89, 0x09, 0x58, + 0x1d, 0x81, 0xb4, 0x1a, 0x6b, 0x2d, 0x52, 0x97, 0x86, 0x79, 0xcc, 0x62, 0xd4, + 0xb3, 0xfc, 0x3b, 0x78, 0xac, 0x7f, 0x5f, 0xdd, 0x42, 0xd1, 0xd6, 0x72, 0xfa, + 0xcf, 0x85, 0xc7, 0xe2, 0xb6, 0xce, 0xd2, 0x91, 0x6e, 0x9f, 0x8f, 0xcd, 0x45, + 0x45, 0x7a, 0xa8, 0x5c, 0x23, 0x3b, 0x1e, 0x9b, 0x56, 0xf4, 0x0c, 0xd6, 0x36, + 0xbd, 0xd0, 0x56, 0x3b, 0x1d, 0x2a, 0x32, 0x3c, 0xb0, 0xd9, 0xa2, 0x16, 0x1a, + 0x51, 0xb7, 0x3b, 0xde, 0xf0, 0x83, 0x47, 0x24, 0x00, 0xd5, 0xd8, 0xa2, 0x13, + 0x49, 0xf6, 0x2b, 0xd2, 0xac, 0xde, 0x33, 0x4b, 0x15, 0xc3, 0x7d, 0xf9, 0x2e, + 0x3e, 0x4f, 0x48, 0x4f, 0x4d, 0x62, 0xea, 0x5b, 0x2c, 0xf7, 0x29, 0x5d, 0x04, + 0x35, 0x1d, 0xec, 0xb8, 0x18, 0xf6, 0x8f, 0x77, 0xa6, 0x8a, 0xd1, 0xde, 0x0e, + 0x3d, 0x0e, 0x45, 0x18, 0x27, 0x9a, 0xbf, 0xad, 0xd3, 0x9f, 0xc7, 0x5e, 0x64, + 0x0f, 0xc7, 0xa5, 0x87, 0x7b, 0x0a, 0x79, 0xc4, 0x27, 0x9f, 0x27, 0x57, 0xf5, + 0x80, 0x1d, 0x07, 0x96, 0x55, 0x9b, 0x42, 0xa8, 0x97, 0xea, 0xb1, 0xf1, 0x1c, + 0x36, 0x1d, 0x3e, 0xaa, 0xca, 0x24, 0x87, 0x66, 0x83, 0x02, 0x95, 0x53, 0x9a, + 0x2a, 0x6d, 0xe8, 0x84, 0x4d, 0xdb, 0x0e, 0x2e, 0x6f, 0x2c, 0xc4, 0x5e, 0x8f, + 0x73, 0x76, 0xdc, 0x55, 0x44, 0x90, 0x66, 0x59, 0x04, 0xdb, 0xc5, 0x37, 0x66, + 0x66, 0x3a, 0x68, 0xf6, 0xec, 0xad, 0x18, 0xdf, 0xd8, 0x39, 0x2f, 0xb7, 0xae, + 0x3c, 0x81, 0x5c, 0x29, 0xf8, 0x56, 0x5c, 0x09, 0xac, 0xc2, 0x8e, 0x30, 0x4b, + 0x6e, 0x06, 0xf3, 0xb1, 0x60, 0xe2, 0x4e, 0x66, 0x22, 0x64, 0xa5, 0x00, 0xad, + 0xd4, 0x80, 0x2b, 0x26, 0x4b, 0x2e, 0xce, 0xd2, 0x55, 0xd1, 0x01, 0x37, 0xf6, + 0x2e, 0x81, 0x10, 0x23, 0xdc, 0xc4, 0x51, 0x60, 0x4d, 0x89, 0x14, 0xd6, 0x07, + 0x42, 0x18, 0x30, 0x4a, 0x4d, 0x85, 0x5e, 0xe5, 0xda, 0x1e, 0x0b, 0x42, 0x98, + 0x93, 0x98, 0xa7, 0xd4, 0x45, 0x9b, 0xd1, 0x7a, 0xdf, 0xb0, 0xc4, 0x28, 0x7f, + 0x77, 0xa9, 0x88, 0x88, 0x92, 0x28, 0x86, 0xe9, 0x18, 0x5b, 0x48, 0x99, 0xef, + 0xbb, 0x4f, 0xf5, 0x0d, 0xf4, 0x30, 0xfc, 0x7f, 0x52, 0x06, 0xce, 0x33, 0x8f, + 0x68, 0xe9, 0xbe, 0xff, 0xd0, 0x95, 0x46, 0xb4, 0x09, 0x76, 0x7e, 0xb9, 0x91, + 0x03, 0xca, 0xa7, 0xf6, 0xc2, 0xa1, 0xc7, 0xde, 0xba, 0xae, 0x9b, 0xbd, 0xf6, + 0xb7, 0xce, 0xd1, 0xc7, 0x76, 0x50, 0x3e, 0x98, 0x97, 0x2e, 0x0d, 0x3f, 0xe3, + 0x5a, 0x7d, 0x7a, 0x7e, 0x2d, 0x94, 0x63, 0x2d, 0x48, 0x18, 0x69, 0xd8, 0x96, + 0x0d, 0x0d, 0xca, 0x7c, 0x95, 0x49, 0x28, 0x31, 0xeb, 0x04, 0x17, 0xf1, 0xbf, + 0x75, 0x1f, 0x1a, 0x08, 0xb7, 0xd8, 0x87, 0x57, 0x2e, 0xb3, 0x68, 0x9a, 0xab, + 0x66, 0xec, 0x8a, 0x7e, 0x33, 0xdc, 0xac, 0x1c, 0xfe, 0xce, 0xb1, 0xa7, 0xbb, + 0xb7, 0x43, 0x28, 0x4e, 0x93, 0x3c, 0xca, 0xc4, 0x35, 0xa4, 0x13, 0xb8, 0x2a, + 0x04, 0xc4, 0x78, 0xd8, 0x3a, 0xc7, 0xa7, 0x33, 0x72, 0x64, 0x36, 0x39, 0x9c, + 0xf3, 0xe7, 0xca, 0xec, 0xb6, 0xcb, 0x20, 0xec, 0x35, 0xfa, 0xf8, 0x63, 0x4e, + 0xd1, 0x67, 0xfe, 0x56, 0x66, 0x25, 0x4b, 0xa0, 0x80, 0xcc, 0x24, 0xb3, 0x35, + 0x97, 0x06, 0xca, 0x36, 0x7e, 0x48, 0x0e, 0x73, 0xc6, 0x81, 0xbc, 0xe1, 0x50, + 0xb0, 0x6f, 0xa4, 0xaa, 0x36, 0xcb, 0xd4, 0x6a, 0xb7, 0x86, 0xe1, 0x32, 0x3c, + 0x7f, 0xaa, 0xd0, 0x9f, 0xeb, 0x94, 0xea, 0x0b, 0xac, 0xf9, 0x46, 0x5b, 0xe0, + 0x42, 0xe4, 0xbe, 0x8c, 0xa4, 0xb2, 0x43, 0xf3, 0xf9, 0x47, 0x70, 0xf8, 0x79, + 0x22, 0xcc, 0x4e, 0xd5, 0x2a, 0xb7, 0xad, 0x02, 0xd3, 0x14, 0x00, 0xb5, 0x30, + 0x33, 0x85, 0x1e, 0x1d, 0x18, 0xbb, 0x30, 0x5f, 0xe1, 0x11, 0x0d, 0x74, 0x1c, + 0x68, 0xed, 0x71, 0x12, 0x47, 0x03, 0x70, 0xe2, 0xa8, 0xca, 0xe1, 0xab, 0x17, + 0x31, 0x2c, 0x9c, 0x50, 0xfd, 0xea, 0x84, 0x31, 0x4e, 0xe4, 0xf3, 0x04, 0x8d, + 0x2b, 0x74, 0xb7, 0xb7, 0x1a, 0xc0, 0xa6, 0xe7, 0xcf, 0x10, 0xe6, 0xe7, 0xa7, + 0x0e, 0xda, 0x71, 0x02, 0x8a, 0x09, 0x4b, 0x2d, 0xec, 0x0e, 0x6c, 0x79, 0xd0, + 0xc0, 0x51, 0x70, 0xe3, 0x85, 0xb4, 0x0b, 0x41, 0xe9, 0x9d, 0xd9, 0xb0, 0x3e, + 0x5f, 0x7d, 0x39, 0x1e, 0x6d, 0x2e, 0x04, 0xf8, 0x9d, 0x37, 0xd2, 0x8c, 0x81, + 0x20, 0xb0, 0xc8, 0xf8, 0x9c, 0xf3, 0x89, 0x81, 0xf3, 0xf4, 0xd0, 0x72, 0xc6, + 0xfd, 0x1b, 0xe8, 0xe3, 0x34, 0xce, 0x11, 0x1d, 0x7b, 0x47, 0xad, 0x06, 0x56, + 0x85, 0x55, 0x01, 0x91, 0xea, 0xd1, 0x2a, 0x24, 0x2f, 0x2d, 0x8d, 0xc5, 0xf7, + 0xeb, 0x75, 0x83, 0xd9, 0x04, 0x68, 0x28, 0x8c, 0xab, 0x33, 0x8d, 0x16, 0x27, + 0xdc, 0x9a, 0x11, 0x30, 0xf2, 0xd5, 0xd4, 0x17, 0x71, 0x35, 0x08, 0xd5, 0x17, + 0x92, 0x3c, 0x2f, 0x13, 0xbc, 0x2c, 0xcd, 0xed, 0x4c, 0xcc, 0xd0, 0xe0, 0x47, + 0x10, 0x55, 0x13, 0xa1, 0x26, 0x03, 0x9f, 0x21, 0xb4, 0xd5, 0x45, 0x21, 0x9c, + 0x51, 0x7f, 0xc1, 0x43, 0x53, 0x1e, 0xab, 0x9d, 0x80, 0x8d, 0xc0, 0xe7, 0x93, + 0x31, 0x5d, 0xe7, 0x84, 0x35, 0xbd, 0x3d, 0xc3, 0x2f, 0xe1, 0xeb, 0x84, 0xca, + 0x9f, 0x4d, 0x40, 0xf3, 0x12, 0xa9, 0x96, 0x1b, 0xa0, 0x05, 0x04, 0xe7, 0x1b, + 0x96, 0xa0, 0x18, 0x0a, 0x18, 0xed, 0xbf, 0x94, 0x5a, 0x25, 0xe2, 0x00, 0xbb, + 0x20, 0x3e, 0x3d, 0x77, 0xc7, 0x46, 0x13, 0x88, 0xba, 0x74, 0x5f, 0x40, 0x96, + 0x6a, 0xcc, 0xd5, 0x18, 0xbd, 0xc2, 0x37, 0xd0, 0x89, 0x8f, 0x27, 0x7a, 0x82, + 0xf4, 0x82, 0x28, 0x72, 0x2e, 0x25, 0x9c, 0x7b, 0xa3, 0x5b, 0x49, 0xca, 0x05, + 0x15, 0x8c, 0x88, 0x41, 0x97, 0x6e, 0x42, 0x1a, 0x5d, 0x90, 0xa9, 0x53, 0x74, + 0xad, 0xe4, 0x41, 0x43, 0x2b, 0x7b, 0x79, 0xf5, 0x73, 0x9f, 0xd4, 0x11, 0xe1, + 0x2d, 0x00, 0xd7, 0x37, 0x74, 0xe0, 0xbe, 0xc6, 0x12, 0x89, 0xed, 0x44, 0xe2, + 0xa9, 0x5a, 0x81, 0x57, 0x5f, 0x55, 0xbf, 0x14, 0xa2, 0x45, 0xce, 0x51, 0x76, + 0x35, 0x84, 0xe8, 0xa0, 0x9c, 0x3e, 0x17, 0x07, 0x2b, 0x18, 0xc3, 0x83, 0xb1, + 0xed, 0xe6, 0xa7, 0x0e, 0x0a, 0x83, 0x3f, 0x76, 0x3f, 0x84, 0x6f, 0xf2, 0x4c, + 0xc2, 0x29, 0xb5, 0x43, 0xed, 0x94, 0xd1, 0x54, 0x73, 0x31, 0x05, 0x68, 0xcf, + 0xdf, 0x12, 0xe3, 0xcf, 0x21, 0x5b, 0xa6, 0x00, 0x64, 0xcd, 0xe8, 0xf6, 0xf7, + 0x7f, 0x67, 0x38, 0x4a, 0xa0, 0xd8, 0x77, 0x50, 0xcf, 0x02, 0x98, 0x29, 0x42, + 0x80, 0x8c, 0x4a, 0x85, 0xa7, 0xf6, 0x57, 0x4f, 0xb7, 0xc3, 0xbe, 0x48, 0xc6, + 0x63, 0xef, 0xb9, 0x39, 0xb9, 0x2f, 0x93, 0x70, 0x99, 0x7d, 0xd8, 0x47, 0xf3, + 0x07, 0x4b, 0x26, 0x8f, 0xdd, 0x23, 0xd7, 0x7b, 0xa5, 0x93, 0x47, 0x9d, 0x3e, + 0xe7, 0x0b, 0x08, 0xfc, 0x58, 0xe8, 0xc7, 0x2c, 0x79, 0x7a, 0x80, 0xdf, 0x33, + 0x2d, 0x1c, 0xba, 0x4e, 0xdd, 0x4c, 0x57, 0x0d, 0x0b, 0x9a, 0x17, 0xc9, 0xf8, + 0xf6, 0x48, 0x92, 0x80, 0x8f, 0xe2, 0xfe, 0xbb, 0xf0, 0x74, 0xff, 0x8e, 0x58, + 0x58, 0xf2, 0x19, 0xf1, 0xe7, 0x42, 0x09, 0x0d, 0x7e, 0x54, 0x27, 0x47, 0x46, + 0x22, 0x19, 0x17, 0x99, 0xc7, 0x0c, 0x79, 0xbf, 0x7f, 0x6f, 0x31, 0xf2, 0x84, + 0xd3, 0x26, 0xf5, 0x22, 0xb7, 0x4f, 0x50, 0x30, 0x3c, 0x9b, 0x47, 0xe3, 0xf0, + 0x0d, 0x99, 0xe9, 0xa2, 0xd5, 0x7a, 0x4f, 0xc2, 0xf7, 0xa2, 0xc0, 0x59, 0xab, + 0x71, 0xee, 0xfb, 0x98, 0x77, 0x98, 0xff, 0x5a, 0x06, 0x69, 0xbd, 0x1d, 0xd0, + 0xf4, 0xc6, 0x39, 0x19, 0x11, 0xb4, 0xbd, 0xb9, 0xd9, 0x9b, 0x98, 0x6a, 0x9c, + 0xc8, 0x33, 0xbc, 0x70, 0x4a, 0x17, 0x06, 0x14, 0x0c, 0xca, 0x60, 0xba, 0xda, + 0xc6, 0x0b, 0xae, 0x27, 0x36, 0xb9, 0xfd, 0x22, 0x3f, 0x2f, 0x79, 0x8f, 0x73, + 0x6a, 0x65, 0xec, 0xd1, 0xf2, 0x55, 0xfe, 0xc4, 0xc1, 0x6b, 0x72, 0x30, 0x76, + 0x15, 0x0c, 0xed, 0xf6, 0xc7, 0x20, 0x01, 0x47, 0xbb, 0x71, 0x1d, 0xe5, 0x0c, + 0x60, 0x8c, 0xf4, 0x71, 0x24, 0x22, 0xc5, 0x2c, 0x1d, 0xe4, 0x8c, 0xa1, 0x61, + 0x0c, 0x19, 0x20, 0x33, 0x1e, 0x0b, 0x07, 0xed, 0xe8, 0xc8, 0xfa, 0x6e, 0xf1, + 0x05, 0xb0, 0x1c, 0xdd, 0xc6, 0x2d, 0x0b, 0x36, 0x06, 0xc2, 0xb0, 0x8f, 0x15, + 0x61, 0xb5, 0xbd, 0x29, 0x63, 0x62, 0x1d, 0x5c, 0x6e, 0xf4, 0x9f, 0x02, 0xd1, + 0x5e, 0x5e, 0x6c, 0x05, 0xad, 0xf5, 0xc1, 0x17, 0x97, 0x8b, 0x75, 0x4c, 0xb9, + 0x82, 0xb9, 0x29, 0xab, 0xfd, 0x1e, 0x02, 0xe9, 0x97, 0xeb, 0x11, 0xcc, 0xfd, + 0x13, 0x27, 0xbf, 0x7e, 0x63, 0x4e, 0x7a, 0x55, 0xb9, 0x9a, 0x5e, 0xaa, 0x71, + 0xc8, 0x09, 0x13, 0x47, 0xac, 0xe1, 0x2f, 0xde, 0xdb, 0x2f, 0x59, 0x97, 0x37, + 0x36, 0x24, 0x71, 0x59, 0xd4, 0xa8, 0x10, 0x96, 0x40, 0x29, 0x16, 0xbc, 0x7e, + 0x8a, 0x5d, 0xc0, 0x6d, 0x31, 0x14, 0xf6, 0x8f, 0x8b, 0xa1, 0x7b, 0xad, 0xf3, + 0xf2, 0xd3, 0x12, 0x97, 0x78, 0xb0, 0xc9, 0xf5, 0xea, 0x2d, 0xc9, 0xbc, 0x45, + 0xfd, 0x1a, 0xd4, 0x7d, 0xdc, 0xe3, 0x71, 0x15, 0x24, 0xe1, 0x6e, 0x57, 0x72, + 0x0b, 0xba, 0xa3, 0x5d, 0x6e, 0x16, 0x01, 0xd6, 0xe0, 0xaf, 0xe6, 0x31, 0xd9, + 0x79, 0x0c, 0x8c, 0x14, 0x4c, 0x46, 0xa7, 0x88, 0x0b, 0x5b, 0x32, 0x75, 0xb3, + 0x58, 0x5c, 0x71, 0x17, 0x6e, 0x93, 0x5f, 0xec, 0x31, 0x14, 0xd3, 0x90, 0xd0, + 0x7c, 0x7c, 0x1f, 0xf1, 0x4d, 0xeb, 0x1d, 0x28, 0x5d, 0x53, 0xf5, 0x2e, 0xcc, + 0x5c, 0x70, 0xa2, 0x46, 0x86, 0xef, 0x32, 0x82, 0x5c, 0x18, 0x60, 0x65, 0xb9, + 0xce, 0xf1, 0x66, 0xae, 0xfb, 0x0c, 0x8e, 0x95, 0x1e, 0x3f, 0x47, 0x6b, 0x8e, + 0x4e, 0xae, 0x66, 0xc4, 0x86, 0xee, 0x28, 0x5b, 0x43, 0x9f, 0x7e, 0xe9, 0xc1, + 0xc3, 0x4b, 0x3f, 0xa0, 0x50, 0xc0, 0xd0, 0xa9, 0x7b, 0x23, 0xae, 0xb0, 0x3b, + 0x6f, 0x10, 0xbb, 0x9a, 0x5d, 0x73, 0x80, 0xde, 0x12, 0xff, 0x3f, 0x72, 0xeb, + 0x55, 0x52, 0x56, 0xf3, 0x21, 0xfa, 0x39, 0xad, 0x0c, 0x22, 0x97, 0xce, 0x53, + 0x4a, 0xf7, 0xd3, 0xa8, 0x3b, 0xee, 0xca, 0xb9, 0x86, 0xb6, 0xda, 0x8d, 0x0e, + 0xc6, 0xad, 0xb8, 0x7b, 0x76, 0x66, 0x56, 0x15, 0x64, 0x0f, 0x7d, 0x17, 0x97, + 0x1e, 0x8d, 0xda, 0x9d, 0xff, 0x55, 0x01, 0x5c, 0xc2, 0x2f, 0x50, 0x77, 0x6c, + 0x06, 0x00, 0xf9, 0xd1, 0xac, 0x26, 0x3c, 0x15, 0x19, 0xda, 0x36, 0xe2, 0x0b, + 0x50, 0x8c, 0xfe, 0x6b, 0x5a, 0x69, 0x57, 0xcb, 0xa2, 0x21, 0xb9, 0x44, 0xc9, + 0x19, 0xa4, 0x60, 0x76, 0x84, 0x2b, 0x71, 0x26, 0x62, 0xe4, 0xe2, 0x3e, 0x95, + 0xdd, 0x45, 0x2a, 0x5b, 0xae, 0xe7, 0x35, 0x7c, 0x3b, 0x04, 0x1c, 0xb0, 0x87, + 0x5b, 0x63, 0xf3, 0x4c, 0x3b, 0xaf, 0x6b, 0xac, 0x50, 0xa7, 0x41, 0x9d, 0x4f, + 0xd2, 0x31, 0x23, 0x10, 0x94, 0xd0, 0xa0, 0x5c, 0x80, 0x86, 0x87, 0x92, 0xa9, + 0x17, 0xf3, 0xc0, 0x8b, 0x3a, 0x77, 0xea, 0x9b, 0x8b, 0x3a, 0x9e, 0x8a, 0xb0, + 0x93, 0x7a, 0x90, 0xfc, 0x5a, 0xa5, 0xca, 0x60, 0x94, 0xa6, 0x3b, 0x37, 0x50, + 0x09, 0x8c, 0x00, 0xbc, 0x7e, 0x17, 0x12, 0x26, 0x6c, 0x42, 0xe1, 0x01, 0xda, + 0x33, 0xce, 0x56, 0x52, 0x06, 0x3a, 0xe0, 0xf0, 0x82, 0x90, 0xf0, 0x8d, 0x5b, + 0xa5, 0x9a, 0xc3, 0x78, 0x55, 0x7a, 0xbe, 0x62, 0x86, 0xe5, 0x66, 0x2b, 0x25, + 0x38, 0x72, 0x94, 0xaa, 0xc9, 0xfa, 0xdf, 0x01, 0x12, 0x29, 0xf5, 0x62, 0x78, + 0x80, 0x80, 0x1f, 0x19, 0x56, 0xfc, 0x25, 0x44, 0x3b, 0x60, 0xe9, 0x66, 0xa8, + 0xd5, 0x02, 0x0c, 0x4a, 0x34, 0xf0, 0xce, 0x80, 0x3e, 0x2d, 0x70, 0xff, 0x7c, + 0xc6, 0x10, 0x48, 0x46, 0x06, 0x11, 0x68, 0x17, 0x12, 0x27, 0xd9, 0xb6, 0x2d, + 0xbe, 0x07, 0xb3, 0x49, 0xa9, 0x47, 0x3e, 0x5d, 0x27, 0xcf, 0xb6, 0x68, 0xca, + 0xb2, 0x37, 0xf7, 0x75, 0x92, 0xd7, 0xc8, 0xb1, 0xe2, 0x23, 0x3c, 0xa5, 0x07, + 0xaf, 0xbe, 0xff, 0x9c, 0x7d, 0xb4, 0x58, 0x32, 0x3f, 0x79, 0xa5, 0x07, 0xfe, + 0x2f, 0xd1, 0x14, 0x80, 0xbf, 0x54, 0x74, 0x13, 0xf5, 0xf7, 0x2b, 0xb7, 0x21, + 0xff, 0x06, 0x8c, 0x49, 0x00, 0x37, 0x9b, 0xc3, 0x60, 0x14, 0x09, 0x0e, 0x19, + 0x3a, 0xf1, 0xbc, 0x2e, 0x97, 0x3e, 0x1e, 0xef, 0xe6, 0x6e, 0x99, 0x06, 0xa1, + 0xd1, 0xea, 0x94, 0x90, 0x2e, 0xa8, 0x8d, 0xca, 0xcc, 0x37, 0xe9, 0x78, 0x0a, + 0xda, 0x82, 0x18, 0x57, 0x4c, 0x1c, 0x28, 0xa6, 0xbb, 0x28, 0x5f, 0x2f, 0x7a, + 0xf6, 0x96, 0x60, 0x7a, 0xe6, 0x61, 0x25, 0xcc, 0x70, 0xc0, 0x52, 0x67, 0xf3, + 0x81, 0xee, 0xeb, 0xff, 0x1b, 0x6c, 0xe9, 0x31, 0x63, 0xdf, 0xd8, 0xb7, 0x2a, + 0xe4, 0x77, 0x5e, 0xd2, 0x52, 0x93, 0x00, 0x00, + ], + txid: [ + 0x4e, 0x47, 0x74, 0x62, 0x1f, 0x4f, 0xee, 0x26, 0x45, 0x59, 0xc5, 0xb7, 0x98, + 0xf4, 0x77, 0xc3, 0x57, 0x4b, 0x9c, 0xab, 0x16, 0x96, 0x62, 0x15, 0x20, 0xc0, + 0x48, 0x42, 0x16, 0xcc, 0x72, 0xf2, + ], + auth_digest: [ + 0xc2, 0xf4, 0x73, 0xc1, 0x8d, 0xeb, 0x4c, 0x24, 0x77, 0x45, 0x28, 0x82, 0x0d, + 0x23, 0x57, 0x23, 0x3e, 0x77, 0x1d, 0xa9, 0x8a, 0xcc, 0x70, 0x63, 0xb7, 0x09, + 0x92, 0xa8, 0xe5, 0xc4, 0xcc, 0x49, + ], + amounts: vec![592562446369051, 1540420019883117, 1694211479886907], + zsf_deposit: 161983926007780, + script_pubkeys: vec![ + vec![0x51, 0x53, 0x53, 0x51, 0xac], + vec![0xac, 0x53, 0x52, 0x53, 0x52, 0x63], + vec![0x51, 0xac], + ], + transparent_input: Some(2), + sighash_shielded: [ + 0x66, 0x60, 0x04, 0xb8, 0x6a, 0x4b, 0xae, 0xde, 0xd7, 0xef, 0xe3, 0xc3, 0x7b, + 0xc1, 0xa6, 0x5c, 0xa1, 0x37, 0x4e, 0xeb, 0xad, 0x27, 0xe6, 0x85, 0xa1, 0xd5, + 0x20, 0x5f, 0x00, 0x24, 0x71, 0xde, + ], + sighash_all: Some([ + 0x2e, 0xe2, 0xee, 0x36, 0x5f, 0xed, 0x79, 0xbd, 0xab, 0x6c, 0xa3, 0x70, 0x57, + 0xc6, 0xdb, 0xaa, 0x7a, 0x1b, 0x09, 0x4d, 0x10, 0x1d, 0xba, 0x77, 0xd7, 0x16, + 0x39, 0x5e, 0x68, 0xd5, 0xd6, 0x41, + ]), + sighash_none: Some([ + 0xae, 0xad, 0x00, 0xd7, 0x60, 0x87, 0x3c, 0x4e, 0x49, 0x97, 0x22, 0xc4, 0xf6, + 0xa0, 0xa3, 0xaf, 0x2a, 0xec, 0x88, 0x2d, 0xb0, 0x18, 0x1c, 0x32, 0x0e, 0xc8, + 0xcb, 0x66, 0x36, 0x6e, 0x93, 0xa0, + ]), + sighash_single: None, + sighash_all_anyone: Some([ + 0x1b, 0xdf, 0x32, 0xf0, 0x91, 0x4a, 0xe5, 0x34, 0xdb, 0x3e, 0x57, 0x20, 0x97, + 0xf7, 0xd1, 0xdc, 0x0d, 0x92, 0x2d, 0x2c, 0x1a, 0x50, 0x56, 0x16, 0xfe, 0x63, + 0xcf, 0xc5, 0xc0, 0xb7, 0x96, 0xe6, + ]), + sighash_none_anyone: Some([ + 0xab, 0x7c, 0x80, 0x51, 0xe8, 0x7a, 0xc0, 0xbb, 0x2f, 0x8a, 0xa7, 0x9a, 0x7d, + 0xae, 0x42, 0xb3, 0x01, 0x31, 0x35, 0x18, 0x98, 0xa3, 0xf1, 0x6e, 0x80, 0x66, + 0xd2, 0x8c, 0x6a, 0x9c, 0x37, 0x1c, + ]), + sighash_single_anyone: None, + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, + 0xed, 0x2c, 0xed, 0x73, 0xdc, 0x02, 0x0f, 0x03, 0x8d, 0xce, 0xed, 0xce, 0x3c, + 0xd9, 0xa5, 0xaf, 0x55, 0x29, 0x81, 0xdc, 0xb6, 0x24, 0xc9, 0xea, 0x75, 0x59, + 0x6a, 0x2d, 0xf7, 0xd0, 0x12, 0xe5, 0x0a, 0xdc, 0x9e, 0xee, 0x81, 0x7f, 0x0d, + 0xe4, 0x05, 0x48, 0xf8, 0xb4, 0x01, 0xac, 0x01, 0xdd, 0xaf, 0xbd, 0xa1, 0x5a, + 0x3a, 0x93, 0x7a, 0x9b, 0x27, 0x6f, 0xbf, 0x88, 0xfd, 0x19, 0x62, 0x6a, 0x81, + 0x6d, 0xd5, 0x94, 0xbf, 0xd1, 0x9b, 0xa9, 0x86, 0xbc, 0x66, 0x4b, 0xaf, 0xcc, + 0x02, 0x75, 0x9a, 0x45, 0xd6, 0xa2, 0x9a, 0x8a, 0x03, 0x6a, 0x00, 0x6a, 0xd5, + 0xc8, 0x9f, 0x0e, 0xde, 0xb8, 0x11, 0x0f, 0x97, 0xa2, 0x1a, 0x5d, 0xb3, 0x39, + 0xc5, 0xc8, 0x52, 0xe9, 0x56, 0x8e, 0x55, 0xd0, 0x43, 0xe8, 0x36, 0x8a, 0x01, + 0xfd, 0xb7, 0xa1, 0x5a, 0xcd, 0x66, 0x47, 0x85, 0x7d, 0xb7, 0x9c, 0xcb, 0x34, + 0x06, 0x65, 0x6a, 0x63, 0x52, 0x63, 0xac, 0x86, 0x21, 0xd1, 0x1f, 0x02, 0xee, + 0xe7, 0x8d, 0xbc, 0x75, 0x52, 0x05, 0x00, 0x03, 0x00, 0x53, 0x65, 0x29, 0xc5, + 0xea, 0xbd, 0xf3, 0x5b, 0x06, 0x00, 0x03, 0x65, 0x51, 0x52, 0x02, 0x05, 0xed, + 0x41, 0x09, 0x97, 0xd2, 0xdd, 0xd0, 0x9a, 0xe7, 0x67, 0x8b, 0xf3, 0xbe, 0x9d, + 0x19, 0xef, 0xf6, 0xc1, 0x80, 0x37, 0xf6, 0x0e, 0x88, 0xc0, 0xd7, 0x30, 0x1f, + 0x21, 0x1b, 0x1f, 0x90, 0xca, 0x9b, 0x9e, 0x11, 0xc8, 0xa1, 0x2d, 0x22, 0xd3, + 0x36, 0x71, 0x68, 0x03, 0x35, 0x37, 0x4e, 0x87, 0xb2, 0x1d, 0xd7, 0xf9, 0xe0, + 0x17, 0x16, 0x89, 0xbe, 0xd2, 0xba, 0x23, 0x2b, 0x96, 0x07, 0x0d, 0x71, 0x59, + 0xbb, 0x48, 0xd0, 0x75, 0x68, 0x99, 0x2a, 0x5c, 0x9c, 0x99, 0x2d, 0xee, 0x4e, + 0xe0, 0x57, 0x7c, 0xd4, 0xfb, 0x17, 0xe3, 0x09, 0x60, 0xb4, 0x5b, 0x0a, 0xd8, + 0x04, 0x8f, 0x2c, 0x1c, 0x97, 0x3a, 0x74, 0x32, 0x40, 0xa1, 0x0a, 0x06, 0x09, + 0x82, 0x51, 0x74, 0x5c, 0x91, 0x30, 0x1c, 0xeb, 0xb9, 0xb2, 0xce, 0xb1, 0x3f, + 0xb7, 0xbc, 0xa3, 0x9f, 0x5f, 0xfd, 0x36, 0x0f, 0x5c, 0x9b, 0x65, 0x1c, 0xa9, + 0xa3, 0x51, 0x80, 0xa4, 0x77, 0xe6, 0x08, 0x41, 0x77, 0xa9, 0x4f, 0x2d, 0x23, + 0xb3, 0x6e, 0xe7, 0xc2, 0x81, 0x1c, 0xd1, 0xb9, 0x7d, 0x0d, 0x8d, 0xa4, 0x96, + 0x70, 0x21, 0x13, 0x4f, 0x2b, 0xa8, 0x7e, 0xb9, 0x65, 0xe5, 0xb9, 0x7b, 0x1a, + 0xd2, 0x45, 0x03, 0x50, 0x36, 0xec, 0x08, 0x5d, 0x20, 0x43, 0xac, 0x07, 0x3d, + 0x85, 0x06, 0xaa, 0x0a, 0x54, 0xb1, 0x56, 0x8a, 0x00, 0xf3, 0x4b, 0x38, 0x59, + 0xe9, 0xa8, 0x00, 0x00, 0x94, 0xa9, 0xf3, 0x4d, 0xe7, 0x2b, 0x03, 0xd3, 0x42, + 0x88, 0xc2, 0xbf, 0xb9, 0x52, 0x76, 0x77, 0xef, 0x10, 0xbd, 0x3c, 0xd4, 0x59, + 0x95, 0xa0, 0x34, 0xab, 0x39, 0xd0, 0x87, 0x16, 0x6b, 0x3e, 0xe0, 0x53, 0x6f, + 0x78, 0x76, 0xed, 0x6d, 0x9b, 0x9d, 0x45, 0xd0, 0xdf, 0x07, 0xe5, 0x68, 0x25, + 0xdd, 0xac, 0xfa, 0x9e, 0x6a, 0x6f, 0xb6, 0x56, 0x19, 0x4e, 0xe9, 0x72, 0xba, + 0x4f, 0x95, 0x70, 0x22, 0xad, 0xe8, 0x6b, 0xb1, 0xed, 0xd1, 0x4f, 0xb5, 0x44, + 0x6c, 0x9f, 0x0b, 0xfe, 0x4a, 0x04, 0xed, 0x5e, 0xbb, 0x53, 0x18, 0x3e, 0x7c, + 0xca, 0x89, 0x3e, 0x23, 0x5e, 0x26, 0x0c, 0xd1, 0x81, 0x6b, 0xee, 0x96, 0x0b, + 0xe6, 0xc0, 0x4c, 0x12, 0x1f, 0x41, 0x0c, 0xce, 0x26, 0x0f, 0xd8, 0xe7, 0xac, + 0x6d, 0xfb, 0x88, 0xdc, 0x09, 0x7b, 0x53, 0x56, 0xb2, 0xbe, 0x79, 0xf5, 0x70, + 0x8d, 0x5c, 0x68, 0xc2, 0xac, 0x65, 0xe4, 0xc6, 0xf3, 0x17, 0x76, 0xfb, 0xcb, + 0x55, 0x7c, 0x06, 0xe6, 0x70, 0x55, 0xbe, 0xa9, 0x58, 0xb5, 0x34, 0x39, 0x53, + 0x36, 0x2d, 0xa2, 0xb1, 0x96, 0xa0, 0xc7, 0x9f, 0x55, 0xc5, 0x5b, 0xc4, 0xc5, + 0x62, 0xe5, 0xc0, 0x7d, 0x02, 0x73, 0xc3, 0xd1, 0x3b, 0xcc, 0x36, 0x92, 0xdb, + 0x6b, 0xcc, 0xa7, 0xd7, 0x47, 0x1a, 0x43, 0x01, 0x12, 0x17, 0x43, 0x00, 0x98, + 0x13, 0x47, 0xae, 0xb4, 0xc0, 0xa5, 0xde, 0x5f, 0xac, 0x70, 0x7f, 0xef, 0x54, + 0x6c, 0x4d, 0xfe, 0x0b, 0x58, 0x07, 0xb7, 0xb1, 0xc6, 0x8f, 0xd0, 0xf2, 0x45, + 0xa7, 0xa3, 0xd7, 0x44, 0x6d, 0x22, 0x94, 0xcd, 0x44, 0xea, 0xfc, 0x03, 0x09, + 0xe0, 0x72, 0xb0, 0x3b, 0x42, 0x55, 0x92, 0x7a, 0xc9, 0xf9, 0x54, 0x93, 0x8f, + 0xa8, 0x25, 0xd7, 0x7f, 0xf5, 0x82, 0xc8, 0x04, 0x97, 0x0f, 0xf2, 0xfe, 0x1c, + 0xfe, 0xb7, 0x15, 0xcf, 0x84, 0x9f, 0x42, 0x76, 0x0e, 0xee, 0xa9, 0xd8, 0x4a, + 0xfa, 0xaf, 0x76, 0xce, 0x8f, 0xb4, 0x97, 0xd8, 0xd7, 0xff, 0x11, 0x80, 0x13, + 0x39, 0x32, 0xf1, 0x3f, 0x74, 0xc9, 0xc5, 0x48, 0xc4, 0x83, 0x30, 0x8e, 0xb3, + 0xc1, 0x7b, 0x03, 0x2b, 0xd6, 0xaf, 0xfd, 0xb7, 0x1d, 0x79, 0x0f, 0xde, 0xbb, + 0xa9, 0xe6, 0x37, 0xde, 0x51, 0x68, 0x32, 0xf9, 0x61, 0x72, 0x61, 0xb8, 0x3e, + 0xfb, 0xa3, 0x7d, 0x33, 0x0b, 0x26, 0xa8, 0x15, 0x28, 0x6b, 0xf2, 0xb9, 0xe5, + 0xa5, 0xc2, 0xc9, 0x42, 0x0e, 0x63, 0x83, 0xfb, 0xff, 0x0d, 0xeb, 0x8c, 0x46, + 0x43, 0x09, 0x85, 0x03, 0xf6, 0xa1, 0x49, 0xa9, 0x48, 0x9b, 0x1a, 0x1a, 0x6c, + 0x86, 0xa2, 0x3f, 0x92, 0x8f, 0xf6, 0x2b, 0x40, 0xbe, 0x82, 0xd3, 0xd3, 0xeb, + 0xeb, 0x21, 0xb8, 0xfc, 0x40, 0xf6, 0xdc, 0x1f, 0x53, 0xa1, 0x85, 0x0a, 0x63, + 0x88, 0xc0, 0xc0, 0x1a, 0x9b, 0x91, 0x33, 0x2c, 0x07, 0x9d, 0xef, 0x58, 0x25, + 0x43, 0x33, 0xf3, 0xfd, 0xf8, 0x47, 0xb0, 0x09, 0x6a, 0xae, 0xb5, 0x0c, 0x7d, + 0xe7, 0x29, 0xfe, 0x28, 0x0f, 0x59, 0x1b, 0xaa, 0x3d, 0x60, 0x75, 0x1a, 0x77, + 0x15, 0xac, 0xe7, 0x37, 0xea, 0x7a, 0x9e, 0xa0, 0xa7, 0xa7, 0xe7, 0x5b, 0xca, + 0x55, 0x43, 0x27, 0x77, 0xef, 0x79, 0xec, 0x52, 0x49, 0x81, 0x5a, 0x16, 0x18, + 0x10, 0x9b, 0xd3, 0xbd, 0x3d, 0xf1, 0xc9, 0x72, 0x4d, 0xdb, 0x44, 0x8c, 0xea, + 0x9c, 0xfa, 0x09, 0xba, 0x4f, 0xf0, 0x4b, 0x63, 0x59, 0x77, 0x85, 0x41, 0x44, + 0x9f, 0x6e, 0x02, 0x0f, 0x4c, 0x1d, 0x94, 0xa9, 0x54, 0x68, 0x6d, 0x78, 0x26, + 0xcb, 0x7a, 0xb0, 0x3e, 0x0a, 0x18, 0x2a, 0x72, 0x65, 0xe7, 0x98, 0xbb, 0x3d, + 0x4b, 0xe8, 0xd9, 0x01, 0x09, 0x6d, 0x6b, 0x05, 0x64, 0x1d, 0x25, 0x7f, 0xac, + 0xc1, 0x2a, 0x96, 0xdd, 0xe5, 0xed, 0xab, 0xb3, 0x1e, 0x8f, 0xbf, 0x45, 0x32, + 0x7d, 0x88, 0x00, 0xac, 0xfc, 0x5b, 0xdc, 0x6a, 0xf9, 0xa3, 0x0e, 0x52, 0x85, + 0xd9, 0x0a, 0x79, 0x6b, 0x51, 0xa2, 0x08, 0x78, 0xf3, 0xe3, 0x3d, 0x70, 0xfb, + 0x3b, 0x00, 0x65, 0x8d, 0x10, 0x0f, 0xae, 0x9e, 0xf2, 0x72, 0x4a, 0xc1, 0xdf, + 0x4a, 0x42, 0x16, 0xf8, 0x87, 0xd8, 0x3b, 0x30, 0x73, 0x8c, 0x09, 0x3b, 0x7a, + 0x86, 0x05, 0x93, 0x86, 0x5d, 0xb7, 0x9e, 0xaa, 0x08, 0x1f, 0x0a, 0xe4, 0x35, + 0xe7, 0xd4, 0x7a, 0xc2, 0x52, 0x07, 0x3c, 0xb5, 0x92, 0x2b, 0x80, 0xb0, 0xdd, + 0x01, 0x01, 0xdc, 0x1d, 0xc0, 0x21, 0xe4, 0x01, 0x70, 0x22, 0x76, 0x68, 0x1d, + 0x08, 0x98, 0x31, 0x7b, 0x02, 0xd0, 0x49, 0x13, 0x14, 0x9f, 0x07, 0xda, 0x45, + 0x13, 0x5b, 0x3b, 0x87, 0x25, 0xb9, 0x04, 0xbd, 0x4b, 0x48, 0xae, 0x70, 0xc3, + 0xa6, 0xe5, 0x59, 0x50, 0x90, 0x4e, 0x85, 0x26, 0x23, 0x31, 0x76, 0x84, 0x2b, + 0x9d, 0x70, 0x54, 0x6e, 0x9a, 0xab, 0x4c, 0xe8, 0xfb, 0x48, 0xaa, 0xe4, 0xf5, + 0x28, 0x25, 0x7e, 0x3f, 0x77, 0x10, 0x71, 0x86, 0xb3, 0x0b, 0x38, 0x87, 0x41, + 0x63, 0x24, 0xcb, 0xf5, 0x5d, 0x27, 0xad, 0xaa, 0xc1, 0x2b, 0x50, 0xde, 0x2e, + 0x70, 0x32, 0xdb, 0x7a, 0x46, 0x8e, 0x10, 0xdd, 0x0e, 0x31, 0x23, 0x57, 0x8e, + 0xd7, 0x5f, 0x5b, 0x8b, 0xb5, 0xf6, 0xcc, 0xfb, 0xe8, 0x97, 0xe7, 0xcd, 0x8b, + 0x8a, 0xcd, 0x94, 0x46, 0x35, 0xcc, 0x3e, 0xce, 0x40, 0x67, 0x5f, 0x1e, 0x23, + 0x02, 0xab, 0x9a, 0xe3, 0x76, 0x79, 0x27, 0x12, 0x3f, 0x7c, 0xf0, 0xb8, 0x88, + 0x24, 0x2d, 0xd6, 0x82, 0x00, 0x8c, 0x32, 0x56, 0x31, 0x3b, 0x8d, 0xbb, 0xb6, + 0x39, 0xd4, 0xc6, 0x93, 0x74, 0x39, 0x92, 0xc8, 0xb6, 0x2c, 0x98, 0xc5, 0x3c, + 0x8d, 0x43, 0x95, 0x94, 0x6b, 0xb0, 0x67, 0xaf, 0x38, 0xa8, 0x1b, 0xfe, 0x97, + 0xf1, 0xe2, 0x71, 0xe0, 0x6a, 0x81, 0x0c, 0x4e, 0xa1, 0x4d, 0x8b, 0x5a, 0xf0, + 0x38, 0xb0, 0x0b, 0x50, 0xca, 0x56, 0x2d, 0xbe, 0xf1, 0x23, 0xb8, 0xe2, 0x82, + 0x73, 0x60, 0x9a, 0xa1, 0x7a, 0xb3, 0x89, 0x40, 0x17, 0x7c, 0xcc, 0x9c, 0xe8, + 0x81, 0x0a, 0x24, 0xc2, 0x39, 0x4e, 0x89, 0x34, 0x12, 0x85, 0x33, 0x6a, 0xfa, + 0xc2, 0x46, 0xb7, 0xd9, 0x46, 0x87, 0x90, 0x06, 0x99, 0xdd, 0xd7, 0x56, 0xfa, + 0x96, 0x74, 0x79, 0x01, 0xf5, 0x38, 0x14, 0x5e, 0xf3, 0xc6, 0x2d, 0x28, 0xba, + 0x1b, 0x43, 0x74, 0x6b, 0x48, 0x16, 0xb3, 0xd9, 0xca, 0xbc, 0x84, 0x4b, 0x98, + 0x84, 0xe8, 0x59, 0x17, 0x99, 0x3a, 0x5c, 0x7a, 0xe2, 0xa6, 0x70, 0xd0, 0x86, + 0xb1, 0xe8, 0xea, 0x4b, 0xbd, 0xcc, 0xa0, 0x8a, 0xa4, 0x56, 0xe3, 0x5e, 0xba, + 0xf2, 0x25, 0xd6, 0x83, 0x9e, 0xe5, 0xaf, 0x88, 0x0b, 0x57, 0xbe, 0x69, 0x67, + 0x54, 0xed, 0x1d, 0x09, 0x00, 0x97, 0x38, 0xf3, 0xe9, 0x8b, 0x07, 0xc4, 0x85, + 0x5b, 0x9c, 0xcc, 0xda, 0xf7, 0x00, 0xcc, 0xb3, 0x5c, 0x27, 0x01, 0x13, 0xc5, + 0x0b, 0x6f, 0xbb, 0xc4, 0x88, 0xc7, 0x6d, 0xf9, 0x67, 0x1a, 0x29, 0x51, 0x99, + 0x10, 0xb2, 0xbf, 0x69, 0x97, 0x25, 0x24, 0x65, 0x15, 0xc1, 0x5d, 0x31, 0x72, + 0xc4, 0x14, 0x86, 0xea, 0xac, 0x85, 0xa8, 0xb2, 0xd9, 0xf4, 0x2f, 0x59, 0xdb, + 0x42, 0xfc, 0x5d, 0xaf, 0x38, 0x00, 0xc2, 0x4d, 0x61, 0xb0, 0x61, 0xa9, 0x10, + 0x34, 0x99, 0xa7, 0x25, 0x70, 0xbe, 0x68, 0x56, 0xd2, 0x53, 0xf6, 0xee, 0x48, + 0xc3, 0xd3, 0xc9, 0x23, 0x5c, 0x0f, 0xbe, 0x8d, 0x69, 0x3d, 0x07, 0x5b, 0x64, + 0x0b, 0x61, 0x48, 0xb1, 0xb4, 0x8b, 0x94, 0x9b, 0x08, 0xbe, 0x60, 0xa4, 0x2a, + 0xb0, 0x32, 0x42, 0xc5, 0xad, 0xa7, 0x6e, 0x11, 0x29, 0x51, 0x47, 0x63, 0x45, + 0x53, 0xe8, 0xc3, 0x02, 0xd8, 0xe4, 0xa9, 0x80, 0x48, 0x01, 0x44, 0x12, 0xd4, + 0x4e, 0x0c, 0x3e, 0xf7, 0x7b, 0x65, 0xb0, 0x3a, 0xe9, 0x82, 0x71, 0x40, 0x52, + 0xbc, 0xe8, 0xf0, 0x43, 0xb5, 0xdf, 0xae, 0x86, 0xa0, 0x30, 0x63, 0x58, 0xb4, + 0x96, 0xf4, 0x5c, 0xec, 0x2f, 0x1c, 0x7b, 0x68, 0x02, 0x9b, 0x75, 0x35, 0x42, + 0x36, 0x33, 0xd6, 0x3a, 0xe5, 0x7f, 0x00, 0xc8, 0x5b, 0xf7, 0x79, 0x0d, 0x3f, + 0xe1, 0x58, 0x92, 0x00, 0xfb, 0xb8, 0x31, 0xe8, 0x47, 0xca, 0x51, 0xcb, 0xbf, + 0x50, 0x9d, 0xe9, 0xb9, 0xfc, 0xf4, 0xed, 0x99, 0x7d, 0xb6, 0x81, 0x42, 0x20, + 0x30, 0x36, 0x07, 0xbf, 0x4a, 0x59, 0xab, 0x5d, 0xd5, 0x95, 0x5c, 0xef, 0x08, + 0xb6, 0xc9, 0x02, 0xad, 0x7f, 0x17, 0xfc, 0xf0, 0xc1, 0x96, 0x04, 0xcb, 0x0f, + 0xd9, 0x34, 0xe0, 0x57, 0x6e, 0x69, 0xe3, 0x33, 0xd9, 0x17, 0x4e, 0xed, 0x15, + 0xb9, 0x10, 0x77, 0xcb, 0x82, 0xb1, 0x66, 0xb9, 0x73, 0xe0, 0xd3, 0x7d, 0xfa, + 0xf7, 0xe5, 0x4a, 0xe6, 0x27, 0x11, 0xa5, 0x34, 0xfe, 0x5a, 0x81, 0x9d, 0x59, + 0x40, 0x78, 0x90, 0xb4, 0x41, 0x1a, 0x2b, 0x74, 0x65, 0x6a, 0xb6, 0x22, 0x84, + 0x65, 0xc4, 0xa5, 0x93, 0x9c, 0x38, 0xc7, 0xe4, 0x49, 0x32, 0xff, 0x97, 0xe8, + 0xd5, 0xc7, 0xcb, 0x50, 0xef, 0xe9, 0x11, 0x2f, 0x3c, 0xe1, 0x92, 0x05, 0x60, + 0xce, 0x0e, 0x4c, 0x46, 0xa2, 0xbc, 0xff, 0x7e, 0x0c, 0x76, 0xb8, 0xe9, 0x32, + 0xe3, 0x84, 0x29, 0x56, 0xe5, 0xb9, 0xcc, 0x93, 0x28, 0x07, 0x95, 0xc3, 0x31, + 0xea, 0x77, 0x9e, 0x97, 0x03, 0x02, 0x7a, 0x32, 0x89, 0x14, 0xca, 0xfe, 0x98, + 0x21, 0x28, 0x94, 0x4d, 0xbd, 0x54, 0x5f, 0xb4, 0x3c, 0xcd, 0x9b, 0xbe, 0x17, + 0x45, 0x16, 0xb1, 0x6a, 0xe6, 0xc4, 0x1b, 0x48, 0xe2, 0x9b, 0xc6, 0x09, 0xec, + 0x8d, 0xf3, 0x19, 0xd1, 0x56, 0xda, 0xec, 0xb1, 0x0f, 0xfd, 0xab, 0x6b, 0x53, + 0xf5, 0x0d, 0xef, 0x18, 0x05, 0xf0, 0x02, 0x90, 0xc3, 0x37, 0x81, 0x4d, 0x7c, + 0xfa, 0x5f, 0xe5, 0x92, 0xa1, 0xf6, 0x10, 0xfb, 0xe1, 0x75, 0x34, 0x82, 0x1b, + 0xc2, 0x23, 0xe0, 0x34, 0xbe, 0x3d, 0xcd, 0x57, 0xab, 0x57, 0xe3, 0xda, 0x7a, + 0x94, 0xfa, 0xce, 0xc1, 0x23, 0x57, 0x4f, 0x14, 0xf6, 0xb4, 0x8f, 0x33, 0x7b, + 0x07, 0xe7, 0xbb, 0xf1, 0x96, 0x68, 0x8c, 0xea, 0xed, 0x24, 0x8c, 0x34, 0xdd, + 0xaf, 0x3f, 0xc8, 0xdb, 0x75, 0xf2, 0x40, 0x71, 0x1a, 0x69, 0x82, 0xe1, 0x2d, + 0x0d, 0x83, 0xfd, 0xcf, 0x7a, 0x0a, 0x66, 0x8d, 0x42, 0x0d, 0x22, 0xbd, 0xa0, + 0xf1, 0xed, 0x6e, 0x63, 0xb6, 0xa5, 0xc2, 0x28, 0x47, 0x94, 0xcd, 0x81, 0x09, + 0x9c, 0xca, 0x73, 0x02, 0xeb, 0x31, 0x1e, 0xb6, 0x31, 0xfe, 0x02, 0x00, 0xbd, + 0xb5, 0x31, 0x4c, 0x09, 0x54, 0x71, 0x2f, 0x05, 0xef, 0x38, 0x37, 0x2a, 0x98, + 0xfb, 0xa6, 0xd7, 0xf2, 0x1b, 0x6f, 0xf5, 0x97, 0x9d, 0x80, 0x1a, 0x41, 0x90, + 0xf2, 0xad, 0xef, 0x9e, 0x15, 0xfd, 0x1a, 0x01, 0x40, 0xc9, 0x3e, 0xa1, 0xaf, + 0xf3, 0x4a, 0x08, 0x9b, 0x62, 0x83, 0x79, 0xc8, 0x17, 0x70, 0x7b, 0x8b, 0x04, + 0xb1, 0x3b, 0x96, 0xaa, 0x8f, 0x24, 0x2c, 0xe1, 0xf0, 0x0f, 0x0c, 0x00, 0x91, + 0x04, 0xa3, 0x23, 0xf1, 0x79, 0x6f, 0x2e, 0x45, 0x78, 0x25, 0x6d, 0x7c, 0xca, + 0xa4, 0xe9, 0x51, 0x00, 0x37, 0xeb, 0x8b, 0xdc, 0x38, 0x53, 0x9d, 0x00, 0x2f, + 0xed, 0xa9, 0x5e, 0x25, 0x98, 0x99, 0x47, 0x37, 0x55, 0xa2, 0xad, 0xf9, 0xd9, + 0x65, 0xde, 0x22, 0xa5, 0xd0, 0x78, 0xdb, 0xdb, 0x0d, 0xcf, 0x25, 0xf6, 0xe2, + 0x0c, 0x7e, 0x0a, 0xc6, 0x46, 0x08, 0x7b, 0xfe, 0x95, 0xd9, 0xca, 0x1c, 0x55, + 0x80, 0x57, 0x33, 0x9b, 0xe3, 0x1e, 0xdf, 0xdf, 0x7e, 0x32, 0xf9, 0x55, 0xcc, + 0x74, 0x60, 0xf3, 0xbf, 0x64, 0x0a, 0x19, 0x08, 0x68, 0x87, 0x17, 0xab, 0x43, + 0x0c, 0x9b, 0xa0, 0x97, 0xe7, 0x55, 0x4d, 0x26, 0x83, 0xd6, 0xd7, 0x18, 0x7c, + 0x88, 0x38, 0x71, 0xb2, 0x22, 0x09, 0xbd, 0x5c, 0x2d, 0xa7, 0x8f, 0x22, 0xfa, + 0xd3, 0x1e, 0xc7, 0x7c, 0xee, 0x80, 0x3a, 0xd7, 0xf1, 0x24, 0xda, 0x3f, 0x78, + 0xb8, 0x7c, 0xa7, 0xa8, 0xe5, 0x39, 0x84, 0x74, 0xda, 0x58, 0x56, 0xe3, 0x69, + 0xb9, 0x92, 0xf3, 0xca, 0x0d, 0x75, 0xa7, 0x6b, 0x65, 0xf8, 0x60, 0xde, 0x7c, + 0x2b, 0x40, 0x2d, 0xac, 0x10, 0x4b, 0x2e, 0xed, 0x29, 0x6a, 0xaa, 0xc4, 0x38, + 0xc8, 0x02, 0x75, 0x71, 0xcc, 0x3a, 0xf4, 0x3e, 0x2f, 0x59, 0xd0, 0x03, 0x6c, + 0x31, 0x12, 0x6e, 0x88, 0x0c, 0x0c, 0xfa, 0xda, 0xa7, 0x15, 0x05, 0x52, 0x47, + 0x34, 0x32, 0x6a, 0xc6, 0x93, 0x9f, 0x84, 0x19, 0x82, 0xd5, 0x60, 0x3e, 0x79, + 0x58, 0x41, 0x0e, 0xb0, 0x76, 0xc8, 0x04, 0x63, 0x39, 0x63, 0x0b, 0x0d, 0xd2, + 0xe8, 0x0f, 0xc4, 0x63, 0x3a, 0x3a, 0xc7, 0x59, 0x25, 0x59, 0x99, 0xe7, 0x93, + 0x93, 0xa3, 0xb4, 0x5e, 0xeb, 0x2e, 0x7e, 0xc5, 0x2c, 0x76, 0x62, 0x73, 0x5e, + 0xfe, 0x53, 0x2a, 0x69, 0xce, 0xb1, 0xd1, 0xde, 0x8c, 0x49, 0x6d, 0x33, 0x8a, + 0x3b, 0x02, 0xbe, 0x23, 0xc4, 0xfe, 0xe9, 0x1f, 0x3b, 0xb5, 0xf4, 0x60, 0x08, + 0xe9, 0x4c, 0x22, 0x38, 0xad, 0x4b, 0x66, 0x77, 0xe9, 0x01, 0x42, 0x94, 0x2b, + 0x78, 0x8f, 0x03, 0xe4, 0x16, 0x28, 0xe7, 0x25, 0xbd, 0x86, 0xa5, 0xb8, 0xa9, + 0x03, 0x50, 0x84, 0xd5, 0x74, 0x2e, 0x86, 0xe7, 0x52, 0xb0, 0x51, 0xab, 0x91, + 0xbe, 0xc7, 0x3a, 0x88, 0x8e, 0xb2, 0x8c, 0xd3, 0x32, 0x34, 0xba, 0x32, 0xd4, + 0x6b, 0x03, 0xc9, 0x98, 0xea, 0x20, 0x3d, 0x86, 0x75, 0xd3, 0x62, 0x42, 0xfa, + 0xea, 0x91, 0x5b, 0x97, 0x88, 0x21, 0x49, 0x8e, 0xaf, 0x5f, 0x9f, 0x72, 0x3c, + 0x61, 0x38, 0x63, 0xfa, 0xeb, 0x47, 0x62, 0x8f, 0xc2, 0x5f, 0x89, 0x0e, 0xff, + 0x58, 0x84, 0xa8, 0x2e, 0xeb, 0x07, 0xeb, 0xdf, 0xc9, 0x3c, 0x70, 0x7d, 0x65, + 0x7e, 0x0c, 0x52, 0x5b, 0x88, 0xf6, 0xe1, 0x7e, 0x05, 0x00, + ], + txid: [ + 0x9d, 0x5e, 0x1a, 0xc5, 0xc9, 0x74, 0xe7, 0x2b, 0x9e, 0x11, 0x8f, 0xaf, 0x83, + 0xac, 0x8d, 0x0a, 0x21, 0xf4, 0x0e, 0x9e, 0xf3, 0x72, 0xba, 0xad, 0x9b, 0xa0, + 0xcc, 0xfb, 0x39, 0x48, 0xfc, 0x1e, + ], + auth_digest: [ + 0x28, 0xf6, 0x2c, 0x2d, 0xcc, 0xe7, 0x6f, 0x36, 0xee, 0xa3, 0x0f, 0x22, 0x52, + 0xf7, 0x22, 0x2d, 0x9c, 0x3b, 0x82, 0xe0, 0x07, 0xbe, 0x80, 0x77, 0xc0, 0x90, + 0x32, 0x57, 0x69, 0xe7, 0x30, 0x44, + ], + amounts: vec![1681482385057857, 1329715149379892, 1641775598464284], + zsf_deposit: 1546883852426066, + script_pubkeys: vec![ + vec![0x51, 0x6a, 0xac, 0xac, 0x51, 0x63], + vec![], + vec![0x53, 0x53, 0x65], + ], + transparent_input: Some(1), + sighash_shielded: [ + 0x73, 0x38, 0xb6, 0xdc, 0x05, 0x3f, 0x49, 0xb8, 0x59, 0xd9, 0x88, 0xb6, 0x18, + 0x4f, 0xf5, 0x5a, 0x73, 0x43, 0x1a, 0xef, 0x81, 0x66, 0x2e, 0xda, 0x97, 0xcc, + 0xc3, 0xe7, 0x19, 0xb5, 0xd3, 0x8b, + ], + sighash_all: Some([ + 0x8b, 0xa2, 0xe4, 0x2c, 0x35, 0xc5, 0xa8, 0xf9, 0x81, 0x52, 0xa4, 0x67, 0x9a, + 0xdc, 0x19, 0x1f, 0x5b, 0xca, 0x68, 0x3c, 0x2d, 0x81, 0xd1, 0xee, 0x8d, 0x98, + 0xd3, 0x31, 0xb8, 0xf4, 0xfe, 0x2e, + ]), + sighash_none: Some([ + 0xf1, 0x7e, 0x0c, 0xf2, 0x90, 0x55, 0x45, 0x8a, 0x59, 0xd5, 0x8a, 0x32, 0x0b, + 0x4d, 0xf3, 0x00, 0xe6, 0x27, 0x1a, 0xca, 0xa8, 0xca, 0x70, 0x09, 0xa2, 0x3b, + 0x21, 0xbf, 0x9f, 0x78, 0x45, 0x97, + ]), + sighash_single: Some([ + 0xdd, 0x14, 0x4c, 0xf9, 0x42, 0xf9, 0x98, 0x0e, 0x7f, 0x1c, 0xc2, 0xc8, 0x32, + 0x3e, 0x29, 0xf9, 0x74, 0x7d, 0x86, 0x29, 0xb5, 0xf5, 0x55, 0xd1, 0xf4, 0x26, + 0x71, 0x22, 0xa0, 0x9c, 0x72, 0x71, + ]), + sighash_all_anyone: Some([ + 0x7a, 0xbb, 0x04, 0xed, 0xd3, 0x09, 0x2f, 0x79, 0x32, 0x59, 0xe8, 0x3d, 0x07, + 0x05, 0x61, 0x07, 0x96, 0x7b, 0xbd, 0x9c, 0x0e, 0xdf, 0x8e, 0xca, 0xdb, 0xdf, + 0x8b, 0x47, 0xd1, 0x1d, 0xdf, 0x62, + ]), + sighash_none_anyone: Some([ + 0x03, 0xb6, 0xf9, 0xbe, 0x86, 0x23, 0xab, 0xbf, 0xac, 0x7d, 0xa3, 0x56, 0xca, + 0xc2, 0xdb, 0xab, 0x4c, 0x2e, 0x77, 0x96, 0x81, 0x31, 0x5a, 0x34, 0x51, 0x2a, + 0x9a, 0x86, 0xec, 0x84, 0x11, 0xd2, + ]), + sighash_single_anyone: Some([ + 0xc4, 0x27, 0xf7, 0x26, 0x73, 0xea, 0x81, 0x3f, 0x63, 0x66, 0x7e, 0xec, 0x18, + 0xd5, 0x38, 0x4d, 0x91, 0x30, 0x3c, 0x8a, 0xd0, 0x95, 0x2d, 0xfd, 0x1d, 0xda, + 0xf0, 0x82, 0x37, 0xe1, 0x51, 0x03, + ]), + }, + TestVector { + tx: vec![ + 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, + 0x18, 0x33, 0xc2, 0xbd, 0xf9, 0x6e, 0x17, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, 0x04, 0xbd, 0xf9, 0x6e, 0x17, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x4c, 0xf0, 0xf0, 0x85, 0x1e, 0x04, 0x00, 0x07, + 0x53, 0x51, 0x63, 0x63, 0xac, 0x63, 0xac, 0xab, 0x94, 0xda, 0x86, 0x8f, 0x65, + 0x05, 0x00, 0x06, 0x00, 0x52, 0x00, 0x52, 0x53, 0x52, 0x80, 0x86, 0x84, 0x40, + 0x8c, 0x1a, 0x03, 0x00, 0x03, 0x6a, 0x65, 0x6a, 0x00, 0x01, 0xbe, 0xba, 0x29, + 0xa5, 0xca, 0x86, 0x4c, 0x09, 0x94, 0x07, 0xa7, 0x15, 0x2d, 0xe4, 0xe6, 0x57, + 0x50, 0xf9, 0x3f, 0xd5, 0x0b, 0xfe, 0x8f, 0x46, 0x3c, 0x01, 0x29, 0xb4, 0xd7, + 0x4f, 0x6a, 0xe3, 0x36, 0x7d, 0xdc, 0xa7, 0x32, 0x04, 0x76, 0xae, 0xf5, 0x8d, + 0x8f, 0xaf, 0x80, 0x26, 0xe8, 0xdf, 0x38, 0xe3, 0xa0, 0x54, 0x78, 0xfb, 0x17, + 0x07, 0x63, 0x59, 0xc6, 0x4a, 0xd4, 0xe3, 0x60, 0x1b, 0x60, 0x86, 0x04, 0xa8, + 0x8f, 0x3a, 0xb3, 0x45, 0xb1, 0xf7, 0x43, 0x88, 0xa6, 0xa3, 0xbc, 0x01, 0x2f, + 0x02, 0xa0, 0xd2, 0x35, 0x88, 0x1d, 0x5a, 0x2b, 0xca, 0xeb, 0x8c, 0x6d, 0x64, + 0x03, 0x06, 0x3c, 0xa9, 0x50, 0xac, 0x18, 0xec, 0xdd, 0x34, 0xe4, 0x80, 0x88, + 0xc3, 0xba, 0xad, 0xbf, 0xb1, 0x7e, 0xf8, 0x43, 0x1b, 0x70, 0x13, 0x65, 0xcf, + 0xb9, 0x3f, 0xb3, 0x12, 0xff, 0xcf, 0xd9, 0xaa, 0x40, 0x33, 0x1d, 0x51, 0xa1, + 0xe2, 0xca, 0x36, 0x9b, 0x71, 0xcb, 0x87, 0x95, 0x0d, 0x5d, 0xa0, 0x50, 0xaa, + 0x36, 0x01, 0x76, 0x31, 0xbc, 0x6f, 0xda, 0x86, 0xe6, 0x50, 0xbd, 0x36, 0x69, + 0x78, 0x6f, 0x9c, 0x71, 0xf0, 0x04, 0x15, 0xd0, 0xfa, 0x64, 0xd3, 0x4b, 0x9b, + 0xad, 0x9a, 0xa2, 0xce, 0xf8, 0x00, 0xe2, 0x25, 0x35, 0x4f, 0xb8, 0xb9, 0xf1, + 0x91, 0x02, 0x63, 0x01, 0x10, 0xca, 0xf8, 0x81, 0xaa, 0x42, 0x35, 0xe9, 0x0d, + 0xd1, 0x84, 0x06, 0x02, 0x08, 0xa2, 0x83, 0xec, 0x0d, 0x17, 0xae, 0xdf, 0x4e, + 0xb3, 0x4b, 0xe3, 0xa1, 0x3a, 0x23, 0x95, 0x98, 0xb7, 0x26, 0x4c, 0x87, 0x06, + 0x92, 0x50, 0x65, 0x60, 0x7b, 0xcf, 0xe9, 0xf9, 0x9e, 0xd3, 0xc0, 0xd9, 0xad, + 0xed, 0x59, 0x40, 0x08, 0x6f, 0xde, 0xc7, 0x0b, 0xab, 0xba, 0x27, 0x2a, 0x2f, + 0x51, 0x9d, 0xe7, 0x1a, 0x01, 0xc0, 0xbe, 0x36, 0x1e, 0x4b, 0xa5, 0x68, 0xca, + 0x01, 0x8f, 0xe4, 0x0d, 0x6e, 0x57, 0xc2, 0xd4, 0x26, 0xd5, 0xd3, 0x2a, 0x4b, + 0xb8, 0xc4, 0x1a, 0x60, 0x19, 0xbd, 0xf3, 0x35, 0x51, 0x30, 0xf1, 0x78, 0x16, + 0x91, 0xa8, 0xfc, 0xc1, 0xf6, 0xef, 0xaa, 0x9a, 0xaa, 0x69, 0x80, 0xba, 0xf8, + 0x31, 0x60, 0x17, 0xc0, 0x48, 0xa8, 0x83, 0x2c, 0xbc, 0x4f, 0xa3, 0x1a, 0x3d, + 0xf4, 0xe1, 0x1d, 0xa7, 0x59, 0x96, 0x2a, 0x4f, 0x9a, 0xdf, 0x65, 0xf4, 0x04, + 0x8b, 0xf6, 0xac, 0x73, 0x21, 0x16, 0x27, 0x58, 0x8f, 0x7a, 0xcd, 0xf3, 0x39, + 0xe4, 0x51, 0xf1, 0x9e, 0xca, 0x44, 0xdd, 0x55, 0x9d, 0xe4, 0x08, 0x07, 0xc9, + 0x16, 0xb3, 0xc6, 0x2c, 0x55, 0x8f, 0x06, 0xa8, 0x11, 0x76, 0x8c, 0x14, 0xc2, + 0xcf, 0xaa, 0xbd, 0x1a, 0x10, 0xb6, 0x33, 0x05, 0xa6, 0x8c, 0x96, 0x81, 0xbf, + 0x0e, 0x14, 0x4d, 0x32, 0x04, 0x84, 0x56, 0xf4, 0xdf, 0x5f, 0x7f, 0x2c, 0xb3, + 0xd5, 0xa0, 0x52, 0x7e, 0x1f, 0x91, 0x5f, 0xdd, 0xa4, 0x99, 0x52, 0xf7, 0x93, + 0x8f, 0x08, 0xc0, 0xd4, 0x81, 0x85, 0x99, 0xbd, 0xe6, 0x30, 0x3a, 0x2a, 0xd7, + 0xc5, 0xc1, 0x78, 0xe3, 0x1a, 0xb3, 0x09, 0x5e, 0x24, 0x5b, 0x80, 0x41, 0xb3, + 0x92, 0xfa, 0xe0, 0x37, 0xea, 0xa4, 0xae, 0x19, 0x09, 0x2c, 0xa7, 0xce, 0x82, + 0x49, 0xbe, 0x71, 0x9b, 0x52, 0xbd, 0xfd, 0xa7, 0x41, 0xf0, 0x74, 0xe0, 0x84, + 0xff, 0xa8, 0x6c, 0x15, 0xa3, 0xe5, 0xbe, 0x33, 0x92, 0x50, 0xf9, 0xca, 0x6b, + 0x7e, 0xc1, 0x6e, 0x66, 0x27, 0xb5, 0x74, 0x18, 0x90, 0x62, 0x07, 0xd5, 0xf8, + 0x42, 0x9d, 0x79, 0xe5, 0x38, 0x3d, 0x1b, 0x34, 0xc3, 0xa2, 0x79, 0xbf, 0x90, + 0x1b, 0x07, 0x45, 0xd0, 0x3b, 0x75, 0xd4, 0x61, 0xda, 0x61, 0x98, 0x0b, 0x88, + 0xdd, 0x1d, 0x04, 0xba, 0x89, 0xa6, 0x26, 0xcb, 0x21, 0x51, 0x92, 0x03, 0x30, + 0x2d, 0xf6, 0x02, 0x0e, 0x91, 0x38, 0xd3, 0x47, 0xbd, 0x12, 0x11, 0xbd, 0xce, + 0xac, 0x7d, 0x28, 0xc8, 0xa9, 0x6c, 0x58, 0x54, 0x06, 0xd4, 0xdc, 0xdf, 0x92, + 0x3f, 0x1a, 0x30, 0x79, 0xe5, 0x98, 0xcd, 0xae, 0x47, 0x7f, 0xa7, 0x98, 0x83, + 0xe9, 0x30, 0xc8, 0x93, 0x11, 0xe5, 0xbe, 0xe4, 0x76, 0x3c, 0xc8, 0xe5, 0x6b, + 0xab, 0xd3, 0x7f, 0xf4, 0x44, 0x92, 0x23, 0x8c, 0x60, 0xa9, 0x97, 0x8e, 0x2c, + 0x65, 0xbe, 0x11, 0x3b, 0xea, 0x2d, 0xfe, 0x80, 0x51, 0xe6, 0x21, 0x5b, 0xf4, + 0xdc, 0x89, 0xf9, 0x6c, 0x5a, 0xd1, 0x4b, 0xdc, 0x39, 0x3c, 0x65, 0x98, 0xe6, + 0xf6, 0xe1, 0x57, 0x43, 0x14, 0x33, 0x93, 0x75, 0x8d, 0xf3, 0x35, 0xc6, 0x92, + 0x13, 0x5d, 0xaa, 0xf4, 0xa2, 0xd0, 0xac, 0x5f, 0x23, 0xbb, 0xcc, 0x17, 0x5e, + 0xf5, 0xce, 0x7a, 0x3b, 0x62, 0xc9, 0x3e, 0x37, 0xa9, 0x77, 0x41, 0xa8, 0xc5, + 0xfd, 0xf8, 0x34, 0x50, 0x9e, 0xc5, 0xd2, 0x9d, 0x02, 0x5b, 0xfa, 0x8b, 0x5e, + 0x95, 0x32, 0xb7, 0x5d, 0xb3, 0x2a, 0x6a, 0xe7, 0xda, 0xce, 0x87, 0x67, 0x0d, + 0x84, 0xfa, 0xab, 0xdf, 0xee, 0x7d, 0x62, 0xf1, 0x19, 0xd2, 0xfc, 0x42, 0xc9, + 0xd4, 0x5c, 0x80, 0x70, 0x16, 0x18, 0x6e, 0xdb, 0xfa, 0xb9, 0x34, 0xf2, 0x54, + 0x56, 0x6b, 0xf6, 0x50, 0xd4, 0x77, 0x62, 0x11, 0xf4, 0xac, 0x2f, 0x6e, 0x06, + 0x0e, 0xd2, 0xba, 0xbf, 0x36, 0x79, 0xde, 0xbf, 0xd4, 0x00, 0x31, 0xe4, 0x3e, + 0xca, 0xfe, 0x1b, 0xbd, 0xd6, 0x7f, 0x15, 0xe7, 0xe4, 0x04, 0xfb, 0xfe, 0xad, + 0x74, 0x4f, 0xf1, 0x27, 0xa3, 0xde, 0xfe, 0x0d, 0x1c, 0xb4, 0x02, 0xe4, 0x4c, + 0x6a, 0x0e, 0x08, 0xc0, 0x6d, 0x05, 0x00, 0x17, 0x45, 0x94, 0xbf, 0xc3, 0xec, + 0xaf, 0x0b, 0x99, 0x7f, 0xf1, 0xbb, 0x0d, 0x3e, 0x0d, 0x5a, 0x68, 0x8d, 0x70, + 0xe4, 0x64, 0xd0, 0x55, 0xad, 0x82, 0x0f, 0x4c, 0x75, 0x6b, 0xbe, 0x08, 0x3e, + 0x83, 0x85, 0x40, 0xd5, 0xdf, 0x91, 0x9c, 0xba, 0xee, 0x1b, 0xd2, 0xe6, 0xa7, + 0xa1, 0xad, 0x83, 0x59, 0xf5, 0x27, 0x21, 0x8c, 0xf4, 0x8a, 0xff, 0x5c, 0xdd, + 0xe7, 0xf5, 0x7f, 0xa7, 0x15, 0x03, 0x3e, 0x92, 0xff, 0xcf, 0xc9, 0x33, 0x58, + 0xd2, 0xe1, 0x57, 0xad, 0x87, 0xe6, 0xd6, 0x73, 0xc5, 0x8e, 0x38, 0x1c, 0xdc, + 0x3b, 0x64, 0x51, 0xc7, 0xb6, 0x07, 0x06, 0x7f, 0xb3, 0x97, 0xcf, 0xad, 0x6a, + 0x3f, 0x2b, 0xe5, 0x54, 0x96, 0x14, 0x7e, 0xd9, 0xa1, 0x35, 0x8f, 0xaa, 0x99, + 0x2d, 0x0c, 0xac, 0xc6, 0x6d, 0x26, 0xd8, 0xbd, 0xd6, 0xfb, 0x4b, 0x68, 0x71, + 0x9b, 0x7d, 0x62, 0xc2, 0xf1, 0x88, 0xca, 0x0f, 0x49, 0x06, 0x96, 0x29, 0xc6, + 0x94, 0x29, 0xc3, 0x23, 0x61, 0x3c, 0x24, 0xe9, 0x89, 0x0c, 0x35, 0x74, 0x79, + 0x7e, 0x6a, 0x44, 0x71, 0xf8, 0x13, 0xa5, 0xf9, 0x98, 0x21, 0x8d, 0x73, 0x62, + 0x1f, 0x56, 0x55, 0x9b, 0xf5, 0x51, 0x02, 0x8f, 0x99, 0xfd, 0xb9, 0x78, 0xfd, + 0xa1, 0x90, 0x46, 0x63, 0x60, 0x70, 0x63, 0x72, 0x39, 0x7e, 0xc7, 0xc0, 0x83, + 0x3a, 0x4e, 0x57, 0x4c, 0xfc, 0x00, 0x51, 0xdc, 0x0e, 0x4f, 0xb3, 0x12, 0x7b, + 0x19, 0x68, 0xb0, 0x74, 0xb7, 0xcf, 0x00, 0xe8, 0x22, 0x80, 0x13, 0xa2, 0xb9, + 0x85, 0x70, 0x75, 0xcc, 0xc0, 0x23, 0x62, 0xef, 0xf0, 0x54, 0x67, 0x7b, 0x16, + 0x19, 0x8b, 0x2e, 0x04, 0xb5, 0x55, 0xec, 0x51, 0xc8, 0x50, 0xe4, 0x00, 0x83, + 0x2c, 0x2f, 0x8d, 0xbb, 0x02, 0x50, 0x73, 0x40, 0x65, 0x25, 0xbc, 0x7a, 0x3f, + 0x62, 0x7b, 0x08, 0x00, 0x4a, 0xbb, 0x39, 0xd3, 0x88, 0x0c, 0x03, 0x00, + ], + txid: [ + 0x5a, 0x73, 0x0e, 0x30, 0x82, 0x6d, 0xe2, 0x89, 0x18, 0xe3, 0x32, 0x8f, 0xe7, + 0x9c, 0xc3, 0xec, 0xb8, 0x49, 0x82, 0xe4, 0x14, 0xae, 0xc9, 0xc3, 0x62, 0x58, + 0x40, 0x33, 0xf5, 0xe4, 0x2d, 0x4e, + ], + auth_digest: [ + 0xb0, 0xb1, 0x80, 0x0a, 0xde, 0xeb, 0xb1, 0xab, 0x97, 0x0e, 0x05, 0xf0, 0x67, + 0x2c, 0xd7, 0xd5, 0x15, 0x4f, 0xba, 0x31, 0x27, 0xd8, 0x6f, 0xf9, 0xc4, 0xc0, + 0x99, 0x4d, 0xf0, 0x74, 0x3e, 0x73, + ], + amounts: vec![], + zsf_deposit: 858206728993610, + script_pubkeys: vec![], + transparent_input: None, + sighash_shielded: [ + 0x5a, 0x73, 0x0e, 0x30, 0x82, 0x6d, 0xe2, 0x89, 0x18, 0xe3, 0x32, 0x8f, 0xe7, + 0x9c, 0xc3, 0xec, 0xb8, 0x49, 0x82, 0xe4, 0x14, 0xae, 0xc9, 0xc3, 0x62, 0x58, + 0x40, 0x33, 0xf5, 0xe4, 0x2d, 0x4e, + ], + sighash_all: None, + sighash_none: None, + sighash_single: None, + sighash_all_anyone: None, + sighash_none_anyone: None, + sighash_single_anyone: None, + }, + ] + } +} diff --git a/zcash_primitives/src/transaction/txid.rs b/zcash_primitives/src/transaction/txid.rs index 84941271c9..3263acf16d 100644 --- a/zcash_primitives/src/transaction/txid.rs +++ b/zcash_primitives/src/transaction/txid.rs @@ -23,7 +23,10 @@ use super::{ Authorization, Authorized, TransactionDigest, TransparentDigests, TxDigests, TxId, TxVersion, }; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "zsf")] +use super::components::amount::NonNegativeAmount; + +#[cfg(zcash_unstable = "tze")] use super::{ components::tze::{self, TzeIn, TzeOut}, TzeDigests, @@ -36,7 +39,7 @@ const ZCASH_TX_PERSONALIZATION_PREFIX: &[u8; 12] = b"ZcashTxHash_"; const ZCASH_HEADERS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdHeadersHash"; pub(crate) const ZCASH_TRANSPARENT_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdTranspaHash"; const ZCASH_SAPLING_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdSaplingHash"; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] const ZCASH_TZE_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdTZE____Hash"; // TxId transparent level 2 node personalization @@ -45,9 +48,11 @@ const ZCASH_SEQUENCE_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdSequencHash"; const ZCASH_OUTPUTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdOutputsHash"; // TxId tze level 2 node personalization -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "zsf")] +const ZCASH_ZSF_DEPOSIT_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxZsfDeposiHash"; +#[cfg(zcash_unstable = "tze")] const ZCASH_TZE_INPUTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdTZEIns_Hash"; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] const ZCASH_TZE_OUTPUTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdTZEOutsHash"; // TxId sapling level 2 node personalization @@ -63,7 +68,7 @@ const ZCASH_SAPLING_OUTPUTS_NONCOMPACT_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxId const ZCASH_AUTH_PERSONALIZATION_PREFIX: &[u8; 12] = b"ZTxAuthHash_"; const ZCASH_TRANSPARENT_SCRIPTS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxAuthTransHash"; const ZCASH_SAPLING_SIGS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxAuthSapliHash"; -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] const ZCASH_TZE_WITNESSES_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxAuthTZE__Hash"; fn hasher(personal: &[u8; 16]) -> State { @@ -112,7 +117,7 @@ pub(crate) fn transparent_outputs_hash>(vout: &[T]) -> Blake2bH /// witness data, to a hash personalized by ZCASH_TZE_INPUTS_HASH_PERSONALIZATION. /// In the case that no inputs are provided, this produces a default /// hash from just the personalization string. -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] pub(crate) fn hash_tze_inputs(tze_inputs: &[TzeIn]) -> Blake2bHash { let mut h = hasher(ZCASH_TZE_INPUTS_HASH_PERSONALIZATION); for tzein in tze_inputs { @@ -125,7 +130,7 @@ pub(crate) fn hash_tze_inputs(tze_inputs: &[TzeIn]) -> Blake2bHash { /// to a hash personalized by ZCASH_TZE_OUTPUTS_HASH_PERSONALIZATION. /// In the case that no outputs are provided, this produces a default /// hash from just the personalization string. -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] pub(crate) fn hash_tze_outputs(tze_outputs: &[TzeOut]) -> Blake2bHash { let mut h = hasher(ZCASH_TZE_OUTPUTS_HASH_PERSONALIZATION); for tzeout in tze_outputs { @@ -210,7 +215,7 @@ fn transparent_digests( } } -#[cfg(zcash_unstable = "zfuture")] +#[cfg(zcash_unstable = "tze")] fn tze_digests(bundle: &tze::Bundle) -> TzeDigests { // The txid commits to the hash for all outputs. TzeDigests { @@ -276,15 +281,13 @@ fn hash_sapling_txid_empty() -> Blake2bHash { hasher(ZCASH_SAPLING_HASH_PERSONALIZATION).finalize() } -#[cfg(zcash_unstable = "zfuture")] -fn hash_tze_txid_data(tze_digests: Option<&TzeDigests>) -> Blake2bHash { +#[cfg(zcash_unstable = "tze")] +fn hash_tze_txid_data(tze_digests: &TzeDigests) -> Blake2bHash { let mut h = hasher(ZCASH_TZE_HASH_PERSONALIZATION); - if let Some(d) = tze_digests { - h.write_all(d.inputs_digest.as_bytes()).unwrap(); - h.write_all(d.outputs_digest.as_bytes()).unwrap(); - if let Some(s) = d.per_input_digest { - h.write_all(s.as_bytes()).unwrap(); - } + h.write_all(tze_digests.inputs_digest.as_bytes()).unwrap(); + h.write_all(tze_digests.outputs_digest.as_bytes()).unwrap(); + if let Some(s) = tze_digests.per_input_digest { + h.write_all(s.as_bytes()).unwrap(); } h.finalize() } @@ -304,7 +307,10 @@ impl TransactionDigest for TxIdDigester { type SaplingDigest = Option; type OrchardDigest = Option; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + type ZsfDepositDigest = Option; + + #[cfg(zcash_unstable = "tze")] type TzeDigest = Option>; type Digest = TxDigests; @@ -340,7 +346,19 @@ impl TransactionDigest for TxIdDigester { orchard_bundle.map(|b| b.commitment().0) } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + fn digest_zsf(&self, zsf_deposit: Option<&NonNegativeAmount>) -> Self::ZsfDepositDigest { + let mut h = hasher(ZCASH_ZSF_DEPOSIT_HASH_PERSONALIZATION); + + if let Some(&zsf_deposit) = zsf_deposit { + h.write_u64::(zsf_deposit.into()).unwrap(); + Some(h.finalize()) + } else { + None + } + } + + #[cfg(zcash_unstable = "tze")] fn digest_tze(&self, tze_bundle: Option<&tze::Bundle>) -> Self::TzeDigest { tze_bundle.map(tze_digests) } @@ -351,14 +369,17 @@ impl TransactionDigest for TxIdDigester { transparent_digests: Self::TransparentDigest, sapling_digest: Self::SaplingDigest, orchard_digest: Self::OrchardDigest, - #[cfg(zcash_unstable = "zfuture")] tze_digests: Self::TzeDigest, + #[cfg(zcash_unstable = "zsf")] zsf_deposit_digest: Self::ZsfDepositDigest, + #[cfg(zcash_unstable = "tze")] tze_digests: Self::TzeDigest, ) -> Self::Digest { TxDigests { header_digest, transparent_digests, sapling_digest, orchard_digest, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + zsf_deposit_digest, + #[cfg(zcash_unstable = "tze")] tze_digests, } } @@ -371,7 +392,8 @@ pub(crate) fn to_hash( transparent_digest: Blake2bHash, sapling_digest: Option, orchard_digest: Option, - #[cfg(zcash_unstable = "zfuture")] tze_digests: Option<&TzeDigests>, + #[cfg(zcash_unstable = "zsf")] zsf_deposit: Option, + #[cfg(zcash_unstable = "tze")] tze_digests: Option<&TzeDigests>, ) -> Blake2bHash { let mut personal = [0; 16]; personal[..12].copy_from_slice(ZCASH_TX_PERSONALIZATION_PREFIX); @@ -395,8 +417,13 @@ pub(crate) fn to_hash( ) .unwrap(); - #[cfg(zcash_unstable = "zfuture")] - if _txversion.has_tze() { + #[cfg(zcash_unstable = "zsf")] + if let Some(zsf_deposit) = zsf_deposit { + h.write_all(zsf_deposit.as_bytes()).unwrap(); + } + + #[cfg(zcash_unstable = "tze")] + if let Some(tze_digests) = tze_digests { h.write_all(hash_tze_txid_data(tze_digests).as_bytes()) .unwrap(); } @@ -416,7 +443,9 @@ pub fn to_txid( hash_transparent_txid_data(digests.transparent_digests.as_ref()), digests.sapling_digest, digests.orchard_digest, - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + digests.zsf_deposit_digest, + #[cfg(zcash_unstable = "tze")] digests.tze_digests.as_ref(), ); @@ -437,7 +466,10 @@ impl TransactionDigest for BlockTxCommitmentDigester { type SaplingDigest = Blake2bHash; type OrchardDigest = Blake2bHash; - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + type ZsfDepositDigest = Option; + + #[cfg(zcash_unstable = "tze")] type TzeDigest = Blake2bHash; type Digest = Blake2bHash; @@ -499,7 +531,17 @@ impl TransactionDigest for BlockTxCommitmentDigester { }) } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + fn digest_zsf(&self, zsf_deposit: Option<&NonNegativeAmount>) -> Self::ZsfDepositDigest { + let mut h = hasher(ZCASH_ZSF_DEPOSIT_HASH_PERSONALIZATION); + + zsf_deposit.map(|&zsf_deposit| { + h.write_u64::(zsf_deposit.into()).unwrap(); + h.finalize() + }) + } + + #[cfg(zcash_unstable = "tze")] fn digest_tze(&self, tze_bundle: Option<&tze::Bundle>) -> Blake2bHash { let mut h = hasher(ZCASH_TZE_WITNESSES_HASH_PERSONALIZATION); if let Some(bundle) = tze_bundle { @@ -516,7 +558,8 @@ impl TransactionDigest for BlockTxCommitmentDigester { transparent_digest: Self::TransparentDigest, sapling_digest: Self::SaplingDigest, orchard_digest: Self::OrchardDigest, - #[cfg(zcash_unstable = "zfuture")] tze_digest: Self::TzeDigest, + #[cfg(zcash_unstable = "zsf")] zsf_deposit_digest: Self::ZsfDepositDigest, + #[cfg(zcash_unstable = "tze")] tze_digest: Self::TzeDigest, ) -> Self::Digest { let digests = [transparent_digest, sapling_digest, orchard_digest]; @@ -531,7 +574,12 @@ impl TransactionDigest for BlockTxCommitmentDigester { h.write_all(digest.as_bytes()).unwrap(); } - #[cfg(zcash_unstable = "zfuture")] + #[cfg(zcash_unstable = "zsf")] + if let Some(zsf_deposit) = zsf_deposit_digest { + h.write_all(zsf_deposit.as_bytes()).unwrap(); + } + + #[cfg(zcash_unstable = "tze")] if TxVersion::suggested_for_branch(consensus_branch_id).has_tze() { h.write_all(tze_digest.as_bytes()).unwrap(); }