From 4d6e8ef7b44bffccbccda153b7a9f150f7719584 Mon Sep 17 00:00:00 2001 From: jbearer Date: Thu, 24 Oct 2024 23:21:17 +0000 Subject: [PATCH] deploy: ff01ee1f804e2e211f5ee17b7b374861220ac984 --- .../availability/struct.BlockQueryData.html | 24 +++++------ .../struct.BlockSummaryQueryData.html | 10 ++--- .../availability/struct.LeafQueryData.html | 8 ++-- .../availability/struct.PayloadQueryData.html | 12 +++--- .../struct.TransactionQueryData.html | 36 ++++++++--------- .../struct.TransactionSummaryQueryData.html | 8 ++-- .../struct.VidCommonQueryData.html | 10 ++--- .../sql/macro.include_migrations.html | 5 ++- .../data_source/sql/type.SqlDataSource.html | 2 +- .../storage/pruning/trait.PruneStorage.html | 2 +- .../storage/pruning/trait.PrunerConfig.html | 2 +- .../storage/sql/fn.default_migrations.html | 2 +- .../data_source/storage/sql/index.html | 2 +- .../storage/sql/macro.include_migrations.html | 5 ++- .../storage/sql/struct.Config.html | 40 +++++++++---------- .../storage/sql/struct.Pruner.html | 2 +- .../storage/sql/struct.SqlStorage.html | 14 +++---- .../storage/sql/testing/index.html | 2 +- .../struct.TestMerkleTreeMigration.html | 2 +- .../storage/sql/testing/struct.TmpDb.html | 2 +- .../trait.VersionedDataSource.html | 4 +- .../provider/struct.QueryServiceProvider.html | 8 ++-- .../fetching/provider/trait.Provider.html | 4 +- .../fetching/request/struct.LeafRequest.html | 4 +- .../request/struct.VidCommonRequest.html | 4 +- .../macro.include_migrations.html | 5 ++- .../status/trait.HasMetrics.html | 2 +- hotshot_query_service/struct.Leaf.html | 5 ++- .../types/trait.HeightIndexed.html | 2 +- search-index.js | 4 +- .../hotshot_query_service-desc-0-.js | 2 +- .../availability/query_data.rs.html | 12 +++++- .../data_source/fetching.rs.html | 2 +- .../data_source/sql.rs.html | 2 +- .../data_source/storage/sql.rs.html | 36 +++++++++++++---- .../fetching/provider/query_service.rs.html | 20 ++++++++-- .../data_source/storage/sql/struct.Config.js | 2 +- 37 files changed, 180 insertions(+), 128 deletions(-) diff --git a/hotshot_query_service/availability/struct.BlockQueryData.html b/hotshot_query_service/availability/struct.BlockQueryData.html index d0677427b..ffedc86cc 100644 --- a/hotshot_query_service/availability/struct.BlockQueryData.html +++ b/hotshot_query_service/availability/struct.BlockQueryData.html @@ -1,23 +1,23 @@ -BlockQueryData in hotshot_query_service::availability - Rust
pub struct BlockQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> BlockQueryData<Types>

source

pub fn new(header: Header<Types>, payload: Payload<Types>) -> Self
where - Payload<Types>: QueryablePayload<Types>,

source

pub async fn genesis( +BlockQueryData in hotshot_query_service::availability - Rust
pub struct BlockQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> BlockQueryData<Types>

source

pub fn new(header: Header<Types>, payload: Payload<Types>) -> Self
where + Payload<Types>: QueryablePayload<Types>,

source

pub async fn genesis( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, ) -> Self
where - Payload<Types>: QueryablePayload<Types>,

source

pub fn header(&self) -> &Header<Types>

source

pub fn metadata(&self) -> &Metadata<Types>

source

pub fn payload_hash(&self) -> VidCommitment

source

pub fn payload(&self) -> &Payload<Types>

source

pub fn hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn num_transactions(&self) -> u64

source§

impl<Types: NodeType> BlockQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source

pub fn transaction( + Payload<Types>: QueryablePayload<Types>,

source

pub fn header(&self) -> &Header<Types>

source

pub fn metadata(&self) -> &Metadata<Types>

source

pub fn payload_hash(&self) -> VidCommitment

source

pub fn payload(&self) -> &Payload<Types>

source

pub fn hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn num_transactions(&self) -> u64

source§

impl<Types: NodeType> BlockQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source

pub fn transaction( &self, ix: &TransactionIndex<Types>, -) -> Option<Transaction<Types>>

source

pub fn transaction_by_hash( +) -> Option<Transaction<Types>>

source

pub fn transaction_by_hash( &self, hash: Commitment<Transaction<Types>>, -) -> Option<TransactionIndex<Types>>

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source

pub fn enumerate( +) -> Option<TransactionIndex<Types>>

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source

pub fn enumerate( &self, -) -> impl '_ + Iterator<Item = (TransactionIndex<Types>, Transaction<Types>)>

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>

source§

fn clone(&self) -> BlockQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn from(value: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

source§

fn from(block: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
where +) -> impl '_ + Iterator<Item = (TransactionIndex<Types>, Transaction<Types>)>

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>

source§

fn clone(&self) -> BlockQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn from(value: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

source§

fn from(block: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

source§

fn eq(&self, other: &BlockQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for BlockQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

source§

fn eq(&self, other: &BlockQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for BlockQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: NodeType> TryFrom<BlockQueryData<Types>> for BlockDetail<Types>
where BlockQueryData<Types>: HeightIndexed, Payload<Types>: QueryablePayload<Types>, @@ -25,7 +25,7 @@ BalanceAmount<Types>: Into<MonetaryValue>,

source§

type Error = TimestampConversionError

The type returned in the event of a conversion error.
source§

fn try_from(value: BlockQueryData<Types>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<Types: NodeType> TryFrom<BlockQueryData<Types>> for BlockSummary<Types>
where BlockQueryData<Types>: HeightIndexed, Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,

source§

type Error = TimestampConversionError

The type returned in the event of a conversion error.
source§

fn try_from(value: BlockQueryData<Types>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockQueryData<Types>
where + Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,

source§

type Error = TimestampConversionError

The type returned in the event of a conversion error.
source§

fn try_from(value: BlockQueryData<Types>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockQueryData<Types>
where <Types as NodeType>::BlockHeader: Freeze, <Types as NodeType>::BlockPayload: Freeze,

§

impl<Types> RefUnwindSafe for BlockQueryData<Types>
where <Types as NodeType>::BlockHeader: RefUnwindSafe, diff --git a/hotshot_query_service/availability/struct.BlockSummaryQueryData.html b/hotshot_query_service/availability/struct.BlockSummaryQueryData.html index f725f8023..13a687f50 100644 --- a/hotshot_query_service/availability/struct.BlockSummaryQueryData.html +++ b/hotshot_query_service/availability/struct.BlockSummaryQueryData.html @@ -1,8 +1,8 @@ -BlockSummaryQueryData in hotshot_query_service::availability - Rust
pub struct BlockSummaryQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> BlockSummaryQueryData<Types>

source

pub fn header(&self) -> &Header<Types>

source

pub fn hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn num_transactions(&self) -> u64

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>

source§

fn clone(&self) -> BlockSummaryQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for BlockSummaryQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn from(value: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>

source§

fn eq(&self, other: &BlockSummaryQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for BlockSummaryQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockSummaryQueryData<Types>
where +BlockSummaryQueryData in hotshot_query_service::availability - Rust
pub struct BlockSummaryQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> BlockSummaryQueryData<Types>

source

pub fn header(&self) -> &Header<Types>

source

pub fn hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn num_transactions(&self) -> u64

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>

source§

fn clone(&self) -> BlockSummaryQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for BlockSummaryQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn from(value: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>

source§

fn eq(&self, other: &BlockSummaryQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for BlockSummaryQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockSummaryQueryData<Types>
where <Types as NodeType>::BlockHeader: Freeze,

§

impl<Types> RefUnwindSafe for BlockSummaryQueryData<Types>
where <Types as NodeType>::BlockHeader: RefUnwindSafe,

§

impl<Types> Send for BlockSummaryQueryData<Types>

§

impl<Types> Sync for BlockSummaryQueryData<Types>

§

impl<Types> Unpin for BlockSummaryQueryData<Types>
where <Types as NodeType>::BlockHeader: Unpin,

§

impl<Types> UnwindSafe for BlockSummaryQueryData<Types>
where diff --git a/hotshot_query_service/availability/struct.LeafQueryData.html b/hotshot_query_service/availability/struct.LeafQueryData.html index a74d87a20..0d15e7c45 100644 --- a/hotshot_query_service/availability/struct.LeafQueryData.html +++ b/hotshot_query_service/availability/struct.LeafQueryData.html @@ -1,16 +1,16 @@ -LeafQueryData in hotshot_query_service::availability - Rust
pub struct LeafQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> LeafQueryData<Types>

source

pub fn new( +LeafQueryData in hotshot_query_service::availability - Rust
pub struct LeafQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> LeafQueryData<Types>

source

pub fn new( leaf: Leaf<Types>, qc: QuorumCertificate<Types>, ) -> Result<Self, InconsistentLeafError<Types>>

Collect information about a Leaf.

Returns a new LeafQueryData object populated from leaf and qc.

§Errors

Fails with an InconsistentLeafError if qc does not reference leaf.

-
source

pub async fn genesis<HsVer: Versions>( +

source

pub async fn genesis<HsVer: Versions>( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, -) -> Self

source

pub fn leaf(&self) -> &Leaf<Types>

source

pub fn qc(&self) -> &QuorumCertificate<Types>

source

pub fn header(&self) -> &Header<Types>

source

pub fn hash(&self) -> LeafHash<Types>

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn payload_hash(&self) -> VidCommitment

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>

source§

fn clone(&self) -> LeafQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +) -> Self

source

pub fn leaf(&self) -> &Leaf<Types>

source

pub fn qc(&self) -> &QuorumCertificate<Types>

source

pub fn header(&self) -> &Header<Types>

source

pub fn hash(&self) -> LeafHash<Types>

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn payload_hash(&self) -> VidCommitment

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>

source§

fn clone(&self) -> LeafQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for LeafQueryData<Types>
where - Types: NodeType,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>

source§

fn eq(&self, other: &LeafQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, + Types: NodeType,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>

source§

fn eq(&self, other: &LeafQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for LeafQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for LeafQueryData<Types>
where <Types as NodeType>::View: Freeze, diff --git a/hotshot_query_service/availability/struct.PayloadQueryData.html b/hotshot_query_service/availability/struct.PayloadQueryData.html index 17bc7c29d..e709b3afe 100644 --- a/hotshot_query_service/availability/struct.PayloadQueryData.html +++ b/hotshot_query_service/availability/struct.PayloadQueryData.html @@ -1,13 +1,13 @@ -PayloadQueryData in hotshot_query_service::availability - Rust
pub struct PayloadQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> PayloadQueryData<Types>

source

pub async fn genesis( +PayloadQueryData in hotshot_query_service::availability - Rust
pub struct PayloadQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> PayloadQueryData<Types>

source

pub async fn genesis( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, ) -> Self
where - Payload<Types>: QueryablePayload<Types>,

source

pub fn hash(&self) -> VidCommitment

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn data(&self) -> &Payload<Types>

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>

source§

fn clone(&self) -> PayloadQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

source§

fn from(block: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source

pub fn hash(&self) -> VidCommitment

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn size(&self) -> u64

source

pub fn data(&self) -> &Payload<Types>

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>

source§

fn clone(&self) -> PayloadQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

source§

fn from(block: BlockQueryData<Types>) -> Self

Converts to this type from the input type.
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>

source§

fn eq(&self, other: &PayloadQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for PayloadQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for PayloadQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>

source§

fn eq(&self, other: &PayloadQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for PayloadQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for PayloadQueryData<Types>
where <Types as NodeType>::BlockPayload: Freeze,

§

impl<Types> RefUnwindSafe for PayloadQueryData<Types>
where <Types as NodeType>::BlockPayload: RefUnwindSafe,

§

impl<Types> Send for PayloadQueryData<Types>

§

impl<Types> Sync for PayloadQueryData<Types>

§

impl<Types> Unpin for PayloadQueryData<Types>
where <Types as NodeType>::BlockPayload: Unpin,

§

impl<Types> UnwindSafe for PayloadQueryData<Types>
where diff --git a/hotshot_query_service/availability/struct.TransactionQueryData.html b/hotshot_query_service/availability/struct.TransactionQueryData.html index 033f891ef..f9ea8a76c 100644 --- a/hotshot_query_service/availability/struct.TransactionQueryData.html +++ b/hotshot_query_service/availability/struct.TransactionQueryData.html @@ -1,21 +1,21 @@ -TransactionQueryData in hotshot_query_service::availability - Rust
pub struct TransactionQueryData<Types: NodeType>
where - Payload<Types>: QueryablePayload<Types>,
{ /* private fields */ }

Implementations§

source§

impl<Types: NodeType> TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source

pub fn transaction(&self) -> &Transaction<Types>

The underlying transaction data.

-
source

pub fn hash(&self) -> TransactionHash<Types>

The hash of this transaction.

-
source

pub fn index(&self) -> u64

The (0-based) position of this transaction within its block.

-
source

pub fn proof(&self) -> &TransactionInclusionProof<Types>

A proof of inclusion of this transaction in its block.

-
source

pub fn block_height(&self) -> u64

The height of the block containing this transaction.

-
source

pub fn block_hash(&self) -> BlockHash<Types>

The hash of the block containing this transaction.

-

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn clone(&self) -> TransactionQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn eq(&self, other: &TransactionQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
where - Payload<Types>: QueryablePayload<Types>,

source§

impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
where +TransactionQueryData in hotshot_query_service::availability - Rust
pub struct TransactionQueryData<Types: NodeType>
where + Payload<Types>: QueryablePayload<Types>,
{ /* private fields */ }

Implementations§

source§

impl<Types: NodeType> TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source

pub fn transaction(&self) -> &Transaction<Types>

The underlying transaction data.

+
source

pub fn hash(&self) -> TransactionHash<Types>

The hash of this transaction.

+
source

pub fn index(&self) -> u64

The (0-based) position of this transaction within its block.

+
source

pub fn proof(&self) -> &TransactionInclusionProof<Types>

A proof of inclusion of this transaction in its block.

+
source

pub fn block_height(&self) -> u64

The height of the block containing this transaction.

+
source

pub fn block_hash(&self) -> BlockHash<Types>

The hash of the block containing this transaction.

+

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn clone(&self) -> TransactionQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn eq(&self, other: &TransactionQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
where + Payload<Types>: QueryablePayload<Types>,

source§

impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
where Payload<Types>: QueryablePayload<Types>,

Auto Trait Implementations§

§

impl<Types> Freeze for TransactionQueryData<Types>
where <Types as NodeType>::BlockPayload: for<'de> Sized, <Types as NodeType>::Transaction: Freeze, diff --git a/hotshot_query_service/availability/struct.TransactionSummaryQueryData.html b/hotshot_query_service/availability/struct.TransactionSummaryQueryData.html index 8e344377a..a98e8a770 100644 --- a/hotshot_query_service/availability/struct.TransactionSummaryQueryData.html +++ b/hotshot_query_service/availability/struct.TransactionSummaryQueryData.html @@ -1,7 +1,7 @@ -TransactionSummaryQueryData in hotshot_query_service::availability - Rust
pub struct TransactionSummaryQueryData<Types: NodeType> { /* private fields */ }

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>

source§

fn clone(&self) -> TransactionSummaryQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for TransactionSummaryQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>

source§

fn eq(&self, other: &TransactionSummaryQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for TransactionSummaryQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for TransactionSummaryQueryData<Types>
where +TransactionSummaryQueryData in hotshot_query_service::availability - Rust
pub struct TransactionSummaryQueryData<Types: NodeType> { /* private fields */ }

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>

source§

fn clone(&self) -> TransactionSummaryQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for TransactionSummaryQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>

source§

fn eq(&self, other: &TransactionSummaryQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for TransactionSummaryQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for TransactionSummaryQueryData<Types>
where <Types as NodeType>::BlockHeader: Freeze, <Types as NodeType>::Transaction: Freeze,

§

impl<Types> RefUnwindSafe for TransactionSummaryQueryData<Types>
where <Types as NodeType>::BlockHeader: RefUnwindSafe, diff --git a/hotshot_query_service/availability/struct.VidCommonQueryData.html b/hotshot_query_service/availability/struct.VidCommonQueryData.html index e30ee78ba..be4e92716 100644 --- a/hotshot_query_service/availability/struct.VidCommonQueryData.html +++ b/hotshot_query_service/availability/struct.VidCommonQueryData.html @@ -1,12 +1,12 @@ -VidCommonQueryData in hotshot_query_service::availability - Rust
pub struct VidCommonQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> VidCommonQueryData<Types>

source

pub fn new(header: Header<Types>, common: VidCommon) -> Self

source

pub async fn genesis( +VidCommonQueryData in hotshot_query_service::availability - Rust
pub struct VidCommonQueryData<Types: NodeType> { /* private fields */ }

Implementations§

source§

impl<Types: NodeType> VidCommonQueryData<Types>

source

pub fn new(header: Header<Types>, common: VidCommon) -> Self

source

pub async fn genesis( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, -) -> Self

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn payload_hash(&self) -> VidCommitment

source

pub fn common(&self) -> &VidCommon

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>

source§

fn clone(&self) -> VidCommonQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for VidCommonQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +) -> Self

source

pub fn block_hash(&self) -> BlockHash<Types>

source

pub fn payload_hash(&self) -> VidCommitment

source

pub fn common(&self) -> &VidCommon

Trait Implementations§

source§

impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>

source§

fn clone(&self) -> VidCommonQueryData<Types>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, Types: NodeType> Deserialize<'de> for VidCommonQueryData<Types>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonQueryData<Types>
where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>

source§

fn eq(&self, other: &VidCommonQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for VidCommonQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for VidCommonQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for VidCommonQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for VidCommonQueryData<Types>

§

impl<Types> RefUnwindSafe for VidCommonQueryData<Types>

§

impl<Types> Send for VidCommonQueryData<Types>

§

impl<Types> Sync for VidCommonQueryData<Types>

§

impl<Types> Unpin for VidCommonQueryData<Types>

§

impl<Types> UnwindSafe for VidCommonQueryData<Types>

Blanket Implementations§

source§

impl<T> Any for T
where + Payload<Types>: QueryablePayload<Types>,

source§

fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

source§

impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

source§

fn height(&self) -> u64

source§

impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>

source§

fn eq(&self, other: &VidCommonQueryData<Types>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> Serialize for VidCommonQueryData<Types>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<Types: Eq + NodeType> Eq for VidCommonQueryData<Types>

source§

impl<Types: NodeType> StructuralPartialEq for VidCommonQueryData<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for VidCommonQueryData<Types>

§

impl<Types> RefUnwindSafe for VidCommonQueryData<Types>

§

impl<Types> Send for VidCommonQueryData<Types>

§

impl<Types> Sync for VidCommonQueryData<Types>

§

impl<Types> Unpin for VidCommonQueryData<Types>

§

impl<Types> UnwindSafe for VidCommonQueryData<Types>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/data_source/sql/macro.include_migrations.html b/hotshot_query_service/data_source/sql/macro.include_migrations.html index b64f9a77f..bd1d61b52 100644 --- a/hotshot_query_service/data_source/sql/macro.include_migrations.html +++ b/hotshot_query_service/data_source/sql/macro.include_migrations.html @@ -1,4 +1,4 @@ -include_migrations in hotshot_query_service::data_source::sql - Rust
macro_rules! include_migrations {
+include_migrations in hotshot_query_service::data_source::sql - Rust
macro_rules! include_migrations {
     ($dir:tt) => { ... };
 }
Expand description

Embed migrations from the given directory into the current binary.

The macro invocation include_migrations!(path) evaluates to an expression of type impl Iterator<Item = Migration>. Each migration must be a text file which is an immediate child of @@ -13,8 +13,9 @@ hotshot-query-service crate. The migrations are located in a directory called migrations at the root of the crate.

-
let migrations: Vec<Migration> =
+
let mut migrations: Vec<Migration> =
     include_migrations!("$CARGO_MANIFEST_DIR/migrations").collect();
+migrations.sort();
 assert_eq!(migrations[0].version(), 10);
 assert_eq!(migrations[0].name(), "init_schema");

Note that a similar macro is available from Refinery: diff --git a/hotshot_query_service/data_source/sql/type.SqlDataSource.html b/hotshot_query_service/data_source/sql/type.SqlDataSource.html index 1802f5eaa..f399e8fc2 100644 --- a/hotshot_query_service/data_source/sql/type.SqlDataSource.html +++ b/hotshot_query_service/data_source/sql/type.SqlDataSource.html @@ -65,7 +65,7 @@

§

Custom migrations can be inserted using Config::migrations. Each custom migration will be inserted into the overall sequence of migrations in order of version number. The migrations -provided by this crate only use version numbers which are multiples of 10, so the non-multiples +provided by this crate only use version numbers which are multiples of 100, so the non-multiples can be used to insert custom migrations between the default migrations. You can also replace a default migration completely by providing a custom migration with the same version number. This may be useful when an earlier custom migration has altered the schema in such a way that a later diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html index 15680cc6e..0ed26c8c5 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html @@ -24,5 +24,5 @@ ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>

where Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Implementors§

source§

impl PruneStorage for NoStorage

source§

impl PruneStorage for SqlStorage

source§

impl<Types: NodeType> PruneStorage for FileSystemStorage<Types>
where + 'life1: 'async_trait,

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html index f88690ea0..3a67837e9 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html @@ -2,5 +2,5 @@ // Provided methods fn set_pruning_config(&mut self, _cfg: PrunerCfg) { ... } fn get_pruning_config(&self) -> Option<PrunerCfg> { ... } -}

Provided Methods§

Implementors§

source§

impl PrunerConfig for NoStorage

source§

impl PrunerConfig for SqlStorage

source§

impl<Types: NodeType> PrunerConfig for FileSystemStorage<Types>
where +}

Provided Methods§

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html b/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html index 6b8548db2..a8b1b18fa 100644 --- a/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html +++ b/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html @@ -1,2 +1,2 @@ -default_migrations in hotshot_query_service::data_source::storage::sql - Rust
pub fn default_migrations() -> Vec<Migration>
Expand description

The migrations requied to build the default schema for this version of SqlStorage.

+default_migrations in hotshot_query_service::data_source::storage::sql - Rust
pub fn default_migrations() -> Vec<Migration>
Expand description

The migrations requied to build the default schema for this version of SqlStorage.

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/index.html b/hotshot_query_service/data_source/storage/sql/index.html index ee7ae8be6..e1813b0bf 100644 --- a/hotshot_query_service/data_source/storage/sql/index.html +++ b/hotshot_query_service/data_source/storage/sql/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source::storage::sql - Rust

Module hotshot_query_service::data_source::storage::sql

source ·

Re-exports§

  • pub extern crate sqlx;

Modules§

Macros§

Structs§

Connect to the database, setting options on the underlying FetchingDataSource using the fetching::Builder interface.

-
source§

impl Config<Postgres>

source

pub fn host(self, host: impl Into<String>) -> Self

Set the hostname of the database server.

+
source§

impl Config<Postgres>

source

pub fn host(self, host: impl Into<String>) -> Self

Set the hostname of the database server.

The default is localhost.

-
source

pub fn port(self, port: u16) -> Self

Set the port on which to connect to the database.

+
source

pub fn port(self, port: u16) -> Self

Set the port on which to connect to the database.

The default is 5432, the default Postgres port.

-
source

pub fn user(self, user: &str) -> Self

Set the DB user to connect as.

-
source

pub fn password(self, password: &str) -> Self

Set a password for connecting to the database.

-
source

pub fn database(self, database: &str) -> Self

Set the name of the database to connect to.

-
source

pub fn tls(self) -> Self

Use TLS for an encrypted connection to the database.

+
source

pub fn user(self, user: &str) -> Self

Set the DB user to connect as.

+
source

pub fn password(self, password: &str) -> Self

Set a password for connecting to the database.

+
source

pub fn database(self, database: &str) -> Self

Set the name of the database to connect to.

+
source

pub fn tls(self) -> Self

Use TLS for an encrypted connection to the database.

Note that an encrypted connection may be established even if this option is not set, as long as both the client and server support it. This option merely causes connection to fail if an encrypted stream cannot be established.

-
source§

impl<DB: Database> Config<DB>

source

pub fn schema(self, schema: impl Into<String>) -> Self

Set the name of the schema to use for queries.

+
source§

impl<DB: Database> Config<DB>

source

pub fn schema(self, schema: impl Into<String>) -> Self

Set the name of the schema to use for queries.

The default schema is named hotshot and is created via the default migrations.

-
source

pub fn reset_schema(self) -> Self

Reset the schema on connection.

+
source

pub fn reset_schema(self) -> Self

Reset the schema on connection.

When this Config is used to connect a SqlDataSource, if this option is set, the relevant schema will first be dropped and then recreated, yielding a completely @@ -36,36 +36,36 @@

This is a particularly useful capability for development and staging environments. Still, it must be used with extreme caution, as using this will irrevocably delete any data pertaining to the query service in the database.

-
source

pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self

Add custom migrations to run when connecting to the database.

-
source

pub fn no_migrations(self) -> Self

Skip all migrations when connecting to the database.

-
source

pub fn pruner_cfg(self, cfg: PrunerCfg) -> Result<Self, Error>

Enable pruning with a given configuration.

+
source

pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self

Add custom migrations to run when connecting to the database.

+
source

pub fn no_migrations(self) -> Self

Skip all migrations when connecting to the database.

+
source

pub fn pruner_cfg(self, cfg: PrunerCfg) -> Result<Self, Error>

Enable pruning with a given configuration.

If archive was previously specified, this will override it.

-
source

pub fn archive(self) -> Self

Disable pruning and reconstruct previously pruned data.

+
source

pub fn archive(self) -> Self

Disable pruning and reconstruct previously pruned data.

While running without pruning is the default behavior, the default will not try to reconstruct data that was pruned in a previous run where pruning was enabled. This option instructs the service to run without pruning and reconstruct all previously pruned data by fetching from peers.

If pruner_cfg was previously specified, this will override it.

-
source

pub fn idle_connection_timeout(self, timeout: Duration) -> Self

Set the maximum idle time of a connection.

+
source

pub fn idle_connection_timeout(self, timeout: Duration) -> Self

Set the maximum idle time of a connection.

Any connection which has been open and unused longer than this duration will be automatically closed to reduce load on the server.

-
source

pub fn connection_timeout(self, timeout: Duration) -> Self

Set the maximum lifetime of a connection.

+
source

pub fn connection_timeout(self, timeout: Duration) -> Self

Set the maximum lifetime of a connection.

Any connection which has been open longer than this duration will be automatically closed (and, if needed, replaced), even if it is otherwise healthy. It is good practice to refresh even healthy connections once in a while (e.g. daily) in case of resource leaks in the server implementation.

-
source

pub fn min_connections(self, min: u32) -> Self

Set the minimum number of connections to maintain at any time.

+
source

pub fn min_connections(self, min: u32) -> Self

Set the minimum number of connections to maintain at any time.

The data source will, to the best of its ability, maintain at least min open connections at all times. This can be used to reduce the latency hit of opening new connections when at least this many simultaneous connections are frequently needed.

-
source

pub fn max_connections(self, max: u32) -> Self

Set the maximum number of connections to maintain at any time.

+
source

pub fn max_connections(self, max: u32) -> Self

Set the maximum number of connections to maintain at any time.

Once max connections are in use simultaneously, further attempts to acquire a connection (or begin a transaction) will block until one of the existing connections is released.

-

Trait Implementations§

source§

impl<DB> Clone for Config<DB>
where +

Trait Implementations§

source§

impl<DB> Clone for Config<DB>
where DB: Database + Clone, - DB::Connection: Clone,

source§

fn clone(&self) -> Config<DB>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<DB> Debug for Config<DB>
where + DB::Connection: Clone,

source§

fn clone(&self) -> Config<DB>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<DB> Debug for Config<DB>
where DB: Database + Debug, - DB::Connection: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Config<Postgres>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<PgConnectOptions> for Config<Postgres>

source§

fn from(db_opt: PgConnectOptions) -> Self

Converts to this type from the input type.
source§

impl FromStr for Config<Postgres>

source§

type Err = <PgConnectOptions as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

§

impl<DB> Freeze for Config<DB>
where + DB::Connection: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Config<Postgres>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<PgConnectOptions> for Config<Postgres>

source§

fn from(db_opt: PgConnectOptions) -> Self

Converts to this type from the input type.
source§

impl FromStr for Config<Postgres>

source§

type Err = <PgConnectOptions as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

§

impl<DB> Freeze for Config<DB>
where <<DB as Database>::Connection as Connection>::Options: Freeze,

§

impl<DB> !RefUnwindSafe for Config<DB>

§

impl<DB> Send for Config<DB>

§

impl<DB> Sync for Config<DB>

§

impl<DB> Unpin for Config<DB>
where <<DB as Database>::Connection as Connection>::Options: Unpin,

§

impl<DB> !UnwindSafe for Config<DB>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( diff --git a/hotshot_query_service/data_source/storage/sql/struct.Pruner.html b/hotshot_query_service/data_source/storage/sql/struct.Pruner.html index c3efb32a4..6ce6a8b1e 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Pruner.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Pruner.html @@ -1,4 +1,4 @@ -Pruner in hotshot_query_service::data_source::storage::sql - Rust

Struct hotshot_query_service::data_source::storage::sql::Pruner

source ·
pub struct Pruner { /* private fields */ }

Trait Implementations§

source§

impl Debug for Pruner

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Pruner

source§

fn default() -> Pruner

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Pruner

§

impl RefUnwindSafe for Pruner

§

impl Send for Pruner

§

impl Sync for Pruner

§

impl Unpin for Pruner

§

impl UnwindSafe for Pruner

Blanket Implementations§

source§

impl<T> Any for T
where +Pruner in hotshot_query_service::data_source::storage::sql - Rust

Struct hotshot_query_service::data_source::storage::sql::Pruner

source ·
pub struct Pruner { /* private fields */ }

Trait Implementations§

source§

impl Debug for Pruner

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Pruner

source§

fn default() -> Pruner

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Pruner

§

impl RefUnwindSafe for Pruner

§

impl Send for Pruner

§

impl Sync for Pruner

§

impl Unpin for Pruner

§

impl UnwindSafe for Pruner

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html index 39cb7a9b8..a8dae24cc 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html +++ b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html @@ -1,6 +1,6 @@ -SqlStorage in hotshot_query_service::data_source::storage::sql - Rust
pub struct SqlStorage { /* private fields */ }
Expand description

Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.

-

Implementations§

source§

impl SqlStorage

source

pub async fn connect<DB: Database>(config: Config<DB>) -> Result<Self, Error>

Connect to a remote database.

-

Trait Implementations§

source§

impl Debug for SqlStorage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl HasMetrics for SqlStorage

source§

impl PruneStorage for SqlStorage

source§

fn prune<'life0, 'life1, 'async_trait>( +SqlStorage in hotshot_query_service::data_source::storage::sql - Rust
pub struct SqlStorage { /* private fields */ }
Expand description

Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.

+

Implementations§

source§

impl SqlStorage

source

pub async fn connect<DB: Database>(config: Config<DB>) -> Result<Self, Error>

Connect to a remote database.

+

Trait Implementations§

source§

impl Debug for SqlStorage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl HasMetrics for SqlStorage

source§

impl PruneStorage for SqlStorage

source§

fn prune<'life0, 'life1, 'async_trait>( &'life0 self, pruner: &'life1 mut Pruner, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
where @@ -10,15 +10,15 @@ This is because a vacuum operation may be necessary to reclaim more space. PostgreSQL already performs auto vacuuming, so we are not including it here as running a vacuum operation can be resource-intensive.

-

source§

type Pruner = Pruner

source§

fn get_disk_usage<'life0, 'async_trait>( +

source§

type Pruner = Pruner

source§

fn get_disk_usage<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl PrunerConfig for SqlStorage

source§

impl VersionedDataSource for SqlStorage

source§

type Transaction<'a> = Transaction<Write> + 'life0: 'async_trait,

source§

impl PrunerConfig for SqlStorage

source§

impl VersionedDataSource for SqlStorage

source§

type Transaction<'a> = Transaction<Write> where - Self: 'a

A transaction which can read and modify the data source.
source§

type ReadOnly<'a> = Transaction<Read> + Self: 'a

A transaction which can read and modify the data source.
source§

type ReadOnly<'a> = Transaction<Read> where - Self: 'a

source§

async fn write(&self) -> Result<Transaction<Write>>

Start an atomic transaction on the data source.
source§

async fn read(&self) -> Result<Transaction<Read>>

Start a read-only transaction on the data source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + Self: 'a

source§

async fn write(&self) -> Result<Transaction<Write>>

Start an atomic transaction on the data source.
source§

async fn read(&self) -> Result<Transaction<Read>>

Start a read-only transaction on the data source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/data_source/storage/sql/testing/index.html b/hotshot_query_service/data_source/storage/sql/testing/index.html index b7d90b01e..400a1dc5e 100644 --- a/hotshot_query_service/data_source/storage/sql/testing/index.html +++ b/hotshot_query_service/data_source/storage/sql/testing/index.html @@ -1 +1 @@ -hotshot_query_service::data_source::storage::sql::testing - Rust
\ No newline at end of file +hotshot_query_service::data_source::storage::sql::testing - Rust
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/testing/struct.TestMerkleTreeMigration.html b/hotshot_query_service/data_source/storage/sql/testing/struct.TestMerkleTreeMigration.html index cd944d612..134a89ab2 100644 --- a/hotshot_query_service/data_source/storage/sql/testing/struct.TestMerkleTreeMigration.html +++ b/hotshot_query_service/data_source/storage/sql/testing/struct.TestMerkleTreeMigration.html @@ -1,4 +1,4 @@ -TestMerkleTreeMigration in hotshot_query_service::data_source::storage::sql::testing - Rust
pub struct TestMerkleTreeMigration;

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +TestMerkleTreeMigration in hotshot_query_service::data_source::storage::sql::testing - Rust
pub struct TestMerkleTreeMigration;

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html index e48f0d5a8..b73795f89 100644 --- a/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html +++ b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html @@ -1,4 +1,4 @@ -TmpDb in hotshot_query_service::data_source::storage::sql::testing - Rust

Struct hotshot_query_service::data_source::storage::sql::testing::TmpDb

source ·
pub struct TmpDb { /* private fields */ }

Implementations§

source§

impl TmpDb

source

pub async fn init() -> Self

source

pub async fn persistent() -> Self

source

pub fn host(&self) -> String

source

pub fn port(&self) -> u16

source

pub fn config(&self) -> Config<Postgres>

source

pub fn stop(&mut self)

source

pub async fn start(&mut self)

Trait Implementations§

source§

impl Debug for TmpDb

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TmpDb

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl Freeze for TmpDb

§

impl RefUnwindSafe for TmpDb

§

impl Send for TmpDb

§

impl Sync for TmpDb

§

impl Unpin for TmpDb

§

impl UnwindSafe for TmpDb

Blanket Implementations§

source§

impl<T> Any for T
where +TmpDb in hotshot_query_service::data_source::storage::sql::testing - Rust

Struct hotshot_query_service::data_source::storage::sql::testing::TmpDb

source ·
pub struct TmpDb { /* private fields */ }

Implementations§

source§

impl TmpDb

source

pub async fn init() -> Self

source

pub async fn persistent() -> Self

source

pub fn host(&self) -> String

source

pub fn port(&self) -> u16

source

pub fn config(&self) -> Config<Postgres>

source

pub fn stop(&mut self)

source

pub async fn start(&mut self)

Trait Implementations§

source§

impl Debug for TmpDb

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TmpDb

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl Freeze for TmpDb

§

impl RefUnwindSafe for TmpDb

§

impl Send for TmpDb

§

impl Sync for TmpDb

§

impl Unpin for TmpDb

§

impl UnwindSafe for TmpDb

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/data_source/trait.VersionedDataSource.html b/hotshot_query_service/data_source/trait.VersionedDataSource.html index fc0de8099..6c589bb4c 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -41,9 +41,9 @@ where Self: 'a

source§

type ReadOnly<'a> = Transaction<'a> where - Self: 'a

source§

impl VersionedDataSource for SqlStorage

source§

type Transaction<'a> = Transaction<Write> + Self: 'a

source§

impl VersionedDataSource for SqlStorage

source§

type Transaction<'a> = Transaction<Write> where - Self: 'a

source§

type ReadOnly<'a> = Transaction<Read> + Self: 'a

source§

type ReadOnly<'a> = Transaction<Read> where Self: 'a

source§

impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>
where D: VersionedDataSource + Send, diff --git a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html index 44a5395b4..eeea5b60d 100644 --- a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html +++ b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html @@ -1,8 +1,8 @@ QueryServiceProvider in hotshot_query_service::fetching::provider - Rust
pub struct QueryServiceProvider<Ver: StaticVersionType> { /* private fields */ }
Expand description

Data availability provider backed by another instance of this query service.

This fetcher implements the Provider interface by querying the REST API provided by another instance of this query service to try and retrieve missing objects.

-

Implementations§

source§

impl<Ver: StaticVersionType> QueryServiceProvider<Ver>

source

pub fn new(url: Url, _: Ver) -> Self

Trait Implementations§

source§

impl<Ver: Clone + StaticVersionType> Clone for QueryServiceProvider<Ver>

source§

fn clone(&self) -> QueryServiceProvider<Ver>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Ver: Debug + StaticVersionType> Debug for QueryServiceProvider<Ver>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where - Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( +

Implementations§

source§

impl<Ver: StaticVersionType> QueryServiceProvider<Ver>

source

pub fn new(url: Url, _: Ver) -> Self

Trait Implementations§

source§

impl<Ver: Clone + StaticVersionType> Clone for QueryServiceProvider<Ver>

source§

fn clone(&self) -> QueryServiceProvider<Ver>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Ver: Debug + StaticVersionType> Debug for QueryServiceProvider<Ver>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( &'life0 self, req: LeafRequest, ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
where @@ -13,8 +13,8 @@ req: PayloadRequest, ) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where - Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + 'life0: 'async_trait,

Fetch a resource.

source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( &'life0 self, req: VidCommonRequest, ) -> Pin<Box<dyn Future<Output = Option<VidCommon>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/fetching/provider/trait.Provider.html b/hotshot_query_service/fetching/provider/trait.Provider.html index b893d510c..7903a0f9d 100644 --- a/hotshot_query_service/fetching/provider/trait.Provider.html +++ b/hotshot_query_service/fetching/provider/trait.Provider.html @@ -28,7 +28,7 @@ Types: NodeType,

source§

impl<Types, P, T> Provider<Types, T> for TestProvider<P>
where Types: NodeType, T: Request<Types> + 'static, - P: Provider<Types, T> + Sync,

source§

impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching

source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where + P: Provider<Types, T> + Sync,

source§

impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching

source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where Types: NodeType,

source§

impl<Types, Ver: StaticVersionType> Provider<Types, PayloadRequest> for QueryServiceProvider<Ver>
where - Types: NodeType,

source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where + Types: NodeType,

source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where Types: NodeType,

\ No newline at end of file diff --git a/hotshot_query_service/fetching/request/struct.LeafRequest.html b/hotshot_query_service/fetching/request/struct.LeafRequest.html index f52d53f18..bde6bbc2d 100644 --- a/hotshot_query_service/fetching/request/struct.LeafRequest.html +++ b/hotshot_query_service/fetching/request/struct.LeafRequest.html @@ -8,8 +8,8 @@ req: LeafRequest, ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Fetch a resource.

source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where - Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types, Ver: StaticVersionType> Provider<Types, LeafRequest> for QueryServiceProvider<Ver>
where + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( &'life0 self, req: LeafRequest, ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/fetching/request/struct.VidCommonRequest.html b/hotshot_query_service/fetching/request/struct.VidCommonRequest.html index 670277f86..475f4c703 100644 --- a/hotshot_query_service/fetching/request/struct.VidCommonRequest.html +++ b/hotshot_query_service/fetching/request/struct.VidCommonRequest.html @@ -8,8 +8,8 @@ req: VidCommonRequest, ) -> Pin<Box<dyn Future<Output = Option<VidCommon>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where - Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types, Ver: StaticVersionType> Provider<Types, VidCommonRequest> for QueryServiceProvider<Ver>
where + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( &'life0 self, req: VidCommonRequest, ) -> Pin<Box<dyn Future<Output = Option<VidCommon>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/macro.include_migrations.html b/hotshot_query_service/macro.include_migrations.html index fa3dc5b5b..6b5d7d16a 100644 --- a/hotshot_query_service/macro.include_migrations.html +++ b/hotshot_query_service/macro.include_migrations.html @@ -1,4 +1,4 @@ -include_migrations in hotshot_query_service - Rust

Macro hotshot_query_service::include_migrations

source ·
macro_rules! include_migrations {
+include_migrations in hotshot_query_service - Rust

Macro hotshot_query_service::include_migrations

source ·
macro_rules! include_migrations {
     ($dir:tt) => { ... };
 }
Expand description

Embed migrations from the given directory into the current binary.

The macro invocation include_migrations!(path) evaluates to an expression of type impl Iterator<Item = Migration>. Each migration must be a text file which is an immediate child of @@ -13,8 +13,9 @@ hotshot-query-service crate. The migrations are located in a directory called migrations at the root of the crate.

-
let migrations: Vec<Migration> =
+
let mut migrations: Vec<Migration> =
     include_migrations!("$CARGO_MANIFEST_DIR/migrations").collect();
+migrations.sort();
 assert_eq!(migrations[0].version(), 10);
 assert_eq!(migrations[0].name(), "init_schema");

Note that a similar macro is available from Refinery: diff --git a/hotshot_query_service/status/trait.HasMetrics.html b/hotshot_query_service/status/trait.HasMetrics.html index f10599edd..56293d79b 100644 --- a/hotshot_query_service/status/trait.HasMetrics.html +++ b/hotshot_query_service/status/trait.HasMetrics.html @@ -1,7 +1,7 @@ HasMetrics in hotshot_query_service::status - Rust

Trait hotshot_query_service::status::HasMetrics

source ·
pub trait HasMetrics {
     // Required method
     fn metrics(&self) -> &PrometheusMetrics;
-}

Required Methods§

Implementors§

Required Methods§

Implementors§

source§

impl HasMetrics for DataSource

source§

impl HasMetrics for NoStorage

source§

impl HasMetrics for SqlStorage

source§

impl HasMetrics for MetricsDataSource

source§

impl<D, U> HasMetrics for ExtensibleDataSource<D, U>
where D: HasMetrics,

source§

impl<Types> HasMetrics for FileSystemStorage<Types>
where Types: NodeType, Payload<Types>: QueryablePayload<Types>,

source§

impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
where diff --git a/hotshot_query_service/struct.Leaf.html b/hotshot_query_service/struct.Leaf.html index 4515f13a7..462ff4d7d 100644 --- a/hotshot_query_service/struct.Leaf.html +++ b/hotshot_query_service/struct.Leaf.html @@ -1,4 +1,4 @@ -Leaf in hotshot_query_service - Rust

Struct hotshot_query_service::Leaf

pub struct Leaf<TYPES>
where +Leaf in hotshot_query_service - Rust

Struct hotshot_query_service::Leaf

pub struct Leaf<TYPES>
where TYPES: NodeType,
{ /* private fields */ }
Expand description

This is the consensus-internal analogous concept to a block, and it contains the block proper, as well as the hash of its parent Leaf. NOTE: State is constrained to implementing BlockContents, is TypeMap::BlockPayload

@@ -37,6 +37,9 @@
§Panics
§Errors

Fails if the payload commitment doesn’t match self.block_header.payload_commitment() or if the transactions are of invalid length

+

pub fn unfill_block_payload( + &mut self, +) -> Option<<TYPES as NodeType>::BlockPayload>

Take the block payload from the leaf and return it if it is present

pub fn fill_block_payload_unchecked( &mut self, block_payload: <TYPES as NodeType>::BlockPayload, diff --git a/hotshot_query_service/types/trait.HeightIndexed.html b/hotshot_query_service/types/trait.HeightIndexed.html index 7901dce32..22c8b6b55 100644 --- a/hotshot_query_service/types/trait.HeightIndexed.html +++ b/hotshot_query_service/types/trait.HeightIndexed.html @@ -2,4 +2,4 @@ // Required method fn height(&self) -> u64; }

Expand description

Types which have a notion of “height” within a chain.

-

Required Methods§

source

fn height(&self) -> u64

Implementors§

source§

impl HeightIndexed for MockHeader

source§

impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

\ No newline at end of file +

Required Methods§

source

fn height(&self) -> u64

Implementors§

source§

impl HeightIndexed for MockHeader

source§

impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

source§

impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

\ No newline at end of file diff --git a/search-index.js b/search-index.js index 790f19fa2..961efcbb7 100644 --- a/search-index.js +++ b/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["hotshot_query_service",{"t":"FPPPGPFPIFPIPFPPFPFIGIKIPIIIINNNNNNNNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNCOCCONNNNNNNNNNONHNNNNNCNNOCCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNCNNNNNNNNNNOOOOOOOOKIGFRFPFGGPFPFPFPPRFPFRIGFRPPFPFRPKKPPFIIIIRFFKFRNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMMMMMMNNNNNNNNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNOMNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNONNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOEFEEFREKRKKNNNNCNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMNNNMNCCCNNNNNNNNNMNNNNMNHHKFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIENNNNNNNNNHHHHHHHHHIIFFFIENNNNNNQNCEHKKEKKEKEMMCMMMMMMMMMMMMMMMMMMMCMCCMMFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNGPPPPPPGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKRFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRFRKRIFKKFTKFFIIFRFRFFRFRKRTRRFNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNHNNNNNNNNNNNNNNDNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIRPFFGIPFFFPPPGFGPPPKKFFFKFPPPFPGPPGPFPGPGPGPGPFPPPPPFPPPPPPFRRPIRPPPPPPPFFPPPFGPPFFGIPFFFGPPPPPPPIRPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOMMOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMOOOONNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOMOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNCCMMNNNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPRPRRGPRKKKFPPGRKNNONNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNMMNNNMNNNNMMNNNNNNNNNNNMNMNNNNNMNNNNNNNNNNNNOOOOFFFFFFGPPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONMNNNNNNNNNNOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGKPFPKKNONNNNMNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNOOFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHKIFISRKNNMMNNNNNNNNNMNNNNNNNNMNNNNNNNNNNIIIIIIFIIIIFFNNNOONNNNNNONNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNONNNONONNNONNONNNNONNNNNNNNNNOOONNNKM","n":["ApiState","Availability","Custom","Err","Error","","ErrorSnafu","Explorer","Header","Leaf","MerklizedState","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","","","","","","","as_error","","as_error_source","","","","availability","","backtrace","","block_header","block_header_mut","block_payload","borrow","","","","","","","","borrow_mut","","","","","","","","build","","","catch_all","cause","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","commit","","commitment","","create_random_transaction","data_source","default","deref","","","","","","","","","deref_mut","","","","","","","","description","","deserialize","","","","","","","","","","","drop","","","","","","","","eq","equivalent","","","","explorer","extends_upgrade","fail","","","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_quorum_proposal","from_socketlike","genesis","get_hash","hash","header","","","height","in_current_span","","include_migrations","init","","","","","","","","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","","","","","","","","into_error","","","justify_qc","layout_raw","","","","","","","","load","","merklized_state","message","metrics","node","","parent_commitment","payload_commitment","pointer_metadata","","","","","","","","port","read","run_standalone_service","serialize","","","source","","status","","","","task","testing","to_owned","","","","","","","to_string","","","try_from","","","","","","","","try_into","","","","","","","","try_resolve","","type_id","","","","","","","","types","upgrade_certificate","view_number","vzip","","","","","","","","message","source","","","","","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonQueryData","VidCommonRange","__clone_box","","","","","","","","","","","","","","","","","api_path","as_error","","as_error_source","","","","backtrace","","block_hash","","","","block_height","borrow","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","build","","","","","by_hash","","cause","","clone","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","cmp","","common","compare","","context","data","default","define_api","deref","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","description","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","enumerate","","","eq","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","extensions","fail","","","","","fetch_timeout","fmt","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","","","genesis","","","","get_block","get_block_range","get_hash","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","hash","","","","","","","header","","","","","","","height","","","","","","in_current_span","","index","","init","","","","","","","","","","","","","","","","","","","insert_block","insert_leaf","insert_vid","internal","into","","","","","","","","","","","","","","","","","","","into_error","","","","","","into_future","is_empty","","","iter","layout_raw","","","","","","","","","","","","","","","","","","","leaf","","len","","map","message","metadata","new","","","nth","","nth_transaction","","nth_transaction_with_proof","","num_transactions","","partial_cmp","","payload","payload_hash","","","pointer_metadata","","","","","","","","","","","","","","","","","","","proof","","","qc","qc_leaf","resolve","resource","","","serialize","","","","","","","","size","","","source","","status","","subscribe_blocks","","subscribe_leaves","","subscribe_payloads","","subscribe_vid_common","","timestamp","to_owned","","","","","","","","","","","","","","","","","to_string","","","","transaction","","","","transaction_by_hash","","","transaction_by_hash_with_proof","","transaction_with_proof","try_from","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","try_resolve","type_id","","","","","","","","","","","","","","","","","","","vzip","","","","","","","","","","","","","","","","","","","with_context","with_timeout","height","index","message","resource","","","source","status","AvailabilityProvider","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","ReadOnly","SqlDataSource","Transaction","","UpdateDataSource","VersionedDataSource","__clone_box","","as_mut","as_ref","availability_tests","block_height","","","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","commit","connect","","count_transactions","create","","default","deref","","deref_mut","","deserialize","","drop","","fetching","fmt","","from","","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","handle_event","","init","","inner","inner_mut","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","layout_raw","","metrics","","new","node_tests","payload_size","persistence_tests","pointer_metadata","","populate_metrics","","read","","reset","","revert","set_last_state_height","sql","status_tests","storage","sync_status","to_owned","","try_from","","try_into","","type_id","","update","","vid_share","vzip","","write","","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","Transaction","__clone_box","","as_mut","as_ref","","block_height","","","borrow","","","","borrow_mut","","","","build","builder","clone","","clone_into","","clone_to_uninit","","commit","connect","count_transactions","","create","create_with_store","deref","","","","deref_mut","","","","deserialize","","","","disable_proactive_fetching","drop","","","","fmt","","","from","","","","get_block","","get_block_detail","","get_block_range","","get_block_summaries","","get_explorer_summary","","get_header","get_header_window","","get_last_state_height","","get_leaf","","get_leaf_range","","get_path","","get_payload","","get_payload_range","","get_search_results","","get_transaction","","get_transaction_detail","","get_transaction_summaries","","get_vid_common","","get_vid_common_range","","init","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","layout_raw","","","","load_pruned_height","metrics","new","open","open_with_store","payload_size","","pointer_metadata","","","","populate_metrics","read","revert","set_last_state_height","skip_version","sync_status","","to_owned","","try_from","","","","try_into","","","","type_id","","","","update","vid_share","","vzip","","","","with_active_fetch_delay","with_chunk_fetch_delay","with_major_scan_interval","with_major_scan_offset","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_rate_limit","with_retry_delay","write","FileSystemDataSource","Transaction","connect","create","","create_with_store","handle_event","open","open_with_store","reset","skip_version","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_drop_tx","test_reset","test_revert","Builder","Config","Error","Migration","Postgres","SqlDataSource","Transaction","builder","connect","","","create","handle_event","include_migrations","reset","testing","TmpDb","test_metrics","AvailabilityStorage","ExplorerStorage","FileSystemStorage","MerklizedStateHeightStorage","MerklizedStateStorage","NoStorage","NodeStorage","SqlStorage","block_height","count_transactions","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","no_storage","payload_size","pruning","sql","sync_status","vid_share","FileSystemStorage","FileSystemStorageInner","Revert","Transaction","block_height","borrow","","","borrow_mut","","","commit","","count_transactions","create","create_with_store","deref","","","deref_mut","","","deserialize","","","drop","","","","fmt","","","from","","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","open","open_with_store","payload_size","pointer_metadata","","","read","revert","","","skip_version","sync_status","try_from","","","try_into","","","type_id","","","update","vid_share","vzip","","","write","NoStorage","Transaction","__clone_box","block_height","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","commit","count_transactions","default","deref","","deref_mut","","deserialize","","drop","","fmt","from","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","insert_block","insert_leaf","insert_vid","into","","layout_raw","","metrics","payload_size","pointer_metadata","","read","revert","sync_status","testing","to_owned","try_from","","try_into","","type_id","","update","vid_share","vzip","","write","DataSource","NoStorage","","","Sql","","","Storage","Transaction","__clone_box","block_height","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","commit","connect","count_transactions","","create","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","from","","","get_block","get_block_range","get_header_window","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","handle_event","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","payload_size","","pointer_metadata","","","populate_metrics","read","reset","revert","setup","sync_status","","to_owned","try_from","","","try_into","","","type_id","","","update","vid_share","","vzip","","","write","fetch_from_port","PruneStorage","PrunedHeightStorage","Pruner","PrunerCfg","PrunerConfig","__clone_box","batch_size","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","layout_raw","load_pruned_height","max_usage","minimum_retention","new","pointer_metadata","prune","pruning_threshold","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","ArgumentBuffer","Arguments","Column","Config","Connection","Database","","Db","Error","Executor","FixedLengthParams","Migration","NAME","Params","Postgres","Pruner","Query","QueryAs","QueryBuilder","QueryResult","Read","Row","SqlStorage","Sqlite","Statement","Transaction","TransactionManager","TransactionMode","TypeInfo","URL_SCHEMES","Value","ValueRef","Write","__clone_box","","","","applied","applied_on","archive","as_ref","","backtrace","begin","","","bind","","block_height","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","bounds_to_where_clause","builder","chain","checksum","cleanup_test","","cleanup_test_dbs","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","commit","compare","connect","","connection_timeout","context","count_transactions","create_database","","database","database_exists","","default","","","","","default_migrations","deref","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","deserialize","","","","","","","","","","","display","","","downcast","downcast_mut","downcast_ref","drop","","","","","","","","","","","","drop_database","","eq","equivalent","","","","execute","","execute_many","","","execute_many_with_retries","execute_one","execute_one_with_retries","fetch","","fetch_all","","fetch_many","fetch_one","","fetch_optional","fmt","","","","","","","","","","","","","fmt_value_debug","","force_drop_database","from","","","","","","","","","","","","","","from_str","get_block","get_block_detail","get_block_range","get_block_summaries","get_disk_usage","get_explorer_summary","get_feature_gate","","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_pruning_config","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","header","","header_where_clause","host","idle_connection_timeout","include_dir","include_migrations","init","","","","","","","","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","","","","","","","","is","layout_raw","","","","","","","","","","","load_header","load_pruned_height","max_connections","metrics","migrations","min_connections","msg","name","new","no_migrations","param_type_for_id","","partial_cmp","password","payload_size","pointer_metadata","","","","","","","","","","","port","prefix","prepare","","prepare_with","prune","pruner_cfg","query","","query_as","","read","reset_schema","return_type_for_id","","revert","root_cause","schema","set_applied","set_last_state_height","set_pruning_config","snapshot","","sql","sqlx","sync_status","test_context","","testing","tls","to_owned","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","unapplied","update","upsert","user","version","vid_share","vzip","","","","","","","","","","","write","TestMerkleTreeMigration","TmpDb","borrow","","borrow_mut","","config","deref","","deref_mut","","deserialize","","drop","","","fmt","from","","host","init","","","into","","layout_raw","","persistent","pointer_metadata","","port","start","stop","try_from","","try_into","","type_id","","vzip","","BalanceAmount","","Block","BlockDetail","BlockDetailResponse","BlockIdentifier","BlockNamespaceId","BlockNotFound","BlockRange","BlockSummary","BlockSummaryResponse","Btc","CryptoEnd","CryptoStart","CurrencyCode","CurrencyMismatchError","Error","Esp","Eth","Eur","ExplorerDataSource","ExplorerHeader","ExplorerHistograms","ExplorerSummary","ExplorerSummaryResponse","ExplorerTransaction","FeeAttribution","FiatCurrencyEnd","FiatCurrencyStart","Gbp","GenesisOverview","GetBlockDetail","GetBlockDetailError","","GetBlockSummaries","GetBlockSummariesError","","GetBlockSummariesRequest","GetExplorerSummary","GetExplorerSummaryError","GetSearchResults","GetSearchResultsError","GetTransactionDetail","GetTransactionDetailError","GetTransactionSummaries","GetTransactionSummariesError","","GetTransactionSummariesRequest","Hash","","Height","HeightAndOffset","IntError","InvalidCurrencyCodeError","InvalidLimit","","InvalidQuery","Jpy","Latest","","MonetaryValue","NamespaceId","","None","ProposerId","","QueryError","","","","","","RollUp","SearchResult","SearchResultResponse","TargetNotFound","","TimeError","Timestamp","TimestampConversionError","TokenEnd","TokenStart","TransactionDetail","TransactionDetailResponse","TransactionIdentifier","TransactionNamespaceId","TransactionNotFound","TransactionRange","TransactionSummariesResponse","TransactionSummary","TransactionSummaryFilter","Unimplemented","","","","","","Usd","WalletAddress","","Xxx","__clone_box","","","","","","","","","","","","","","","","add","as_error","","","","","","","","as_error_source","","","","","","","","","","","","","","","","block_confirmed","block_detail","block_heights","block_reward","block_size","block_summaries","block_time","block_transactions","blocks","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","btc","clone","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","cmp","compare","currency","","currency1","currency2","default","define_api","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","esp","eth","explorer_summary","fee_details","fee_info_account","fee_info_balance","fee_recipient","fees","filter","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","genesis_overview","get_block_detail","get_block_summaries","get_explorer_summary","get_search_results","get_transaction_detail","get_transaction_summaries","hash","","","","header","","","","","","","","","","","","","","height","","","","histograms","in_current_span","","","","","","","","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_resettable","is_crypto","is_fiat","is_token","latest_block","latest_blocks","latest_transactions","layout_raw","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","namespace_id","namespace_ids","new","num_blocks","num_transactions","","","","","offset","","partial_cmp","pointer_metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","proposer_id","","","range","reward_balance","rollups","","search_results","sequencing_fees","serialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","significant_digits","size","","","source","","","","","","","","status","","","","","","","sub","target","","","time","","","","to_owned","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","transaction_detail","transaction_summaries","transactions","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","usd","value","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","init","into","layout_raw","pointer_metadata","provider","request","run","","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_rate_limit","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","","","","block","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","fail","fetch","","","","","","","","","fmt","","","","from","","","","init","","","","into","","","","layout_raw","","","","new","","pointer_metadata","","","","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unblock","unfail","vzip","","","","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","eq","","","equivalent","","","","","","","","","","","","fmt","","","from","","","","get_hash","","","hash","","","init","","","into","","","layout_raw","","","pointer_metadata","","","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","Commit","","Custom","Digest","Entry","Error","Index","Key","MerklizedState","MerklizedStateDataSource","MerklizedStateHeightPersistence","Options","Query","Request","Snapshot","T","UpdateStateData","__clone_box","","api_path","as_error","as_error_source","","backtrace","borrow","","","borrow_mut","","","cause","clone","","clone_into","","clone_to_uninit","","cmp","compare","default","define_api","deref","","","deref_mut","","","description","deserialize","","","","drop","","","eq","equivalent","","","","extensions","fmt","","","","from","","","","","","get_hash","get_last_state_height","get_path","hash","header","","header_state_commitment_field","in_current_span","init","","","insert_merkle_nodes","insert_path","into","","","layout_raw","","","partial_cmp","pointer_metadata","","","serialize","set_last_state_height","source","state_type","status","to_owned","","to_string","","tree_height","try_from","","","try_into","","","type_id","","","vzip","","","message","source","","status","Counter","CounterFamily","Gauge","GaugeFamily","Histogram","HistogramFamily","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","TextFamily","__clone_box","","","","","","","","add","add_point","as_error","as_error_source","","backtrace","borrow","","","","","","","","","borrow_mut","","","","","","","","","cause","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","counter_family","create","","","","create_counter","create_gauge","create_histogram","create_text","default","deref","","","","","","","","","deref_mut","","","","","","","","","description","deserialize","","","","","","","","","drop","","","","","","","","","export","fmt","","","","","","","","","","from","","","","","","","","","","gauge_family","","get","","","","","get_counter","get_counter_family","get_gauge","get_histogram","get_histogram_family","get_subgroup","header","histogram_family","in_current_span","init","","","","","","","","","into","","","","","","","","","layout_raw","","","","","","","","","mean","pointer_metadata","","","","","","","","","sample_count","set","source","subgroup","sum","text_family","to_owned","","","","","","","","to_string","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update","vzip","","","","","","","","","name","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","","","","","","","","","api_path","as_error","as_error_source","","backtrace","block","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cause","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","count_transactions","default","","define_api","deref","","","","","","","","","","deref_mut","","","","","","","","","","description","deserialize","","","","","","","","","","","","","drop","","","","","","","","","","end","eq","","equivalent","","","","","","","","extensions","fail","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","fully_synced","get_hash","get_header_window","hash","header","in_current_span","init","","","","","","","","","","internal","into","","","","","","","","","","into_error","","","","","is_fully_synced","layout_raw","","","","","","","","","","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","pointer_metadata","","","","","","","","","","prev","pruned_height","serialize","","","source","start","status","","sync_status","to_owned","","","","","","","","","to_string","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","vid_share","vzip","","","","","","","","","","window","block","end","message","source","","","","start","status","Error","HasMetrics","Internal","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","api_path","as_error","as_error_source","","backtrace","block_height","borrow","","borrow_mut","","cause","clone","clone_into","clone_to_uninit","consensus_metrics","","default","define_api","deref","","deref_mut","","description","deserialize","","","drop","","elapsed_time_since_last_decide","","extensions","fmt","","from","","","","header","in_current_span","init","","into","","layout_raw","","metrics","pointer_metadata","","populate_metrics","serialize","source","status","success_rate","","to_owned","to_string","try_from","","try_into","","type_id","","vzip","","reason","source","BackgroundTask","Task","__clone_box","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","","drop","","","fmt","","from","","init","","into","","join","layout_raw","","pointer_metadata","","spawn","","to_owned","try_from","","try_into","","type_id","","vzip","","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","MockSqlDataSource","NUM_NODES","Storage","TestableDataSource","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","deserialize","drop","","from","handle","handle_event","init","","init_with_config","into","layout_raw","num_nodes","pointer_metadata","proposer","reset","setup","shut_down","spawn","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockAuctionResults","MockBase","MockHeader","MockMembership","MockMerkleTree","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockStorage","MockTransaction","MockTypes","MockVersions","__clone_box","","","block_header","block_number","borrow","","","borrow_mut","","","builder_commitment","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","decided_upgrade_certificate","default","","delay_config","deref","","","deref_mut","","","deserialize","","","","","drop","","","eq","","equivalent","","","","","","","","fee_info_account","fee_info_balance","fmt","","","from","","","get_hash","","hash","","header_state_commitment_field","height","init","","","insert_path","into","","","iter","justify_qc","layout_raw","","","len","metadata","mock_transaction","namespace_id","namespace_ids","partial_cmp","","payload_commitment","pointer_metadata","","","proposal_certificate","proposer_id","random","reward_balance","serialize","","should_return_err","state_type","timestamp","","to_owned","","","transaction_with_proof","transactions","tree_height","try_from","","","try_into","","","type_id","","","upgrade_certificate","urls","view_number","vzip","","","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[307,"hotshot_query_service::Error"],[314,"hotshot_query_service::QueryError"],[315,"hotshot_query_service::availability"],[992,"hotshot_query_service::availability::Error"],[1000,"hotshot_query_service::data_source"],[1117,"hotshot_query_service::data_source::availability_tests"],[1119,"hotshot_query_service::data_source::fetching"],[1280,"hotshot_query_service::data_source::fs"],[1291,"hotshot_query_service::data_source::node_tests"],[1297,"hotshot_query_service::data_source::persistence_tests"],[1300,"hotshot_query_service::data_source::sql"],[1316,"hotshot_query_service::data_source::sql::testing"],[1317,"hotshot_query_service::data_source::status_tests"],[1318,"hotshot_query_service::data_source::storage"],[1354,"hotshot_query_service::data_source::storage::fs"],[1440,"hotshot_query_service::data_source::storage::no_storage"],[1505,"hotshot_query_service::data_source::storage::no_storage::testing"],[1602,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1603,"hotshot_query_service::data_source::storage::pruning"],[1649,"hotshot_query_service::data_source::storage::sql"],[2049,"hotshot_query_service::data_source::storage::sql::testing"],[2090,"hotshot_query_service::explorer"],[3167,"hotshot_query_service::fetching"],[3201,"hotshot_query_service::fetching::provider"],[3311,"hotshot_query_service::fetching::request"],[3401,"hotshot_query_service::merklized_state"],[3517,"hotshot_query_service::merklized_state::Error"],[3521,"hotshot_query_service::metrics"],[3763,"hotshot_query_service::metrics::MetricsError"],[3767,"hotshot_query_service::node"],[4064,"hotshot_query_service::node::Error"],[4073,"hotshot_query_service::status"],[4145,"hotshot_query_service::status::Error"],[4147,"hotshot_query_service::task"],[4190,"hotshot_query_service::testing"],[4194,"hotshot_query_service::testing::consensus"],[4234,"hotshot_query_service::testing::mocks"],[4368,"hotshot_query_service::types"],[4370,"dyn_clone::sealed"],[4371,"core::error"],[4372,"hotshot_query_service::error"],[4373,"std::backtrace"],[4374,"core::option"],[4375,"hotshot_types::data"],[4376,"hotshot_types::traits::node_implementation"],[4377,"alloc::string"],[4378,"core::convert"],[4379,"tide_disco::status"],[4380,"core::clone"],[4381,"hotshot_types::message"],[4382,"committable"],[4383,"hotshot_query_service::resolvable"],[4384,"rand_core"],[4385,"rkyv::with"],[4386,"core::result"],[4387,"serde::de"],[4388,"hotshot_types::simple_vote"],[4389,"hotshot_types::simple_certificate"],[4390,"async_lock::rwlock"],[4391,"alloc::sync"],[4392,"anyhow"],[4393,"core::fmt"],[4394,"hotshot_query_service::explorer::query_data"],[4395,"sqlx_core::error"],[4396,"std::os::fd::owned"],[4397,"io_lifetimes::portability"],[4398,"core::hash"],[4399,"core::marker"],[4400,"color_eyre::section"],[4401,"core::alloc::layout"],[4402,"arc_swap::access"],[4403,"core::future::future"],[4404,"alloc::boxed"],[4405,"core::pin"],[4406,"futures_core::future"],[4407,"core::ops::function"],[4408,"hotshot::types::handle"],[4409,"hotshot_query_service::availability::data_source"],[4410,"hotshot_query_service::node::data_source"],[4411,"hotshot_query_service::status::data_source"],[4412,"hotshot_query_service::data_source::update"],[4413,"vbs::version"],[4414,"serde::ser"],[4415,"core::any"],[4416,"hotshot_query_service::availability::query_data"],[4417,"core::cmp"],[4418,"core::iter::traits::iterator"],[4419,"hotshot_types::vid"],[4420,"hotshot_query_service::availability::fetch"],[4421,"snafu"],[4422,"tide_disco::api"],[4423,"tide_disco::method"],[4424,"tide_disco::request"],[4425,"futures_core::stream"],[4426,"core::ops::range"],[4427,"core::time"],[4428,"hotshot_query_service::data_source::extension"],[4429,"hotshot_query_service::data_source::metrics"],[4430,"hotshot_query_service::explorer::data_source"],[4431,"hotshot_query_service::merklized_state::data_source"],[4432,"hotshot_types::event"],[4433,"core::default"],[4434,"jf_merkle_tree::internal"],[4435,"alloc::vec"],[4436,"hotshot_types::traits::metrics"],[4437,"hotshot_query_service::data_source::fetching::notify_storage"],[4438,"std::path"],[4439,"atomic_store::atomic_store"],[4440,"core::ops::deref"],[4441,"atomic_store::error"],[4442,"time::offset_date_time"],[4443,"refinery_core::runner"],[4444,"sqlx_core::database"],[4445,"hotshot_query_service::data_source::storage::sql::transaction"],[4446,"hotshot_query_service::data_source::storage::sql::queries"],[4447,"hotshot_query_service::data_source::storage::sql::db"],[4448,"sqlx_core::encode"],[4449,"sqlx_core::types"],[4450,"sqlx_postgres::database"],[4451,"sqlx_core::executor"],[4452,"sqlx_sqlite::database"],[4453,"sqlx_core::type_checking"],[4454,"sqlx_postgres::options"],[4455,"core::iter::traits::collect"],[4456,"sqlx_core::from_row"],[4457,"sqlx_core::testing"],[4458,"refinery_core::error"],[4459,"hotshot_query_service::explorer::monetary_value"],[4460,"hotshot_query_service::explorer::currency"],[4461,"hotshot_query_service::explorer::traits"],[4462,"core::num::error"],[4463,"time::error::component_range"],[4464,"clap_builder::builder::resettable"],[4465,"async_lock::semaphore"],[4466,"hotshot_query_service::fetching::provider::testing"],[4467,"hotshot_query_service::fetching::provider::any"],[4468,"hotshot_query_service::fetching::provider::query_service"],[4469,"url"],[4470,"jf_merkle_tree"],[4471,"core::str::traits"],[4472,"ark_serialize"],[4473,"tagged_base64"],[4474,"prometheus::errors"],[4475,"hotshot_query_service::node::query_data"],[4476,"hotshot_types::signature_key"],[4477,"hotshot_types"],[4478,"include_dir_macros"]],"i":"`j0AKf`A``2``2`0`20`1``````2````Ab3AhAjAl4Bf757755`Cf86555584326015843260143288658432615843261584326155Bn66`16954371226954371297669954377126954371266666`6543`6666995437726999999954377712222222262666697697`69543712`````96954371254366954371222`3``1666954371212`69797`971``695437269769543712695437120669543712`6669543712BMdBMfBMhBMjBMlBMn5BN`````Il`Ej```0`0`0`MhMjLj`3`0```421`1`4Nh``04`````1````532K`JnMlKdKfKhMnN`NbKjKlKnL`LbEjOd>1>>11>1?<;::Nh1MhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEj54321Lj0>1MhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjMhMj<10Nh>Od`1032K`JnMlKdKfKhMnN`NbKjKlKnL`LbEjNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEj=0NhOdMhMjK`0JnMl0Kd0Kf0Kh0Mn0N`0NbKjKlKnL`LbEj0NhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjLj0=MhMjK`MlKdKfKhMnN`888877776666555544443333222211110000OdKjKlKnL`Lb5>>===0000000>=<;:87>==<;9410:4NhOdMhMjK`6MlKdKfKhMnN`NbKjKlKnL`LbEjAAj001NhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEj654321NhLj0>01OdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEj>=Lj=Nh3>K`?=222222?;MhMjMl30Kf5Od435Jn3Kd3KhMnN`NbKjKlKnL`LbEjLj0:K`=Nh8761Ml>Kf>=<51?=Jn667Il0000000ABdMhMj846Kd6KhMnN`NbKjKlKnL`LbEj<;?0Lj0Ml;110111NhOdMhMjK`Jn6KdKfKhMnN`NbKjKlKnL`LbEjNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjNh0OdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEjNh0BNb0BNdBNfBNhBNjBNl4`````Jb``0``ABhABj11`1101010101010ABl21221121212121`2121`22222222222222222221212222222121212`2`2121322102```221212121AEl333243```````AF`AFjAEn02022AFd132013203323232131333013201320132001321320132131313131311313131313131313131313131301321111013201321303313013233113133201320132013211301320000000003``AH`00000000````````````````AFl0AHb000`0```````````AFb0`AGfAGh10012AGj22AGl33232233`4``44````AHdAHjAGb21022220010210210210221021022222222222210222210210200021020AHf3313213213213332131``AIfAId010111100101010101101000000000000100001011001100`101010100011`BNnAIhAIj210``0100210210000101002102102102100210001000000000210111210210010210000101002102102101102100BO```AFf``AIn00000000000001AJb1111AGn22223212222222222222AJn00`0`AM``````1``````1`1``1`1`1111`AJjALfALhAJl330Dn00AL`43AK`AKdAKn48AMdALb39827ALjALl8<325;:4910598<3232<;:9<;:9<;:9<4<91984329325;:90`88<325;:4491088<325;:449108<325;:49107;:88888<325;:491032<<<<<====4444========88<<325;:4910322888<325;:499109444414324444444414444448<599``8<325;:491044448<325;:491088<325;:49104491998<8932<948<325;:49109<===19`5`51932489<4132<`432`9<;:98<8<325;:49108<325;:49108<325;:4910<449<48<325;:49101``BObANl1001010101000100100101001000010101010`BCbBAd````AOn```AOf00```000```````000`F``B@f1`0`1`1`1`1`0`AC`AD`10Ff`B@`B@dB@h854`;BCj;`<:3B@b382<``435``::````0````;40382:`=:AObAOd>22==99<<00;;11BA`BAnBAhB@j1BB`22BAfBAl?>AOf>AC`AD`?>=6B@lFfB@nBAj;AOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhANnAObAOdAOf3AC`AD`AOhAOjAOlAOnB@`B@bB@dB@fB@hF`>==>ADb`?>=ANn=<;:9B@jB@lFfB@nBA`BAbACdBAd9BAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAOb0AOd0AOf0ANn0AC`AD`AOhAOjAOl0B@j0B@l0FfB@n0BA`0BAb0ACdBAd0ADbBAf0BAh0BAj0BAl0AOn0B@`0B@b0B@d0B@f0B@h0F`0BAn0BB`0BBb0BBd0BBf0BBh0AObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACd====<<<<;;;;::::9999888877776666555544443333222211110000<=B@nBA`BAb0ACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBhANn0AObAOdAOf3AC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hF`BAnBB`BBbBBdBBfBBh`````BCl0000000000000000``BCnBD`22222222`````BDjBDlBDhBDn1321032103210321032103032103210321032101BDd444333214321432143214321432132432143214321432143212243214444```BDb`BEbBEdBE`2102102102102102102102102102102222111100002102100210210210210210210210210210210210ACjAClFd11`21````00`1`20BEh11113013011313131330`3013011301130133333033113011113AChACn55343523AE`563463466344045464645634634634634BOdBOfBOh2```````BH`00``AEbBGjBHbBGlBHdBHfBHhBHj648888876543210876543210876543210765432107654321073210777778765432108765432108876543210876543210788765432108876543210776532177777787887654321087654321087654321048765432104587477654321088765432108765432108765432105876543210BOj0BOlBOn``El``ACf0``1`1`1`1``0``0BJbBJdBJfBJhBJjBJlBJ`8BJn99993In987165432:987165432:2:98765432:98765432:98765432:88071`987165432:987165432::98877165432::987165432:387888877771298765432::99877165432::::8808::987165432::987165432:654328987165432:28888780987165432:7887::3:2098765432::987165432:987165432:987165432:0987165432:7C@`C@bC@dC@fC@h4332``Fb`0``0BKd1111J`12122222001`121221221200122122222121212AEd23BKf444224434343434C@jC@l``BKh0BKj10111101010100101010100101010110101010`````````BKl`AIl01100000000010000000011000000000`````````````ADdBL`BKnC@nBLl43243204324324324242CA`530543543554335435355553333115435435353BLn26540654BM`476503`BLj486487654448632448761128768768765CAb6987`BKb","f":"`````````````````````````````{{bd}f}000000{b{{b{h}}}}00000``{{{b{j}}}{{n{{b{l}}}}}}{{{b{A`}}}{{n{{b{l}}}}}}{{{b{{Ab{c}}}}}bAd}{{{b{Af{Ab{c}}}}}{{b{Af}}}Ad}{{{b{{Ab{c}}}}}nAd}{b{{b{c}}}{}}0000000{{{b{Af}}}{{b{Afc}}}{}}0000000{AhA`}{AjA`}{{{Al{c}}}A`{{B`{An}}}}{{BbAn}j}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}{{{b{{Ab{c}}}}}{{Ab{c}}}{BdAd}}{{{b{j}}}j}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}Bd}{{{b{A`}}}A`}{{{b{{Bf{c}}}}}{{Bf{c}}}Bd}{{b{b{Afc}}}f{}}000000{bf}000000{{{b{{Ab{c}}}}{b{{Bh{ce}}}}}{{Bj{{Ab{c}}}}}AdBl}{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{Bn}}}{{Bj{c}}}C`}{b{{Bj{c}}}{}}{{{b{{Ab{c}}}}{b{AfCb}}Cd}{}Ad}`{{}Cf}{Ch{{b{c}}}{}}000000{{{b{{Bf{c}}}}}{{b{e}}}{}{}}1{Ch{{b{Afc}}}{}}0000000{{{b{j}}}{{b{Cj}}}}{{{b{A`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{{Ab{e}}}}}D`Ad}1{c{{Cn{j}}}D`}222{c{{Cn{A`}}}D`}333{Chf}0000000{{{b{{Ab{c}}}}{b{{Ab{c}}}}}DbAd}{{b{b{c}}}Db{}}000`{{{b{{Ab{c}}}}{b{{Ab{c}}}}{b{{Dl{{Dj{{n{{Dh{c{Dd{c}}Df}}}}}}}}}}}{{Cn{fDn}}}Ad}{Ah{{Cn{cA`}}}{}}{Aj{{Cn{cA`}}}{}}{{{Al{c}}}{{Cn{eA`}}}{{B`{An}}}{}}`{{{b{Af{Ab{c}}}}Ch}{{Cn{fE`}}}Ad}{{{b{Af{Ab{c}}}}}fAd}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cn{fEd}}}{EfAd}}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cn{fEd}}}Ad}{{{b{j}}{b{AfEb}}}Eh}0{{{b{Ah}}{b{AfEb}}}Eh}{{{b{Aj}}{b{AfEb}}}Eh}{{{b{{Al{c}}}}{b{AfEb}}}EhEf}{{{b{A`}}{b{AfEb}}}Eh}0{{{b{{Bf{c}}}}{b{AfEb}}}EhEf}{cc{}}{Ejj}{Elj}{{{En{AnBb}}}j}{F`j}{Fbj}{Fdj}6666{FfA`}7{FhA`}88{{{Dl{c}}}{{Bf{c}}}{}}{Fjc{}}{c{{Bf{c}}}{}}{Flc{}}0{ceFn{}}{ceG`{}}{{{b{{Gb{c}}}}}{{Ab{c}}}Ad}3{{bb}{{Ab{c}}}Ad}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{{Ab{c}}}}{b{Afe}}}fAdGj}{c{{Gl{ce}}}{GnH`Hb}{}}00{{{b{{Ab{c}}}}}CdAd}{{}}0`{{}Ch}0000000`````{cjGn}{{}c{}}0000000{{Ahc}A`{}}{{Ajc}A`{}}{{{Al{c}}e}A`{{B`{An}}}{}}{{{b{{Ab{c}}}}}{{Dh{c{Hd{c}}Hf}}}Ad}{{}{{Cn{HhHj}}}}0000000{b}{b{{Hl{c}}}{}}`````{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}33333333`{{{b{{Bf{c}}}}i}{{Ib{{I`{Hn}}}}}{H`Hb}{}{}{H`{Ih{{b{e}}}{{Id{{If{g}}}}}}}}{{Cfe{Ij{cgi}}k}{{Cn{fj}}}Ad{{Il{c}}{In{c}}J`JbH`Hb}{{Jd{c}}}BlJf}{{{b{{Ab{c}}}}e}Cn{AdJh}Jj}{{{b{j}}c}CnJj}{{{b{A`}}c}CnJj}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}`{{{b{j}}}Bb}{{{b{A`}}}Bb}```{bc{}}000000{bAn}00{c{{Cn{e}}}{}{}}0000000{{}{{Cn{c}}}{}}0000000{Bn{{Cn{cBn}}}C`}{{}{{Cn{cc}}}{}}{bJl}0000000`{{{b{{Ab{c}}}}}{{n{{Dh{c{Dd{c}}Df}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}{{}c{}}0000000`````````````````````````````````````````````````````````{{bd}f}0000000000000000`{b{{b{h}}}}00000{{{b{{Jn{c}}}}}{{n{{b{l}}}}}Ad}{{{b{Ej}}}{{n{{b{l}}}}}}{{{b{{K`{c}}}}}{{Kb{c}}}Ad}{{{b{{Kd{c}}}}}{{Kb{c}}}Ad}{{{b{{Kf{c}}}}}{{Kb{c}}}Ad}{{{b{{Kh{c}}}}}{{Kb{c}}}Ad}{{{b{{Kh{c}}}}}CdAd}{b{{b{c}}}{}}000000000000000000{{{b{Af}}}{{b{Afc}}}{}}000000000000000000{{{Kj{c}}}Ej{{B`{An}}}}{{{Kl{c}}}Ej{{B`{An}}}}{{{Kn{c}}}Ej{{B`{An}}}}{{{L`{ce}}}Ej{{B`{Cd}}}{{B`{Cd}}}}{{{Lb{ce}}}Ej{{B`{An}}}{{B`{Bb}}}}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{c}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Jn{c}}}}}{{n{{b{h}}}}}Ad}{{{b{Ej}}}{{n{{b{h}}}}}}{{{b{{Mh{c}}}}}{{Mh{c}}}Ad}{{{b{{Mj{c}}}}}{{Mj{c}}}Ad}{{{b{{K`{c}}}}}{{K`{c}}}{BdAd}}{{{b{{Jn{c}}}}}{{Jn{c}}}{BdAd}}{{{b{{Ml{c}}}}}{{Ml{c}}}{BdAd}}{{{b{{Kd{c}}}}}{{Kd{c}}}{BdAd}}{{{b{{Kf{c}}}}}{{Kf{c}}}{BdAd}}{{{b{{Kh{c}}}}}{{Kh{c}}}{BdAd}}{{{b{{Mn{c}}}}}{{Mn{c}}}{BdAd}}{{{b{{N`{c}}}}}{{N`{c}}}{BdAd}}{{{b{Nb}}}Nb}{{{b{{Kj{c}}}}}{{Kj{c}}}Bd}{{{b{{Kl{c}}}}}{{Kl{c}}}Bd}{{{b{{Kn{c}}}}}{{Kn{c}}}Bd}{{{b{{L`{ce}}}}}{{L`{ce}}}BdBd}{{{b{{Lb{ce}}}}}{{Lb{ce}}}BdBd}{{{b{Ej}}}Ej}{{b{b{Afc}}}f{}}0000000000000000{bf}0000000000000000{{{b{{Mh{c}}}}{b{{Mh{c}}}}}NdAd}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}NdAd}{{{b{{Kf{c}}}}}{{b{Nf}}}Ad}{{b{b{c}}}Nd{}}0{{{Nh{c}}g}{{Cn{ce}}}{}{hNj}{{O`{e}{{Nl{Nn}}}}}}{{{b{{Kd{c}}}}}{{b{{Ob{c}}}}}Ad}{{}Od}{{{b{Od}}c}{{Cn{{Of{eEjc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}000000000000000000{Ch{{b{Afc}}}{}}000000000000000000{{{b{{Jn{c}}}}}{{b{Cj}}}Ad}{{{b{Ej}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}000{c{{Cn{{K`{e}}}}}D`Ad}11{c{{Cn{{Ml{e}}}}}D`Ad}22{c{{Cn{{Kd{e}}}}}D`Ad}{c{{Cn{{Kf{e}}}}}D`Ad}4{c{{Cn{{Kh{e}}}}}D`Ad}5{c{{Cn{{Mn{e}}}}}D`Ad}66{c{{Cn{{N`{e}}}}}D`Ad}7777777{c{{Cn{Ej}}}D`}{Chf}000000000000000000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}{{I`{Mf}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Ml{c}}}}}{{`{{Mf{}{{Md{{En{{Ol{c}}{On{c}}}}}}}}}}}Ad}{{{b{{Mh{c}}}}{b{{Mh{c}}}}}DbAd}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}DbAd}{{{b{{K`{c}}}}{b{{K`{c}}}}}Db{LlAd}}{{{b{{Ml{c}}}}{b{{Ml{c}}}}}Db{LlAd}}{{{b{{Kd{c}}}}{b{{Kd{c}}}}}Db{LlAd}}{{{b{{Kf{c}}}}{b{{Kf{c}}}}}Db{LlAd}}{{{b{{Kh{c}}}}{b{{Kh{c}}}}}Db{LlAd}}{{{b{{Mn{c}}}}{b{{Mn{c}}}}}Db{LlAd}}{{{b{{N`{c}}}}{b{{N`{c}}}}}Db{LlAd}}{{b{b{c}}}Db{}}00000000000000000000000000000000000`{{{Kj{c}}}{{Cn{eEj}}}{{B`{An}}}{}}{{{Kl{c}}}{{Cn{eEj}}}{{B`{An}}}{}}{{{Kn{c}}}{{Cn{eEj}}}{{B`{An}}}{}}{{{L`{ce}}}{{Cn{gEj}}}{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lb{ce}}}{{Cn{gEj}}}{{B`{An}}}{{B`{Bb}}}{}}`{{{b{{Mh{c}}}}{b{AfEb}}}EhAd}0{{{b{{Mj{c}}}}{b{AfEb}}}EhAd}0{{{b{{K`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Jn{c}}}}{b{AfEb}}}EhAd}{{{b{{Jn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Ml{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Mn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{N`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Nb}}{b{AfEb}}}Eh}{{{b{{Kj{c}}}}{b{AfEb}}}EhEf}{{{b{{Kl{c}}}}{b{AfEb}}}EhEf}{{{b{{Kn{c}}}}{b{AfEb}}}EhEf}{{{b{{L`{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{Lb{ce}}}}{b{AfEb}}}EhEfEf}{{{b{Ej}}{b{AfEb}}}Eh}0{cc{}}00{Ch{{Mh{c}}}Ad}{{{A@`{c}}}{{Mh{c}}}Ad}{{{Kb{c}}}{{Mj{c}}}Ad}3{Ch{{Mj{c}}}Ad}4444{{{Ml{c}}}{{Kd{c}}}Ad}555{{{Ml{c}}}{{Mn{c}}}Ad}66666666{A@bEj}{{{En{AnBb}}}Ej}{b{{A@d{{K`{c}}}}}Ad}{b{{A@d{{Ml{c}}}}}Ad}{b{{A@d{{Kd{c}}}}}Ad}{b{{A@d{{Kf{c}}}}}Ad}{{bb}{{K`{c}}}Ad}{{bb}{{Ml{c}}}Ad}{{bb}{{Kd{c}}}Ad}{{bb}{{Kf{c}}}Ad}{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{B`{{Mj{e}}}}H`Hb}}{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{AAb{Ch}}H`}}{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{B`{{Mh{e}}}}H`Hb}}232{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}{AAd{e}}}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}}43{{{b{{Mh{c}}}}{b{Afe}}}fAdGj}{{{b{{Mj{c}}}}{b{Afe}}}fAdGj}{{{b{{K`{c}}}}}{{A@`{c}}}Ad}{{{b{{Ml{c}}}}}{{Kb{c}}}Ad}{{{b{{Kd{c}}}}}AAfAd}{{{b{{Kh{c}}}}}{{AAd{c}}}Ad}{{{b{{Mn{c}}}}}{{Kb{c}}}Ad}{c{{Gl{ce}}}{GnH`Hb}{}}0{{{b{{K`{c}}}}}{{b{{AAh{c}}}}}Ad}1{{{b{{Ml{c}}}}}{{b{{AAh{c}}}}}Ad}{{{b{{Mn{c}}}}}{{b{{AAh{c}}}}}Ad}3{{{b{{K`{c}}}}}CdAd}{{{b{{Ml{c}}}}}CdAd}{{{b{{Kd{c}}}}}CdAd}{{{b{{Kf{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}`{{}}0{{{b{{Kh{c}}}}}CdAd}`{{}Ch}000000000000000000{{{b{AfAAj}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAAj}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAAj}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{cEjGn}{{}c{}}000000000000000000{{Nbc}Ej{}}{{{Kj{c}}e}Ej{{B`{An}}}{}}{{{Kl{c}}e}Ej{{B`{An}}}{}}{{{Kn{c}}e}Ej{{B`{An}}}{}}{{{L`{ce}}g}Ej{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lb{ce}}g}Ej{{B`{An}}}{{B`{Bb}}}{}}{{{Nh{c}}}eH`{}}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}Db{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Ml{c}}}}}DbAd}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}e{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}{{}{{Cn{HhHj}}}}000000000000000000{{{b{{K`{c}}}}}{{b{{Ab{c}}}}}Ad}`{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}Ch{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}{{{b{{Ml{c}}}}}ChAd}{{{Nh{c}}g}{{Nh{e}}}{}{}{H`{Ih{c}{{Id{e}}}}}}`{{{b{{Ml{c}}}}}{{b{{AAn{c}}}}}Ad}{{{Ab{c}}{AB`{c}}}{{Cn{{K`{c}}{Jn{c}}}}}Ad}{{{AAh{c}}{Ob{c}}}{{Ml{c}}}Ad}{{{AAh{c}}Nf}{{Kf{c}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{c}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{{En{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}{{{b{{Mh{c}}}}{b{{Mh{c}}}}}{{n{Nd}}}Ad}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}{{n{Nd}}}Ad}{{{b{{Ml{c}}}}}{{b{{Ob{c}}}}}Ad}{{{b{{K`{c}}}}}AAfAd}{{{b{{Ml{c}}}}}AAfAd}{{{b{{Kf{c}}}}}AAfAd}{b}000000000000000000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{g}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Kh{c}}}}}{{b{{ABb{c}}}}}Ad}{{{b{{K`{c}}}}}{{b{{AB`{c}}}}}Ad}`{{{Nh{c}}}cH`}```{{{b{{K`{c}}}}e}CnAdJj}{{{b{{Ml{c}}}}e}CnAdJj}{{{b{{Kd{c}}}}e}CnAdJj}{{{b{{Kf{c}}}}e}CnAdJj}{{{b{{Kh{c}}}}e}CnAdJj}{{{b{{Mn{c}}}}e}CnAdJj}{{{b{{N`{c}}}}e}CnAdJj}{{{b{Ej}}c}CnJj}{{{b{{Ml{c}}}}}CdAd}{{{b{{Kd{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}{{{b{{Jn{c}}}}}{{n{{b{h}}}}}Ad}{{{b{Ej}}}{{n{{b{h}}}}}}{{{b{Ej}}}Bb}`{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}Ch}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}}0000000{{{b{ABd}}}Cd}{bc{}}0000000000000000{bAn}000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}{b{{Ol{c}}}}}{{n{{On{c}}}}}Ad}{{{b{{Kh{c}}}}}{{b{{On{c}}}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}{Bj{{On{c}}}}}{{n{{Ol{c}}}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{{En{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{{En{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}{c{{Cn{e}}}{}{}}000000000000000000{{}{{Cn{c}}}{}}000000000000000000{{{Nh{c}}}{{Cn{c{Nh{c}}}}}{}}{bJl}000000000000000000{{}c{}}000000000000000000{{{Nh{c}}i}{{Cn{ce}}}{}{hNj}{{O`{e}{{Nl{Nn}}}}}{{Ih{}{{Id{g}}}}}}{{{Nh{c}}ABf}{{n{c}}}H`}```````````````````{{bd}f}0{{{b{Af{ABh{ce}}}}}{{b{Afe}}}{}{}}{{{b{{ABh{ce}}}}}{{b{e}}}{}{}}`{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}}{{{b{{ABh{ce}}}}}{{Ib{{I`{Hn}}}}}{J`H`Hb}{H`Hb}}{{{b{ABj}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{{ABh{ce}}}}}{{ABh{ce}}}BdBd}{{{b{ABj}}}ABj}{{b{b{Afc}}}f{}}0{bf}0{ABl{{`{{Hn{}{{Id{{ABn{f}}}}}}H`}}}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}0:{Ch{{Ib{{I`{Hn}}}}}}0{{}ABj}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0`{{{b{{ABh{ce}}}}{b{AfEb}}}EhEfEf}{{{b{ABj}}{b{AfEb}}}Eh}{cc{}}0`{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{{b{{ABh{eg}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{AAb{Ch}}H`}}{{{b{{ABh{eg}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}iCd}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}{{B`{{ACf{c}}}}H`Hb}}{{{b{{ABh{ce}}}}}{{Ib{{I`{Hn}}}}}{AChHb}{H`Hb}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{B`{{Mh{c}}}}H`Hb}}5{{{b{{ABh{gi}}}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{ACn{ce}}Hb}{H`Hb}}86{{{b{{ABh{eg}}}}An}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}}{{{b{{ABh{eg}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}<:{{{b{{ABh{ce}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}ADh{BdADjH`Hb}}{{{b{ABj}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}}{{}Ch}0{{{b{{ABh{ce}}}}}{{b{c}}}{}{}}{{{b{Af{ABh{ce}}}}}{{b{Afc}}}{}{}}{{{b{Af{ABh{eg}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{{b{Af{ABh{eg}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{{b{Af{ABh{gi}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}{H`Hb}}{{{b{Af{ABh{eg}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{}c{}}0{{}{{Cn{HhHj}}}}0{{{b{{ABh{ce}}}}}{{b{AEb}}}AEd{}}{{{b{ABj}}}{{b{AEb}}}}{{ce}{{ABh{ce}}}{}{}}`{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}}`{b}0{b{{I`{AEf}}}}0{{{b{{Jb{}{{AEh{c}}{AEj{e}}}}}}}{{`{{Hn{}{{Id{{ABn{e}}}}}}H`}}}ABlABl}{{{b{{ABh{ce}}}}}{{ABn{g}}}{JbH`}{H`Hb}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}0{ABl{{`{HnH`}}}}{{{b{Af{ABh{gi}}}}Ch}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}{H`Hb}}```7{bc{}}0{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{{b{AfAEl}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}0{{{b{{Jb{}{{AEh{c}}{AEj{e}}}}}}}{{`{{Hn{}{{Id{{ABn{c}}}}}}H`}}}ABlABl}<{{}f}0`````{{bd}f}0{{{b{Af{AEn{ce}}}}}{{b{Afe}}}Ad{}}{{{b{{AEn{ce}}}}}{{b{e}}}Ad{}}{{{b{{AF`{ceg}}}}}{{b{e}}}Ad{}{}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}Ad{JbAEdH`Hb}{H`Hb}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{AFd{ceg}}}{{ABn{{AF`{ceg}}}}}Ad{AFfJb}{{AFh{c}}}}{{cg}{{AFd{ecg}}}{JbAFf}Ad{{AFh{e}}}}{{{b{{AF`{ceg}}}}}{{AF`{ceg}}}Ad{}{}}{{{b{{AFj{ceg}}}}}{{AFj{ceg}}}Ad{}{}}{{b{b{Afc}}}f{}}0{bf}0{{{AEn{ce}}}{{ABn{f}}}AdABl}{{AFle}{{Cn{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}<;{{{b{AG`}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}000{{{AFd{ceg}}}{{AFd{ceg}}}{}{}{}}{Chf}000{{{b{{AEn{ce}}}}{b{AfEb}}}Eh{AdEf}Ef}{{{b{{AF`{ceg}}}}{b{AfEb}}}EhAdEfEf}{{{b{{AFj{ceg}}}}{b{AfEb}}}EhAdEfEf}{cc{}}000{{{b{Af{AEn{ce}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mj{c}}}}H`Hb}}{{{b{Af{AEn{ce}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}{{AAb{Ch}}H`}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{AAb{Ch}}H`}}{{{b{Af{AEn{ce}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}9{{{b{Af{AEn{ce}}}}gCd}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}{{B`{{ACf{c}}}}H`Hb}}{{{b{{AF`{ceg}}}}iCd}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{B`{{ACf{c}}}}H`Hb}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{AGjH`}}3{{{b{Af{AEn{ce}}}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mh{c}}}}H`Hb}}:9{{{b{Af{AEn{cg}}}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AGl{ce}}H`}}{{{b{{AF`{ceg}}}}{ACj{ci}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{ACl{c}}}}{{{b{Af{AEn{ce}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mj{c}}}}H`Hb}}>={{{b{Af{AEn{ce}}}}An}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}An}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}}{{{b{Af{AEn{ce}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}98{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}{{AAb{Ch}}H`}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{AAb{Ch}}H`}}{{}Ch}000{{{b{Af{AEn{ce}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{{b{Af{AEn{ce}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{{b{Af{AEn{cg}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}}{{{b{Af{AEn{ce}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{}c{}}000{{}{{Cn{HhHj}}}}000{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{AGnH`}}{{{b{{AF`{ceg}}}}}{{b{AEb}}}AdAEd{}}{{ce}{{AFd{gce}}}{}{}{}}{{{b{AG`}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{b}000{b{{I`{AEf}}}}{{{b{{AF`{ceg}}}}}{{ABn{i}}}Ad{JbH`Hb}{H`Hb}{}}{{{AEn{ce}}}{{`{HnH`}}}AdABl}{{{b{Af{AEn{cg}}}}Ch}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}}{{{b{{AF`{c{AGb{c}}e}}}}}{{ABn{f}}}Ad{{AFh{c}}}}76{bc{}}0{c{{Cn{e}}}{}{}}000{{}{{Cn{c}}}{}}000{bJl}000{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}{{B`{{Mj{c}}}}H`Hb}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}000{{{AFd{ceg}}ABf}{{AFd{ceg}}}{}{}{}}0{{{AFd{ceg}}Ch}{{AFd{ceg}}}{}{}{}}010001=``{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{Ch{{Ib{{I`{Hn}}}}}}{{{b{AG`}}e}{{ABn{{AH`{ce}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AH`{ce}}}}}Ad{{AFh{c}}}}{{{b{{AH`{ADdc}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{{AFh{ADd}}ADj}}214{{{b{{AH`{ce}}}}}{{ABn{f}}}Ad{{AFh{c}}}}{{}f}00000000```````{{AFle}{{Cn{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}{{AFle}{{Cn{{AHb{ce}}Dn}}}Ad{{AFh{c}}}}187{{{b{{AHb{ADdc}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{{AFh{ADd}}ADj}}`9``3````````{{{b{AfAFb}}}{{Ib{{I`{Hn}}}}}}0`{{{b{AfAGf}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGf}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}{{{b{AfAGh}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}}{{Ib{{I`{Hn}}}}}}4{{{b{AfAFb}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{AfAGj}}}{{Ib{{I`{Hn}}}}}}{{{b{AfAGf}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad}5{{{b{AfAGl}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}}86{{{b{AfAGh}}An}{{Ib{{I`{Hn}}}}}}{{{b{AfAGf}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad}<:`=``={{{b{AfAFb}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}````{{{b{Af{AHd{e}}}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AHd{{AHn{{AHj{c}}}}}}}{{ABn{f}}}Ad}{{{AHd{{AI`{{AHj{c}}}}}}}{{ABn{f}}}Ad}4{{{b{AG`}}}{{Cn{{AGb{c}}AIb}}}Ad}{{{b{AfAGd}}}{{Cn{{AGb{c}}AIb}}}Ad}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}0{{{b{Af{AHd{c}}}}}fAHf}1{{{b{{AHj{c}}}}{b{AfEb}}}EhAd}{{{b{{AGb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AHd{c}}}}{b{AfEb}}}Eh{EfAHf}}{cc{}}00{{{b{Af{AHd{e}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}{{{b{Af{AHd{e}}}}g}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}{{AAb{Ch}}H`}}1{{{b{Af{AHd{e}}}}gCd}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}{{B`{{ACf{c}}}}H`Hb}}{{{b{Af{AHd{e}}}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}232{{{b{Af{AHd{e}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}43{{}Ch}00{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}00{{}{{Cn{HhHj}}}}00{{{b{{AGb{c}}}}}{{b{AEb}}}Ad}{{{b{AG`}}}{{Cn{{AGb{c}}AIb}}}Ad}{{{b{AfAGd}}}{{Cn{{AGb{c}}AIb}}}Ad}{{{b{Af{AHd{e}}}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}}{b}00{{{b{{AGb{c}}}}}{{ABn{e}}}Ad{}}{{{b{AfAHf}}}f}{{{AHd{{AHn{{AHj{c}}}}}}}{{`{HnH`}}}Ad}{{{AHd{{AI`{{AHj{c}}}}}}}{{`{HnH`}}}Ad}{{{b{{AGb{c}}}}}{{Cn{fAIb}}}Ad}6{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AHd{e}}}}g}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}00:``{{bd}f}{{{b{AfAId}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{AIf}}}AIf}{{b{b{Afc}}}f{}}{bf}{AId{{ABn{f}}}}6{{}AIf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0{{{b{AIf}}{b{AfEb}}}Eh}{cc{}}0{{{b{AfAId}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}1{{{b{AfAId}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{AfAId}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad}232{{{b{AfAId}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad}43{{}Ch}0{{{b{AfAId}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}0{{}{{Cn{HhHj}}}}0{{{b{AIf}}}{{b{AEb}}}}{{{b{AfAId}}}{{Ib{{I`{Hn}}}}}}{b}0{{{b{AIf}}}{{ABn{c}}}{}}{AId{{`{HnH`}}}}3`{bc{}}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{AfAId}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}<<7`````````{{bd}f}{{{b{Af{AIh{c}}}}}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}}{{{b{AIj}}}{{Ib{{I`{Hn}}}}}}0{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AIj}}}AIj}{{b{b{Afc}}}f{}}{bf}{{{AIh{c}}}{{ABn{f}}}ABl}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}87{Ch{{Ib{{I`{Hn}}}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{AIj}}{b{AfEb}}}Eh}{cc{}}00{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mj{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}{{{b{Af{AIh{c}}}}eCd}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}{{B`{{ACf{ADd}}}}H`Hb}}{{{b{AIj}}cCd}{{Ib{{I`{Hn}}}}}{{B`{{ACf{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mh{ADd}}}}H`Hb}}343{{{b{AIj}}{AAd{ADd}}}{{Ib{{I`{Hn}}}}}}54{{{b{AIj}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}}{{}Ch}00{{{b{Af{AIh{c}}}}{Ml{ADd}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{{b{Af{AIh{c}}}}{K`{ADd}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{{b{Af{AIh{c}}}}{Kf{ADd}}{n{AAl}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{}c{}}00{{}{{Cn{HhHj}}}}00{{{b{AIj}}}{{b{AEb}}}}{{{b{Af{AIh{c}}}}}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}}{{{b{AIj}}}{{Ib{{I`{Hn}}}}}}{b}00{b{{I`{AEf}}}}{{{b{AIj}}}{{ABn{c}}}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{{{AIh{c}}}{{`{HnH`}}}ABl}{{{b{Af{AIl{AIj}}}}}{{Ib{{I`{Hn}}}}}}76{bc{}}{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AIh{c}}}}e}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}{{B`{{Mj{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mj{ADd}}}}H`Hb}}{{}c{}}00;``````{{bd}f}{{{b{AIn}}}Cd}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{AIn}}}AIn}{{b{b{Afc}}}f{}}{bf}{{}AIn}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{Chf}{{{b{AIn}}{b{AfEb}}}Eh}{cc{}}{{{b{{AFf{}{{AJ`{c}}}}}}}{{Ib{{I`{Hn}}}}}{ADjH`}}{{{b{AJb}}}{{n{AIn}}}}{{}Ch}{{{b{AIn}}}ABf}{{}c{}}{{}{{Cn{HhHj}}}}{{{b{AfAGn}}}{{Ib{{I`{Hn}}}}}}{{{b{AIn}}}AJd}4>{b}{{{b{{AFf{}{{AJ`{c}}}}}}{b{Afc}}}{{Ib{{I`{Hn}}}}}{ADjH`}}{{{b{AIn}}}{{n{Cd}}}}{{{b{AfAJb}}AIn}f}8{bc{}}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}{{{b{AIn}}}{{ABn{f}}}}<{{AInCd}AIn}{{AInABf}AIn}{{AInAJd}AIn}121`````````````````````````````````{{bd}f}000{{AJfAnAJhCd}AJj}{{{b{AJj}}}{{n{{b{AJh}}}}}}{{{AJl{c}}}{{AJl{c}}}AJn}{{{b{Dn}}}{{b{h}}}}0{{{b{Dn}}}{{b{l}}}}{{{b{Af}}}{{`{{Hn{}{{Id{{ABn{f}}}}}}H`}}}}{{{b{Af}}}{{ABn{f}}}}0{{AK`AKb}AKb}{{{b{AfAKd}}c}{{AKf{An}}}{{AKj{AKh}}{AKl{AKh}}}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{b{{b{c}}}{}}0000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000{{{b{AfAKd}}c{b{Cj}}}{{AKf{An}}}{{AAb{Ch}}}}{{{AJl{ALb}}e}{{Cn{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}{{{b{Dn}}}ALd}{{{b{AJj}}}Cd}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}}AJj}{{{b{ALf}}}ALf}{{{b{ALh}}}ALh}{{{b{{AJl{c}}}}}{{AJl{c}}}{AJnBd}}{{b{b{Afc}}}f{}}000{bf}000{{{b{AJj}}{b{AJj}}}Nd}{{{AKn{c}}}{{ABn{f}}}AL`}{{b{b{c}}}Nd{}}{{{AJl{ALb}}e}{{Cn{{AHb{ce}}Dn}}}Ad{{AFh{c}}}}{{{AJl{c}}}{{Cn{ALjDn}}}AJn}{{{AJl{c}}ABf}{{AJl{c}}}AJn}{{Dnc}Dn{GnH`Hb}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}??{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{}AKd}{{}ALf}{{}ALh}{{}{{AJl{ALb}}}}{{}ALl}{{}{{ADn{AJj}}}}{Ch{{b{c}}}{}}{{{b{Dn}}}b}111111{{{b{{AKn{c}}}}}{{b{e}}}{}{}}2222{Ch{{b{Afc}}}{}}{{{b{AfDn}}}{{b{Af}}}}1111111{{{b{Af{AKn{c}}}}}{{b{Afe}}}{}{}}222{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0000000000{{}{{b{Cj}}}}00{Dn{{Cn{cDn}}}{GnEfH`Hb}}{{{b{AfDn}}}{{n{{b{Afc}}}}}{GnEfH`Hb}}{{{b{Dn}}}{{n{{b{c}}}}}{GnEfH`Hb}}{{{b{AfDn}}}f}{Chf}0000000000{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}{b{AJj}}}Db}{{b{b{c}}}Db{}}000{{{AM`{}{{ALn{c}}}}e}{{Ib{{I`{Hn}}}}}AJn{{AMb{c}}}}0{{{AM`{}{{ALn{c}}}}e}{{Ib{{I`{A@n}}}}}AJn{{AMb{c}}}}0{{{b{Af{AKn{ALf}}}}c}{{ABn{Cd}}}{{AMb{AKh}}}}{{{b{Af{AKn{ALf}}}}{b{Cj}}c}{{ABn{Cd}}}{AK`Bd}}{{{b{Af{AKn{ALf}}}}c}{{ABn{f}}}{{AMb{AKh}}}}{{{b{Af{AKn{ALf}}}}{b{Cj}}c}{{ABn{f}}}{AK`Bd}}44554555{{{b{Dn}}{b{AfEb}}}{{Cn{fEd}}}}0{{{b{AJj}}{b{AfEb}}}{{Cn{fEd}}}}0{{{b{AMd}}{b{AfEb}}}{{Cn{fEd}}}}{{{b{ALb}}{b{AfEb}}}{{Cn{fEd}}}}{{{b{AKd}}{b{AfEb}}}Eh}{{{b{ALf}}{b{AfEb}}}Eh}{{{b{ALh}}{b{AfEb}}}Eh}{{{b{{AKn{c}}}}{b{AfEb}}}EhEf}{{{b{{AJl{c}}}}{b{AfEb}}}Eh{AJnEf}}{{{b{ALj}}{b{AfEb}}}Eh}{{{b{ALl}}{b{AfEb}}}Eh}{b{{AMf{AMd}}}}{b{{AMf{ALb}}}}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}{cc{}}{Fjc{}}{cDn{hH`Hb}}22222222{AMh{{AJl{ALb}}}}33{{{b{Cj}}}{{Cn{{AJl{ALb}}c}}}{}}{{{b{Af{AKn{c}}}}{Mj{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{AC`{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}e}{{Ib{{I`{Hn}}}}}AL`{{AAb{Ch}}H`}}{{{b{Af{AKn{c}}}}{ACd{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{ALj}}}{{Ib{{I`{Hn}}}}}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{b{{n{{b{Cj}}}}}}06{{{b{Af{AKn{c}}}}gCd}{{Ib{{I`{Hn}}}}}AL`Ad{{B`{{ACf{e}}}}H`Hb}}2{{{b{Af{AKn{c}}}}{Mh{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}6{{{b{Af{AKn{c}}}}{ACj{eg}}}{{Ib{{I`{Hn}}}}}AL`Ad{{ACl{e}}}}97{{{b{ALj}}}{{n{AIn}}}}{{{b{Af{AKn{c}}}}An}{{Ib{{I`{Hn}}}}}AL`}{{{b{Af{AKn{c}}}}{AAd{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{AD`{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{ADb{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}><{c{{Gl{ce}}}{GnH`Hb}{}}0{{{b{AfAKd}}{Mj{c}}}{{AKf{An}}}Ad}{{{AJl{ALb}}c}{{AJl{ALb}}}{{B`{An}}}}{{{AJl{c}}ABf}{{AJl{c}}}AJn}``{{}Ch}0000000000{{{b{Af{AKn{ALf}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AKn{ALf}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AKn{ALf}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}}{{{b{Af{AKn{ALf}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}0000000000{{{b{Dn}}}Db}{{}{{Cn{HhHj}}}}0000000000{{{b{Af{AKn{c}}}}g}{{AKf{{AAh{e}}}}}{}Ad{{B`{{Mj{e}}}}H`}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{{{AJl{c}}AMj}{{AJl{c}}}AJn}{{{b{ALj}}}{{b{AEb}}}}{{{AJl{c}}e}{{AJl{c}}}AJn{{AMl{}{{Md{AJj}}}}}}2{cDn{GnEfH`Hb}}{{{b{AJj}}}{{b{Cj}}}}{cDn{hH`Hb}}{{{AJl{c}}}{{AJl{c}}}AJn}{b{{n{{b{Cj}}}}}}0{{{b{AJj}}{b{AJj}}}{{n{Nd}}}}{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}:{b}0000000000{{{AJl{ALb}}AJd}{{AJl{ALb}}}}{{{b{AJj}}}{{b{AMn}}}}{{{AM`{}{{ALn{c}}}}{b{Cj}}}{{Ib{{I`{Hn}}}}}AJn}0{{{AM`{}{{ALn{c}}}}{b{Cj}}{b{AN`}}}{{Ib{{I`{Hn}}}}}AJn}{{{b{ALj}}{b{AfALl}}}{{Ib{{I`{Hn}}}}}}{{{AJl{c}}AIn}{{Cn{{AJl{c}}Dn}}}AJn}{{{b{Cj}}}AKb}{{AKd{b{Cj}}}AKb}{{{b{Cj}}}{{ANb{c}}}ANd}{{AKd{b{Cj}}}{{ANb{c}}}ANd}{{{b{ALj}}}{{ABn{{AKn{ALh}}}}}}?>>{{{AKn{c}}}{{`{HnH`}}}AL`}{{{b{Dn}}}{{b{h}}}}{{{AJl{c}}e}{{AJl{c}}}AJn{{B`{An}}}}{{{b{AfAJj}}}f}{{{b{Af{AKn{ALf}}}}Ch}{{Ib{{I`{Hn}}}}}}{{{b{AfALj}}AIn}f}{{{b{Af}}}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}}{{n{{b{Cj}}}}}}`{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{{{b{ANf}}}{{Ib{{I`{Hn}}}}}}0`{{{AJl{ALb}}}{{AJl{ALb}}}}{bc{}}000{bAn}0{c{{Cn{e}}}{}{}}0000000000{{}{{Cn{c}}}{}}0000000000{bJl}0000000000{{{b{Cj}}{b{Cj}}}{{Cn{AJjANh}}}}{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AKn{ALf}}}}{b{Cj}}{ANj{{b{Cj}}}}ce}{{ABn{f}}}{{AMl{}{{Md{{b{Cj}}}}}}}AMl}{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}{{{b{AJj}}}AMj}{{{b{Af{AKn{c}}}}g}{{Ib{{I`{Hn}}}}}AL`Ad{{B`{{Mj{e}}}}H`Hb}}{{}c{}}0000000000{{{b{ALj}}}{{ABn{{AKn{ALf}}}}}}``{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{ANl}}}{{AJl{ALb}}}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0{{{b{AfANl}}}f}{{{b{ANl}}{b{AfEb}}}Eh}{cc{}}0{{{b{ANl}}}An}{{}Ch}{{}ANl}1>>{{}{{Cn{HhHj}}}}01{b}0{{{b{ANl}}}AJd}88{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{}c{}}0`````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}000000000000000{{ANnANn}c{}}{b{{b{h}}}}00000000000000000000000``````````{b{{b{c}}}{}}0000000000000000000000000000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000000000000000000000000000{AO`ANn}{{{b{AOb}}}AOb}{{{b{AOd}}}AOd}{{{b{AOf}}}AOf}{{{b{ANn}}}ANn}{{{b{{AC`{c}}}}}{{AC`{c}}}{BdAd}}{{{b{{AD`{c}}}}}{{AD`{c}}}{BdAd}}{{{b{{AOh{c}}}}}{{AOh{c}}}{BdAd}}{{{b{{AOj{c}}}}}{{AOj{c}}}{BdAd}}{{{b{AOl}}}AOl}{{{b{AOn}}}AOn}{{{b{B@`}}}B@`}{{{b{B@b}}}B@b}{{{b{B@d}}}B@d}{{{b{B@f}}}B@f}{{{b{B@h}}}B@h}{{{b{F`}}}F`}{{b{b{Afc}}}f{}}000000000000000{bf}000000000000000{{{b{AOf}}{b{AOf}}}Nd}{{b{b{c}}}Nd{}}````{{}{{ADb{c}}}Ad}{c{{Cn{{Of{eF`c}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}0000000000000000000000000000000000{Ch{{b{Afc}}}{}}0000000000000000000000000000000000{c{{Cn{AOb}}}D`}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{c{{Cn{AOd}}}D`}1{c{{Cn{AOf}}}D`}{c{{Cn{ANn}}}D`}33333{c{{Cn{AOl}}}D`}4{c{{Cn{{B@j{e}}}}}D`Ad}55{c{{Cn{{B@l{e}}}}}D`Ad}66{c{{Cn{B@n}}}D`}7{c{{Cn{{BA`{e}}}}}D`Ad}8{c{{Cn{{BAb{e}}}}}D`Ad}99{c{{Cn{BAd}}}D`}:{c{{Cn{BAf}}}D`};;{c{{Cn{BAh}}}D`}<{c{{Cn{{BAj{e}}}}}D`Ad}={c{{Cn{{BAl{e}}}}}D`Ad}{c{{Cn{AOn}}}D`}?{c{{Cn{B@`}}}D`}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{B@b}}}D`}1{c{{Cn{B@d}}}D`}22{c{{Cn{B@f}}}D`}{c{{Cn{B@h}}}D`}4{c{{Cn{F`}}}D`}55{c{{Cn{{BAn{e}}}}}D`Ad}6{c{{Cn{{BB`{e}}}}}D`Ad}7{c{{Cn{{BBb{e}}}}}D`Ad}8{c{{Cn{{BBd{e}}}}}D`Ad}{c{{Cn{{BBf{e}}}}}D`Ad}:{c{{Cn{{BBh{e}}}}}D`Ad};{Chf}0000000000000000000000000000000000{{{b{AOf}}{b{AOf}}}Db}{{{b{ANn}}{b{ANn}}}Db}{{{b{{AC`{c}}}}{b{{AC`{c}}}}}Db{LlAd}}{{{b{{AD`{c}}}}{b{{AD`{c}}}}}Db{LlAd}}{{{b{{AOh{c}}}}{b{{AOh{c}}}}}Db{LlAd}}{{{b{{AOj{c}}}}{b{{AOj{c}}}}}Db{LlAd}}{{{b{AOl}}{b{AOl}}}Db}{{{b{{B@j{c}}}}{b{{B@j{c}}}}}Db{LlAd}}{{{b{{B@l{c}}}}{b{{B@l{c}}}}}Db{LlAd}}{{{b{Ff}}{b{Ff}}}Db}{{{b{B@n}}{b{B@n}}}Db}{{{b{{BA`{c}}}}{b{{BA`{c}}}}}Db{LlAd}}{{{b{{BAb{c}}}}{b{{BAb{c}}}}}Db{LlAd}}{{{b{{ACd{c}}}}{b{{ACd{c}}}}}Db{LlAd}}{{b{b{c}}}Db{}}0000000000000000000000000000000000000000000000000000000{AO`ANn}0``{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}e{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}c{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}```{{{b{AOb}}{b{AfEb}}}Eh}0{{{b{AOd}}{b{AfEb}}}Eh}0{{{b{AOf}}{b{AfEb}}}Eh}0{{{b{ANn}}{b{AfEb}}}Eh}0{{{b{{AC`{c}}}}{b{AfEb}}}EhAd}{{{b{{AC`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AD`{c}}}}{b{AfEb}}}EhAd}{{{b{{AD`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AOh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AOj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{AOl}}{b{AfEb}}}Eh}{{{b{{B@j{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{B@l{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Ff}}{b{AfEb}}}Eh}0{{{b{B@n}}{b{AfEb}}}Eh}{{{b{{BA`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ACd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BAd}}{b{AfEb}}}Eh}{{{b{{ADb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BAf}}{b{AfEb}}}Eh}{{{b{BAh}}{b{AfEb}}}Eh}{{{b{{BAj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{AOn}}{b{AfEb}}}Eh}0{{{b{B@`}}{b{AfEb}}}Eh}0{{{b{B@b}}{b{AfEb}}}Eh}0{{{b{B@d}}{b{AfEb}}}Eh}0{{{b{B@f}}{b{AfEb}}}Eh}0{{{b{B@h}}{b{AfEb}}}Eh}0{{{b{F`}}{b{AfEb}}}Eh}0{{{b{{BAn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BB`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBh{c}}}}{b{AfEb}}}Eh{EfAd}}{cc{}}00{AO`ANn}11111111{BCdFf}{BCfFf}33333333333{A`AOn}{FhAOn}55{FhB@`}{A`B@`}7{A`B@b}{FfB@b}{FhB@b}{FhB@d};{A`B@d}<{B@dB@f}{FhB@f}{A`B@f}{AOnB@f}{B@`B@f}{FhB@h}{A`B@h}{cc{}}0{{{B@j{c}}}{{BAn{c}}}Ad}1{{{ADn{{B@l{c}}}}}{{BB`{c}}}Ad}22{{{ADn{{BAb{c}}}}}{{BBd{c}}}Ad}33{{{BAj{c}}}{{BBf{c}}}Ad}4{{{BAl{c}}}{{BBh{c}}}Ad}{b{{A@d{{B@j{c}}}}}Ad}{b{{A@d{{B@l{c}}}}}Ad}`{{{b{ACb}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}}{{Ib{{I`{Hn}}}}}}{{{b{ACb}}An}{{Ib{{I`{Hn}}}}}}{{{b{ACb}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad}````{c{{Gl{ce}}}{GnH`Hb}{}}0000000000000`````{{}}0000000{{}Ch}0000000000000000000000000000000000{{}c{}}0000000000000000000000000000000000{{}{{BCh{An}}}}{{{b{AOf}}}Db}00```{{}{{Cn{HhHj}}}}0000000000000000000000000000000000{{{b{{BCj{}{{BC`{c}}}}}}}c{BdEfJhMbH`HbLlLn}}{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}{{ADn{i}}}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}{{AOfAO`}ANn}````````{{{b{AOf}}{b{AOf}}}{{n{Nd}}}}{b}0000000000000000000000000000000000{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}g{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}```{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}c{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}````{{{b{AOb}}c}CnJj}{{{b{AOd}}c}CnJj}{{{b{AOf}}c}CnJj}{{{b{ANn}}c}CnJj}{{{b{AOl}}c}CnJj}{{{b{{B@j{c}}}}e}CnAdJj}{{{b{{B@l{c}}}}e}CnAdJj}{{{b{B@n}}c}CnJj}{{{b{{BA`{c}}}}e}CnAdJj}{{{b{{BAb{c}}}}e}CnAdJj}{{{b{BAd}}c}CnJj}{{{b{BAf}}c}CnJj}{{{b{BAh}}c}CnJj}{{{b{{BAj{c}}}}e}CnAdJj}{{{b{{BAl{c}}}}e}CnAdJj}{{{b{AOn}}c}CnJj}{{{b{B@`}}c}CnJj}{{{b{B@b}}c}CnJj}{{{b{B@d}}c}CnJj}{{{b{B@f}}c}CnJj}{{{b{B@h}}c}CnJj}{{{b{F`}}c}CnJj}{{{b{{BAn{c}}}}e}CnAdJj}{{{b{{BB`{c}}}}e}CnAdJj}{{{b{{BBb{c}}}}e}CnAdJj}{{{b{{BBd{c}}}}e}CnAdJj}{{{b{{BBf{c}}}}e}CnAdJj}{{{b{{BBh{c}}}}e}CnAdJj}{{{b{AOf}}}Ch}```{{{b{Ff}}}{{n{{b{h}}}}}}{{{b{AOn}}}{{n{{b{h}}}}}}{{{b{B@`}}}{{n{{b{h}}}}}}{{{b{B@b}}}{{n{{b{h}}}}}}{{{b{B@d}}}{{n{{b{h}}}}}}{{{b{B@f}}}{{n{{b{h}}}}}}{{{b{B@h}}}{{n{{b{h}}}}}}{{{b{F`}}}{{n{{b{h}}}}}}{{{b{AOn}}}Bb}{{{b{B@`}}}Bb}{{{b{B@b}}}Bb}{{{b{B@d}}}Bb}{{{b{B@f}}}Bb}{{{b{B@h}}}Bb}{{{b{F`}}}Bb}{{ANnANn}c{}}```````{bc{}}000000000000000{bAn}0000000000000````{c{{Cn{e}}}{}{}}0{{{b{Cj}}}{{Cn{AOfc}}}{}}1111111{{{Ml{c}}}{{Cn{{B@j{c}}e}}}Ad{}}22{{{Ml{c}}}{{Cn{{B@l{c}}e}}}Ad{}}3333{{{En{{b{{Ml{c}}}}Ch}}}{{Cn{{BAb{c}}e}}}Ad{}}44444444444444444444{{}{{Cn{c}}}{}}0000000000000000000000000000000000{bJl}0000000000000000000000000000000000{AO`ANn}`{{}c{}}0000000000000000000000000000000000`````{{bd}f}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{{BCl{ce}}}}}{{BCl{ce}}}{}{}}{{b{b{Afc}}}f{}}{bf}{{}{{BCl{ce}}}{}{}}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{Chf}{{{b{{BCl{ce}}}}{b{AfEb}}}Eh{}{}}{cc{}}{{}Ch}>{{}{{Cn{HhHj}}}}{b}``{{BCnc}f{}}{{BD`c}{{`{{Hn{}{{Id{f}}}}H`}}}{}}{{{b{{BCl{eg}}}}eik}f{}{{BDb{c}}}BD`{{BDd{ce}}}{{AMl{}{{Md{g}}}}H`}}{bc{}}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}{{}c{}}{{{BCl{ce}}{Dl{BDf}}}{{BCl{ce}}}{}{}}{{{BCl{ce}}ABf}{{BCl{ce}}}{}{}}`````{{bd}f}000{{{b{{BDh{c}}}}}f{}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{b{{BDj{c}}}}}{{BDj{c}}}Ad}{{{b{{BDl{c}}}}}{{BDl{c}}}{BdJf}}{{{b{{BDh{c}}}}}{{BDh{c}}}{}}{{{b{BDn}}}BDn}{{b{b{Afc}}}f{}}000{bf}000{{}{{BDj{c}}}Ad}{{}BDn}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}000{Chf}000>{{{b{BDd}}e}{{Ib{{I`{Hn}}}}}{}{{BDb{c}}}}{{{b{{BDj{c}}}}BE`}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDj{c}}}}BEb}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDj{c}}}}BEd}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDl{c}}}}BE`}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDl{c}}}}BEd}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDl{c}}}}BEb}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDh{g}}}}e}{{Ib{{I`{Hn}}}}}Ad{{BDb{c}}}{{BDd{ce}}Hb}}{{{b{BDn}}e}{{Ib{{I`{Hn}}}}}{}{H`{BDb{c}}}}{{{b{{BDj{c}}}}{b{AfEb}}}EhAd}{{{b{{BDl{c}}}}{b{AfEb}}}Eh{EfJf}}{{{b{{BDh{c}}}}{b{AfEb}}}EhEf}{{{b{BDn}}{b{AfEb}}}Eh}{cc{}}000{{}Ch}000{{}c{}}000{{}{{Cn{HhHj}}}}000{{BEfc}{{BDl{c}}}Jf}{c{{BDh{c}}}{}}{b}000{bc{}}000{c{{Cn{e}}}{}{}}000{{}{{Cn{c}}}{}}000{bJl}000{{{b{{BDh{c}}}}}f{}}09999{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBEb}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBE`}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{AFh{c}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBEd}}Ef}}`````{{bd}f}00{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{BEb}}}BEb}{{{b{BEd}}}BEd}{{{b{BE`}}}BE`}{{b{b{Afc}}}f{}}00{bf}00{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{BEb}}{b{BEb}}}Db}{{{b{BEd}}{b{BEd}}}Db}{{{b{BE`}}{b{BE`}}}Db}{{b{b{c}}}Db{}}00000000000{{{b{BEb}}{b{AfEb}}}Eh}{{{b{BEd}}{b{AfEb}}}Eh}{{{b{BE`}}{b{AfEb}}}Eh}{cc{}}0{ChBE`}1{{{b{c}}{b{e}}}Cd{GdGf}Gh}00{{{b{BEb}}{b{Afc}}}fGj}{{{b{BEd}}{b{Afc}}}fGj}{{{b{BE`}}{b{Afc}}}fGj}{{}Ch}00{{}c{}}00{{}{{Cn{HhHj}}}}00{b}00{bc{}}00{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00666`````````````````{{bd}f}0`{b{{b{h}}}}00{{{b{Fd}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{Fd}}}{{n{{b{h}}}}}}{{{b{{ACj{ce}}}}}{{ACj{ce}}}Ad{{ACl{c}}}}{{{b{Fd}}}Fd}{{b{b{Afc}}}f{}}0{bf}0{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}NdAd{{ACl{c}}}}{{b{b{c}}}Nd{}}{{}BEh}{{{b{BEh}}}{{Cn{{Of{cFde}}Oh}}}{H`HbOj}Jf}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{{b{Fd}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{c{{Cn{Fd}}}D`}{Chf}00{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}DbAd{{ACl{c}}}}{{b{b{c}}}Db{}}000`{{{b{{ACj{ce}}}}{b{AfEb}}}EhAd{{ACl{c}}}}0{{{b{Fd}}{b{AfEb}}}Eh}0{cc{}}0{{{En{AnBb}}}Fd}1{A@bFd}{A`Fd}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{ACh}}}{{Ib{{I`{Hn}}}}}}{{{b{ACn}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}}{{{b{{ACj{ce}}}}{b{Afg}}}fAd{{ACl{c}}}Gj}{c{{Gl{ce}}}{GnH`Hb}{}}0{{}{{b{Cj}}}}{{}}{{}Ch}00{{{b{AfAE`}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}}{{{b{Af{ACl{}{{BEj{c}}{BEl{e}}{BEn{g}}{BF`{i}}{BFb{k}}}}}}c{b{{ADl{ecg}}}}}{{ABn{f}}}{BFdH`HbJhBFfBFhMbGnBFjBFl}{BFnH`HbJhMbBFjBFl}{BG`H`}{{BGb{g}}H`{BGf{{b{BGd}}}}GnEf{B`{BGd}}}{{BGh{ecg}}}}{{}c{}}00{{}{{Cn{HhHj}}}}00{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}{{n{Nd}}}Ad{{ACl{c}}}}{b}00{{{b{Fd}}c}CnJj}{{{b{AfAE`}}Ch}{{Ib{{I`{Hn}}}}}}{{{b{Fd}}}{{n{{b{h}}}}}};{{{b{Fd}}}Bb}{bc{}}0{bAn}0<{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00<<<````````````````{{bd}f}0000000{{{b{BGj}}Ch}f}{{{b{BGl}}BGn}f}{b{{b{h}}}}00{{{b{BH`}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00000000{{{b{Af}}}{{b{Afc}}}{}}00000000{{{b{BH`}}}{{n{{b{h}}}}}}{{{b{AEb}}}AEb}{{{b{BGj}}}BGj}{{{b{BHb}}}BHb}{{{b{BGl}}}BGl}{{{b{BHd}}}BHd}{{{b{BHf}}}BHf}{{{b{BHh}}}BHh}{{{b{BHj}}}BHj}{{b{b{Afc}}}f{}}0000000{bf}0000000{{{b{AEb}}An{ADn{An}}}{{I`{BHl}}}}{{{b{BHd}}{ADn{An}}}{{I`{BHn}}}}{{{b{BHf}}{ADn{An}}}{{I`{BI`}}}}{{{b{BHh}}{ADn{An}}}{{I`{BIb}}}}{{{b{BHj}}{ADn{An}}}f}{{{b{AEb}}An{n{An}}}{{I`{BHn}}}}{{{b{AEb}}An{n{An}}}{{I`{BI`}}}}{{{b{AEb}}An{n{An}}}{{I`{BIb}}}}{{{b{AEb}}An}f}{{}AEb}{Ch{{b{c}}}{}}00000000{Ch{{b{Afc}}}{}}00000000{{{b{BH`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00000000{Chf}00000000{{{b{AEb}}}{{Cn{Anc}}}{}}{{{b{BH`}}{b{AfEb}}}Eh}0{{{b{AEb}}{b{AfEb}}}Eh}{{{b{BGj}}{b{AfEb}}}Eh}{{{b{BHb}}{b{AfEb}}}Eh}{{{b{BGl}}{b{AfEb}}}Eh}{{{b{BHd}}{b{AfEb}}}Eh}{{{b{BHf}}{b{AfEb}}}Eh}{{{b{BHh}}{b{AfEb}}}Eh}{{{b{BHj}}{b{AfEb}}}Eh}{cc{}}{BIdBH`}11111111{{{b{AEb}}{b{Cj}}}{{Cn{BHfBH`}}}}{{{b{AEb}}An{ADn{An}}}{{I`{BIf}}}}{{{b{BGj}}}Ch}{{{b{BHb}}}Ch}{{{b{BHd}}{b{{AN`{c}}}}}BGj{{BIh{Cj}}}}{{{b{BHf}}{b{{AN`{c}}}}}BHb{{BIh{Cj}}}}{{{b{BHh}}{b{{AN`{c}}}}}BGl{{BIh{Cj}}}}{{{b{AEb}}{b{Cj}}}{{Cn{BGjBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cn{BHdBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cn{BHbBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cn{BGlBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cn{BHhBH`}}}}{{{b{AEb}}c}{{Cn{AEbBH`}}}AMl}{c{{Gl{ce}}}{GnH`Hb}{}}{{{b{AEb}}An{ADn{An}}}{{I`{BIj}}}}{{}}{{}Ch}00000000{{}c{}}00000000{{}{{Cn{HhHj}}}}00000000{{{b{BGl}}}BGn}{b}00000000{{{b{BGl}}}Ch}{{{b{BHb}}Ch}f}{{{b{BH`}}}{{n{{b{h}}}}}}{{{b{AEb}}An}{{I`{AEf}}}}5{{{b{AEb}}An{ADn{An}}}{{I`{BIl}}}}{bc{}}0000000{bAn}{c{{Cn{e}}}{}{}}00000000{{}{{Cn{c}}}{}}00000000{bJl}00000000{{{b{BHb}}BIn}f}>>>>>>>>>`````````````````````````{{bd}f}00000000`{b{{b{h}}}}00{{{b{El}}}{{n{{b{l}}}}}}`{{{b{In}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{BJ`{ce}}}El{{B`{An}}}{{B`{Bb}}}}{{{b{El}}}{{n{{b{h}}}}}}{{{b{{ACf{c}}}}}{{ACf{c}}}Ad}{{{b{BJb}}}BJb}{{{b{{BJd{c}}}}}{{BJd{c}}}Bd}{{{b{BJf}}}BJf}{{{b{BJh}}}BJh}{{{b{{BJj{c}}}}}{{BJj{c}}}Bd}{{{b{{BJl{ce}}}}}{{BJl{ce}}}BdBd}{{{b{{BJ`{ce}}}}}{{BJ`{ce}}}BdBd}{{{b{El}}}El}{{b{b{Afc}}}f{}}00000000{bf}00000000{{{b{BJb}}{b{BJb}}}Nd}{{b{b{c}}}Nd{}}{{{b{In}}}{{Ib{{I`{Hn}}}}}}{{}{{BJd{c}}}{}}{{}BJn}{{{b{BJn}}c}{{Cn{{Of{eElc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}000000000{Ch{{b{Afc}}}{}}000000000{{{b{El}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{BJb}}}D`}1{c{{Cn{{BJd{e}}}}}D`BK`}2222222{c{{Cn{El}}}D`}3{Chf}000000000`{{{b{BJb}}{b{BJb}}}Db}{{{b{{BJd{c}}}}{b{{BJd{c}}}}}DbLl}{{b{b{c}}}Db{}}0000000`{{{BJ`{ce}}}{{Cn{gEl}}}{{B`{An}}}{{B`{Bb}}}{}}{{{b{{ACf{c}}}}{b{AfEb}}}EhAd}{{{b{BJb}}{b{AfEb}}}Eh}{{{b{{BJd{c}}}}{b{AfEb}}}EhEf}{{{b{BJf}}{b{AfEb}}}Eh}{{{b{BJh}}{b{AfEb}}}Eh}{{{b{{BJj{c}}}}{b{AfEb}}}EhEf}{{{b{{BJl{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{BJ`{ce}}}}{b{AfEb}}}EhEfEf}{{{b{El}}{b{AfEb}}}Eh}0{{{Kb{c}}}{{ACf{c}}}Ad}{cc{}}00{{{b{{BJd{c}}}}}{{n{Cd}}}BKb}111111{A@bEl}{A`El}{{{En{AnBb}}}El}4{{}BJb}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{In}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{BJb}}{b{Afc}}}fGj}{c{{Gl{ce}}}{GnH`Hb}{}}{{}}{{}Ch}000000000{cElGn}{{}c{}}000000000{{BJfc}El{}}{{BJhc}El{}}{{{BJj{c}}e}El{{B`{An}}}{}}{{{BJl{ce}}g}El{{B`{An}}}{{B`{Cd}}}{}}{{{BJ`{ce}}g}El{{B`{An}}}{{B`{Bb}}}{}}{{{b{BJb}}}Db}{{}{{Cn{HhHj}}}}000000000``````{{{b{BJb}}{b{BJb}}}{{n{Nd}}}}{{{b{In}}}{{Ib{{I`{Hn}}}}}}{b}000000000``{{{b{BJb}}c}CnJj}{{{b{{BJd{c}}}}e}CnJhJj}{{{b{El}}c}CnJj}{{{b{El}}}{{n{{b{h}}}}}}`{{{b{El}}}Bb}`6{bc{}}00000000{bAn}{c{{Cn{e}}}{}{}}000000000{{}{{Cn{c}}}{}}000000000{bJl}000000000{{{b{In}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}{{}c{}}000000000`````````````````{{bd}f}`{b{{b{h}}}}00{{{b{Fb}}}{{n{{b{l}}}}}}{{{b{J`}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{Fb}}}Fb}{{b{b{Afc}}}f{}}{bf}{{{b{J`}}}{{AKf{AEb}}}}0{{}BKd}{{{b{BKd}}c}{{Cn{{Of{eFbc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{{b{Fb}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{Fb}}}D`}1{Chf}0??`{{{b{Fb}}{b{AfEb}}}Eh}0{cc{}}0{A@bFb}{AnFb}{c{{Gl{ce}}}{GnH`Hb}{}}{{}}{{}Ch}0{{}c{}}0{{}{{Cn{HhHj}}}}0{{{b{AEd}}}{{b{AEb}}}}{b}0{{{b{BKf}}}{{I`{AEf}}}}{{{b{Fb}}c}CnJj}{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{Fb}}}Bb}{{{b{J`}}}{{Ib{{I`{Hn}}}}}}0{bc{}}{bAn}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0==````{{bd}f}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{BKh}}}BKh}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0{{{b{Af{BKj{c}}}}}fH`}{{{b{BKh}}{b{AfEb}}}Eh}{{{b{{BKj{c}}}}{b{AfEb}}}EhH`}{cc{}}0{{}Ch}0{{}c{}}0{{{BKj{c}}}cH`}{{}{{Cn{HhHj}}}}0{b}0{{ce}BKhGn{HnH`}}{{cg}{{BKj{e}}}GnH`{{Hn{}{{Id{e}}}}H`}}{bc{}}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}099``{{}f}{ABff}```````{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{Ch{{Ib{{I`{Hn}}}}}}{{{b{{AIl{c}}}}}cBKl}{{{b{{AIl{c}}}}Ch}cBKl}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{{{b{Af{AIl{c}}}}}fBKl}{Chf}{cc{}}{{{b{{AIl{c}}}}}{{b{{Ij{ADdBKnBL`}}}}}BKl}{{{b{{BKl{}{{BLb{c}}}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{H`Hb}}{{}Ch}{{}{{AIl{c}}}{BKlBKf}}{c{{AIl{e}}}{{Ih{{b{Af{BLf{BLd}}}}}}}{BKlBKf}}{{}c{}}{{}{{Cn{HhHj}}}}{{{b{{AIl{c}}}}}ChBKl}{b}{{{b{{AIl{c}}}}Ch}{{BLh{ADd}}}BKl}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AIl{{BKl{}{{BLb{c}}}}}}}}}{{Ib{{I`{Hn}}}}}{H`Hb}}{{{AIl{c}}}fBKl}{{{b{Af{AIl{c}}}}eg}fBKlGn{HnH`}}{{{b{Af{AIl{c}}}}}fBKl}{{{b{{AIl{c}}}}}bBKl}{{{b{{AIl{c}}}}BLj}fBKl}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}>`````````````{{bd}f}00``{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00`{{{b{ADd}}}ADd}{{{b{BL`}}}BL`}{{{b{BKn}}}BKn}{{b{b{Afc}}}f{}}00{bf}00{{{b{ADd}}{b{ADd}}}Nd}{{{b{BKn}}{b{BKn}}}Nd}{{b{b{c}}}Nd{}}0`{{}ADd}{{}BKn}`{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{ADd}}}D`}11{c{{Cn{BKn}}}D`}{Chf}00{{{b{ADd}}{b{ADd}}}Db}{{{b{BKn}}{b{BKn}}}Db}{{b{b{c}}}Db{}}0000000{{{b{BLl}}}c{}}0{{{b{ADd}}{b{AfEb}}}Eh}{{{b{BL`}}{b{AfEb}}}Eh}{{{b{BKn}}{b{AfEb}}}Eh}{cc{}}00{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{ADd}}{b{Afc}}}fGj}{{{b{BKn}}{b{Afc}}}fGj}{{}{{b{Cj}}}}{{{b{BLl}}}Cd}{{}Ch}00{{{b{AfBLn}}c{b{{ADl{ecg}}}}}{{ABn{f}}}{}{}{}}{{}c{}}00{{{b{BM`}}{b{c}}}e{}{}}`{{}{{Cn{HhHj}}}}00{{{b{BM`}}{b{c}}}Ch{}}`{{{ADn{BMb}}}BLj}{{{b{BLj}}}c{}}{{{b{BLl}}}{{ADn{c}}}{}}{{{b{ADd}}{b{ADd}}}{{n{Nd}}}}{{{b{BKn}}{b{BKn}}}{{n{Nd}}}}`{b}00`{{{b{BLl}}}c{}}`0{{{b{ADd}}c}CnJj}{{{b{BKn}}c}CnJj}`{{}{{b{Cj}}}}{{{b{BLl}}}Cd}`{bc{}}00{{{b{BM`}}{b{c}}{b{e}}}{{n{{En{gi}}}}}{}{}{}{}}`{{}Ch}{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00```{{}c{}}00`{{{b{BKb}}}Cd}","D":"EG`","p":[[1,"reference"],[5,"Private",4370],[1,"unit"],[10,"Error",4371],[6,"Error",0,4372],[5,"Backtrace",4373],[6,"Option",4374],[6,"QueryError",0],[5,"Leaf",0,4375],[10,"NodeType",4376],[0,"mut"],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"ErrorSnafu",0],[5,"String",4377],[10,"Into",4378],[5,"StatusCode",4379],[10,"Clone",4380],[5,"ApiState",0],[5,"UpgradeLock",4381],[5,"Commitment",4382],[10,"Versions",4376],[10,"Resolvable",0,4383],[10,"Committable",4382],[10,"RngCore",4384],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[5,"With",4385],[6,"Result",4386],[10,"Deserializer",4387],[1,"bool"],[5,"UpgradeProposalData",4388],[5,"UpgradeThreshold",4389],[5,"SimpleCertificate",4389],[5,"RwLock",4390],[5,"Arc",4391],[5,"Error",1649,4392],[6,"BlockError",4375],[5,"Formatter",4393],[5,"Error",4393],[10,"Debug",4393],[8,"Result",4393],[6,"Error",315],[6,"Error",3767],[1,"tuple"],[6,"Error",2090],[6,"Error",4073],[6,"Error",3401],[6,"TimestampConversionError",2090,4394],[6,"Error",4395],[1,"never"],[5,"OwnedFd",4396],[10,"IntoFilelike",4397],[10,"IntoSocketlike",4397],[5,"QuorumProposal",4375],[10,"Hash",4398],[10,"Sized",4399],[10,"BuildHasher",4398],[10,"Hasher",4398],[5,"IndentedSection",4400],[10,"Display",4393],[10,"Send",4399],[10,"Sync",4399],[5,"QuorumData",4388],[5,"SuccessThreshold",4389],[5,"Layout",4401],[5,"LayoutError",4401],[5,"DynGuard",4402],[10,"Future",4403],[5,"Box",4404],[5,"Pin",4405],[17,"Output"],[8,"BoxFuture",4406],[10,"FnOnce",4407],[5,"SystemContextHandle",4408],[10,"AvailabilityDataSource",315,4409],[10,"NodeDataSource",3767,4410],[10,"StatusDataSource",4073,4411],[10,"VersionedDataSource",1000,4412],[10,"NodeImplementation",4376],[10,"StaticVersionType",4413],[10,"Serialize",4414],[10,"Serializer",4414],[5,"TypeId",4415],[5,"InconsistentLeafError",315,4416],[5,"LeafQueryData",315,4416],[8,"BlockHash",315,4416],[5,"PayloadQueryData",315,4416],[5,"VidCommonQueryData",315,4416],[5,"TransactionQueryData",315,4416],[5,"FetchLeafSnafu",315],[5,"FetchBlockSnafu",315],[5,"FetchTransactionSnafu",315],[5,"InvalidTransactionIndexSnafu",315],[5,"CustomSnafu",315],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",315,4416],[10,"PartialEq",4417],[10,"Eq",4417],[10,"Ord",4417],[10,"DeserializeOwned",4387],[17,"Item"],[10,"Iterator",4418],[6,"LeafId",315,4409],[6,"BlockId",315,4409],[5,"BlockQueryData",315,4416],[5,"BlockSummaryQueryData",315,4416],[5,"TransactionSummaryQueryData",315,4416],[5,"RequestSnafu",315],[6,"Ordering",4417],[8,"VidCommon",0,4419],[6,"Fetch",315,4420],[10,"ErrorCompat",4421],[17,"Source"],[5,"NoneError",4421],[10,"IntoError",4421],[8,"Payload",0],[5,"Options",315],[5,"Api",4422],[6,"ApiError",4422],[10,"ReadState",4423],[8,"TransactionIndex",315,4416],[8,"Transaction",0],[8,"LeafHash",315,4416],[6,"RequestError",4424],[8,"Result",4395],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"VidCommonRange"],[10,"Stream",4425],[10,"Unpin",4399],[10,"RangeBounds",4426],[8,"TransactionHash",315,4416],[8,"VidCommitment",0,4419],[8,"Header",0],[10,"UpdateAvailabilityData",315,4409],[8,"VidShare",0,4419],[8,"Metadata",0],[8,"QuorumCertificate",4389],[8,"TransactionInclusionProof",315,4416],[10,"QueryableHeader",315,4416],[5,"Duration",4427],[5,"ExtensibleDataSource",1000,4428],[5,"MetricsDataSource",1000,4429],[10,"Transaction",1000,4412],[8,"Result",4392],[6,"BlockIdentifier",2090,4394],[10,"ExplorerDataSource",2090,4430],[5,"GetBlockSummariesRequest",2090,4394],[6,"WindowStart",3767,4410],[10,"MerklizedStateHeightPersistence",3401,4431],[6,"Snapshot",3401,4431],[10,"MerklizedState",3401,4431],[10,"MerklizedStateDataSource",3401,4431],[6,"TransactionIdentifier",2090,4394],[5,"GetTransactionSummariesRequest",2090,4394],[5,"MockTypes",4234],[5,"Event",4432],[10,"TestableDataSource",4194],[10,"Default",4433],[5,"MerkleProof",4434],[5,"Vec",4435],[10,"UpdateStateData",3401,4431],[5,"PrometheusMetrics",3521],[10,"HasMetrics",4073,4411],[10,"Metrics",4436],[17,"Transaction"],[17,"ReadOnly"],[10,"UpdateDataSource",1000,4412],[5,"Transaction",1119,4437],[5,"FetchingDataSource",1119],[10,"NodeStorage",1318],[5,"Builder",1119],[10,"PruneStorage",1603],[10,"AvailabilityProvider",1119],[5,"Pruner",1119],[8,"Config",1300],[8,"Builder",1300],[5,"Path",4438],[5,"FileSystemStorage",1354],[5,"AtomicStoreLoader",4439],[10,"AvailabilityStorage",1318],[10,"ExplorerStorage",1318],[10,"MerklizedStateHeightStorage",1318],[10,"MerklizedStateStorage",1318],[10,"PrunedHeightStorage",1603],[8,"FileSystemDataSource",1280],[8,"SqlDataSource",1300],[5,"Transaction",1354],[10,"Revert",1354],[17,"Target"],[5,"FileSystemStorageInner",1354],[10,"Deref",4440],[5,"RwLockReadGuard",4390],[5,"RwLockWriteGuard",4390],[6,"PersistenceError",4441],[5,"Transaction",1440],[5,"NoStorage",1440],[6,"Transaction",1505],[6,"DataSource",1505],[5,"MockNetwork",4194],[5,"PrunerCfg",1603],[17,"Pruner"],[10,"PrunerConfig",1603],[1,"u16"],[1,"i32"],[5,"OffsetDateTime",4442],[5,"Migration",1649,4443],[5,"Config",1649],[10,"Database",1649,4444],[10,"Params",1649,4445],[8,"Query",1649,4445],[5,"QueryBuilder",1649,4446],[8,"QueryResult",0],[8,"Db",1649,4447],[10,"Encode",4448],[10,"Type",4449],[5,"Transaction",1649,4445],[10,"TransactionMode",1649,4445],[5,"Postgres",1649,4450],[5,"Chain",4392],[5,"Write",1649,4445],[5,"Read",1649,4445],[5,"SqlStorage",1649],[5,"Pruner",1649],[17,"Database"],[10,"Executor",1649,4451],[10,"Execute",4451],[5,"Sqlite",1649,4452],[5,"FmtValue",4453],[5,"PgConnectOptions",4454],[1,"u32"],[10,"IntoIterator",4455],[6,"Type",4443],[1,"slice"],[8,"QueryAs",1649,4445],[10,"FromRow",4456],[5,"TestArgs",4457],[5,"Error",4458],[1,"array"],[5,"TmpDb",2049],[5,"MonetaryValue",2090,4459],[1,"i128"],[5,"CurrencyMismatchError",2090,4460],[5,"InvalidCurrencyCodeError",2090,4460],[6,"CurrencyCode",2090,4460],[5,"BlockRange",2090,4394],[5,"TransactionRange",2090,4394],[5,"Timestamp",2090,4394],[6,"GetBlockDetailError",2090,4394],[6,"GetBlockSummariesError",2090,4394],[6,"GetTransactionDetailError",2090,4394],[6,"GetTransactionSummariesError",2090,4394],[6,"GetExplorerSummaryError",2090,4394],[6,"GetSearchResultsError",2090,4394],[5,"BlockDetail",2090,4394],[5,"BlockSummary",2090,4394],[5,"FeeAttribution",2090,4394],[5,"TransactionDetail",2090,4394],[5,"TransactionSummary",2090,4394],[6,"TransactionSummaryFilter",2090,4394],[5,"GenesisOverview",2090,4394],[5,"ExplorerHistograms",2090,4394],[5,"ExplorerSummary",2090,4394],[5,"SearchResult",2090,4394],[5,"BlockDetailResponse",2090],[5,"BlockSummaryResponse",2090],[5,"TransactionDetailResponse",2090],[5,"TransactionSummariesResponse",2090],[5,"ExplorerSummaryResponse",2090],[5,"SearchResultResponse",2090],[17,"BalanceAmount"],[17,"WalletAddress"],[17,"ProposerId"],[17,"NamespaceId"],[10,"ExplorerHeader",2090,4461],[5,"TryFromIntError",4462],[5,"ComponentRange",4463],[6,"Resettable",4464],[10,"ExplorerTransaction",2090,4461],[5,"Fetcher",3167],[10,"LocalCallback",3167],[10,"Callback",3167],[10,"Request",3311],[10,"Provider",3201],[5,"Semaphore",4465],[5,"TestProvider",3201,4466],[5,"AnyProvider",3201,4467],[5,"QueryServiceProvider",3201,4468],[5,"NoFetching",3201],[5,"LeafRequest",3311],[5,"PayloadRequest",3311],[5,"VidCommonRequest",3311],[5,"Url",4469],[5,"Options",3401],[17,"Key"],[17,"Entry"],[17,"T"],[17,"Commit"],[17,"Digest"],[10,"Index",4470],[10,"ToTraversalPath",4470],[10,"FromStr",4471],[10,"CanonicalSerialize",4472],[10,"CanonicalDeserialize",4472],[10,"Element",4470],[10,"NodeValue",4470],[10,"MerkleCommitment",4470],[5,"TaggedBase64",4473],[10,"TryFrom",4378],[10,"DigestAlgorithm",4470],[5,"Counter",3521],[5,"Histogram",3521],[1,"f64"],[6,"MetricsError",3521],[5,"Gauge",3521],[5,"CounterFamily",3521],[5,"GaugeFamily",3521],[5,"HistogramFamily",3521],[5,"TextFamily",3521],[10,"CounterFamily",4436],[10,"Counter",4436],[10,"Gauge",4436],[10,"Histogram",4436],[6,"Error",4474],[10,"GaugeFamily",4436],[10,"AsRef",4378],[10,"HistogramFamily",4436],[10,"TextFamily",4436],[1,"i64"],[5,"CustomSnafu",3767],[5,"SyncStatus",3767,4475],[5,"TimeWindowQueryData",3767,4475],[5,"RequestSnafu",3767],[5,"QuerySnafu",3767],[5,"QueryVidSnafu",3767],[5,"QueryWindowSnafu",3767],[5,"Options",3767],[10,"Deserialize",4387],[10,"HeightIndexed",4368],[5,"Options",4073],[10,"UpdateStatusData",4073,4411],[5,"BackgroundTask",4147],[5,"Task",4147],[10,"DataSourceLifeCycle",4194],[5,"MockNodeImpl",4234],[5,"MockVersions",4234],[17,"Storage"],[8,"BLSPubKey",4476],[5,"HotShotConfig",4477],[8,"SignatureKey",0],[8,"MockTransaction",4234],[8,"MockHeader",4234],[8,"MockMerkleTree",4234],[8,"MockPayload",4234],[1,"u8"],[15,"Custom",307],[15,"Availability",307],[15,"Node",307],[15,"Status",307],[15,"MerklizedState",307],[15,"Explorer",307],[15,"Error",314],[15,"InvalidTransactionIndex",992],[15,"Custom",992],[15,"FetchLeaf",992],[15,"FetchBlock",992],[15,"FetchTransaction",992],[15,"Request",992],[6,"Storage",1505],[15,"NoStorage",1602],[5,"TestMerkleTreeMigration",2049],[15,"Custom",3517],[15,"Request",3517],[15,"Query",3517],[15,"NoSuchMetric",3763],[15,"NoSuchSubgroup",3763],[15,"Prometheus",3763],[15,"QueryVid",4064],[15,"QueryWindow",4064],[15,"Custom",4064],[15,"Request",4064],[15,"Query",4064],[15,"Internal",4145],[15,"Request",4145],[8,"MockQuorumProposal",4234],[8,"MockStorage",4234],[8,"MockAuctionResults",4234]],"r":[[4,4372],[9,4375],[22,4383],[26,4419],[27,4419],[28,4419],[315,4409],[316,4416],[317,4409],[318,4416],[320,4416],[324,4420],[334,4416],[338,4416],[339,4409],[340,4416],[346,4416],[349,4416],[350,4416],[354,4416],[355,4416],[356,4416],[357,4416],[359,4416],[360,4416],[361,4409],[362,4416],[1000,1119],[1001,4428],[1002,1119],[1003,1280],[1004,4429],[1006,1300],[1007,4412],[1009,4412],[1010,4412],[1123,4437],[1281,1354],[1302,4392],[1303,4443],[1304,4450],[1306,4445],[1313,0],[1316,2049],[1320,1354],[1323,1440],[1325,1649],[1654,4444],[1656,4447],[1657,4392],[1658,4451],[1659,4445],[1660,4443],[1662,4445],[1663,4450],[1665,4445],[1666,4445],[1667,4446],[1669,4445],[1672,4452],[1674,4445],[1676,4445],[1681,4445],[1896,4478],[1897,0],[1969,4445],[1971,4445],[2090,4394],[2093,4394],[2095,4394],[2096,4394],[2098,4394],[2099,4394],[2104,4460],[2105,4460],[2110,4430],[2111,4461],[2112,4394],[2113,4394],[2115,4461],[2116,4394],[2120,4394],[2122,4394],[2125,4394],[2127,4394],[2129,4394],[2131,4394],[2133,4394],[2135,4394],[2137,4394],[2143,4460],[2150,4459],[2154,4394],[2163,4394],[2168,4394],[2169,4394],[2172,4394],[2174,4394],[2175,4394],[2177,4394],[2179,4394],[2180,4394],[2188,4394],[3170,3201],[3171,3311],[3201,4467],[3204,4468],[3205,4466],[3409,4431],[3410,4431],[3411,4431],[3415,4431],[3417,4431],[3767,4416],[3768,4409],[3774,4410],[3784,4475],[3786,4475],[3787,4410],[4074,4411],[4078,4411],[4079,4411]],"b":[[92,"impl-Leaf%3CTYPES%3E"],[93,"impl-Committable-for-Leaf%3CTYPES%3E"],[150,"impl-Debug-for-Leaf%3CTYPES%3E"],[151,"impl-Display-for-Leaf%3CTYPES%3E"],[152,"impl-Display-for-Error"],[153,"impl-Debug-for-Error"],[157,"impl-Display-for-QueryError"],[158,"impl-Debug-for-QueryError"],[161,"impl-From%3CError%3E-for-Error"],[162,"impl-From%3CError%3E-for-Error"],[163,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[164,"impl-From%3CError%3E-for-Error"],[165,"impl-From%3CError%3E-for-Error"],[166,"impl-From%3CError%3E-for-Error"],[171,"impl-From%3CTimestampConversionError%3E-for-QueryError"],[173,"impl-From%3CError%3E-for-QueryError"],[176,"impl-From%3CArc%3CD%3E%3E-for-ApiState%3CD%3E"],[178,"impl-From%3CD%3E-for-ApiState%3CD%3E"],[643,"impl-Display-for-LeafId%3CTypes%3E"],[644,"impl-Debug-for-LeafId%3CTypes%3E"],[645,"impl-Debug-for-BlockId%3CTypes%3E"],[646,"impl-Display-for-BlockId%3CTypes%3E"],[648,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[649,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[662,"impl-Debug-for-Error"],[663,"impl-Display-for-Error"],[667,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[668,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[669,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[671,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[689,"impl-From%3CRequestError%3E-for-Error"],[690,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1016,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1017,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1130,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1131,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1283,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1284,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1309,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1310,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1365,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1366,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1421,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1422,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1516,"impl-StatusDataSource-for-DataSource"],[1517,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1689,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1690,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1837,"impl-Debug-for-Error"],[1838,"impl-Display-for-Error"],[1839,"impl-Display-for-Migration"],[1840,"impl-Debug-for-Migration"],[2616,"impl-Display-for-CurrencyMismatchError"],[2617,"impl-Debug-for-CurrencyMismatchError"],[2618,"impl-Debug-for-InvalidCurrencyCodeError"],[2619,"impl-Display-for-InvalidCurrencyCodeError"],[2620,"impl-Display-for-CurrencyCode"],[2621,"impl-Debug-for-CurrencyCode"],[2622,"impl-Debug-for-MonetaryValue"],[2623,"impl-Display-for-MonetaryValue"],[2624,"impl-Display-for-BlockIdentifier%3CTypes%3E"],[2625,"impl-Debug-for-BlockIdentifier%3CTypes%3E"],[2626,"impl-Display-for-TransactionIdentifier%3CTypes%3E"],[2627,"impl-Debug-for-TransactionIdentifier%3CTypes%3E"],[2633,"impl-Debug-for-TimestampConversionError"],[2634,"impl-Display-for-TimestampConversionError"],[2645,"impl-Debug-for-GetBlockDetailError"],[2646,"impl-Display-for-GetBlockDetailError"],[2647,"impl-Debug-for-GetBlockSummariesError"],[2648,"impl-Display-for-GetBlockSummariesError"],[2649,"impl-Debug-for-GetTransactionDetailError"],[2650,"impl-Display-for-GetTransactionDetailError"],[2651,"impl-Display-for-GetTransactionSummariesError"],[2652,"impl-Debug-for-GetTransactionSummariesError"],[2653,"impl-Debug-for-GetExplorerSummaryError"],[2654,"impl-Display-for-GetExplorerSummaryError"],[2655,"impl-Display-for-GetSearchResultsError"],[2656,"impl-Debug-for-GetSearchResultsError"],[2657,"impl-Debug-for-Error"],[2658,"impl-Display-for-Error"],[2677,"impl-From%3CTryFromIntError%3E-for-TimestampConversionError"],[2678,"impl-From%3CComponentRange%3E-for-TimestampConversionError"],[2690,"impl-From%3CQueryError%3E-for-GetBlockDetailError"],[2691,"impl-From%3CError%3E-for-GetBlockDetailError"],[2694,"impl-From%3CError%3E-for-GetBlockSummariesError"],[2695,"impl-From%3CQueryError%3E-for-GetBlockSummariesError"],[2697,"impl-From%3CQueryError%3E-for-GetTransactionDetailError"],[2698,"impl-From%3CTimestampConversionError%3E-for-GetTransactionDetailError"],[2699,"impl-From%3CError%3E-for-GetTransactionDetailError"],[2700,"impl-From%3CError%3E-for-GetTransactionSummariesError"],[2702,"impl-From%3CQueryError%3E-for-GetTransactionSummariesError"],[2704,"impl-From%3CGetTransactionSummariesError%3E-for-GetExplorerSummaryError"],[2705,"impl-From%3CError%3E-for-GetExplorerSummaryError"],[2706,"impl-From%3CQueryError%3E-for-GetExplorerSummaryError"],[2707,"impl-From%3CGetBlockDetailError%3E-for-GetExplorerSummaryError"],[2708,"impl-From%3CGetBlockSummariesError%3E-for-GetExplorerSummaryError"],[2709,"impl-From%3CError%3E-for-GetSearchResultsError"],[2710,"impl-From%3CQueryError%3E-for-GetSearchResultsError"],[3251,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[3252,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[3253,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[3254,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3255,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3256,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3462,"impl-Debug-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3463,"impl-Display-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3464,"impl-Display-for-Error"],[3465,"impl-Debug-for-Error"],[3468,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[3470,"impl-From%3CRequestError%3E-for-Error"],[3471,"impl-From%3CQueryError%3E-for-Error"],[3638,"impl-Debug-for-MetricsError"],[3639,"impl-Display-for-MetricsError"],[3658,"impl-PrometheusMetrics"],[3659,"impl-Metrics-for-PrometheusMetrics"],[3924,"impl-Debug-for-Error"],[3925,"impl-Display-for-Error"],[3937,"impl-From%3CRequestError%3E-for-Error"],[3938,"impl-From%3CQueryError%3E-for-Error"],[3939,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[4112,"impl-Display-for-Error"],[4113,"impl-Debug-for-Error"],[4116,"impl-From%3CRequestError%3E-for-Error"],[4117,"impl-From%3CString%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFoOGQECAAEABQAAAAgAAQALAAEADwAAABMAAwAYAAEAHgAMACwAAgAyAA8ARQAXAF4AAABgAAEAYwAsAJcACQCiAAUArAAAAK4AAACxAAYAuQAAALsABADBAAEAxAANANoAAgDeAAkA6QABAOwAAADvAAkA+gAEAAABAgAEARoAIAEIACwBDwA+AQQARAEAAEYBAABIAQAASgEAAEwBAQBPAQEAUwELAGABAQBjAQMAaAEhAIwBJQC5ATkA9AFYAE8CLQCEAhQAnAICAKACAAClAgAAqQIAALICEQDFAgYAzQIPAN4CFwAJAwYAEgMAABQDFAAqAwAALAMBAC8DAQA3AxoAVQMBAFgDLwCKAwAAjgMAAJIDJQC5AyUA4QMIAOsDAQDuAwEA9AMDAPkDGwAWBAEAGgQWADMEAwA5BAQAPwQAAEEEAwBGBAUATgQIAFgEAwBdBAIAYwQRAHcEBgB/BAEAgwQLAJAEBgCbBCwAzAQFANUECQDgBBYAAAUAAAIFAgAHBQAACgUAAAwFCgAbBQAAHwUCACMFAwApBQEALAUGADQFAAA3BQcAQAUAAEMFBQBKBQAATAUMAFsFDwBuBRAAggUDAIgFBwCRBQ8AogUVALoFDwDMBRwA6gUfAA0GEQAiBicASwYKAFcGAgBcBgEAYAYCAGQGAABmBgsAeAYAAIEGAgCTBgQAmgYBAJ0GAwCiBhYAvQYSANQGAgDYBgYA4AYnAAsHEgAuBw8APwcBAEkHAABMBw0AWwcKAGsHDgCGBwoAkgcAAJQHAACbBwIAnwcLALIHAAC0BwAAtgcAALgHAgC9BwoAyQcmAPEHAQD1Bx0AFQgDABsIEAAtCAAAMQgBADYIAgA8CAIARggCAEoIAABMCAEATwgAAFEIAABTCAAAVQgAAFcIAABZCAAAWwgEAGEIBQBqCAEAbQgGAHYIAgB7CAEAgAgBAIYIBwCPCBAAoQhnAAoJNgBCCUsAjwkEAJUJmgAyCgEANgoCADoKAQA+CgEAQQooAHYKAQCDCgEAhwoBAIoKAwCPCgAAkQoGAJoKAACcCgAAnwoAAKIKAACkCgMArgpBABMLKgBACysAbQsCAHELAwB3CwAAegsWAJILEQClC5UAPAwjAGMMDQByDAAAdAwBAHgMAQB7DAYAhwwDAIwMJQC0DAsAxAwDAMwMGQDoDAMA9QwvACcNAAApDQgANQ0cAFQNAwBZDQAAWw0qAIcNAwCNDQAAjw0HAJgNBAChDQkArA0EALINDwDIDQMAzg1yAEIOAABMDgUAWA4LAG0OTQC8DgUAww4AAMUOAADHDgAAyQ4BAMwOJADyDlgATQ8KAGIPAgBmDxAAgQ8qAK0PYgAREAEAFRAFAB0QFgA2EBIASxABAFAQAwBWEBEAaRALAHYQBAB8EAQAghAJAI0QDQCdEAUApBAtANUQCQDiEAAA5BADAOkQBADvEAIA8xAAAPUQAgD5EAEA/BADAAERCQAOEQIAEhEAAA=="}]]')); +var searchIndex = new Map(JSON.parse('[["hotshot_query_service",{"t":"FPPPGPFPIFPIPFPPFPFIGIKIPIIIINNNNNNNNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNCOCCONNNNNNNNNNONHNNNNNCNNOCCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNCNNNNNNNNNNNOOOOOOOOKIGFRFPFGGPFPFPFPPRFPFRIGFRPPFPFRPKKPPFIIIIRFFKFRNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMMMMMMNNNNNNNNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNOMNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNONNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOEFEEFREKRKKNNNNCNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMNNNMNCCCNNNNNNNNNMNNNNMNHHKFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIENNNNNNNNNHHHHHHHHHIIFFFIENNNNNNQNCEHKKEKKEKEMMCMMMMMMMMMMMMMMMMMMMCMCCMMFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNGPPPPPPGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKRFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRFRKRIFKKFTKFFIIFRFRFFRFRKRTRRFNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNHNNNNNNNNNNNNNNDNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIRPFFGIPFFFPPPGFGPPPKKFFFKFPPPFPGPPGPFPGPGPGPGPFPPPPPFPPPPPPFRRPIRPPPPPPPFFPPPFGPPFFGIPFFFGPPPPPPPIRPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOMMOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMOOOONNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOMOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNCCMMNNNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPRPRRGPRKKKFPPGRKNNONNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNMMNNNMNNNNMMNNNNNNNNNNNMNMNNNNNMNNNNNNNNNNNNOOOOFFFFFFGPPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONMNNNNNNNNNNOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGKPFPKKNONNNNMNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNOOFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHKIFISRKNNMMNNNNNNNNNMNNNNNNNNMNNNNNNNNNNIIIIIIFIIIIFFNNNOONNNNNNONNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNONNNONONNNONNONNNNONNNNNNNNNNOOONNNKM","n":["ApiState","Availability","Custom","Err","Error","","ErrorSnafu","Explorer","Header","Leaf","MerklizedState","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","","","","","","","as_error","","as_error_source","","","","availability","","backtrace","","block_header","block_header_mut","block_payload","borrow","","","","","","","","borrow_mut","","","","","","","","build","","","catch_all","cause","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","commit","","commitment","","create_random_transaction","data_source","default","deref","","","","","","","","","deref_mut","","","","","","","","description","","deserialize","","","","","","","","","","","drop","","","","","","","","eq","equivalent","","","","explorer","extends_upgrade","fail","","","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_quorum_proposal","from_socketlike","genesis","get_hash","hash","header","","","height","in_current_span","","include_migrations","init","","","","","","","","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","","","","","","","","into_error","","","justify_qc","layout_raw","","","","","","","","load","","merklized_state","message","metrics","node","","parent_commitment","payload_commitment","pointer_metadata","","","","","","","","port","read","run_standalone_service","serialize","","","source","","status","","","","task","testing","to_owned","","","","","","","to_string","","","try_from","","","","","","","","try_into","","","","","","","","try_resolve","","type_id","","","","","","","","types","unfill_block_payload","upgrade_certificate","view_number","vzip","","","","","","","","message","source","","","","","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonQueryData","VidCommonRange","__clone_box","","","","","","","","","","","","","","","","","api_path","as_error","","as_error_source","","","","backtrace","","block_hash","","","","block_height","borrow","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","build","","","","","by_hash","","cause","","clone","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","cmp","","common","compare","","context","data","default","define_api","deref","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","description","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","enumerate","","","eq","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","extensions","fail","","","","","fetch_timeout","fmt","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","","","genesis","","","","get_block","get_block_range","get_hash","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","hash","","","","","","","header","","","","","","","height","","","","","","in_current_span","","index","","init","","","","","","","","","","","","","","","","","","","insert_block","insert_leaf","insert_vid","internal","into","","","","","","","","","","","","","","","","","","","into_error","","","","","","into_future","is_empty","","","iter","layout_raw","","","","","","","","","","","","","","","","","","","leaf","","len","","map","message","metadata","new","","","nth","","nth_transaction","","nth_transaction_with_proof","","num_transactions","","partial_cmp","","payload","payload_hash","","","pointer_metadata","","","","","","","","","","","","","","","","","","","proof","","","qc","qc_leaf","resolve","resource","","","serialize","","","","","","","","size","","","source","","status","","subscribe_blocks","","subscribe_leaves","","subscribe_payloads","","subscribe_vid_common","","timestamp","to_owned","","","","","","","","","","","","","","","","","to_string","","","","transaction","","","","transaction_by_hash","","","transaction_by_hash_with_proof","","transaction_with_proof","try_from","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","try_resolve","type_id","","","","","","","","","","","","","","","","","","","vzip","","","","","","","","","","","","","","","","","","","with_context","with_timeout","height","index","message","resource","","","source","status","AvailabilityProvider","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","ReadOnly","SqlDataSource","Transaction","","UpdateDataSource","VersionedDataSource","__clone_box","","as_mut","as_ref","availability_tests","block_height","","","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","commit","connect","","count_transactions","create","","default","deref","","deref_mut","","deserialize","","drop","","fetching","fmt","","from","","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","handle_event","","init","","inner","inner_mut","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","layout_raw","","metrics","","new","node_tests","payload_size","persistence_tests","pointer_metadata","","populate_metrics","","read","","reset","","revert","set_last_state_height","sql","status_tests","storage","sync_status","to_owned","","try_from","","try_into","","type_id","","update","","vid_share","vzip","","write","","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","Transaction","__clone_box","","as_mut","as_ref","","block_height","","","borrow","","","","borrow_mut","","","","build","builder","clone","","clone_into","","clone_to_uninit","","commit","connect","count_transactions","","create","create_with_store","deref","","","","deref_mut","","","","deserialize","","","","disable_proactive_fetching","drop","","","","fmt","","","from","","","","get_block","","get_block_detail","","get_block_range","","get_block_summaries","","get_explorer_summary","","get_header","get_header_window","","get_last_state_height","","get_leaf","","get_leaf_range","","get_path","","get_payload","","get_payload_range","","get_search_results","","get_transaction","","get_transaction_detail","","get_transaction_summaries","","get_vid_common","","get_vid_common_range","","init","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","layout_raw","","","","load_pruned_height","metrics","new","open","open_with_store","payload_size","","pointer_metadata","","","","populate_metrics","read","revert","set_last_state_height","skip_version","sync_status","","to_owned","","try_from","","","","try_into","","","","type_id","","","","update","vid_share","","vzip","","","","with_active_fetch_delay","with_chunk_fetch_delay","with_major_scan_interval","with_major_scan_offset","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_rate_limit","with_retry_delay","write","FileSystemDataSource","Transaction","connect","create","","create_with_store","handle_event","open","open_with_store","reset","skip_version","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_drop_tx","test_reset","test_revert","Builder","Config","Error","Migration","Postgres","SqlDataSource","Transaction","builder","connect","","","create","handle_event","include_migrations","reset","testing","TmpDb","test_metrics","AvailabilityStorage","ExplorerStorage","FileSystemStorage","MerklizedStateHeightStorage","MerklizedStateStorage","NoStorage","NodeStorage","SqlStorage","block_height","count_transactions","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","no_storage","payload_size","pruning","sql","sync_status","vid_share","FileSystemStorage","FileSystemStorageInner","Revert","Transaction","block_height","borrow","","","borrow_mut","","","commit","","count_transactions","create","create_with_store","deref","","","deref_mut","","","deserialize","","","drop","","","","fmt","","","from","","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","open","open_with_store","payload_size","pointer_metadata","","","read","revert","","","skip_version","sync_status","try_from","","","try_into","","","type_id","","","update","vid_share","vzip","","","write","NoStorage","Transaction","__clone_box","block_height","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","commit","count_transactions","default","deref","","deref_mut","","deserialize","","drop","","fmt","from","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","insert_block","insert_leaf","insert_vid","into","","layout_raw","","metrics","payload_size","pointer_metadata","","read","revert","sync_status","testing","to_owned","try_from","","try_into","","type_id","","update","vid_share","vzip","","write","DataSource","NoStorage","","","Sql","","","Storage","Transaction","__clone_box","block_height","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","commit","connect","count_transactions","","create","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","from","","","get_block","get_block_range","get_header_window","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","handle_event","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","payload_size","","pointer_metadata","","","populate_metrics","read","reset","revert","setup","sync_status","","to_owned","try_from","","","try_into","","","type_id","","","update","vid_share","","vzip","","","write","fetch_from_port","PruneStorage","PrunedHeightStorage","Pruner","PrunerCfg","PrunerConfig","__clone_box","batch_size","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","layout_raw","load_pruned_height","max_usage","minimum_retention","new","pointer_metadata","prune","pruning_threshold","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","ArgumentBuffer","Arguments","Column","Config","Connection","Database","","Db","Error","Executor","FixedLengthParams","Migration","NAME","Params","Postgres","Pruner","Query","QueryAs","QueryBuilder","QueryResult","Read","Row","SqlStorage","Sqlite","Statement","Transaction","TransactionManager","TransactionMode","TypeInfo","URL_SCHEMES","Value","ValueRef","Write","__clone_box","","","","applied","applied_on","archive","as_ref","","backtrace","begin","","","bind","","block_height","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","bounds_to_where_clause","builder","chain","checksum","cleanup_test","","cleanup_test_dbs","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","commit","compare","connect","","connection_timeout","context","count_transactions","create_database","","database","database_exists","","default","","","","","default_migrations","deref","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","deserialize","","","","","","","","","","","display","","","downcast","downcast_mut","downcast_ref","drop","","","","","","","","","","","","drop_database","","eq","equivalent","","","","execute","","execute_many","","","execute_many_with_retries","execute_one","execute_one_with_retries","fetch","","fetch_all","","fetch_many","fetch_one","","fetch_optional","fmt","","","","","","","","","","","","","fmt_value_debug","","force_drop_database","from","","","","","","","","","","","","","","from_str","get_block","get_block_detail","get_block_range","get_block_summaries","get_disk_usage","get_explorer_summary","get_feature_gate","","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_pruning_config","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","header","","header_where_clause","host","idle_connection_timeout","include_dir","include_migrations","init","","","","","","","","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","","","","","","","","is","layout_raw","","","","","","","","","","","load_header","load_pruned_height","max_connections","metrics","migrations","min_connections","msg","name","new","no_migrations","param_type_for_id","","partial_cmp","password","payload_size","pointer_metadata","","","","","","","","","","","port","prefix","prepare","","prepare_with","prune","pruner_cfg","query","","query_as","","read","reset_schema","return_type_for_id","","revert","root_cause","schema","set_applied","set_last_state_height","set_pruning_config","snapshot","","sql","sqlx","sync_status","test_context","","testing","tls","to_owned","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","unapplied","update","upsert","user","version","vid_share","vzip","","","","","","","","","","","write","TestMerkleTreeMigration","TmpDb","borrow","","borrow_mut","","config","deref","","deref_mut","","deserialize","","drop","","","fmt","from","","host","init","","","into","","layout_raw","","persistent","pointer_metadata","","port","start","stop","try_from","","try_into","","type_id","","vzip","","BalanceAmount","","Block","BlockDetail","BlockDetailResponse","BlockIdentifier","BlockNamespaceId","BlockNotFound","BlockRange","BlockSummary","BlockSummaryResponse","Btc","CryptoEnd","CryptoStart","CurrencyCode","CurrencyMismatchError","Error","Esp","Eth","Eur","ExplorerDataSource","ExplorerHeader","ExplorerHistograms","ExplorerSummary","ExplorerSummaryResponse","ExplorerTransaction","FeeAttribution","FiatCurrencyEnd","FiatCurrencyStart","Gbp","GenesisOverview","GetBlockDetail","GetBlockDetailError","","GetBlockSummaries","GetBlockSummariesError","","GetBlockSummariesRequest","GetExplorerSummary","GetExplorerSummaryError","GetSearchResults","GetSearchResultsError","GetTransactionDetail","GetTransactionDetailError","GetTransactionSummaries","GetTransactionSummariesError","","GetTransactionSummariesRequest","Hash","","Height","HeightAndOffset","IntError","InvalidCurrencyCodeError","InvalidLimit","","InvalidQuery","Jpy","Latest","","MonetaryValue","NamespaceId","","None","ProposerId","","QueryError","","","","","","RollUp","SearchResult","SearchResultResponse","TargetNotFound","","TimeError","Timestamp","TimestampConversionError","TokenEnd","TokenStart","TransactionDetail","TransactionDetailResponse","TransactionIdentifier","TransactionNamespaceId","TransactionNotFound","TransactionRange","TransactionSummariesResponse","TransactionSummary","TransactionSummaryFilter","Unimplemented","","","","","","Usd","WalletAddress","","Xxx","__clone_box","","","","","","","","","","","","","","","","add","as_error","","","","","","","","as_error_source","","","","","","","","","","","","","","","","block_confirmed","block_detail","block_heights","block_reward","block_size","block_summaries","block_time","block_transactions","blocks","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","btc","clone","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","cmp","compare","currency","","currency1","currency2","default","define_api","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","esp","eth","explorer_summary","fee_details","fee_info_account","fee_info_balance","fee_recipient","fees","filter","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","genesis_overview","get_block_detail","get_block_summaries","get_explorer_summary","get_search_results","get_transaction_detail","get_transaction_summaries","hash","","","","header","","","","","","","","","","","","","","height","","","","histograms","in_current_span","","","","","","","","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_resettable","is_crypto","is_fiat","is_token","latest_block","latest_blocks","latest_transactions","layout_raw","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","namespace_id","namespace_ids","new","num_blocks","num_transactions","","","","","offset","","partial_cmp","pointer_metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","proposer_id","","","range","reward_balance","rollups","","search_results","sequencing_fees","serialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","significant_digits","size","","","source","","","","","","","","status","","","","","","","sub","target","","","time","","","","to_owned","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","transaction_detail","transaction_summaries","transactions","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","usd","value","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","init","into","layout_raw","pointer_metadata","provider","request","run","","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_rate_limit","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","","","","block","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","fail","fetch","","","","","","","","","fmt","","","","from","","","","init","","","","into","","","","layout_raw","","","","new","","pointer_metadata","","","","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unblock","unfail","vzip","","","","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","eq","","","equivalent","","","","","","","","","","","","fmt","","","from","","","","get_hash","","","hash","","","init","","","into","","","layout_raw","","","pointer_metadata","","","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","Commit","","Custom","Digest","Entry","Error","Index","Key","MerklizedState","MerklizedStateDataSource","MerklizedStateHeightPersistence","Options","Query","Request","Snapshot","T","UpdateStateData","__clone_box","","api_path","as_error","as_error_source","","backtrace","borrow","","","borrow_mut","","","cause","clone","","clone_into","","clone_to_uninit","","cmp","compare","default","define_api","deref","","","deref_mut","","","description","deserialize","","","","drop","","","eq","equivalent","","","","extensions","fmt","","","","from","","","","","","get_hash","get_last_state_height","get_path","hash","header","","header_state_commitment_field","in_current_span","init","","","insert_merkle_nodes","insert_path","into","","","layout_raw","","","partial_cmp","pointer_metadata","","","serialize","set_last_state_height","source","state_type","status","to_owned","","to_string","","tree_height","try_from","","","try_into","","","type_id","","","vzip","","","message","source","","status","Counter","CounterFamily","Gauge","GaugeFamily","Histogram","HistogramFamily","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","TextFamily","__clone_box","","","","","","","","add","add_point","as_error","as_error_source","","backtrace","borrow","","","","","","","","","borrow_mut","","","","","","","","","cause","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","counter_family","create","","","","create_counter","create_gauge","create_histogram","create_text","default","deref","","","","","","","","","deref_mut","","","","","","","","","description","deserialize","","","","","","","","","drop","","","","","","","","","export","fmt","","","","","","","","","","from","","","","","","","","","","gauge_family","","get","","","","","get_counter","get_counter_family","get_gauge","get_histogram","get_histogram_family","get_subgroup","header","histogram_family","in_current_span","init","","","","","","","","","into","","","","","","","","","layout_raw","","","","","","","","","mean","pointer_metadata","","","","","","","","","sample_count","set","source","subgroup","sum","text_family","to_owned","","","","","","","","to_string","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update","vzip","","","","","","","","","name","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","","","","","","","","","api_path","as_error","as_error_source","","backtrace","block","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cause","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","count_transactions","default","","define_api","deref","","","","","","","","","","deref_mut","","","","","","","","","","description","deserialize","","","","","","","","","","","","","drop","","","","","","","","","","end","eq","","equivalent","","","","","","","","extensions","fail","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","fully_synced","get_hash","get_header_window","hash","header","in_current_span","init","","","","","","","","","","internal","into","","","","","","","","","","into_error","","","","","is_fully_synced","layout_raw","","","","","","","","","","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","pointer_metadata","","","","","","","","","","prev","pruned_height","serialize","","","source","start","status","","sync_status","to_owned","","","","","","","","","to_string","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","vid_share","vzip","","","","","","","","","","window","block","end","message","source","","","","start","status","Error","HasMetrics","Internal","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","api_path","as_error","as_error_source","","backtrace","block_height","borrow","","borrow_mut","","cause","clone","clone_into","clone_to_uninit","consensus_metrics","","default","define_api","deref","","deref_mut","","description","deserialize","","","drop","","elapsed_time_since_last_decide","","extensions","fmt","","from","","","","header","in_current_span","init","","into","","layout_raw","","metrics","pointer_metadata","","populate_metrics","serialize","source","status","success_rate","","to_owned","to_string","try_from","","try_into","","type_id","","vzip","","reason","source","BackgroundTask","Task","__clone_box","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","","drop","","","fmt","","from","","init","","into","","join","layout_raw","","pointer_metadata","","spawn","","to_owned","try_from","","try_into","","type_id","","vzip","","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","MockSqlDataSource","NUM_NODES","Storage","TestableDataSource","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","deserialize","drop","","from","handle","handle_event","init","","init_with_config","into","layout_raw","num_nodes","pointer_metadata","proposer","reset","setup","shut_down","spawn","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockAuctionResults","MockBase","MockHeader","MockMembership","MockMerkleTree","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockStorage","MockTransaction","MockTypes","MockVersions","__clone_box","","","block_header","block_number","borrow","","","borrow_mut","","","builder_commitment","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","decided_upgrade_certificate","default","","delay_config","deref","","","deref_mut","","","deserialize","","","","","drop","","","eq","","equivalent","","","","","","","","fee_info_account","fee_info_balance","fmt","","","from","","","get_hash","","hash","","header_state_commitment_field","height","init","","","insert_path","into","","","iter","justify_qc","layout_raw","","","len","metadata","mock_transaction","namespace_id","namespace_ids","partial_cmp","","payload_commitment","pointer_metadata","","","proposal_certificate","proposer_id","random","reward_balance","serialize","","should_return_err","state_type","timestamp","","to_owned","","","transaction_with_proof","transactions","tree_height","try_from","","","try_into","","","type_id","","","upgrade_certificate","urls","view_number","vzip","","","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[308,"hotshot_query_service::Error"],[315,"hotshot_query_service::QueryError"],[316,"hotshot_query_service::availability"],[993,"hotshot_query_service::availability::Error"],[1001,"hotshot_query_service::data_source"],[1118,"hotshot_query_service::data_source::availability_tests"],[1120,"hotshot_query_service::data_source::fetching"],[1281,"hotshot_query_service::data_source::fs"],[1292,"hotshot_query_service::data_source::node_tests"],[1298,"hotshot_query_service::data_source::persistence_tests"],[1301,"hotshot_query_service::data_source::sql"],[1317,"hotshot_query_service::data_source::sql::testing"],[1318,"hotshot_query_service::data_source::status_tests"],[1319,"hotshot_query_service::data_source::storage"],[1355,"hotshot_query_service::data_source::storage::fs"],[1441,"hotshot_query_service::data_source::storage::no_storage"],[1506,"hotshot_query_service::data_source::storage::no_storage::testing"],[1603,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1604,"hotshot_query_service::data_source::storage::pruning"],[1650,"hotshot_query_service::data_source::storage::sql"],[2050,"hotshot_query_service::data_source::storage::sql::testing"],[2091,"hotshot_query_service::explorer"],[3168,"hotshot_query_service::fetching"],[3202,"hotshot_query_service::fetching::provider"],[3312,"hotshot_query_service::fetching::request"],[3402,"hotshot_query_service::merklized_state"],[3518,"hotshot_query_service::merklized_state::Error"],[3522,"hotshot_query_service::metrics"],[3764,"hotshot_query_service::metrics::MetricsError"],[3768,"hotshot_query_service::node"],[4065,"hotshot_query_service::node::Error"],[4074,"hotshot_query_service::status"],[4146,"hotshot_query_service::status::Error"],[4148,"hotshot_query_service::task"],[4191,"hotshot_query_service::testing"],[4195,"hotshot_query_service::testing::consensus"],[4235,"hotshot_query_service::testing::mocks"],[4369,"hotshot_query_service::types"],[4371,"dyn_clone::sealed"],[4372,"core::error"],[4373,"hotshot_query_service::error"],[4374,"std::backtrace"],[4375,"core::option"],[4376,"hotshot_types::data"],[4377,"hotshot_types::traits::node_implementation"],[4378,"alloc::string"],[4379,"core::convert"],[4380,"tide_disco::status"],[4381,"core::clone"],[4382,"hotshot_types::message"],[4383,"committable"],[4384,"hotshot_query_service::resolvable"],[4385,"rand_core"],[4386,"core::result"],[4387,"serde::de"],[4388,"rkyv::with"],[4389,"hotshot_types::simple_vote"],[4390,"hotshot_types::simple_certificate"],[4391,"async_lock::rwlock"],[4392,"alloc::sync"],[4393,"anyhow"],[4394,"core::fmt"],[4395,"hotshot_query_service::explorer::query_data"],[4396,"sqlx_core::error"],[4397,"std::os::fd::owned"],[4398,"io_lifetimes::portability"],[4399,"core::hash"],[4400,"core::marker"],[4401,"color_eyre::section"],[4402,"core::alloc::layout"],[4403,"arc_swap::access"],[4404,"core::future::future"],[4405,"alloc::boxed"],[4406,"core::pin"],[4407,"futures_core::future"],[4408,"core::ops::function"],[4409,"hotshot::types::handle"],[4410,"hotshot_query_service::availability::data_source"],[4411,"hotshot_query_service::node::data_source"],[4412,"hotshot_query_service::status::data_source"],[4413,"hotshot_query_service::data_source::update"],[4414,"vbs::version"],[4415,"serde::ser"],[4416,"core::any"],[4417,"hotshot_query_service::availability::query_data"],[4418,"core::cmp"],[4419,"core::iter::traits::iterator"],[4420,"hotshot_types::vid"],[4421,"hotshot_query_service::availability::fetch"],[4422,"snafu"],[4423,"tide_disco::api"],[4424,"tide_disco::method"],[4425,"tide_disco::request"],[4426,"futures_core::stream"],[4427,"core::ops::range"],[4428,"core::time"],[4429,"hotshot_query_service::data_source::extension"],[4430,"hotshot_query_service::data_source::metrics"],[4431,"hotshot_query_service::explorer::data_source"],[4432,"hotshot_query_service::merklized_state::data_source"],[4433,"hotshot_types::event"],[4434,"core::default"],[4435,"jf_merkle_tree::internal"],[4436,"alloc::vec"],[4437,"hotshot_types::traits::metrics"],[4438,"hotshot_query_service::data_source::fetching::notify_storage"],[4439,"std::path"],[4440,"atomic_store::atomic_store"],[4441,"core::ops::deref"],[4442,"atomic_store::error"],[4443,"time::offset_date_time"],[4444,"refinery_core::runner"],[4445,"sqlx_core::database"],[4446,"hotshot_query_service::data_source::storage::sql::transaction"],[4447,"hotshot_query_service::data_source::storage::sql::queries"],[4448,"hotshot_query_service::data_source::storage::sql::db"],[4449,"sqlx_core::encode"],[4450,"sqlx_core::types"],[4451,"sqlx_postgres::database"],[4452,"sqlx_core::executor"],[4453,"sqlx_sqlite::database"],[4454,"sqlx_core::type_checking"],[4455,"sqlx_postgres::options"],[4456,"core::iter::traits::collect"],[4457,"sqlx_core::from_row"],[4458,"sqlx_core::testing"],[4459,"refinery_core::error"],[4460,"hotshot_query_service::explorer::monetary_value"],[4461,"hotshot_query_service::explorer::currency"],[4462,"hotshot_query_service::explorer::traits"],[4463,"core::num::error"],[4464,"time::error::component_range"],[4465,"clap_builder::builder::resettable"],[4466,"async_lock::semaphore"],[4467,"hotshot_query_service::fetching::provider::testing"],[4468,"hotshot_query_service::fetching::provider::any"],[4469,"hotshot_query_service::fetching::provider::query_service"],[4470,"url"],[4471,"jf_merkle_tree"],[4472,"core::str::traits"],[4473,"ark_serialize"],[4474,"tagged_base64"],[4475,"prometheus::errors"],[4476,"hotshot_query_service::node::query_data"],[4477,"hotshot_types::signature_key"],[4478,"hotshot_types"],[4479,"include_dir_macros"]],"i":"`j0AKf`A``2``2`0`20`1``````2````Ab3AhAjAl4Bf757755`Cf86555584326015843260143288658432615843261584326155Bn66`16954371226954371297669954377126954371266666`6543`6666995437726999999954377712222222262666697697`69543712`````96954371254366954371222`3``1666954371212`69797`971``695437269769543712695437120669543712`66669543712BMdBMfBMhBMjBMlBMn5BN`````Il`El```0`0`0`MhMjLj`3`0```421`1`4Nh``04`````1````532K`JnMlKdKfKhMnN`NbKjKlKnL`LbElOd>1>>11>1?<;::Nh1MhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEl54321Lj0>1MhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElMhMj<10Nh>Od`1032K`JnMlKdKfKhMnN`NbKjKlKnL`LbElNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEl=0NhOdMhMjK`0JnMl0Kd0Kf0Kh0Mn0N`0NbKjKlKnL`LbEl0NhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElLj0=MhMjK`MlKdKfKhMnN`888877776666555544443333222211110000OdKjKlKnL`Lb5>>===0000000>=<;:87>==<;9410:4NhOdMhMjK`6MlKdKfKhMnN`NbKjKlKnL`LbElAAj001NhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEl654321NhLj0>01OdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbEl>=Lj=Nh3>K`?=222222?;MhMjMl30Kf5Od435Jn3Kd3KhMnN`NbKjKlKnL`LbElLj0:K`=Nh8761Ml>Kf>=<51?=Jn667Il0000000ABdMhMj846Kd6KhMnN`NbKjKlKnL`LbEl<;?0Lj0Ml;110111NhOdMhMjK`Jn6KdKfKhMnN`NbKjKlKnL`LbElNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElNh0OdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElNhOdMhMjK`JnMlKdKfKhMnN`NbKjKlKnL`LbElNh0BNb0BNdBNfBNhBNjBNl4`````Jb``0``ABhABj11`1101010101010ABl21221121212121`2121`22222222222222222221212222222121212`2`2121322102```221212121AEl333243```````AF`AFjAEn02022AFd132013203323232131333013201320132001321320132131313131311313131313131313131313131301321111013201321303313013233113133201320132013211301320000000003``AH`00000000````````````````AFl0AHb000`0```````````AFb0`AGfAGh10012AGj22AGl33232233`4``44````AHdAHjAGb21022220010210210210221021022222222222210222210210200021020AHf3313213213213332131``AIfAId010111100101010101101000000000000100001011001100`101010100011`BNnAIhAIj210``0100210210000101002102102102100210001000000000210111210210010210000101002102102101102100BO```AFf``AIn00000000000001AJb1111AGn22223212222222222222AJn00`0`AM``````1``````1`1``1`1`1111`AJjALfALhAJl330Dn00AL`43AK`AKdAKn48AMdALb39827ALjALl8<325;:4910598<3232<;:9<;:9<;:9<4<91984329325;:90`88<325;:4491088<325;:449108<325;:49107;:88888<325;:491032<<<<<====4444========88<<325;:4910322888<325;:499109444414324444444414444448<599``8<325;:491044448<325;:491088<325;:49104491998<8932<948<325;:49109<===19`5`51932489<4132<`432`9<;:98<8<325;:49108<325;:49108<325;:4910<449<48<325;:49101``BObANl1001010101000100100101001000010101010`BCbBAd````AOn```AOf00```000```````000`Fb`B@f1`0`1`1`1`1`0`AC`AD`10Ff`B@`B@dB@h854`;BCj;`<:3B@b382<``435``::````0````;40382:`=:AObAOd>22==99<<00;;11BA`BAnBAhB@j1BB`22BAfBAl?>AOf>AC`AD`?>=6B@lFfB@nBAj;AOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhANnAObAOdAOf3AC`AD`AOhAOjAOlAOnB@`B@bB@dB@fB@hFb>==>ADb`?>=ANn=<;:9B@jB@lFfB@nBA`BAbACdBAd9BAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAOb0AOd0AOf0ANn0AC`AD`AOhAOjAOl0B@j0B@l0FfB@n0BA`0BAb0ACdBAd0ADbBAf0BAh0BAj0BAl0AOn0B@`0B@b0B@d0B@f0B@h0Fb0BAn0BB`0BBb0BBd0BBf0BBh0AObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACd====<<<<;;;;::::9999888877776666555544443333222211110000<=B@nBA`BAb0ACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhAObAOdAOfANnAC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBhANn0AObAOdAOf3AC`AD`AOhAOjAOlB@jB@lFfB@nBA`BAbACdBAdADbBAfBAhBAjBAlAOnB@`B@bB@dB@fB@hFbBAnBB`BBbBBdBBfBBh`````BCl0000000000000000``BCnBD`22222222`````BDjBDlBDhBDn1321032103210321032103032103210321032101BDd444333214321432143214321432132432143214321432143212243214444```BDb`BE`BEbBEd2102102102102102102102102102102222111100002102100210210210210210210210210210210210ACjAClF`11`21````00`1`20BEh11113013011313131330`3013011301130133333033113011113AChACn55343523AE`563463466344045464645634634634634BOdBOfBOh2```````BH`00``AEbBGjBHbBGlBHdBHfBHhBHj648888876543210876543210876543210765432107654321073210777778765432108765432108876543210876543210788765432108876543210776532177777787887654321087654321087654321048765432104587477654321088765432108765432108765432105876543210BOj0BOlBOn``Ej``ACf0``1`1`1`1``0``0BJbBJdBJfBJhBJjBJlBJ`8BJn99993In987165432:987165432:2:98765432:98765432:98765432:88071`987165432:987165432::98877165432::987165432:387888877771298765432::99877165432::::8808::987165432::987165432:654328987165432:28888780987165432:7887::3:2098765432::987165432:987165432:987165432:0987165432:7C@`C@bC@dC@fC@h4332``En`0``0BKd1111J`12122222001`121221221200122122222121212AEd23BKf444224434343434C@jC@l``BKh0BKj10111101010100101010100101010110101010`````````BKl`AIl01100000000010000000011000000000`````````````ADdBL`BKnC@nBLl43243204324324324242CA`530543543554335435355553333115435435353BLn26540654BM`476503`BLj486487654448632448761128768768765CAb6987`BKb","f":"`````````````````````````````{{bd}f}000000{b{{b{h}}}}00000``{{{b{j}}}{{n{{b{l}}}}}}{{{b{A`}}}{{n{{b{l}}}}}}{{{b{{Ab{c}}}}}bAd}{{{b{Af{Ab{c}}}}}{{b{Af}}}Ad}{{{b{{Ab{c}}}}}nAd}{b{{b{c}}}{}}0000000{{{b{Af}}}{{b{Afc}}}{}}0000000{AhA`}{AjA`}{{{Al{c}}}A`{{B`{An}}}}{{BbAn}j}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}{{{b{{Ab{c}}}}}{{Ab{c}}}{BdAd}}{{{b{j}}}j}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}Bd}{{{b{A`}}}A`}{{{b{{Bf{c}}}}}{{Bf{c}}}Bd}{{b{b{Afc}}}f{}}000000{bf}000000{{{b{{Ab{c}}}}{b{{Bh{ce}}}}}{{Bj{{Ab{c}}}}}AdBl}{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{Bn}}}{{Bj{c}}}C`}{b{{Bj{c}}}{}}{{{b{{Ab{c}}}}{b{AfCb}}Cd}{}Ad}`{{}Cf}{Ch{{b{c}}}{}}0000000{{{b{{Bf{c}}}}}{{b{e}}}{}{}}{Ch{{b{Afc}}}{}}0000000{{{b{j}}}{{b{Cj}}}}{{{b{A`}}}{{b{Cj}}}}{c{{Cl{{Ab{e}}}}}CnAd}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{j}}}Cn}111{c{{Cl{A`}}}Cn}222{Chf}0000000{{{b{{Ab{c}}}}{b{{Ab{c}}}}}DbAd}{{b{b{c}}}Db{}}000`{{{b{{Ab{c}}}}{b{{Ab{c}}}}{b{{Dl{{Dj{{n{{Dh{c{Dd{c}}Df}}}}}}}}}}}{{Cl{fDn}}}Ad}{Ah{{Cl{cA`}}}{}}{Aj{{Cl{cA`}}}{}}{{{Al{c}}}{{Cl{eA`}}}{{B`{An}}}{}}`{{{b{Af{Ab{c}}}}Ch}{{Cl{fE`}}}Ad}{{{b{Af{Ab{c}}}}}fAd}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cl{fEd}}}Ad}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cl{fEd}}}{EfAd}}{{{b{j}}{b{AfEb}}}Eh}0{{{b{Ah}}{b{AfEb}}}Eh}{{{b{Aj}}{b{AfEb}}}Eh}{{{b{{Al{c}}}}{b{AfEb}}}EhEf}{{{b{A`}}{b{AfEb}}}Eh}0{{{b{{Bf{c}}}}{b{AfEb}}}EhEf}{cc{}}{Ejj}1{Elj}{Enj}{F`j}{Fbj}{{{Fd{AnBb}}}j}666{FfA`}7{FhA`}8{Fjc{}}9{{{Dl{c}}}{{Bf{c}}}{}}{c{{Bf{c}}}{}}{Flc{}}0{ceFn{}}{ceG`{}}{{{b{{Gb{c}}}}}{{Ab{c}}}Ad}3{{bb}{{Ab{c}}}Ad}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{{Ab{c}}}}{b{Afe}}}fAdGj}{c{{Gl{ce}}}{GnH`Hb}{}}00{{{b{{Ab{c}}}}}CdAd}{{}}0`{{}Ch}0000000`````{cjGn}{{}c{}}0000000{{Ahc}A`{}}{{Ajc}A`{}}{{{Al{c}}e}A`{{B`{An}}}{}}{{{b{{Ab{c}}}}}{{Dh{c{Hd{c}}Hf}}}Ad}{{}{{Cl{HhHj}}}}0000000{b}{b{{Hl{c}}}{}}`````{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}33333333`{{{b{{Bf{c}}}}i}{{Ib{{I`{Hn}}}}}{H`Hb}{}{}{H`{Ih{{b{e}}}{{Id{{If{g}}}}}}}}{{Cfe{Ij{cgi}}k}{{Cl{fj}}}Ad{{Il{c}}{In{c}}J`JbH`Hb}{{Jd{c}}}BlJf}{{{b{{Ab{c}}}}e}Cl{AdJh}Jj}{{{b{j}}c}ClJj}{{{b{A`}}c}ClJj}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}`{{{b{j}}}Bb}{{{b{A`}}}Bb}```{bc{}}000000{bAn}00{c{{Cl{e}}}{}{}}0000000{{}{{Cl{c}}}{}}0000000{Bn{{Cl{cBn}}}C`}{{}{{Cl{cc}}}{}}{bJl}0000000`{{{b{Af{Ab{c}}}}}nAd}{{{b{{Ab{c}}}}}{{n{{Dh{c{Dd{c}}Df}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}{{}c{}}0000000`````````````````````````````````````````````````````````{{bd}f}0000000000000000`{b{{b{h}}}}00000{{{b{{Jn{c}}}}}{{n{{b{l}}}}}Ad}{{{b{El}}}{{n{{b{l}}}}}}{{{b{{K`{c}}}}}{{Kb{c}}}Ad}{{{b{{Kd{c}}}}}{{Kb{c}}}Ad}{{{b{{Kf{c}}}}}{{Kb{c}}}Ad}{{{b{{Kh{c}}}}}{{Kb{c}}}Ad}{{{b{{Kh{c}}}}}CdAd}{b{{b{c}}}{}}000000000000000000{{{b{Af}}}{{b{Afc}}}{}}000000000000000000{{{Kj{c}}}El{{B`{An}}}}{{{Kl{c}}}El{{B`{An}}}}{{{Kn{c}}}El{{B`{An}}}}{{{L`{ce}}}El{{B`{Cd}}}{{B`{Cd}}}}{{{Lb{ce}}}El{{B`{An}}}{{B`{Bb}}}}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{c}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Jn{c}}}}}{{n{{b{h}}}}}Ad}{{{b{El}}}{{n{{b{h}}}}}}{{{b{{Mh{c}}}}}{{Mh{c}}}Ad}{{{b{{Mj{c}}}}}{{Mj{c}}}Ad}{{{b{{K`{c}}}}}{{K`{c}}}{BdAd}}{{{b{{Jn{c}}}}}{{Jn{c}}}{BdAd}}{{{b{{Ml{c}}}}}{{Ml{c}}}{BdAd}}{{{b{{Kd{c}}}}}{{Kd{c}}}{BdAd}}{{{b{{Kf{c}}}}}{{Kf{c}}}{BdAd}}{{{b{{Kh{c}}}}}{{Kh{c}}}{BdAd}}{{{b{{Mn{c}}}}}{{Mn{c}}}{BdAd}}{{{b{{N`{c}}}}}{{N`{c}}}{BdAd}}{{{b{Nb}}}Nb}{{{b{{Kj{c}}}}}{{Kj{c}}}Bd}{{{b{{Kl{c}}}}}{{Kl{c}}}Bd}{{{b{{Kn{c}}}}}{{Kn{c}}}Bd}{{{b{{L`{ce}}}}}{{L`{ce}}}BdBd}{{{b{{Lb{ce}}}}}{{Lb{ce}}}BdBd}{{{b{El}}}El}{{b{b{Afc}}}f{}}0000000000000000{bf}0000000000000000{{{b{{Mh{c}}}}{b{{Mh{c}}}}}NdAd}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}NdAd}{{{b{{Kf{c}}}}}{{b{Nf}}}Ad}{{b{b{c}}}Nd{}}0{{{Nh{c}}g}{{Cl{ce}}}{}{hNj}{{O`{e}{{Nl{Nn}}}}}}{{{b{{Kd{c}}}}}{{b{{Ob{c}}}}}Ad}{{}Od}{{{b{Od}}c}{{Cl{{Of{eElc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}000000000000000000{Ch{{b{Afc}}}{}}000000000000000000{{{b{{Jn{c}}}}}{{b{Cj}}}Ad}{{{b{El}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}000{c{{Cl{{K`{e}}}}}CnAd}111{c{{Cl{{Ml{e}}}}}CnAd}{c{{Cl{{Kd{e}}}}}CnAd}3{c{{Cl{{Kf{e}}}}}CnAd}4{c{{Cl{{Kh{e}}}}}CnAd}55{c{{Cl{{Mn{e}}}}}CnAd}{c{{Cl{{N`{e}}}}}CnAd}7777777{c{{Cl{El}}}Cn}8{Chf}000000000000000000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}{{I`{Mf}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Ml{c}}}}}{{`{{Mf{}{{Md{{Fd{{Ol{c}}{On{c}}}}}}}}}}}Ad}{{{b{{Mh{c}}}}{b{{Mh{c}}}}}DbAd}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}DbAd}{{{b{{K`{c}}}}{b{{K`{c}}}}}Db{LlAd}}{{{b{{Ml{c}}}}{b{{Ml{c}}}}}Db{LlAd}}{{{b{{Kd{c}}}}{b{{Kd{c}}}}}Db{LlAd}}{{{b{{Kf{c}}}}{b{{Kf{c}}}}}Db{LlAd}}{{{b{{Kh{c}}}}{b{{Kh{c}}}}}Db{LlAd}}{{{b{{Mn{c}}}}{b{{Mn{c}}}}}Db{LlAd}}{{{b{{N`{c}}}}{b{{N`{c}}}}}Db{LlAd}}{{b{b{c}}}Db{}}00000000000000000000000000000000000`{{{Kj{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{Kl{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{Kn{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{L`{ce}}}{{Cl{gEl}}}{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lb{ce}}}{{Cl{gEl}}}{{B`{An}}}{{B`{Bb}}}{}}`{{{b{{Mh{c}}}}{b{AfEb}}}EhAd}0{{{b{{Mj{c}}}}{b{AfEb}}}EhAd}0{{{b{{K`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Jn{c}}}}{b{AfEb}}}EhAd}{{{b{{Jn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Ml{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Mn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{N`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Nb}}{b{AfEb}}}Eh}{{{b{{Kj{c}}}}{b{AfEb}}}EhEf}{{{b{{Kl{c}}}}{b{AfEb}}}EhEf}{{{b{{Kn{c}}}}{b{AfEb}}}EhEf}{{{b{{L`{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{Lb{ce}}}}{b{AfEb}}}EhEfEf}{{{b{El}}{b{AfEb}}}Eh}0{cc{}}00{{{A@`{c}}}{{Mh{c}}}Ad}{Ch{{Mh{c}}}Ad}2{Ch{{Mj{c}}}Ad}{{{Kb{c}}}{{Mj{c}}}Ad}4444{{{Ml{c}}}{{Kd{c}}}Ad}555{{{Ml{c}}}{{Mn{c}}}Ad}66666666{A@bEl}{{{Fd{AnBb}}}El}{b{{A@d{{K`{c}}}}}Ad}{b{{A@d{{Ml{c}}}}}Ad}{b{{A@d{{Kd{c}}}}}Ad}{b{{A@d{{Kf{c}}}}}Ad}{{bb}{{K`{c}}}Ad}{{bb}{{Ml{c}}}Ad}{{bb}{{Kd{c}}}Ad}{{bb}{{Kf{c}}}Ad}{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{B`{{Mj{e}}}}H`Hb}}{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{AAb{Ch}}H`}}{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}m}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}{{B`{{Mh{e}}}}H`Hb}}232{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}{AAd{e}}}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}}43{{{b{{Mh{c}}}}{b{Afe}}}fAdGj}{{{b{{Mj{c}}}}{b{Afe}}}fAdGj}{{{b{{K`{c}}}}}{{A@`{c}}}Ad}{{{b{{Ml{c}}}}}{{Kb{c}}}Ad}{{{b{{Kd{c}}}}}AAfAd}{{{b{{Kh{c}}}}}{{AAd{c}}}Ad}{{{b{{Mn{c}}}}}{{Kb{c}}}Ad}{c{{Gl{ce}}}{GnH`Hb}{}}0{{{b{{K`{c}}}}}{{b{{AAh{c}}}}}Ad}1{{{b{{Ml{c}}}}}{{b{{AAh{c}}}}}Ad}{{{b{{Mn{c}}}}}{{b{{AAh{c}}}}}Ad}3{{{b{{K`{c}}}}}CdAd}{{{b{{Ml{c}}}}}CdAd}{{{b{{Kd{c}}}}}CdAd}{{{b{{Kf{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}`{{}}0{{{b{{Kh{c}}}}}CdAd}`{{}Ch}000000000000000000{{{b{AfAAj}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAAj}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAAj}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{cElGn}{{}c{}}000000000000000000{{Nbc}El{}}{{{Kj{c}}e}El{{B`{An}}}{}}{{{Kl{c}}e}El{{B`{An}}}{}}{{{Kn{c}}e}El{{B`{An}}}{}}{{{L`{ce}}g}El{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lb{ce}}g}El{{B`{An}}}{{B`{Bb}}}{}}{{{Nh{c}}}eH`{}}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}Db{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Ml{c}}}}}DbAd}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}e{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}{{}{{Cl{HhHj}}}}000000000000000000{{{b{{K`{c}}}}}{{b{{Ab{c}}}}}Ad}`{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}}Ch{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}{{{b{{Ml{c}}}}}ChAd}{{{Nh{c}}g}{{Nh{e}}}{}{}{H`{Ih{c}{{Id{e}}}}}}`{{{b{{Ml{c}}}}}{{b{{AAn{c}}}}}Ad}{{{Ab{c}}{AB`{c}}}{{Cl{{K`{c}}{Jn{c}}}}}Ad}{{{AAh{c}}{Ob{c}}}{{Ml{c}}}Ad}{{{AAh{c}}Nf}{{Kf{c}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{c}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}Ch}{{n{{Fd{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}{{{b{{Mh{c}}}}{b{{Mh{c}}}}}{{n{Nd}}}Ad}{{{b{{Mj{c}}}}{b{{Mj{c}}}}}{{n{Nd}}}Ad}{{{b{{Ml{c}}}}}{{b{{Ob{c}}}}}Ad}{{{b{{K`{c}}}}}AAfAd}{{{b{{Ml{c}}}}}AAfAd}{{{b{{Kf{c}}}}}AAfAd}{b}000000000000000000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{g}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}}0{{{b{{Kh{c}}}}}{{b{{ABb{c}}}}}Ad}{{{b{{K`{c}}}}}{{b{{AB`{c}}}}}Ad}`{{{Nh{c}}}cH`}```{{{b{{K`{c}}}}e}ClAdJj}{{{b{{Ml{c}}}}e}ClAdJj}{{{b{{Kd{c}}}}e}ClAdJj}{{{b{{Kf{c}}}}e}ClAdJj}{{{b{{Kh{c}}}}e}ClAdJj}{{{b{{Mn{c}}}}e}ClAdJj}{{{b{{N`{c}}}}e}ClAdJj}{{{b{El}}c}ClJj}{{{b{{Ml{c}}}}}CdAd}{{{b{{Kd{c}}}}}CdAd}{{{b{{Mn{c}}}}}CdAd}{{{b{{Jn{c}}}}}{{n{{b{h}}}}}Ad}{{{b{El}}}{{n{{b{h}}}}}}{{{b{El}}}Bb}`{{{b{{Il{}{{A@f{c}}{A@h{g}}{A@j{i}}{A@l{k}}}}}}Ch}{{Ib{{I`{Hn}}}}}{{A@n{}{{Md{{Nh{{K`{e}}}}}}}}AA`H`}Ad{{A@n{}{{Md{{Nh{{Ml{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kd{e}}}}}}}}AA`H`}{{A@n{}{{Md{{Nh{{Kf{e}}}}}}}}AA`H`}}0000000{{{b{ABd}}}Cd}{bc{}}0000000000000000{bAn}000{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}{b{{Ol{c}}}}}{{n{{On{c}}}}}Ad}{{{b{{Kh{c}}}}}{{b{{On{c}}}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{k}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Ml{c}}}}{Bj{{On{c}}}}}{{n{{Ol{c}}}}}Ad}{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{Bj{k}}}{{n{{Fd{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}0{{{b{{Lj{}{{Ld{c}}{Lf{e}}{Lh{g}}}}}}{b{i}}{b{c}}}{{n{{Fd{kg}}}}}{BdEfLlLnM`JhMbH`Hb}{{Mf{}{{Md{c}}}}}{BdEfLlLnJhMbH`Hb}{}{}}{c{{Cl{e}}}{}{}}000000000000000000{{}{{Cl{c}}}{}}000000000000000000{{{Nh{c}}}{{Cl{c{Nh{c}}}}}{}}{bJl}000000000000000000{{}c{}}000000000000000000{{{Nh{c}}i}{{Cl{ce}}}{}{hNj}{{O`{e}{{Nl{Nn}}}}}{{Ih{}{{Id{g}}}}}}{{{Nh{c}}ABf}{{n{c}}}H`}```````````````````{{bd}f}0{{{b{Af{ABh{ce}}}}}{{b{Afe}}}{}{}}{{{b{{ABh{ce}}}}}{{b{e}}}{}{}}`{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}}{{{b{{ABh{ce}}}}}{{Ib{{I`{Hn}}}}}{J`H`Hb}{H`Hb}}{{{b{ABj}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{{ABh{ce}}}}}{{ABh{ce}}}BdBd}{{{b{ABj}}}ABj}{{b{b{Afc}}}f{}}0{bf}0{ABl{{`{{Hn{}{{Id{{ABn{f}}}}}}H`}}}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}0:{Ch{{Ib{{I`{Hn}}}}}}0{{}ABj}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}0`{{{b{{ABh{ce}}}}{b{AfEb}}}EhEfEf}{{{b{ABj}}{b{AfEb}}}Eh}{cc{}}0`{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{{b{{ABh{eg}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{AAb{Ch}}H`}}{{{b{{ABh{eg}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}iCd}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}{{B`{{ACf{c}}}}H`Hb}}{{{b{{ABh{ce}}}}}{{Ib{{I`{Hn}}}}}{AChHb}{H`Hb}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}{{B`{{Mh{c}}}}H`Hb}}5{{{b{{ABh{gi}}}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{ACn{ce}}Hb}{H`Hb}}86{{{b{{ABh{eg}}}}An}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{{Il{c}}H`Hb}{H`Hb}}{{{b{{ABh{eg}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}{{{b{{ABh{eg}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad{{ACb{c}}Hb}{H`Hb}}<:{{{b{{ABh{ce}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}ADh{BdADjH`Hb}}{{{b{ABj}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}}{{}Ch}0{{{b{{ABh{ce}}}}}{{b{c}}}{}{}}{{{b{Af{ABh{ce}}}}}{{b{Afc}}}{}{}}{{{b{Af{ABh{eg}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{{b{Af{ABh{eg}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{{b{Af{ABh{gi}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}{H`Hb}}{{{b{Af{ABh{eg}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}{H`Hb}}{{}c{}}0{{}{{Cl{HhHj}}}}0{{{b{{ABh{ce}}}}}{{b{AEb}}}AEd{}}{{{b{ABj}}}{{b{AEb}}}}{{ce}{{ABh{ce}}}{}{}}`{{{b{{ABh{eg}}}}}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}}`{b}0{b{{I`{AEf}}}}0{{{b{{Jb{}{{AEh{c}}{AEj{e}}}}}}}{{`{{Hn{}{{Id{{ABn{e}}}}}}H`}}}ABlABl}{{{b{{ABh{ce}}}}}{{ABn{g}}}{JbH`}{H`Hb}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}0{ABl{{`{HnH`}}}}{{{b{Af{ABh{gi}}}}Ch}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}{H`Hb}}```7{bc{}}0{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{{b{AfAEl}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{{ABh{eg}}}}i}{{Ib{{I`{Hn}}}}}Ad{{In{c}}H`Hb}{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}0{{{b{{Jb{}{{AEh{c}}{AEj{e}}}}}}}{{`{{Hn{}{{Id{{ABn{c}}}}}}H`}}}ABlABl}<{{}f}0`````{{bd}f}0{{{b{Af{AEn{ce}}}}}{{b{Afe}}}Ad{}}{{{b{{AEn{ce}}}}}{{b{e}}}Ad{}}{{{b{{AF`{ceg}}}}}{{b{e}}}Ad{}{}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}Ad{JbAEdH`Hb}{H`Hb}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{AFd{ceg}}}{{ABn{{AF`{ceg}}}}}Ad{AFfJb}{{AFh{c}}}}{{cg}{{AFd{ecg}}}{JbAFf}Ad{{AFh{e}}}}{{{b{{AF`{ceg}}}}}{{AF`{ceg}}}Ad{}{}}{{{b{{AFj{ceg}}}}}{{AFj{ceg}}}Ad{}{}}{{b{b{Afc}}}f{}}0{bf}0{{{AEn{ce}}}{{ABn{f}}}AdABl}{{AFle}{{Cl{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}<;{{{b{AG`}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}000{{{AFd{ceg}}}{{AFd{ceg}}}{}{}{}}{Chf}000{{{b{{AEn{ce}}}}{b{AfEb}}}Eh{AdEf}Ef}{{{b{{AF`{ceg}}}}{b{AfEb}}}EhAdEfEf}{{{b{{AFj{ceg}}}}{b{AfEb}}}EhAdEfEf}{cc{}}000{{{b{Af{AEn{ce}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mj{c}}}}H`Hb}}{{{b{Af{AEn{ce}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{AC`{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}{{AAb{Ch}}H`}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{AAb{Ch}}H`}}{{{b{Af{AEn{ce}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{ACd{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}9{{{b{Af{AEn{ce}}}}gCd}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}{{B`{{ACf{c}}}}H`Hb}}{{{b{{AF`{ceg}}}}iCd}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{B`{{ACf{c}}}}H`Hb}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{AGjH`}}3{{{b{Af{AEn{ce}}}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mh{c}}}}H`Hb}}:9{{{b{Af{AEn{cg}}}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AGl{ce}}H`}}{{{b{{AF`{ceg}}}}{ACj{ci}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{ACl{c}}}}{{{b{Af{AEn{ce}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{B`{{Mj{c}}}}H`Hb}}>={{{b{Af{AEn{ce}}}}An}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}An}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}}{{{b{{AF`{ceg}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}}{{{b{Af{AEn{ce}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{AD`{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{{{b{Af{AEn{ce}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad{{AGh{c}}H`}}{{{b{{AF`{ceg}}}}{ADb{c}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}98{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AGf{c}}}{{AAb{Ch}}H`}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{{AFh{c}}}{{AAb{Ch}}H`}}{{}Ch}000{{{b{Af{AEn{ce}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{{b{Af{AEn{ce}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{{b{Af{AEn{cg}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}}{{{b{Af{AEn{ce}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad{{AAj{c}}H`Hb}}{{}c{}}000{{}{{Cl{HhHj}}}}000{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{AGnH`}}{{{b{{AF`{ceg}}}}}{{b{AEb}}}AdAEd{}}{{ce}{{AFd{gce}}}{}{}{}}{{{b{AG`}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AF`{c{AGb{c}}e}}}}}Ad{{AFh{c}}}}{{{b{Af{AEn{ce}}}}}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}}{{{b{{AF`{ceg}}}}}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}}{b}000{b{{I`{AEf}}}}{{{b{{AF`{ceg}}}}}{{ABn{i}}}Ad{JbH`Hb}{H`Hb}{}}{{{AEn{ce}}}{{`{HnH`}}}AdABl}{{{b{Af{AEn{cg}}}}Ch}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}{{AE`{ce}}H`Hb}}{{{b{{AF`{c{AGb{c}}e}}}}}{{ABn{f}}}Ad{{AFh{c}}}}76{bc{}}0{c{{Cl{e}}}{}{}}000{{}{{Cl{c}}}{}}000{bJl}000{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AEn{ce}}}}g}{{Ib{{I`{Hn}}}}}Ad{{AFb{c}}H`}{{B`{{Mj{c}}}}H`Hb}}{{{b{{AF`{ceg}}}}i}{{Ib{{I`{Hn}}}}}AdJb{H`Hb}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}000{{{AFd{ceg}}ABf}{{AFd{ceg}}}{}{}{}}0{{{AFd{ceg}}Ch}{{AFd{ceg}}}{}{}{}}010001=``{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{Ch{{Ib{{I`{Hn}}}}}}{{{b{AG`}}e}{{ABn{{AH`{ce}}}}}Ad{{AFh{c}}}}{{{b{AfAGd}}e}{{ABn{{AH`{ce}}}}}Ad{{AFh{c}}}}{{{b{{AH`{ADdc}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{{AFh{ADd}}ADj}}214{{{b{{AH`{ce}}}}}{{ABn{f}}}Ad{{AFh{c}}}}{{}f}00000000```````{{AFle}{{Cl{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}{{AFle}{{Cl{{AHb{ce}}Dn}}}Ad{{AFh{c}}}}187{{{b{{AHb{ADdc}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{{AFh{ADd}}ADj}}`9``3````````{{{b{AfAFb}}}{{Ib{{I`{Hn}}}}}}0`{{{b{AfAGf}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGf}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}{{{b{AfAGh}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}}{{Ib{{I`{Hn}}}}}}4{{{b{AfAFb}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{AfAGj}}}{{Ib{{I`{Hn}}}}}}{{{b{AfAGf}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad}5{{{b{AfAGl}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}}86{{{b{AfAGh}}An}{{Ib{{I`{Hn}}}}}}{{{b{AfAGf}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAGh}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad}<:`=``={{{b{AfAFb}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}````{{{b{Af{AHd{e}}}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AHd{{AHn{{AHj{c}}}}}}}{{ABn{f}}}Ad}{{{AHd{{AI`{{AHj{c}}}}}}}{{ABn{f}}}Ad}4{{{b{AG`}}}{{Cl{{AGb{c}}AIb}}}Ad}{{{b{AfAGd}}}{{Cl{{AGb{c}}AIb}}}Ad}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}0{{{b{Af{AHd{c}}}}}fAHf}1{{{b{{AHj{c}}}}{b{AfEb}}}EhAd}{{{b{{AGb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AHd{c}}}}{b{AfEb}}}Eh{EfAHf}}{cc{}}00{{{b{Af{AHd{e}}}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}{{{b{Af{AHd{e}}}}g}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}{{AAb{Ch}}H`}}1{{{b{Af{AHd{e}}}}gCd}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}{{B`{{ACf{c}}}}H`Hb}}{{{b{Af{AHd{e}}}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}232{{{b{Af{AHd{e}}}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`Hb}}43{{}Ch}00{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AHd{{AI`{{AHj{c}}}}}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}00{{}{{Cl{HhHj}}}}00{{{b{{AGb{c}}}}}{{b{AEb}}}Ad}{{{b{AG`}}}{{Cl{{AGb{c}}AIb}}}Ad}{{{b{AfAGd}}}{{Cl{{AGb{c}}AIb}}}Ad}{{{b{Af{AHd{e}}}}}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}}{b}00{{{b{{AGb{c}}}}}{{ABn{e}}}Ad{}}{{{b{AfAHf}}}f}{{{AHd{{AI`{{AHj{c}}}}}}}{{`{HnH`}}}Ad}{{{AHd{{AHn{{AHj{c}}}}}}}{{`{HnH`}}}Ad}{{{b{{AGb{c}}}}}{{Cl{fAIb}}}Ad}6{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AHd{e}}}}g}{{Ib{{I`{Hn}}}}}Ad{AHf{AHl{}{{AHh{{AHj{c}}}}}}H`}{{B`{{Mj{c}}}}H`Hb}}{{}c{}}00:``{{bd}f}{{{b{AfAId}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{AIf}}}AIf}{{b{b{Afc}}}f{}}{bf}{AId{{ABn{f}}}}6{{}AIf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}0{{{b{AIf}}{b{AfEb}}}Eh}{cc{}}0{{{b{AfAId}}{Mj{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}1{{{b{AfAId}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{AfAId}}{Mh{c}}}{{Ib{{I`{Hn}}}}}Ad}232{{{b{AfAId}}{AAd{c}}}{{Ib{{I`{Hn}}}}}Ad}43{{}Ch}0{{{b{AfAId}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{AfAId}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}0{{}{{Cl{HhHj}}}}0{{{b{AIf}}}{{b{AEb}}}}{{{b{AfAId}}}{{Ib{{I`{Hn}}}}}}{b}0{{{b{AIf}}}{{ABn{c}}}{}}{AId{{`{HnH`}}}}3`{bc{}}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{AfAId}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}<<7`````````{{bd}f}{{{b{Af{AIh{c}}}}}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}}{{{b{AIj}}}{{Ib{{I`{Hn}}}}}}0{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AIj}}}AIj}{{b{b{Afc}}}f{}}{bf}{{{AIh{c}}}{{ABn{f}}}ABl}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}87{Ch{{Ib{{I`{Hn}}}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}00{{{b{AIj}}{b{AfEb}}}Eh}{cc{}}00{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mj{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{AAb{Ch}}H`}}{{{b{Af{AIh{c}}}}eCd}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}{{B`{{ACf{ADd}}}}H`Hb}}{{{b{AIj}}cCd}{{Ib{{I`{Hn}}}}}{{B`{{ACf{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mh{ADd}}}}H`Hb}}343{{{b{AIj}}{AAd{ADd}}}{{Ib{{I`{Hn}}}}}}54{{{b{AIj}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}}{{}Ch}00{{{b{Af{AIh{c}}}}{Ml{ADd}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{{b{Af{AIh{c}}}}{K`{ADd}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{{b{Af{AIh{c}}}}{Kf{ADd}}{n{AAl}}}{{Ib{{I`{Hn}}}}}{{AAj{ADd}}H`Hb}}{{}c{}}00{{}{{Cl{HhHj}}}}00{{{b{AIj}}}{{b{AEb}}}}{{{b{Af{AIh{c}}}}}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}}{{{b{AIj}}}{{Ib{{I`{Hn}}}}}}{b}00{b{{I`{AEf}}}}{{{b{AIj}}}{{ABn{c}}}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{{{AIh{c}}}{{`{HnH`}}}ABl}{{{b{Af{AIl{AIj}}}}}{{Ib{{I`{Hn}}}}}}76{bc{}}{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AIh{c}}}}e}{{Ib{{I`{Hn}}}}}{{AFb{ADd}}H`}{{B`{{Mj{ADd}}}}H`Hb}}{{{b{AIj}}c}{{Ib{{I`{Hn}}}}}{{B`{{Mj{ADd}}}}H`Hb}}{{}c{}}00;``````{{bd}f}{{{b{AIn}}}Cd}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{AIn}}}AIn}{{b{b{Afc}}}f{}}{bf}{{}AIn}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{Chf}{{{b{AIn}}{b{AfEb}}}Eh}{cc{}}{{{b{{AFf{}{{AJ`{c}}}}}}}{{Ib{{I`{Hn}}}}}{ADjH`}}{{{b{AJb}}}{{n{AIn}}}}{{}Ch}{{{b{AIn}}}ABf}{{}c{}}{{}{{Cl{HhHj}}}}{{{b{AfAGn}}}{{Ib{{I`{Hn}}}}}}{{{b{AIn}}}AJd}4>{b}{{{b{{AFf{}{{AJ`{c}}}}}}{b{Afc}}}{{Ib{{I`{Hn}}}}}{ADjH`}}{{{b{AIn}}}{{n{Cd}}}}{{{b{AfAJb}}AIn}f}8{bc{}}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}{{{b{AIn}}}{{ABn{f}}}}<{{AInCd}AIn}{{AInABf}AIn}{{AInAJd}AIn}121`````````````````````````````````{{bd}f}000{{AJfAnAJhCd}AJj}{{{b{AJj}}}{{n{{b{AJh}}}}}}{{{AJl{c}}}{{AJl{c}}}AJn}{{{b{Dn}}}{{b{h}}}}0{{{b{Dn}}}{{b{l}}}}{{{b{Af}}}{{`{{Hn{}{{Id{{ABn{f}}}}}}H`}}}}{{{b{Af}}}{{ABn{f}}}}0{{AK`AKb}AKb}{{{b{AfAKd}}c}{{AKf{An}}}{{AKj{AKh}}{AKl{AKh}}}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{b{{b{c}}}{}}0000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000{{{b{AfAKd}}c{b{Cj}}}{{AKf{An}}}{{AAb{Ch}}}}{{{AJl{ALb}}e}{{Cl{{AFn{ce}}Dn}}}Ad{{AFh{c}}}}{{{b{Dn}}}ALd}{{{b{AJj}}}Cd}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}}AJj}{{{b{ALf}}}ALf}{{{b{ALh}}}ALh}{{{b{{AJl{c}}}}}{{AJl{c}}}{AJnBd}}{{b{b{Afc}}}f{}}000{bf}000{{{b{AJj}}{b{AJj}}}Nd}{{{AKn{c}}}{{ABn{f}}}AL`}{{b{b{c}}}Nd{}}{{{AJl{ALb}}e}{{Cl{{AHb{ce}}Dn}}}Ad{{AFh{c}}}}{{{AJl{c}}}{{Cl{ALjDn}}}AJn}{{{AJl{c}}ABf}{{AJl{c}}}AJn}{{Dnc}Dn{GnH`Hb}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}??{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{}AKd}{{}ALf}{{}ALh}{{}{{AJl{ALb}}}}{{}ALl}{{}{{ADn{AJj}}}}{Ch{{b{c}}}{}}{{{b{Dn}}}b}111111{{{b{{AKn{c}}}}}{{b{e}}}{}{}}2222{{{b{AfDn}}}{{b{Af}}}}{Ch{{b{Afc}}}{}}0000000{{{b{Af{AKn{c}}}}}{{b{Afe}}}{}{}}111{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0000000000{{}{{b{Cj}}}}00{Dn{{Cl{cDn}}}{GnEfH`Hb}}{{{b{AfDn}}}{{n{{b{Afc}}}}}{GnEfH`Hb}}{{{b{Dn}}}{{n{{b{c}}}}}{GnEfH`Hb}}{Chf}{{{b{AfDn}}}f}1111111111{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}{b{AJj}}}Db}{{b{b{c}}}Db{}}000{{{AM`{}{{ALn{c}}}}e}{{Ib{{I`{Hn}}}}}AJn{{AMb{c}}}}0{{{AM`{}{{ALn{c}}}}e}{{Ib{{I`{A@n}}}}}AJn{{AMb{c}}}}0{{{b{Af{AKn{ALf}}}}c}{{ABn{Cd}}}{{AMb{AKh}}}}{{{b{Af{AKn{ALf}}}}{b{Cj}}c}{{ABn{Cd}}}{AK`Bd}}{{{b{Af{AKn{ALf}}}}c}{{ABn{f}}}{{AMb{AKh}}}}{{{b{Af{AKn{ALf}}}}{b{Cj}}c}{{ABn{f}}}{AK`Bd}}44554555{{{b{Dn}}{b{AfEb}}}{{Cl{fEd}}}}0{{{b{AJj}}{b{AfEb}}}{{Cl{fEd}}}}0{{{b{AMd}}{b{AfEb}}}{{Cl{fEd}}}}{{{b{ALb}}{b{AfEb}}}{{Cl{fEd}}}}{{{b{AKd}}{b{AfEb}}}Eh}{{{b{ALf}}{b{AfEb}}}Eh}{{{b{ALh}}{b{AfEb}}}Eh}{{{b{{AKn{c}}}}{b{AfEb}}}EhEf}{{{b{{AJl{c}}}}{b{AfEb}}}Eh{AJnEf}}{{{b{ALj}}{b{AfEb}}}Eh}{{{b{ALl}}{b{AfEb}}}Eh}{b{{AMf{AMd}}}}{b{{AMf{ALb}}}}{{{b{Cj}}}{{Ib{{I`{Hn}}}}}}{cc{}}{Fjc{}}{cDn{hH`Hb}}22222222{AMh{{AJl{ALb}}}}33{{{b{Cj}}}{{Cl{{AJl{ALb}}c}}}{}}{{{b{Af{AKn{c}}}}{Mj{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{AC`{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}e}{{Ib{{I`{Hn}}}}}AL`{{AAb{Ch}}H`}}{{{b{Af{AKn{c}}}}{ACd{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{ALj}}}{{Ib{{I`{Hn}}}}}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{b{{n{{b{Cj}}}}}}06{{{b{Af{AKn{c}}}}gCd}{{Ib{{I`{Hn}}}}}AL`Ad{{B`{{ACf{e}}}}H`Hb}}2{{{b{Af{AKn{c}}}}{Mh{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}6{{{b{Af{AKn{c}}}}{ACj{eg}}}{{Ib{{I`{Hn}}}}}AL`Ad{{ACl{e}}}}97{{{b{ALj}}}{{n{AIn}}}}{{{b{Af{AKn{c}}}}An}{{Ib{{I`{Hn}}}}}AL`}{{{b{Af{AKn{c}}}}{AAd{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{AD`{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}{{{b{Af{AKn{c}}}}{ADb{e}}}{{Ib{{I`{Hn}}}}}AL`Ad}><{c{{Gl{ce}}}{GnH`Hb}{}}0{{{b{AfAKd}}{Mj{c}}}{{AKf{An}}}Ad}{{{AJl{ALb}}c}{{AJl{ALb}}}{{B`{An}}}}{{{AJl{c}}ABf}{{AJl{c}}}AJn}``{{}Ch}0000000000{{{b{Af{AKn{ALf}}}}{Ml{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AKn{ALf}}}}{K`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{Af{AKn{ALf}}}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}}{{{b{Af{AKn{ALf}}}}{Kf{c}}{n{AAl}}}{{Ib{{I`{Hn}}}}}Ad}{{}c{}}0000000000{{{b{Dn}}}Db}{{}{{Cl{HhHj}}}}0000000000{{{b{Af{AKn{c}}}}g}{{AKf{{AAh{e}}}}}{}Ad{{B`{{Mj{e}}}}H`}}{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{{{AJl{c}}AMj}{{AJl{c}}}AJn}{{{b{ALj}}}{{b{AEb}}}}{{{AJl{c}}e}{{AJl{c}}}AJn{{AMl{}{{Md{AJj}}}}}}2{cDn{GnEfH`Hb}}{{{b{AJj}}}{{b{Cj}}}}{cDn{hH`Hb}}{{{AJl{c}}}{{AJl{c}}}AJn}{b{{n{{b{Cj}}}}}}0{{{b{AJj}}{b{AJj}}}{{n{Nd}}}}{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}:{b}0000000000{{{AJl{ALb}}AJd}{{AJl{ALb}}}}{{{b{AJj}}}{{b{AMn}}}}{{{AM`{}{{ALn{c}}}}{b{Cj}}}{{Ib{{I`{Hn}}}}}AJn}0{{{AM`{}{{ALn{c}}}}{b{Cj}}{b{AN`}}}{{Ib{{I`{Hn}}}}}AJn}{{{b{ALj}}{b{AfALl}}}{{Ib{{I`{Hn}}}}}}{{{AJl{c}}AIn}{{Cl{{AJl{c}}Dn}}}AJn}{{{b{Cj}}}AKb}{{AKd{b{Cj}}}AKb}{{{b{Cj}}}{{ANb{c}}}ANd}{{AKd{b{Cj}}}{{ANb{c}}}ANd}{{{b{ALj}}}{{ABn{{AKn{ALh}}}}}}?>>{{{AKn{c}}}{{`{HnH`}}}AL`}{{{b{Dn}}}{{b{h}}}}{{{AJl{c}}e}{{AJl{c}}}AJn{{B`{An}}}}{{{b{AfAJj}}}f}{{{b{Af{AKn{ALf}}}}Ch}{{Ib{{I`{Hn}}}}}}{{{b{AfALj}}AIn}f}{{{b{Af}}}{{Ib{{I`{Hn}}}}}}0{{{b{AJj}}}{{n{{b{Cj}}}}}}`{{{b{Af{AKn{c}}}}}{{Ib{{I`{Hn}}}}}AL`}{{{b{ANf}}}{{Ib{{I`{Hn}}}}}}0`{{{AJl{ALb}}}{{AJl{ALb}}}}{bc{}}000{bAn}0{c{{Cl{e}}}{}{}}0000000000{{}{{Cl{c}}}{}}0000000000{bJl}0000000000{{{b{Cj}}{b{Cj}}}{{Cl{AJjANh}}}}{{{b{Af}}{b{{ADf{c}}}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AKn{ALf}}}}{b{Cj}}{ANj{{b{Cj}}}}ce}{{ABn{f}}}{{AMl{}{{Md{{b{Cj}}}}}}}AMl}{{{AJl{ALb}}{b{Cj}}}{{AJl{ALb}}}}{{{b{AJj}}}AMj}{{{b{Af{AKn{c}}}}g}{{Ib{{I`{Hn}}}}}AL`Ad{{B`{{Mj{e}}}}H`Hb}}{{}c{}}0000000000{{{b{ALj}}}{{ABn{{AKn{ALf}}}}}}``{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{ANl}}}{{AJl{ALb}}}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}{{{b{AfANl}}}f}1{{{b{ANl}}{b{AfEb}}}Eh}{cc{}}0{{{b{ANl}}}An}{{}Ch}{{}ANl}1>>{{}{{Cl{HhHj}}}}01{b}0{{{b{ANl}}}AJd}88{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{}c{}}0`````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}000000000000000{{ANnANn}c{}}{b{{b{h}}}}00000000000000000000000``````````{b{{b{c}}}{}}0000000000000000000000000000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000000000000000000000000000{AO`ANn}{{{b{AOb}}}AOb}{{{b{AOd}}}AOd}{{{b{AOf}}}AOf}{{{b{ANn}}}ANn}{{{b{{AC`{c}}}}}{{AC`{c}}}{BdAd}}{{{b{{AD`{c}}}}}{{AD`{c}}}{BdAd}}{{{b{{AOh{c}}}}}{{AOh{c}}}{BdAd}}{{{b{{AOj{c}}}}}{{AOj{c}}}{BdAd}}{{{b{AOl}}}AOl}{{{b{AOn}}}AOn}{{{b{B@`}}}B@`}{{{b{B@b}}}B@b}{{{b{B@d}}}B@d}{{{b{B@f}}}B@f}{{{b{B@h}}}B@h}{{{b{Fb}}}Fb}{{b{b{Afc}}}f{}}000000000000000{bf}000000000000000{{{b{AOf}}{b{AOf}}}Nd}{{b{b{c}}}Nd{}}````{{}{{ADb{c}}}Ad}{c{{Cl{{Of{eFbc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}0000000000000000000000000000000000{Ch{{b{Afc}}}{}}0000000000000000000000000000000000{c{{Cl{AOb}}}Cn}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{AOd}}}Cn}1{c{{Cl{AOf}}}Cn}{c{{Cl{ANn}}}Cn}333333{c{{Cl{AOl}}}Cn}4{c{{Cl{{B@j{e}}}}}CnAd}{c{{Cl{{B@l{e}}}}}CnAd}66{c{{Cl{B@n}}}Cn}7{c{{Cl{{BA`{e}}}}}CnAd}88{c{{Cl{{BAb{e}}}}}CnAd}99{c{{Cl{BAd}}}Cn}::{c{{Cl{BAf}}}Cn};{c{{Cl{BAh}}}Cn}<{c{{Cl{{BAj{e}}}}}CnAd}={c{{Cl{{BAl{e}}}}}CnAd}>{c{{Cl{AOn}}}Cn}{c{{Cl{B@`}}}Cn}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{B@b}}}Cn}1{c{{Cl{B@d}}}Cn}2{c{{Cl{B@f}}}Cn}{c{{Cl{B@h}}}Cn}44{c{{Cl{Fb}}}Cn}{c{{Cl{{BAn{e}}}}}CnAd}6{c{{Cl{{BB`{e}}}}}CnAd}7{c{{Cl{{BBb{e}}}}}CnAd}8{c{{Cl{{BBd{e}}}}}CnAd}99{c{{Cl{{BBf{e}}}}}CnAd}{c{{Cl{{BBh{e}}}}}CnAd};{Chf}0000000000000000000000000000000000{{{b{AOf}}{b{AOf}}}Db}{{{b{ANn}}{b{ANn}}}Db}{{{b{{AC`{c}}}}{b{{AC`{c}}}}}Db{LlAd}}{{{b{{AD`{c}}}}{b{{AD`{c}}}}}Db{LlAd}}{{{b{{AOh{c}}}}{b{{AOh{c}}}}}Db{LlAd}}{{{b{{AOj{c}}}}{b{{AOj{c}}}}}Db{LlAd}}{{{b{AOl}}{b{AOl}}}Db}{{{b{{B@j{c}}}}{b{{B@j{c}}}}}Db{LlAd}}{{{b{{B@l{c}}}}{b{{B@l{c}}}}}Db{LlAd}}{{{b{Ff}}{b{Ff}}}Db}{{{b{B@n}}{b{B@n}}}Db}{{{b{{BA`{c}}}}{b{{BA`{c}}}}}Db{LlAd}}{{{b{{BAb{c}}}}{b{{BAb{c}}}}}Db{LlAd}}{{{b{{ACd{c}}}}{b{{ACd{c}}}}}Db{LlAd}}{{b{b{c}}}Db{}}0000000000000000000000000000000000000000000000000000000{AO`ANn}0``{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}e{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}c{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}```{{{b{AOb}}{b{AfEb}}}Eh}0{{{b{AOd}}{b{AfEb}}}Eh}0{{{b{AOf}}{b{AfEb}}}Eh}0{{{b{ANn}}{b{AfEb}}}Eh}0{{{b{{AC`{c}}}}{b{AfEb}}}EhAd}{{{b{{AC`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AD`{c}}}}{b{AfEb}}}EhAd}{{{b{{AD`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AOh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AOj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{AOl}}{b{AfEb}}}Eh}{{{b{{B@j{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{B@l{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Ff}}{b{AfEb}}}Eh}0{{{b{B@n}}{b{AfEb}}}Eh}{{{b{{BA`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ACd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BAd}}{b{AfEb}}}Eh}{{{b{{ADb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BAf}}{b{AfEb}}}Eh}{{{b{BAh}}{b{AfEb}}}Eh}{{{b{{BAj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{AOn}}{b{AfEb}}}Eh}0{{{b{B@`}}{b{AfEb}}}Eh}0{{{b{B@b}}{b{AfEb}}}Eh}0{{{b{B@d}}{b{AfEb}}}Eh}0{{{b{B@f}}{b{AfEb}}}Eh}0{{{b{B@h}}{b{AfEb}}}Eh}0{{{b{Fb}}{b{AfEb}}}Eh}0{{{b{{BAn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BB`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBh{c}}}}{b{AfEb}}}Eh{EfAd}}{cc{}}00{AO`ANn}11111111{BCdFf}{BCfFf}33333333333{A`AOn}{FhAOn}55{FhB@`}{A`B@`}7{FhB@b}{A`B@b}{FfB@b}{FhB@d}{A`B@d}<{FhB@f}{B@dB@f}{B@`B@f}{AOnB@f}{A`B@f}{cc{}}{A`B@h}{FhB@h}22{{{B@j{c}}}{{BAn{c}}}Ad}3{{{ADn{{B@l{c}}}}}{{BB`{c}}}Ad}444{{{ADn{{BAb{c}}}}}{{BBd{c}}}Ad}{{{BAj{c}}}{{BBf{c}}}Ad}6{{{BAl{c}}}{{BBh{c}}}Ad}7{b{{A@d{{B@j{c}}}}}Ad}{b{{A@d{{B@l{c}}}}}Ad}`{{{b{ACb}}{AC`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}{ACd{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}}{{Ib{{I`{Hn}}}}}}{{{b{ACb}}An}{{Ib{{I`{Hn}}}}}}{{{b{ACb}}{AD`{c}}}{{Ib{{I`{Hn}}}}}Ad}{{{b{ACb}}{ADb{c}}}{{Ib{{I`{Hn}}}}}Ad}````{c{{Gl{ce}}}{GnH`Hb}{}}0000000000000`````{{}}0000000{{}Ch}0000000000000000000000000000000000{{}c{}}0000000000000000000000000000000000{{}{{BCh{An}}}}{{{b{AOf}}}Db}00```{{}{{Cl{HhHj}}}}0000000000000000000000000000000000{{{b{{BCj{}{{BC`{c}}}}}}}c{BdEfJhMbH`HbLlLn}}{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}{{ADn{i}}}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}{{AOfAO`}ANn}````````{{{b{AOf}}{b{AOf}}}{{n{Nd}}}}{b}0000000000000000000000000000000000{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}g{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}```{{{b{{BCb{}{{BBj{c}}{BBl{e}}{BBn{g}}{BC`{i}}}}}}}c{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}{BdEfJhMbH`HbLlLn}}````{{{b{AOb}}c}ClJj}{{{b{AOd}}c}ClJj}{{{b{AOf}}c}ClJj}{{{b{ANn}}c}ClJj}{{{b{AOl}}c}ClJj}{{{b{{B@j{c}}}}e}ClAdJj}{{{b{{B@l{c}}}}e}ClAdJj}{{{b{B@n}}c}ClJj}{{{b{{BA`{c}}}}e}ClAdJj}{{{b{{BAb{c}}}}e}ClAdJj}{{{b{BAd}}c}ClJj}{{{b{BAf}}c}ClJj}{{{b{BAh}}c}ClJj}{{{b{{BAj{c}}}}e}ClAdJj}{{{b{{BAl{c}}}}e}ClAdJj}{{{b{AOn}}c}ClJj}{{{b{B@`}}c}ClJj}{{{b{B@b}}c}ClJj}{{{b{B@d}}c}ClJj}{{{b{B@f}}c}ClJj}{{{b{B@h}}c}ClJj}{{{b{Fb}}c}ClJj}{{{b{{BAn{c}}}}e}ClAdJj}{{{b{{BB`{c}}}}e}ClAdJj}{{{b{{BBb{c}}}}e}ClAdJj}{{{b{{BBd{c}}}}e}ClAdJj}{{{b{{BBf{c}}}}e}ClAdJj}{{{b{{BBh{c}}}}e}ClAdJj}{{{b{AOf}}}Ch}```{{{b{Ff}}}{{n{{b{h}}}}}}{{{b{AOn}}}{{n{{b{h}}}}}}{{{b{B@`}}}{{n{{b{h}}}}}}{{{b{B@b}}}{{n{{b{h}}}}}}{{{b{B@d}}}{{n{{b{h}}}}}}{{{b{B@f}}}{{n{{b{h}}}}}}{{{b{B@h}}}{{n{{b{h}}}}}}{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{AOn}}}Bb}{{{b{B@`}}}Bb}{{{b{B@b}}}Bb}{{{b{B@d}}}Bb}{{{b{B@f}}}Bb}{{{b{B@h}}}Bb}{{{b{Fb}}}Bb}{{ANnANn}c{}}```````{bc{}}000000000000000{bAn}0000000000000````{c{{Cl{e}}}{}{}}0{{{b{Cj}}}{{Cl{AOfc}}}{}}1111111{{{Ml{c}}}{{Cl{{B@j{c}}e}}}Ad{}}22{{{Ml{c}}}{{Cl{{B@l{c}}e}}}Ad{}}3333{{{Fd{{b{{Ml{c}}}}Ch}}}{{Cl{{BAb{c}}e}}}Ad{}}44444444444444444444{{}{{Cl{c}}}{}}0000000000000000000000000000000000{bJl}0000000000000000000000000000000000{AO`ANn}`{{}c{}}0000000000000000000000000000000000`````{{bd}f}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{{BCl{ce}}}}}{{BCl{ce}}}{}{}}{{b{b{Afc}}}f{}}{bf}{{}{{BCl{ce}}}{}{}}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{Chf}{{{b{{BCl{ce}}}}{b{AfEb}}}Eh{}{}}{cc{}}{{}Ch}>{{}{{Cl{HhHj}}}}{b}``{{BCnc}f{}}{{BD`c}{{`{{Hn{}{{Id{f}}}}H`}}}{}}{{{b{{BCl{eg}}}}eik}f{}{{BDb{c}}}BD`{{BDd{ce}}}{{AMl{}{{Md{g}}}}H`}}{bc{}}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}{{}c{}}{{{BCl{ce}}{Dl{BDf}}}{{BCl{ce}}}{}{}}{{{BCl{ce}}ABf}{{BCl{ce}}}{}{}}`````{{bd}f}000{{{b{{BDh{c}}}}}f{}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{b{{BDj{c}}}}}{{BDj{c}}}Ad}{{{b{{BDl{c}}}}}{{BDl{c}}}{BdJf}}{{{b{{BDh{c}}}}}{{BDh{c}}}{}}{{{b{BDn}}}BDn}{{b{b{Afc}}}f{}}000{bf}000{{}{{BDj{c}}}Ad}{{}BDn}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}000{Chf}000>{{{b{BDd}}e}{{Ib{{I`{Hn}}}}}{}{{BDb{c}}}}{{{b{{BDj{c}}}}BE`}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDj{c}}}}BEb}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDj{c}}}}BEd}{{Ib{{I`{Hn}}}}}Ad}{{{b{{BDl{c}}}}BE`}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDl{c}}}}BEb}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDl{c}}}}BEd}{{Ib{{I`{Hn}}}}}Jf}{{{b{{BDh{g}}}}e}{{Ib{{I`{Hn}}}}}Ad{{BDb{c}}}{{BDd{ce}}Hb}}{{{b{BDn}}e}{{Ib{{I`{Hn}}}}}{}{H`{BDb{c}}}}{{{b{{BDj{c}}}}{b{AfEb}}}EhAd}{{{b{{BDl{c}}}}{b{AfEb}}}Eh{EfJf}}{{{b{{BDh{c}}}}{b{AfEb}}}EhEf}{{{b{BDn}}{b{AfEb}}}Eh}{cc{}}000{{}Ch}000{{}c{}}000{{}{{Cl{HhHj}}}}000{{BEfc}{{BDl{c}}}Jf}{c{{BDh{c}}}{}}{b}000{bc{}}000{c{{Cl{e}}}{}{}}000{{}{{Cl{c}}}{}}000{bJl}000{{{b{{BDh{c}}}}}f{}}09999{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBE`}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBEd}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{AFh{c}}Ef}}{{{BDj{c}}e}{{BDj{c}}}Ad{{BDd{cBEb}}Ef}}`````{{bd}f}00{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{BE`}}}BE`}{{{b{BEb}}}BEb}{{{b{BEd}}}BEd}{{b{b{Afc}}}f{}}00{bf}00{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}00{{{b{BE`}}{b{BE`}}}Db}{{{b{BEb}}{b{BEb}}}Db}{{{b{BEd}}{b{BEd}}}Db}{{b{b{c}}}Db{}}00000000000{{{b{BE`}}{b{AfEb}}}Eh}{{{b{BEb}}{b{AfEb}}}Eh}{{{b{BEd}}{b{AfEb}}}Eh}{cc{}}00{ChBEd}{{{b{c}}{b{e}}}Cd{GdGf}Gh}00{{{b{BE`}}{b{Afc}}}fGj}{{{b{BEb}}{b{Afc}}}fGj}{{{b{BEd}}{b{Afc}}}fGj}{{}Ch}00{{}c{}}00{{}{{Cl{HhHj}}}}00{b}00{bc{}}00{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00666`````````````````{{bd}f}0`{b{{b{h}}}}00{{{b{F`}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{F`}}}{{n{{b{h}}}}}}{{{b{{ACj{ce}}}}}{{ACj{ce}}}Ad{{ACl{c}}}}{{{b{F`}}}F`}{{b{b{Afc}}}f{}}0{bf}0{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}NdAd{{ACl{c}}}}{{b{b{c}}}Nd{}}{{}BEh}{{{b{BEh}}}{{Cl{{Of{cF`e}}Oh}}}{H`HbOj}Jf}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{{b{F`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{c{{Cl{F`}}}Cn}{Chf}00{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}DbAd{{ACl{c}}}}{{b{b{c}}}Db{}}000`{{{b{{ACj{ce}}}}{b{AfEb}}}EhAd{{ACl{c}}}}0{{{b{F`}}{b{AfEb}}}Eh}0{cc{}}0{{{Fd{AnBb}}}F`}1{A`F`}{A@bF`}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{ACh}}}{{Ib{{I`{Hn}}}}}}{{{b{ACn}}{ACj{ce}}}{{Ib{{I`{Hn}}}}}Ad{{ACl{c}}}}{{{b{{ACj{ce}}}}{b{Afg}}}fAd{{ACl{c}}}Gj}{c{{Gl{ce}}}{GnH`Hb}{}}0{{}{{b{Cj}}}}{{}}{{}Ch}00{{{b{AfAE`}}ADl{ADn{Ch}}Cd}{{Ib{{I`{Hn}}}}}}{{{b{Af{ACl{}{{BEj{c}}{BEl{e}}{BEn{g}}{BF`{i}}{BFb{k}}}}}}c{b{{ADl{ecg}}}}}{{ABn{f}}}{BFdH`HbJhBFfBFhMbGnBFjBFl}{BFnH`HbJhMbBFjBFl}{BG`H`}{{BGb{g}}H`{BGf{{b{BGd}}}}GnEf{B`{BGd}}}{{BGh{ecg}}}}{{}c{}}00{{}{{Cl{HhHj}}}}00{{{b{{ACj{ce}}}}{b{{ACj{ce}}}}}{{n{Nd}}}Ad{{ACl{c}}}}{b}00{{{b{F`}}c}ClJj}{{{b{AfAE`}}Ch}{{Ib{{I`{Hn}}}}}}{{{b{F`}}}{{n{{b{h}}}}}};{{{b{F`}}}Bb}{bc{}}0{bAn}0<{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00<<<````````````````{{bd}f}0000000{{{b{BGj}}Ch}f}{{{b{BGl}}BGn}f}{b{{b{h}}}}00{{{b{BH`}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00000000{{{b{Af}}}{{b{Afc}}}{}}00000000{{{b{BH`}}}{{n{{b{h}}}}}}{{{b{AEb}}}AEb}{{{b{BGj}}}BGj}{{{b{BHb}}}BHb}{{{b{BGl}}}BGl}{{{b{BHd}}}BHd}{{{b{BHf}}}BHf}{{{b{BHh}}}BHh}{{{b{BHj}}}BHj}{{b{b{Afc}}}f{}}0000000{bf}0000000{{{b{AEb}}An{ADn{An}}}{{I`{BHl}}}}{{{b{BHd}}{ADn{An}}}{{I`{BHn}}}}{{{b{BHf}}{ADn{An}}}{{I`{BI`}}}}{{{b{BHh}}{ADn{An}}}{{I`{BIb}}}}{{{b{BHj}}{ADn{An}}}f}{{{b{AEb}}An{n{An}}}{{I`{BHn}}}}{{{b{AEb}}An{n{An}}}{{I`{BI`}}}}{{{b{AEb}}An{n{An}}}{{I`{BIb}}}}{{{b{AEb}}An}f}{{}AEb}{Ch{{b{c}}}{}}00000000{Ch{{b{Afc}}}{}}00000000{{{b{BH`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00000000{Chf}00000000{{{b{AEb}}}{{Cl{Anc}}}{}}{{{b{BH`}}{b{AfEb}}}Eh}0{{{b{AEb}}{b{AfEb}}}Eh}{{{b{BGj}}{b{AfEb}}}Eh}{{{b{BHb}}{b{AfEb}}}Eh}{{{b{BGl}}{b{AfEb}}}Eh}{{{b{BHd}}{b{AfEb}}}Eh}{{{b{BHf}}{b{AfEb}}}Eh}{{{b{BHh}}{b{AfEb}}}Eh}{{{b{BHj}}{b{AfEb}}}Eh}{BIdBH`}{cc{}}00000000{{{b{AEb}}An{ADn{An}}}{{I`{BIf}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BHfBH`}}}}{{{b{BGj}}}Ch}{{{b{BHb}}}Ch}{{{b{BHd}}{b{{AN`{c}}}}}BGj{{BIh{Cj}}}}{{{b{BHf}}{b{{AN`{c}}}}}BHb{{BIh{Cj}}}}{{{b{BHh}}{b{{AN`{c}}}}}BGl{{BIh{Cj}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BGjBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BHdBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BHbBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BGlBH`}}}}{{{b{AEb}}{b{Cj}}}{{Cl{BHhBH`}}}}{{{b{AEb}}c}{{Cl{AEbBH`}}}AMl}{c{{Gl{ce}}}{GnH`Hb}{}}{{{b{AEb}}An{ADn{An}}}{{I`{BIj}}}}{{}}{{}Ch}00000000{{}c{}}00000000{{}{{Cl{HhHj}}}}00000000{{{b{BGl}}}BGn}{b}00000000{{{b{BGl}}}Ch}{{{b{BHb}}Ch}f}{{{b{BH`}}}{{n{{b{h}}}}}}{{{b{AEb}}An}{{I`{AEf}}}}5{{{b{AEb}}An{ADn{An}}}{{I`{BIl}}}}{bc{}}0000000{bAn}{c{{Cl{e}}}{}{}}00000000{{}{{Cl{c}}}{}}00000000{bJl}00000000{{{b{BHb}}BIn}f}>>>>>>>>>`````````````````````````{{bd}f}00000000`{b{{b{h}}}}00{{{b{Ej}}}{{n{{b{l}}}}}}`{{{b{In}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{BJ`{ce}}}Ej{{B`{An}}}{{B`{Bb}}}}{{{b{Ej}}}{{n{{b{h}}}}}}{{{b{{ACf{c}}}}}{{ACf{c}}}Ad}{{{b{BJb}}}BJb}{{{b{{BJd{c}}}}}{{BJd{c}}}Bd}{{{b{BJf}}}BJf}{{{b{BJh}}}BJh}{{{b{{BJj{c}}}}}{{BJj{c}}}Bd}{{{b{{BJl{ce}}}}}{{BJl{ce}}}BdBd}{{{b{{BJ`{ce}}}}}{{BJ`{ce}}}BdBd}{{{b{Ej}}}Ej}{{b{b{Afc}}}f{}}00000000{bf}00000000{{{b{BJb}}{b{BJb}}}Nd}{{b{b{c}}}Nd{}}{{{b{In}}}{{Ib{{I`{Hn}}}}}}{{}{{BJd{c}}}{}}{{}BJn}{{{b{BJn}}c}{{Cl{{Of{eEjc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}000000000{Ch{{b{Afc}}}{}}000000000{{{b{Ej}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{BJb}}}Cn}{c{{Cl{{BJd{e}}}}}CnBK`}22222222{c{{Cl{Ej}}}Cn}{Chf}000000000`{{{b{BJb}}{b{BJb}}}Db}{{{b{{BJd{c}}}}{b{{BJd{c}}}}}DbLl}{{b{b{c}}}Db{}}0000000`{{{BJ`{ce}}}{{Cl{gEj}}}{{B`{An}}}{{B`{Bb}}}{}}{{{b{{ACf{c}}}}{b{AfEb}}}EhAd}{{{b{BJb}}{b{AfEb}}}Eh}{{{b{{BJd{c}}}}{b{AfEb}}}EhEf}{{{b{BJf}}{b{AfEb}}}Eh}{{{b{BJh}}{b{AfEb}}}Eh}{{{b{{BJj{c}}}}{b{AfEb}}}EhEf}{{{b{{BJl{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{BJ`{ce}}}}{b{AfEb}}}EhEfEf}{{{b{Ej}}{b{AfEb}}}Eh}0{cc{}}{{{Kb{c}}}{{ACf{c}}}Ad}11{{{b{{BJd{c}}}}}{{n{Cd}}}BKb}222222{A`Ej}{A@bEj}{{{Fd{AnBb}}}Ej}5{{}BJb}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{In}}eCd}{{Ib{{I`{Hn}}}}}Ad{{B`{{ACf{c}}}}H`Hb}}{{{b{BJb}}{b{Afc}}}fGj}{c{{Gl{ce}}}{GnH`Hb}{}}{{}}{{}Ch}000000000{cEjGn}{{}c{}}000000000{{BJfc}Ej{}}{{BJhc}Ej{}}{{{BJj{c}}e}Ej{{B`{An}}}{}}{{{BJl{ce}}g}Ej{{B`{An}}}{{B`{Cd}}}{}}{{{BJ`{ce}}g}Ej{{B`{An}}}{{B`{Bb}}}{}}{{{b{BJb}}}Db}{{}{{Cl{HhHj}}}}000000000``````{{{b{BJb}}{b{BJb}}}{{n{Nd}}}}{{{b{In}}}{{Ib{{I`{Hn}}}}}}{b}000000000``{{{b{BJb}}c}ClJj}{{{b{{BJd{c}}}}e}ClJhJj}{{{b{Ej}}c}ClJj}{{{b{Ej}}}{{n{{b{h}}}}}}`{{{b{Ej}}}Bb}`6{bc{}}00000000{bAn}{c{{Cl{e}}}{}{}}000000000{{}{{Cl{c}}}{}}000000000{bJl}000000000{{{b{In}}e}{{Ib{{I`{Hn}}}}}Ad{{B`{{Mj{c}}}}H`Hb}}{{}c{}}000000000`````````````````{{bd}f}`{b{{b{h}}}}00{{{b{En}}}{{n{{b{l}}}}}}{{{b{J`}}}{{Ib{{I`{Hn}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{En}}}{{n{{b{h}}}}}}{{{b{En}}}En}{{b{b{Afc}}}f{}}{bf}{{{b{J`}}}{{AKf{AEb}}}}0{{}BKd}{{{b{BKd}}c}{{Cl{{Of{eEnc}}Oh}}}Jf{H`HbOj}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{{b{En}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{En}}}Cn}{Chf}0??`{{{b{En}}{b{AfEb}}}Eh}0{cc{}}{AnEn}1{A@bEn}{c{{Gl{ce}}}{GnH`Hb}{}}{{}}{{}Ch}0{{}c{}}0{{}{{Cl{HhHj}}}}0{{{b{AEd}}}{{b{AEb}}}}{b}0{{{b{BKf}}}{{I`{AEf}}}}{{{b{En}}c}ClJj}{{{b{En}}}{{n{{b{h}}}}}}{{{b{En}}}Bb}{{{b{J`}}}{{Ib{{I`{Hn}}}}}}0{bc{}}{bAn}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0==````{{bd}f}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{BKh}}}BKh}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}{{{b{Af{BKj{c}}}}}fH`}1{{{b{BKh}}{b{AfEb}}}Eh}{{{b{{BKj{c}}}}{b{AfEb}}}EhH`}{cc{}}0{{}Ch}0{{}c{}}0{{{BKj{c}}}cH`}{{}{{Cl{HhHj}}}}0{b}0{{ce}BKhGn{HnH`}}{{cg}{{BKj{e}}}GnH`{{Hn{}{{Id{e}}}}H`}}{bc{}}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}099``{{}f}{ABff}```````{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{Ch{{Ib{{I`{Hn}}}}}}{{{b{{AIl{c}}}}}cBKl}{{{b{{AIl{c}}}}Ch}cBKl}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{{{b{Af{AIl{c}}}}}fBKl}{Chf}{cc{}}{{{b{{AIl{c}}}}}{{b{{Ij{ADdBKnBL`}}}}}BKl}{{{b{{BKl{}{{BLb{c}}}}}}{b{{ADf{ADd}}}}}{{Ib{{I`{Hn}}}}}{H`Hb}}{{}{{AIl{c}}}{BKlBKf}}{{}Ch}{c{{AIl{e}}}{{Ih{{b{Af{BLf{BLd}}}}}}}{BKlBKf}}{{}c{}}{{}{{Cl{HhHj}}}}{{{b{{AIl{c}}}}}ChBKl}{b}{{{b{{AIl{c}}}}Ch}{{BLh{ADd}}}BKl}{{{b{c}}}{{Ib{{I`{Hn}}}}}{}}{{{b{Af{AIl{{BKl{}{{BLb{c}}}}}}}}}{{Ib{{I`{Hn}}}}}{H`Hb}}{{{AIl{c}}}fBKl}{{{b{Af{AIl{c}}}}eg}fBKlGn{HnH`}}{{{b{Af{AIl{c}}}}}fBKl}{{{b{{AIl{c}}}}}bBKl}{{{b{{AIl{c}}}}BLj}fBKl}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}>`````````````{{bd}f}00``{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00`{{{b{ADd}}}ADd}{{{b{BL`}}}BL`}{{{b{BKn}}}BKn}{{b{b{Afc}}}f{}}00{bf}00{{{b{ADd}}{b{ADd}}}Nd}{{{b{BKn}}{b{BKn}}}Nd}{{b{b{c}}}Nd{}}0`{{}ADd}{{}BKn}`{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{c{{Cl{ADd}}}Cn}11{c{{Cl{BKn}}}Cn}{Chf}00{{{b{ADd}}{b{ADd}}}Db}{{{b{BKn}}{b{BKn}}}Db}{{b{b{c}}}Db{}}0000000{{{b{BLl}}}c{}}0{{{b{ADd}}{b{AfEb}}}Eh}{{{b{BL`}}{b{AfEb}}}Eh}{{{b{BKn}}{b{AfEb}}}Eh}{cc{}}00{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{ADd}}{b{Afc}}}fGj}{{{b{BKn}}{b{Afc}}}fGj}{{}{{b{Cj}}}}{{{b{BLl}}}Cd}{{}Ch}00{{{b{AfBLn}}c{b{{ADl{ecg}}}}}{{ABn{f}}}{}{}{}}{{}c{}}00{{{b{BM`}}{b{c}}}e{}{}}`{{}{{Cl{HhHj}}}}00{{{b{BM`}}{b{c}}}Ch{}}`{{{ADn{BMb}}}BLj}{{{b{BLj}}}c{}}{{{b{BLl}}}{{ADn{c}}}{}}{{{b{ADd}}{b{ADd}}}{{n{Nd}}}}{{{b{BKn}}{b{BKn}}}{{n{Nd}}}}`{b}00`{{{b{BLl}}}c{}}`0{{{b{ADd}}c}ClJj}{{{b{BKn}}c}ClJj}`{{}{{b{Cj}}}}{{{b{BLl}}}Cd}`{bc{}}00{{{b{BM`}}{b{c}}{b{e}}}{{n{{Fd{gi}}}}}{}{}{}{}}`{{}Ch}{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00```{{}c{}}00`{{{b{BKb}}}Cd}","D":"EGb","p":[[1,"reference"],[5,"Private",4371],[1,"unit"],[10,"Error",4372],[6,"Error",0,4373],[5,"Backtrace",4374],[6,"Option",4375],[6,"QueryError",0],[5,"Leaf",0,4376],[10,"NodeType",4377],[0,"mut"],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"ErrorSnafu",0],[5,"String",4378],[10,"Into",4379],[5,"StatusCode",4380],[10,"Clone",4381],[5,"ApiState",0],[5,"UpgradeLock",4382],[5,"Commitment",4383],[10,"Versions",4377],[10,"Resolvable",0,4384],[10,"Committable",4383],[10,"RngCore",4385],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",4386],[10,"Deserializer",4387],[5,"With",4388],[1,"bool"],[5,"UpgradeProposalData",4389],[5,"UpgradeThreshold",4390],[5,"SimpleCertificate",4390],[5,"RwLock",4391],[5,"Arc",4392],[5,"Error",1650,4393],[6,"BlockError",4376],[5,"Formatter",4394],[5,"Error",4394],[10,"Debug",4394],[8,"Result",4394],[6,"Error",3768],[6,"Error",316],[6,"Error",4074],[6,"Error",3402],[6,"Error",2091],[1,"tuple"],[6,"TimestampConversionError",2091,4395],[6,"Error",4396],[1,"never"],[5,"OwnedFd",4397],[10,"IntoFilelike",4398],[10,"IntoSocketlike",4398],[5,"QuorumProposal",4376],[10,"Hash",4399],[10,"Sized",4400],[10,"BuildHasher",4399],[10,"Hasher",4399],[5,"IndentedSection",4401],[10,"Display",4394],[10,"Send",4400],[10,"Sync",4400],[5,"QuorumData",4389],[5,"SuccessThreshold",4390],[5,"Layout",4402],[5,"LayoutError",4402],[5,"DynGuard",4403],[10,"Future",4404],[5,"Box",4405],[5,"Pin",4406],[17,"Output"],[8,"BoxFuture",4407],[10,"FnOnce",4408],[5,"SystemContextHandle",4409],[10,"AvailabilityDataSource",316,4410],[10,"NodeDataSource",3768,4411],[10,"StatusDataSource",4074,4412],[10,"VersionedDataSource",1001,4413],[10,"NodeImplementation",4377],[10,"StaticVersionType",4414],[10,"Serialize",4415],[10,"Serializer",4415],[5,"TypeId",4416],[5,"InconsistentLeafError",316,4417],[5,"LeafQueryData",316,4417],[8,"BlockHash",316,4417],[5,"PayloadQueryData",316,4417],[5,"VidCommonQueryData",316,4417],[5,"TransactionQueryData",316,4417],[5,"FetchLeafSnafu",316],[5,"FetchBlockSnafu",316],[5,"FetchTransactionSnafu",316],[5,"InvalidTransactionIndexSnafu",316],[5,"CustomSnafu",316],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",316,4417],[10,"PartialEq",4418],[10,"Eq",4418],[10,"Ord",4418],[10,"DeserializeOwned",4387],[17,"Item"],[10,"Iterator",4419],[6,"LeafId",316,4410],[6,"BlockId",316,4410],[5,"BlockQueryData",316,4417],[5,"BlockSummaryQueryData",316,4417],[5,"TransactionSummaryQueryData",316,4417],[5,"RequestSnafu",316],[6,"Ordering",4418],[8,"VidCommon",0,4420],[6,"Fetch",316,4421],[10,"ErrorCompat",4422],[17,"Source"],[5,"NoneError",4422],[10,"IntoError",4422],[8,"Payload",0],[5,"Options",316],[5,"Api",4423],[6,"ApiError",4423],[10,"ReadState",4424],[8,"TransactionIndex",316,4417],[8,"Transaction",0],[8,"LeafHash",316,4417],[6,"RequestError",4425],[8,"Result",4396],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"VidCommonRange"],[10,"Stream",4426],[10,"Unpin",4400],[10,"RangeBounds",4427],[8,"TransactionHash",316,4417],[8,"VidCommitment",0,4420],[8,"Header",0],[10,"UpdateAvailabilityData",316,4410],[8,"VidShare",0,4420],[8,"Metadata",0],[8,"QuorumCertificate",4390],[8,"TransactionInclusionProof",316,4417],[10,"QueryableHeader",316,4417],[5,"Duration",4428],[5,"ExtensibleDataSource",1001,4429],[5,"MetricsDataSource",1001,4430],[10,"Transaction",1001,4413],[8,"Result",4393],[6,"BlockIdentifier",2091,4395],[10,"ExplorerDataSource",2091,4431],[5,"GetBlockSummariesRequest",2091,4395],[6,"WindowStart",3768,4411],[10,"MerklizedStateHeightPersistence",3402,4432],[6,"Snapshot",3402,4432],[10,"MerklizedState",3402,4432],[10,"MerklizedStateDataSource",3402,4432],[6,"TransactionIdentifier",2091,4395],[5,"GetTransactionSummariesRequest",2091,4395],[5,"MockTypes",4235],[5,"Event",4433],[10,"TestableDataSource",4195],[10,"Default",4434],[5,"MerkleProof",4435],[5,"Vec",4436],[10,"UpdateStateData",3402,4432],[5,"PrometheusMetrics",3522],[10,"HasMetrics",4074,4412],[10,"Metrics",4437],[17,"Transaction"],[17,"ReadOnly"],[10,"UpdateDataSource",1001,4413],[5,"Transaction",1120,4438],[5,"FetchingDataSource",1120],[10,"NodeStorage",1319],[5,"Builder",1120],[10,"PruneStorage",1604],[10,"AvailabilityProvider",1120],[5,"Pruner",1120],[8,"Config",1301],[8,"Builder",1301],[5,"Path",4439],[5,"FileSystemStorage",1355],[5,"AtomicStoreLoader",4440],[10,"AvailabilityStorage",1319],[10,"ExplorerStorage",1319],[10,"MerklizedStateHeightStorage",1319],[10,"MerklizedStateStorage",1319],[10,"PrunedHeightStorage",1604],[8,"FileSystemDataSource",1281],[8,"SqlDataSource",1301],[5,"Transaction",1355],[10,"Revert",1355],[17,"Target"],[5,"FileSystemStorageInner",1355],[10,"Deref",4441],[5,"RwLockReadGuard",4391],[5,"RwLockWriteGuard",4391],[6,"PersistenceError",4442],[5,"Transaction",1441],[5,"NoStorage",1441],[6,"Transaction",1506],[6,"DataSource",1506],[5,"MockNetwork",4195],[5,"PrunerCfg",1604],[17,"Pruner"],[10,"PrunerConfig",1604],[1,"u16"],[1,"i32"],[5,"OffsetDateTime",4443],[5,"Migration",1650,4444],[5,"Config",1650],[10,"Database",1650,4445],[10,"Params",1650,4446],[8,"Query",1650,4446],[5,"QueryBuilder",1650,4447],[8,"QueryResult",0],[8,"Db",1650,4448],[10,"Encode",4449],[10,"Type",4450],[5,"Transaction",1650,4446],[10,"TransactionMode",1650,4446],[5,"Postgres",1650,4451],[5,"Chain",4393],[5,"Write",1650,4446],[5,"Read",1650,4446],[5,"SqlStorage",1650],[5,"Pruner",1650],[17,"Database"],[10,"Executor",1650,4452],[10,"Execute",4452],[5,"Sqlite",1650,4453],[5,"FmtValue",4454],[5,"PgConnectOptions",4455],[1,"u32"],[10,"IntoIterator",4456],[6,"Type",4444],[1,"slice"],[8,"QueryAs",1650,4446],[10,"FromRow",4457],[5,"TestArgs",4458],[5,"Error",4459],[1,"array"],[5,"TmpDb",2050],[5,"MonetaryValue",2091,4460],[1,"i128"],[5,"CurrencyMismatchError",2091,4461],[5,"InvalidCurrencyCodeError",2091,4461],[6,"CurrencyCode",2091,4461],[5,"BlockRange",2091,4395],[5,"TransactionRange",2091,4395],[5,"Timestamp",2091,4395],[6,"GetBlockDetailError",2091,4395],[6,"GetBlockSummariesError",2091,4395],[6,"GetTransactionDetailError",2091,4395],[6,"GetTransactionSummariesError",2091,4395],[6,"GetExplorerSummaryError",2091,4395],[6,"GetSearchResultsError",2091,4395],[5,"BlockDetail",2091,4395],[5,"BlockSummary",2091,4395],[5,"FeeAttribution",2091,4395],[5,"TransactionDetail",2091,4395],[5,"TransactionSummary",2091,4395],[6,"TransactionSummaryFilter",2091,4395],[5,"GenesisOverview",2091,4395],[5,"ExplorerHistograms",2091,4395],[5,"ExplorerSummary",2091,4395],[5,"SearchResult",2091,4395],[5,"BlockDetailResponse",2091],[5,"BlockSummaryResponse",2091],[5,"TransactionDetailResponse",2091],[5,"TransactionSummariesResponse",2091],[5,"ExplorerSummaryResponse",2091],[5,"SearchResultResponse",2091],[17,"BalanceAmount"],[17,"WalletAddress"],[17,"ProposerId"],[17,"NamespaceId"],[10,"ExplorerHeader",2091,4462],[5,"TryFromIntError",4463],[5,"ComponentRange",4464],[6,"Resettable",4465],[10,"ExplorerTransaction",2091,4462],[5,"Fetcher",3168],[10,"LocalCallback",3168],[10,"Callback",3168],[10,"Request",3312],[10,"Provider",3202],[5,"Semaphore",4466],[5,"TestProvider",3202,4467],[5,"AnyProvider",3202,4468],[5,"QueryServiceProvider",3202,4469],[5,"NoFetching",3202],[5,"PayloadRequest",3312],[5,"VidCommonRequest",3312],[5,"LeafRequest",3312],[5,"Url",4470],[5,"Options",3402],[17,"Key"],[17,"Entry"],[17,"T"],[17,"Commit"],[17,"Digest"],[10,"Index",4471],[10,"ToTraversalPath",4471],[10,"FromStr",4472],[10,"CanonicalSerialize",4473],[10,"CanonicalDeserialize",4473],[10,"Element",4471],[10,"NodeValue",4471],[10,"MerkleCommitment",4471],[5,"TaggedBase64",4474],[10,"TryFrom",4379],[10,"DigestAlgorithm",4471],[5,"Counter",3522],[5,"Histogram",3522],[1,"f64"],[6,"MetricsError",3522],[5,"Gauge",3522],[5,"CounterFamily",3522],[5,"GaugeFamily",3522],[5,"HistogramFamily",3522],[5,"TextFamily",3522],[10,"CounterFamily",4437],[10,"Counter",4437],[10,"Gauge",4437],[10,"Histogram",4437],[6,"Error",4475],[10,"GaugeFamily",4437],[10,"AsRef",4379],[10,"HistogramFamily",4437],[10,"TextFamily",4437],[1,"i64"],[5,"CustomSnafu",3768],[5,"SyncStatus",3768,4476],[5,"TimeWindowQueryData",3768,4476],[5,"RequestSnafu",3768],[5,"QuerySnafu",3768],[5,"QueryVidSnafu",3768],[5,"QueryWindowSnafu",3768],[5,"Options",3768],[10,"Deserialize",4387],[10,"HeightIndexed",4369],[5,"Options",4074],[10,"UpdateStatusData",4074,4412],[5,"BackgroundTask",4148],[5,"Task",4148],[10,"DataSourceLifeCycle",4195],[5,"MockNodeImpl",4235],[5,"MockVersions",4235],[17,"Storage"],[8,"BLSPubKey",4477],[5,"HotShotConfig",4478],[8,"SignatureKey",0],[8,"MockTransaction",4235],[8,"MockHeader",4235],[8,"MockMerkleTree",4235],[8,"MockPayload",4235],[1,"u8"],[15,"Custom",308],[15,"Availability",308],[15,"Node",308],[15,"Status",308],[15,"MerklizedState",308],[15,"Explorer",308],[15,"Error",315],[15,"InvalidTransactionIndex",993],[15,"Custom",993],[15,"FetchLeaf",993],[15,"FetchBlock",993],[15,"FetchTransaction",993],[15,"Request",993],[6,"Storage",1506],[15,"NoStorage",1603],[5,"TestMerkleTreeMigration",2050],[15,"Custom",3518],[15,"Request",3518],[15,"Query",3518],[15,"NoSuchMetric",3764],[15,"NoSuchSubgroup",3764],[15,"Prometheus",3764],[15,"QueryVid",4065],[15,"QueryWindow",4065],[15,"Custom",4065],[15,"Request",4065],[15,"Query",4065],[15,"Internal",4146],[15,"Request",4146],[8,"MockQuorumProposal",4235],[8,"MockStorage",4235],[8,"MockAuctionResults",4235]],"r":[[4,4373],[9,4376],[22,4384],[26,4420],[27,4420],[28,4420],[316,4410],[317,4417],[318,4410],[319,4417],[321,4417],[325,4421],[335,4417],[339,4417],[340,4410],[341,4417],[347,4417],[350,4417],[351,4417],[355,4417],[356,4417],[357,4417],[358,4417],[360,4417],[361,4417],[362,4410],[363,4417],[1001,1120],[1002,4429],[1003,1120],[1004,1281],[1005,4430],[1007,1301],[1008,4413],[1010,4413],[1011,4413],[1124,4438],[1282,1355],[1303,4393],[1304,4444],[1305,4451],[1307,4446],[1314,0],[1317,2050],[1321,1355],[1324,1441],[1326,1650],[1655,4445],[1657,4448],[1658,4393],[1659,4452],[1660,4446],[1661,4444],[1663,4446],[1664,4451],[1666,4446],[1667,4446],[1668,4447],[1670,4446],[1673,4453],[1675,4446],[1677,4446],[1682,4446],[1897,4479],[1898,0],[1970,4446],[1972,4446],[2091,4395],[2094,4395],[2096,4395],[2097,4395],[2099,4395],[2100,4395],[2105,4461],[2106,4461],[2111,4431],[2112,4462],[2113,4395],[2114,4395],[2116,4462],[2117,4395],[2121,4395],[2123,4395],[2126,4395],[2128,4395],[2130,4395],[2132,4395],[2134,4395],[2136,4395],[2138,4395],[2144,4461],[2151,4460],[2155,4395],[2164,4395],[2169,4395],[2170,4395],[2173,4395],[2175,4395],[2176,4395],[2178,4395],[2180,4395],[2181,4395],[2189,4395],[3171,3202],[3172,3312],[3202,4468],[3205,4469],[3206,4467],[3410,4432],[3411,4432],[3412,4432],[3416,4432],[3418,4432],[3768,4417],[3769,4410],[3775,4411],[3785,4476],[3787,4476],[3788,4411],[4075,4412],[4079,4412],[4080,4412]],"b":[[92,"impl-Leaf%3CTYPES%3E"],[93,"impl-Committable-for-Leaf%3CTYPES%3E"],[150,"impl-Display-for-Leaf%3CTYPES%3E"],[151,"impl-Debug-for-Leaf%3CTYPES%3E"],[152,"impl-Display-for-Error"],[153,"impl-Debug-for-Error"],[157,"impl-Display-for-QueryError"],[158,"impl-Debug-for-QueryError"],[161,"impl-From%3CError%3E-for-Error"],[163,"impl-From%3CError%3E-for-Error"],[164,"impl-From%3CError%3E-for-Error"],[165,"impl-From%3CError%3E-for-Error"],[166,"impl-From%3CError%3E-for-Error"],[167,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[171,"impl-From%3CTimestampConversionError%3E-for-QueryError"],[173,"impl-From%3CError%3E-for-QueryError"],[177,"impl-From%3CArc%3CD%3E%3E-for-ApiState%3CD%3E"],[178,"impl-From%3CD%3E-for-ApiState%3CD%3E"],[644,"impl-Debug-for-LeafId%3CTypes%3E"],[645,"impl-Display-for-LeafId%3CTypes%3E"],[646,"impl-Display-for-BlockId%3CTypes%3E"],[647,"impl-Debug-for-BlockId%3CTypes%3E"],[649,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[650,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[663,"impl-Display-for-Error"],[664,"impl-Debug-for-Error"],[668,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[669,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[671,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[672,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[690,"impl-From%3CRequestError%3E-for-Error"],[691,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1017,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1018,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1131,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1132,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1284,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1285,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1310,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1311,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1366,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1367,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1422,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1423,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1517,"impl-StatusDataSource-for-DataSource"],[1518,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1690,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1691,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1838,"impl-Debug-for-Error"],[1839,"impl-Display-for-Error"],[1840,"impl-Display-for-Migration"],[1841,"impl-Debug-for-Migration"],[2617,"impl-Display-for-CurrencyMismatchError"],[2618,"impl-Debug-for-CurrencyMismatchError"],[2619,"impl-Debug-for-InvalidCurrencyCodeError"],[2620,"impl-Display-for-InvalidCurrencyCodeError"],[2621,"impl-Display-for-CurrencyCode"],[2622,"impl-Debug-for-CurrencyCode"],[2623,"impl-Debug-for-MonetaryValue"],[2624,"impl-Display-for-MonetaryValue"],[2625,"impl-Display-for-BlockIdentifier%3CTypes%3E"],[2626,"impl-Debug-for-BlockIdentifier%3CTypes%3E"],[2627,"impl-Display-for-TransactionIdentifier%3CTypes%3E"],[2628,"impl-Debug-for-TransactionIdentifier%3CTypes%3E"],[2634,"impl-Debug-for-TimestampConversionError"],[2635,"impl-Display-for-TimestampConversionError"],[2646,"impl-Debug-for-GetBlockDetailError"],[2647,"impl-Display-for-GetBlockDetailError"],[2648,"impl-Debug-for-GetBlockSummariesError"],[2649,"impl-Display-for-GetBlockSummariesError"],[2650,"impl-Debug-for-GetTransactionDetailError"],[2651,"impl-Display-for-GetTransactionDetailError"],[2652,"impl-Display-for-GetTransactionSummariesError"],[2653,"impl-Debug-for-GetTransactionSummariesError"],[2654,"impl-Debug-for-GetExplorerSummaryError"],[2655,"impl-Display-for-GetExplorerSummaryError"],[2656,"impl-Display-for-GetSearchResultsError"],[2657,"impl-Debug-for-GetSearchResultsError"],[2658,"impl-Debug-for-Error"],[2659,"impl-Display-for-Error"],[2678,"impl-From%3CTryFromIntError%3E-for-TimestampConversionError"],[2679,"impl-From%3CComponentRange%3E-for-TimestampConversionError"],[2691,"impl-From%3CQueryError%3E-for-GetBlockDetailError"],[2692,"impl-From%3CError%3E-for-GetBlockDetailError"],[2695,"impl-From%3CError%3E-for-GetBlockSummariesError"],[2696,"impl-From%3CQueryError%3E-for-GetBlockSummariesError"],[2698,"impl-From%3CError%3E-for-GetTransactionDetailError"],[2699,"impl-From%3CQueryError%3E-for-GetTransactionDetailError"],[2700,"impl-From%3CTimestampConversionError%3E-for-GetTransactionDetailError"],[2701,"impl-From%3CError%3E-for-GetTransactionSummariesError"],[2702,"impl-From%3CQueryError%3E-for-GetTransactionSummariesError"],[2704,"impl-From%3CError%3E-for-GetExplorerSummaryError"],[2705,"impl-From%3CGetTransactionSummariesError%3E-for-GetExplorerSummaryError"],[2706,"impl-From%3CGetBlockSummariesError%3E-for-GetExplorerSummaryError"],[2707,"impl-From%3CGetBlockDetailError%3E-for-GetExplorerSummaryError"],[2708,"impl-From%3CQueryError%3E-for-GetExplorerSummaryError"],[2710,"impl-From%3CQueryError%3E-for-GetSearchResultsError"],[2711,"impl-From%3CError%3E-for-GetSearchResultsError"],[3252,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[3253,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[3254,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[3255,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3256,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3257,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3463,"impl-Display-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3464,"impl-Debug-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3465,"impl-Display-for-Error"],[3466,"impl-Debug-for-Error"],[3469,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[3471,"impl-From%3CQueryError%3E-for-Error"],[3472,"impl-From%3CRequestError%3E-for-Error"],[3639,"impl-Display-for-MetricsError"],[3640,"impl-Debug-for-MetricsError"],[3659,"impl-Metrics-for-PrometheusMetrics"],[3660,"impl-PrometheusMetrics"],[3925,"impl-Display-for-Error"],[3926,"impl-Debug-for-Error"],[3938,"impl-From%3CQueryError%3E-for-Error"],[3939,"impl-From%3CRequestError%3E-for-Error"],[3940,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[4113,"impl-Display-for-Error"],[4114,"impl-Debug-for-Error"],[4116,"impl-From%3CString%3E-for-Error"],[4118,"impl-From%3CRequestError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFoOHAECAAEABQAAAAgAAQALAAEADwAAABMAAwAYAAEAHgAMACwAAgAyAA8ARQAXAF4AAABgAAEAYwAsAJcACQCiAAAApAAEAKwAAACuAAAAsAAAALIABQC5AAAAuwAEAMEAAQDEAA0A2gACAN4ACQDpAAEA7AAAAO8ACQD6AAQAAAECAAQBGgAgAQgALQEPAD8BBABFAQAARwEAAEkBAABLAQAATQEBAFABAQBUAQsAYQEBAGQBAwBpASEAjQElALoBOQD1AVgAUAItAIUCFACdAgEAoAIBAKYCAACqAgAAswIRAMYCBgDOAg8A3wIXAAoDBgATAwAAFQMUACsDAAAtAwEAMAMBADgDGgBWAwEAWQMvAIsDAACPAwAAkwMlALoDJQDiAwgA7AMBAO8DAQD1AwMA+gMbABcEAQAbBBYANAQDADoEBABABAAAQgQDAEcEBQBPBAgAWQQDAF4EAgBkBBEAeAQGAIAEAQCEBAsAkQQGAJwELADNBAUA1gQJAOEEFgABBQAAAwUCAAgFAAALBQAADQUKABwFAAAgBQIAJAUDACoFAQAtBQYANQUAADgFBwBBBQAARAUFAEsFAABNBQwAXAUPAG8FEACDBQMAiQUHAJIFDwCjBRUAuwUPAM0FHADrBR8ADgYRACMGJwBMBgoAWAYCAF0GAQBhBgIAZQYAAGcGCwB5BgAAggYCAJQGBACbBgEAngYDAKMGFgC+BhIA1QYCANkGBgDhBicADAcSAC8HDwBABwEASgcAAE0HDQBcBwoAbAcOAIcHCgCTBwAAlQcAAJwHAgCgBwsAswcAALUHAAC3BwAAuQcCAL4HCgDKByYA8gcBAPYHHQAWCAMAHAgQAC4IAAAyCAEANwgCAD0IAgBHCAIASwgAAE0IAQBQCAAAUggAAFQIAABWCAAAWAgAAFoIAABcCAQAYggFAGsIAQBuCAYAdwgCAHwIAQCBCAEAhwgHAJAIEACiCGcACwk2AEMJSwCQCQUAlwmZADMKAQA3CgIAOwoBAD8KAQBCCigAdwoBAIQKAQCICgEAiwoEAJEKBACXCgEAmwoAAJ0KAAChCgEApAoAAKYKAgCvCkEAFAsqAEELKwBuCwIAcgsDAHgLAAB7CxYAkwsRAKYLlQA9DCMAZAwNAHMMAAB1DAEAeQwBAHwMBgCIDAMAjQwlALUMCwDFDAMAzQwZAOkMAwD2DC8AKQ0JADYNHABVDQMAWg0AAFwNKgCIDQMAjg0AAJANBwCZDQQAog0JAK0NBACzDQ8AyQ0DAM8NcwBMDgAATg4EAFkOCwBuDk0AvQ4FAMQOAADGDgAAyA4AAMoOAQDNDiQA8w5YAE4PCQBZDwAAYw8CAGcPEACCDyoArg9iABIQAQAVEAAAFxAEAB4QFgA3EBIATBABAFEQAwBXEBEAahALAHcQBAB9EAQAgxAJAI4QDQCeEAUApRAtANYQCQDjEAAA5RADAOoQBADwEAIA9BAAAPYQAgD6EAEA/RADAAIRCQAPEQIAExEAAA=="}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[107846]} \ No newline at end of file +//{"start":39,"fragment_lengths":[107908]} \ No newline at end of file diff --git a/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js b/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js index 413369ada..bc026072f 100644 --- a/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js +++ b/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("hotshot_query_service", 0, "The HotShot Query Service is a minimal, generic query …\nRead-only wrapper for API state which does not require …\nContains the error value\nThere was an error while trying to fetch the requested …\nSNAFU context selector for the QueryError::Error variant\nThis is the consensus-internal analogous concept to a …\nThe requested resource exists but is not currently …\nSNAFU context selector for the QueryError::Missing variant\nThe requested resource does not exist or is not known to …\nSNAFU context selector for the QueryError::NotFound variant\nContains the success value\nA reference to a T which can be resolved into a whole T.\nItem within a Payload.\nVID commitment type\nVID common type\nVID share type\nQueries for HotShot chain state.\nThe block header contained in this leaf.\nGet a mutable reference to the block header contained in …\nOptional block payload.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nCalculate the leaf commitment, which is gated on the …\nGet a commitment to the underlying object.\nPersistent storage and sources of data consumed by APIs.\nValidate that a leaf has the right upgrade certificate to …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nFetching missing data from remote providers.\nFill this leaf with the block payload.\nFill this leaf with the block payload, without checking …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a leaf from a given quorum proposal.\nCreate a new leaf from its components.\nHeight of this leaf in the chain.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe QC linking this leaf to its parent in the chain.\nApi for querying merklized state\nA node’s view of a HotShot chain\nCommitment to this leaf’s parent.\nA commitment to the block payload contained in this leaf.\nRun an instance of the HotShot Query service with no …\nQueries for node-specific state and uncommitted data.\nAsync task utilites.\nGet the underlying object if it is available without …\nCommon functionality provided by types used in this crate.\nThe QC linking this leaf to its parent in the chain.\nTime when this leaf was created.\nAn interface for querying a HotShot blockchain.\nA block hash is the hash of the block header.\nSNAFU context selector for the Error::Custom variant\nAn in-progress request to fetch some data.\nSNAFU context selector for the Error::FetchBlock variant\nSNAFU context selector for the Error::FetchLeaf variant\nSNAFU context selector for the Error::FetchTransaction …\nA proof that a certain transaction exists in the block.\nSNAFU context selector for the …\nEnumerate the transactions in this block.\nA block payload whose contents (e.g. individual …\nSNAFU context selector for the Error::Request variant\nAn index which can be used to efficiently retrieve a …\nThe hash of the block containing this transaction.\nThe height of the block containing this transaction.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nGet the index of the transaction with a given hash, if it …\nGet the index of the transaction with a given hash, if it …\nConvert this Fetch to a Result with the provided error …\nEnumerate the transactions in the block with their indices.\nEnumerate the transactions in the block with their indices.\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nTimeout for failing requests due to missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the transaction with the given hash.\nThe hash of this transaction.\nThe (0-based) position of this transaction within its …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this block is empty of transactions.\nWhether this block is empty of transactions.\nList the transaction indices in the block.\nThe number of transactions in the block.\nTransform the result of this fetch.\nCollect information about a Leaf.\nGet the index of the nth transaction.\nGet the index of the nth transaction.\nGet the nth transaction.\nGet the nth transaction.\nGet the nth transaction, along with an inclusion proof.\nGet the nth transaction, along with an inclusion proof.\nGet an inclusion proof for a transaction with a given …\nGet an inclusion proof for a transaction with a given …\nA proof of inclusion of this transaction in its block.\nWait for the data to become available, if it is not …\nGet a transaction by its block-specific index.\nGet a transaction by its block-specific index.\nThe underlying transaction data.\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet a transaction by its block-specific index, along with …\nGet the requested data if it is available immediately.\nConvert this Fetch to a Result with the provided error …\nWait for the requested data to become available, but only …\nWrapper to add extensibility to an existing data source.\nA minimal data source for the status API provided in this …\nA unit of atomicity for updating a shared data sourec.\nA transaction which can read and modify the data source.\nAn extension trait for types which implement the update …\nA data source with an atomic transaction-based …\nGeneric tests we can instantiate for all the availability …\nAsynchronous retrieval of missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAccess the underlying data source.\nMutably access the underlying data source.\nCalls U::from(self).\nCalls U::from(self).\nGeneric tests we can instantiate for all the node data …\nGeneric tests we can instantiate for any data source with …\nStart a read-only transaction on the data source.\nGeneric tests we can instantiate for all the status data …\nPersistent storage for data sources.\nUpdate query state based on a new consensus event.\nStart an atomic transaction on the data source.\nA provider which can be used as a fetcher by the …\nBuilder for FetchingDataSource with configuration.\nThe most basic kind of data source.\nBuild a FetchingDataSource with these options.\nBuild a FetchingDataSource with the given storage and …\nConnect to a remote database.\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nRun without proactive fetching.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new builder with the given storage and fetcher …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nAdd a delay between active fetches in proactive scans.\nAdds a delay between chunk fetches during proactive scans.\nSet the interval (denominated in minor scans) between …\nSet the offset (denominated in minor scans) before the …\nSet the time interval between minor proactive fetching …\nSet the number of items to process at a time when scanning …\nSet the number of items to process at a time when loading …\nSet the maximum delay between retries of fetches.\nSet the maximum delay between retries of fetches.\nA data source for the APIs provided in this crate, backed …\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nThe Error type, a wrapper around a dynamic error type.\nRepresents a schema migration to be run on the database, …\nPostgreSQL database driver.\nA data source for the APIs provided in this crate, backed …\nConnect to the database, setting options on the underlying …\nConnect to the database with this config.\nConnect to a remote database.\nEmbed migrations from the given directory into the current …\nPersistent storage for a HotShot blockchain.\nAn interface for querying Data and Statistics from the …\nThis trait defines methods that a data source should …\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nSearch the database for missing objects and generate a …\nStorage for the APIs provided in this crate, backed by a …\nCreate a new FileSystemStorage with storage at path.\nCreate a new FileSystemStorage using a persistent storage …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpen an existing FileSystemStorage from storage at path.\nOpen an existing FileSystemStorage using a persistent …\nAdvance the version of the persistent store without …\nMock storage implementation which doesn’t actually store …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nEither Postgres or no storage.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of blocks to remove in a single pruning operation.\nReturns the argument unchanged.\nPruning interval\nCalls U::from(self).\nMaximum disk usage (in basis points).\nMinimum data retention period\nDisk space threshold (in bytes).\nTarget data retention period\nThe concrete type used as a buffer for arguments while …\nThe concrete Arguments implementation for this database.\nThe concrete Column implementation for this database.\nPostgres client config.\nThe concrete Connection implementation for this database.\nA database driver.\nThe concrete database backing a SQL data source.\nThe Error type, a wrapper around a dynamic error type.\nA type that contains or can provide a database connection …\nA collection of parameters with a statically known length.\nRepresents a schema migration to be run on the database, …\nThe display name for this database driver.\nA collection of parameters which can be bound to a SQL …\nPostgreSQL database driver.\nHelper type for programatically constructing queries.\nThe concrete QueryResult implementation for this database.\nMarker type indicating a transaction with read-only access …\nThe concrete Row implementation for this database.\nStorage for the APIs provided in this crate, backed by a …\nSqlite database driver.\nThe concrete Statement implementation for this database.\nAn atomic SQL transaction.\nThe concrete TransactionManager implementation for this …\nTrait for marker types indicating what type of access a …\nThe concrete TypeInfo implementation for this database.\nThe schemes for database URLs that should match this …\nThe concrete type used to hold an owned copy of the …\nThe concrete type used to hold a reference to the …\nMarker type indicating a transaction with read-write …\nGet the timestamp from when the Migration was applied. None…\nDisable pruning and reconstruct previously pruned data.\nGet the backtrace for this Error.\nAdd an argument and return its name as a formal parameter …\nConvert range bounds to a SQL WHERE clause constraining a …\nConnect to the database, setting options on the underlying …\nAn iterator of the chain of source errors contained by …\nGet the Migration checksum. Checksum is formed from the …\nConnect to the database with this config.\nConnect to a remote database.\nSet the maximum lifetime of a connection.\nWrap the error value with additional context.\nSet the name of the database to connect to.\nThe migrations requied to build the default schema for …\nAttempt to downcast the error object to a concrete type.\nDowncast this error object by mutable reference.\nDowncast this error object by reference.\nExecute the query and return the total number of rows …\nExecute the query and return the total number of rows …\nExecute multiple queries and return the rows affected from …\nExecute multiple queries and return the rows affected from …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify exactly one …\nExecute a statement that is expected to modify exactly one …\nExecute the query and return the generated results as a …\nExecute the query and return the generated results as a …\nExecute the query and return all the generated results, …\nExecute the query and return all the generated results, …\nExecute multiple queries and return the generated results …\nExecute the query and returns exactly one row.\nExecute the query and returns exactly one row.\nExecute the query and returns at most one row.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetreives a Merkle path from the database\nConstruct a SQL WHERE clause which filters for a header …\nSet the hostname of the database server.\nSet the maximum idle time of a connection.\nEmbed the contents of a directory in your crate.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if E is the type held by this error object.\nLoad a header from storage.\nSet the maximum number of connections to maintain at any …\nAdd custom migrations to run when connecting to the …\nSet the minimum number of connections to maintain at any …\nCreate a new error object from a printable error message.\nGet the Migration Name\nCreate a new error object from any error type.\nSkip all migrations when connecting to the database.\nSet a password for connecting to the database.\nSet the port on which to connect to the database.\nGet the Prefix\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query, with parameter type information, to …\nNote: The prune operation may not immediately free up …\nEnable pruning with a given configuration.\nFinalize the query with a constructed SQL statement.\nFinalize the query with a constructed SQL statement and a …\nReset the schema on connection.\nThe lowest level cause of this error — this error’s …\nSet the name of the schema to use for queries.\nUse TLS for an encrypted connection to the database.\nCreate an unapplied migration, name and version are parsed …\nSet the DB user to connect as.\nGet the Migration version\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nBalanceAmount is a type that represents a general balance …\nBlockDetail is a struct that represents the details of a …\nBlockDetailResponse is a struct that represents the …\nBlockIdentifier is an enum that represents multiple ways …\nBlockRange is a struct that represents a range for a …\nBlockSummary is a struct that represents a summary …\nBlockSummaryResponse is a struct that represents the …\nCurrencyCode represents an enumeration of all …\nCurrencyMismatchError is an error that occurs when two …\nError is an enum that represents the various errors that …\nAn interface for querying Data and Statistics from the …\nExplorerHeader is a trait that represents certain …\nExplorerHistograms provides a series of data points that …\nExplorerSummary is a struct that represents an at-a-glance …\nExplorerSummaryResponse is a struct that represents the …\nExplorerTransaction is a trait that allows the Explorer …\nFeeAttribution represents a specific attribution of fees …\nGenesisOverview provides a summary overview of the block …\nGetBlockDetailError represents an error that has occurred …\nGetBlockSummariesError represents an error that has …\nGetBlockSummariesRequest is a struct that represents an …\nGetExplorerSummaryError represents an error that has …\nGetSearchResultsError represents an error that has …\nGetTransactionDetailError represents an error that has …\nGetTransactionSummariesError represents an error that has …\nGetTransactionSummariesRequest is a struct that represents …\nInvalidCurrencyCodeError is an error that occurs when an …\nMonetaryValues is a struct that paris a CurrencyCode with …\nNamespaceId is a type that represents the id of a …\nNamespaceId is a type that represents the id of a …\nProposerId is a type that represents the proposer id of …\nSearchResult is a struct that represents the results of …\nSearchResultResponse is a struct that represents the …\nTimestamp represents a specific point in time that has a …\nTimestampConversionError represents an error that has …\nTransactionDetail is a struct that represents the details …\nTransactionDetailResponse is a struct that represents the …\nTransactionIdentifier is an enum that represents multiple …\nTransactionRange is a struct that represents a range for a …\nTransactionSummariesResponse is a struct that represents …\nTransactionSummary is a struct that represents a summary …\nTransactionSummaryFilter represents the various filters …\nWalletAddress is a type that represents the address of a …\nadd attempts to add the two MonetaryValues together. This …\nbtc is a convenience function to create a MonetaryValue …\ndefine_api is a function that defines the API endpoints …\ndeserialize attempts to convert a string into a …\ndeserialize converts a string representation of a RFC3339 …\nesp is a convenience function to create a MonetaryValue …\neth is a convenience function to create a MonetaryValue …\nThe wallet address of the fee info account contained …\nThe balance amount of the fee info contained within the …\nfmt formats the error into a human readable string\nfmt formats the error into a human readable string\nfmt formats the currency code into a human readable string\nfmt formats the MonetaryValue into a human readable …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nfrom converts an i128 into a MonetaryValue with the USD …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA collection of namespace ids that are contained within …\nnew creates a new MonetaryValue instance with the given …\nThe proposer id of the block as stored within the block …\nThe balance amount of the reward for constructing the …\nserialize converts the error into a struct representation\nserialize converts the error into a struct representation\nserialize converts the MonetaryValue into a String …\nserialize converts the timestamp into a string …\nsignificant_digits represents the total number of …\nsub attempts to subtract the two MonetaryValues together. …\nusd is a convenience function to create a MonetaryValue …\nA callback to process the result of a request.\nManagement of concurrent requests to fetch resources.\nA callback to process the result of a request.\nReturns the argument unchanged.\nCalls U::from(self).\nAsynchronous fetching from external data availability …\nRequests for fetching resources.\nFetch a resource, if it is not already being fetched.\nAdaptor combining multiple data availability providers.\nTrivial Provider where fetching always fails.\nA provider which is able to satisfy requests for data of …\nData availability provider backed by another instance of …\nAdaptor to add test-only functionality to an existing …\nDelay fetch requests until unblock.\nCause subsequent requests to fail.\nFetch a resource.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAllow blocked fetch requests to proceed.\nStop requests from failing as a result of a previous call …\nAdd a sub-provider which fetches blocks.\nAdd a sub-provider which fetches leaves.\nAdd a sub-provider which fetches both blocks and leaves.\nAdd a sub-provider which fetches VID common data.\nA request for a leaf with a given height.\nA request for a payload with a given commitment.\nA request for a resource.\nThe type of resource that will be returned as a successful …\nA request for VID common data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis trait should be implemented by the MerkleTree that …\nThis trait defines methods that a data source should …\nSnapshot can be queried by block height (index) or merkle …\nThis trait defines methods for updating the storage with …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetrieves the field in the header containing the Merkle …\nInsert a forgotten path into the tree.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRetrieves the name of the state being queried.\nGet the height of the tree\nA Counter metric.\nA CounterFamily metric.\nA Gauge metric.\nA GaugeFamily metric.\nA Histogram metric.\nA HistogramFamily metric.\nA Prometheus-based implementation of a Metrics registry.\nA TextFamily metric.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a gauge family in this sub-group by name.\nGet a counter in this sub-group by name.\nGet a counter family in this sub-group by name.\nGet a gauge in this sub-group by name.\nGet a histogram in this sub-group by name.\nGet a histogram family in this sub-group by name.\nGet a (possibly nested) subgroup of this group by its path.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSNAFU context selector for the Error::Custom variant\nSNAFU context selector for the Error::Query variant\nSNAFU context selector for the Error::QueryVid variant\nSNAFU context selector for the Error::QueryWindow variant\nSNAFU context selector for the Error::Request variant\nResponse to a /:resource/window query.\nConsume the selector and return the associated error\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe block height of the block that starts the window.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSearch the database for missing objects and generate a …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA background task which is cancelled on Drop\nA task handle which can be joined, but is cancelled on Drop\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nWait for the task to complete and get its output.\nSpawn a background task, which will be cancelled when …\nSpawn a task, which will be cancelled when dropped.\nBacking storage for the data source.\nReturns the argument unchanged.\nCalls U::from(self).\nSetup runs after setting up the network but before …\nA type alias for the mock base version\nThe block header to append\nBlock number.\nFast commitment for builder verification\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPer spec, justification\nblock metdata\nVID commitment to the payload.\nPossible timeout or view sync certificate.\nrandom\nshould_return_err is a testing utility to validate …\nTimestamp when this header was created.\nList of transactions.\nPossible upgrade certificate, which the leader may …\nThe URL of the builder to reach out to.\nCurView from leader when proposing leaf\nTypes which have a notion of “height” within a chain.") \ No newline at end of file +searchState.loadedDescShard("hotshot_query_service", 0, "The HotShot Query Service is a minimal, generic query …\nRead-only wrapper for API state which does not require …\nContains the error value\nThere was an error while trying to fetch the requested …\nSNAFU context selector for the QueryError::Error variant\nThis is the consensus-internal analogous concept to a …\nThe requested resource exists but is not currently …\nSNAFU context selector for the QueryError::Missing variant\nThe requested resource does not exist or is not known to …\nSNAFU context selector for the QueryError::NotFound variant\nContains the success value\nA reference to a T which can be resolved into a whole T.\nItem within a Payload.\nVID commitment type\nVID common type\nVID share type\nQueries for HotShot chain state.\nThe block header contained in this leaf.\nGet a mutable reference to the block header contained in …\nOptional block payload.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nCalculate the leaf commitment, which is gated on the …\nGet a commitment to the underlying object.\nPersistent storage and sources of data consumed by APIs.\nValidate that a leaf has the right upgrade certificate to …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nFetching missing data from remote providers.\nFill this leaf with the block payload.\nFill this leaf with the block payload, without checking …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a leaf from a given quorum proposal.\nCreate a new leaf from its components.\nHeight of this leaf in the chain.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe QC linking this leaf to its parent in the chain.\nApi for querying merklized state\nA node’s view of a HotShot chain\nCommitment to this leaf’s parent.\nA commitment to the block payload contained in this leaf.\nRun an instance of the HotShot Query service with no …\nQueries for node-specific state and uncommitted data.\nAsync task utilites.\nGet the underlying object if it is available without …\nCommon functionality provided by types used in this crate.\nTake the block payload from the leaf and return it if it …\nThe QC linking this leaf to its parent in the chain.\nTime when this leaf was created.\nAn interface for querying a HotShot blockchain.\nA block hash is the hash of the block header.\nSNAFU context selector for the Error::Custom variant\nAn in-progress request to fetch some data.\nSNAFU context selector for the Error::FetchBlock variant\nSNAFU context selector for the Error::FetchLeaf variant\nSNAFU context selector for the Error::FetchTransaction …\nA proof that a certain transaction exists in the block.\nSNAFU context selector for the …\nEnumerate the transactions in this block.\nA block payload whose contents (e.g. individual …\nSNAFU context selector for the Error::Request variant\nAn index which can be used to efficiently retrieve a …\nThe hash of the block containing this transaction.\nThe height of the block containing this transaction.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nGet the index of the transaction with a given hash, if it …\nGet the index of the transaction with a given hash, if it …\nConvert this Fetch to a Result with the provided error …\nEnumerate the transactions in the block with their indices.\nEnumerate the transactions in the block with their indices.\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nTimeout for failing requests due to missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the transaction with the given hash.\nThe hash of this transaction.\nThe (0-based) position of this transaction within its …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this block is empty of transactions.\nWhether this block is empty of transactions.\nList the transaction indices in the block.\nThe number of transactions in the block.\nTransform the result of this fetch.\nCollect information about a Leaf.\nGet the index of the nth transaction.\nGet the index of the nth transaction.\nGet the nth transaction.\nGet the nth transaction.\nGet the nth transaction, along with an inclusion proof.\nGet the nth transaction, along with an inclusion proof.\nGet an inclusion proof for a transaction with a given …\nGet an inclusion proof for a transaction with a given …\nA proof of inclusion of this transaction in its block.\nWait for the data to become available, if it is not …\nGet a transaction by its block-specific index.\nGet a transaction by its block-specific index.\nThe underlying transaction data.\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet a transaction by its block-specific index, along with …\nGet the requested data if it is available immediately.\nConvert this Fetch to a Result with the provided error …\nWait for the requested data to become available, but only …\nWrapper to add extensibility to an existing data source.\nA minimal data source for the status API provided in this …\nA unit of atomicity for updating a shared data sourec.\nA transaction which can read and modify the data source.\nAn extension trait for types which implement the update …\nA data source with an atomic transaction-based …\nGeneric tests we can instantiate for all the availability …\nAsynchronous retrieval of missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAccess the underlying data source.\nMutably access the underlying data source.\nCalls U::from(self).\nCalls U::from(self).\nGeneric tests we can instantiate for all the node data …\nGeneric tests we can instantiate for any data source with …\nStart a read-only transaction on the data source.\nGeneric tests we can instantiate for all the status data …\nPersistent storage for data sources.\nUpdate query state based on a new consensus event.\nStart an atomic transaction on the data source.\nA provider which can be used as a fetcher by the …\nBuilder for FetchingDataSource with configuration.\nThe most basic kind of data source.\nBuild a FetchingDataSource with these options.\nBuild a FetchingDataSource with the given storage and …\nConnect to a remote database.\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nRun without proactive fetching.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new builder with the given storage and fetcher …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nAdd a delay between active fetches in proactive scans.\nAdds a delay between chunk fetches during proactive scans.\nSet the interval (denominated in minor scans) between …\nSet the offset (denominated in minor scans) before the …\nSet the time interval between minor proactive fetching …\nSet the number of items to process at a time when scanning …\nSet the number of items to process at a time when loading …\nSet the maximum delay between retries of fetches.\nSet the maximum delay between retries of fetches.\nA data source for the APIs provided in this crate, backed …\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nThe Error type, a wrapper around a dynamic error type.\nRepresents a schema migration to be run on the database, …\nPostgreSQL database driver.\nA data source for the APIs provided in this crate, backed …\nConnect to the database, setting options on the underlying …\nConnect to the database with this config.\nConnect to a remote database.\nEmbed migrations from the given directory into the current …\nPersistent storage for a HotShot blockchain.\nAn interface for querying Data and Statistics from the …\nThis trait defines methods that a data source should …\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nSearch the database for missing objects and generate a …\nStorage for the APIs provided in this crate, backed by a …\nCreate a new FileSystemStorage with storage at path.\nCreate a new FileSystemStorage using a persistent storage …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpen an existing FileSystemStorage from storage at path.\nOpen an existing FileSystemStorage using a persistent …\nAdvance the version of the persistent store without …\nMock storage implementation which doesn’t actually store …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nEither Postgres or no storage.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of blocks to remove in a single pruning operation.\nReturns the argument unchanged.\nPruning interval\nCalls U::from(self).\nMaximum disk usage (in basis points).\nMinimum data retention period\nDisk space threshold (in bytes).\nTarget data retention period\nThe concrete type used as a buffer for arguments while …\nThe concrete Arguments implementation for this database.\nThe concrete Column implementation for this database.\nPostgres client config.\nThe concrete Connection implementation for this database.\nA database driver.\nThe concrete database backing a SQL data source.\nThe Error type, a wrapper around a dynamic error type.\nA type that contains or can provide a database connection …\nA collection of parameters with a statically known length.\nRepresents a schema migration to be run on the database, …\nThe display name for this database driver.\nA collection of parameters which can be bound to a SQL …\nPostgreSQL database driver.\nHelper type for programatically constructing queries.\nThe concrete QueryResult implementation for this database.\nMarker type indicating a transaction with read-only access …\nThe concrete Row implementation for this database.\nStorage for the APIs provided in this crate, backed by a …\nSqlite database driver.\nThe concrete Statement implementation for this database.\nAn atomic SQL transaction.\nThe concrete TransactionManager implementation for this …\nTrait for marker types indicating what type of access a …\nThe concrete TypeInfo implementation for this database.\nThe schemes for database URLs that should match this …\nThe concrete type used to hold an owned copy of the …\nThe concrete type used to hold a reference to the …\nMarker type indicating a transaction with read-write …\nGet the timestamp from when the Migration was applied. None…\nDisable pruning and reconstruct previously pruned data.\nGet the backtrace for this Error.\nAdd an argument and return its name as a formal parameter …\nConvert range bounds to a SQL WHERE clause constraining a …\nConnect to the database, setting options on the underlying …\nAn iterator of the chain of source errors contained by …\nGet the Migration checksum. Checksum is formed from the …\nConnect to the database with this config.\nConnect to a remote database.\nSet the maximum lifetime of a connection.\nWrap the error value with additional context.\nSet the name of the database to connect to.\nThe migrations requied to build the default schema for …\nAttempt to downcast the error object to a concrete type.\nDowncast this error object by mutable reference.\nDowncast this error object by reference.\nExecute the query and return the total number of rows …\nExecute the query and return the total number of rows …\nExecute multiple queries and return the rows affected from …\nExecute multiple queries and return the rows affected from …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify exactly one …\nExecute a statement that is expected to modify exactly one …\nExecute the query and return the generated results as a …\nExecute the query and return the generated results as a …\nExecute the query and return all the generated results, …\nExecute the query and return all the generated results, …\nExecute multiple queries and return the generated results …\nExecute the query and returns exactly one row.\nExecute the query and returns exactly one row.\nExecute the query and returns at most one row.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetreives a Merkle path from the database\nConstruct a SQL WHERE clause which filters for a header …\nSet the hostname of the database server.\nSet the maximum idle time of a connection.\nEmbed the contents of a directory in your crate.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if E is the type held by this error object.\nLoad a header from storage.\nSet the maximum number of connections to maintain at any …\nAdd custom migrations to run when connecting to the …\nSet the minimum number of connections to maintain at any …\nCreate a new error object from a printable error message.\nGet the Migration Name\nCreate a new error object from any error type.\nSkip all migrations when connecting to the database.\nSet a password for connecting to the database.\nSet the port on which to connect to the database.\nGet the Prefix\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query, with parameter type information, to …\nNote: The prune operation may not immediately free up …\nEnable pruning with a given configuration.\nFinalize the query with a constructed SQL statement.\nFinalize the query with a constructed SQL statement and a …\nReset the schema on connection.\nThe lowest level cause of this error — this error’s …\nSet the name of the schema to use for queries.\nUse TLS for an encrypted connection to the database.\nCreate an unapplied migration, name and version are parsed …\nSet the DB user to connect as.\nGet the Migration version\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nBalanceAmount is a type that represents a general balance …\nBlockDetail is a struct that represents the details of a …\nBlockDetailResponse is a struct that represents the …\nBlockIdentifier is an enum that represents multiple ways …\nBlockRange is a struct that represents a range for a …\nBlockSummary is a struct that represents a summary …\nBlockSummaryResponse is a struct that represents the …\nCurrencyCode represents an enumeration of all …\nCurrencyMismatchError is an error that occurs when two …\nError is an enum that represents the various errors that …\nAn interface for querying Data and Statistics from the …\nExplorerHeader is a trait that represents certain …\nExplorerHistograms provides a series of data points that …\nExplorerSummary is a struct that represents an at-a-glance …\nExplorerSummaryResponse is a struct that represents the …\nExplorerTransaction is a trait that allows the Explorer …\nFeeAttribution represents a specific attribution of fees …\nGenesisOverview provides a summary overview of the block …\nGetBlockDetailError represents an error that has occurred …\nGetBlockSummariesError represents an error that has …\nGetBlockSummariesRequest is a struct that represents an …\nGetExplorerSummaryError represents an error that has …\nGetSearchResultsError represents an error that has …\nGetTransactionDetailError represents an error that has …\nGetTransactionSummariesError represents an error that has …\nGetTransactionSummariesRequest is a struct that represents …\nInvalidCurrencyCodeError is an error that occurs when an …\nMonetaryValues is a struct that paris a CurrencyCode with …\nNamespaceId is a type that represents the id of a …\nNamespaceId is a type that represents the id of a …\nProposerId is a type that represents the proposer id of …\nSearchResult is a struct that represents the results of …\nSearchResultResponse is a struct that represents the …\nTimestamp represents a specific point in time that has a …\nTimestampConversionError represents an error that has …\nTransactionDetail is a struct that represents the details …\nTransactionDetailResponse is a struct that represents the …\nTransactionIdentifier is an enum that represents multiple …\nTransactionRange is a struct that represents a range for a …\nTransactionSummariesResponse is a struct that represents …\nTransactionSummary is a struct that represents a summary …\nTransactionSummaryFilter represents the various filters …\nWalletAddress is a type that represents the address of a …\nadd attempts to add the two MonetaryValues together. This …\nbtc is a convenience function to create a MonetaryValue …\ndefine_api is a function that defines the API endpoints …\ndeserialize attempts to convert a string into a …\ndeserialize converts a string representation of a RFC3339 …\nesp is a convenience function to create a MonetaryValue …\neth is a convenience function to create a MonetaryValue …\nThe wallet address of the fee info account contained …\nThe balance amount of the fee info contained within the …\nfmt formats the error into a human readable string\nfmt formats the error into a human readable string\nfmt formats the currency code into a human readable string\nfmt formats the MonetaryValue into a human readable …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nfrom converts an i128 into a MonetaryValue with the USD …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA collection of namespace ids that are contained within …\nnew creates a new MonetaryValue instance with the given …\nThe proposer id of the block as stored within the block …\nThe balance amount of the reward for constructing the …\nserialize converts the error into a struct representation\nserialize converts the error into a struct representation\nserialize converts the MonetaryValue into a String …\nserialize converts the timestamp into a string …\nsignificant_digits represents the total number of …\nsub attempts to subtract the two MonetaryValues together. …\nusd is a convenience function to create a MonetaryValue …\nA callback to process the result of a request.\nManagement of concurrent requests to fetch resources.\nA callback to process the result of a request.\nReturns the argument unchanged.\nCalls U::from(self).\nAsynchronous fetching from external data availability …\nRequests for fetching resources.\nFetch a resource, if it is not already being fetched.\nAdaptor combining multiple data availability providers.\nTrivial Provider where fetching always fails.\nA provider which is able to satisfy requests for data of …\nData availability provider backed by another instance of …\nAdaptor to add test-only functionality to an existing …\nDelay fetch requests until unblock.\nCause subsequent requests to fail.\nFetch a resource.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAllow blocked fetch requests to proceed.\nStop requests from failing as a result of a previous call …\nAdd a sub-provider which fetches blocks.\nAdd a sub-provider which fetches leaves.\nAdd a sub-provider which fetches both blocks and leaves.\nAdd a sub-provider which fetches VID common data.\nA request for a leaf with a given height.\nA request for a payload with a given commitment.\nA request for a resource.\nThe type of resource that will be returned as a successful …\nA request for VID common data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis trait should be implemented by the MerkleTree that …\nThis trait defines methods that a data source should …\nSnapshot can be queried by block height (index) or merkle …\nThis trait defines methods for updating the storage with …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetrieves the field in the header containing the Merkle …\nInsert a forgotten path into the tree.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRetrieves the name of the state being queried.\nGet the height of the tree\nA Counter metric.\nA CounterFamily metric.\nA Gauge metric.\nA GaugeFamily metric.\nA Histogram metric.\nA HistogramFamily metric.\nA Prometheus-based implementation of a Metrics registry.\nA TextFamily metric.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a gauge family in this sub-group by name.\nGet a counter in this sub-group by name.\nGet a counter family in this sub-group by name.\nGet a gauge in this sub-group by name.\nGet a histogram in this sub-group by name.\nGet a histogram family in this sub-group by name.\nGet a (possibly nested) subgroup of this group by its path.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSNAFU context selector for the Error::Custom variant\nSNAFU context selector for the Error::Query variant\nSNAFU context selector for the Error::QueryVid variant\nSNAFU context selector for the Error::QueryWindow variant\nSNAFU context selector for the Error::Request variant\nResponse to a /:resource/window query.\nConsume the selector and return the associated error\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe block height of the block that starts the window.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSearch the database for missing objects and generate a …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA background task which is cancelled on Drop\nA task handle which can be joined, but is cancelled on Drop\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nWait for the task to complete and get its output.\nSpawn a background task, which will be cancelled when …\nSpawn a task, which will be cancelled when dropped.\nBacking storage for the data source.\nReturns the argument unchanged.\nCalls U::from(self).\nSetup runs after setting up the network but before …\nA type alias for the mock base version\nThe block header to append\nBlock number.\nFast commitment for builder verification\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPer spec, justification\nblock metdata\nVID commitment to the payload.\nPossible timeout or view sync certificate.\nrandom\nshould_return_err is a testing utility to validate …\nTimestamp when this header was created.\nList of transactions.\nPossible upgrade certificate, which the leader may …\nThe URL of the builder to reach out to.\nCurView from leader when proposing leaf\nTypes which have a notion of “height” within a chain.") \ No newline at end of file diff --git a/src/hotshot_query_service/availability/query_data.rs.html b/src/hotshot_query_service/availability/query_data.rs.html index a3fab75ca..112706dd5 100644 --- a/src/hotshot_query_service/availability/query_data.rs.html +++ b/src/hotshot_query_service/availability/query_data.rs.html @@ -630,6 +630,11 @@ 630 631 632 +633 +634 +635 +636 +637
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -842,7 +847,7 @@
     ///
     /// Fails with an [`InconsistentLeafError`] if `qc` does not reference `leaf`.
     pub fn new(
-        leaf: Leaf<Types>,
+        mut leaf: Leaf<Types>,
         qc: QuorumCertificate<Types>,
     ) -> Result<Self, InconsistentLeafError<Types>> {
         // TODO: Replace with the new `commit` function in HotShot. Add an `upgrade_lock` parameter
@@ -856,6 +861,11 @@
                 qc_leaf: qc.data.leaf_commit
             }
         );
+
+        // We only want the leaf for the block header and consensus metadata. The payload will be
+        // stored separately.
+        leaf.unfill_block_payload();
+
         Ok(Self { leaf, qc })
     }
 
diff --git a/src/hotshot_query_service/data_source/fetching.rs.html b/src/hotshot_query_service/data_source/fetching.rs.html
index fbde8620d..0ecffa5b6 100644
--- a/src/hotshot_query_service/data_source/fetching.rs.html
+++ b/src/hotshot_query_service/data_source/fetching.rs.html
@@ -2706,7 +2706,7 @@
         match self {
             Ok(t) => Some(t),
             Err(err) => {
-                tracing::warn!(
+                tracing::info!(
                     "error loading resource from local storage, will try to fetch: {err:#}"
                 );
                 None
diff --git a/src/hotshot_query_service/data_source/sql.rs.html b/src/hotshot_query_service/data_source/sql.rs.html
index 48a9e1b13..b85370400 100644
--- a/src/hotshot_query_service/data_source/sql.rs.html
+++ b/src/hotshot_query_service/data_source/sql.rs.html
@@ -578,7 +578,7 @@
 ///
 /// Custom migrations can be inserted using [`Config::migrations`]. Each custom migration will be
 /// inserted into the overall sequence of migrations in order of version number. The migrations
-/// provided by this crate only use version numbers which are multiples of 10, so the non-multiples
+/// provided by this crate only use version numbers which are multiples of 100, so the non-multiples
 /// can be used to insert custom migrations between the default migrations. You can also replace a
 /// default migration completely by providing a custom migration with the same version number. This
 /// may be useful when an earlier custom migration has altered the schema in such a way that a later
diff --git a/src/hotshot_query_service/data_source/storage/sql.rs.html b/src/hotshot_query_service/data_source/storage/sql.rs.html
index 9a06ff17c..385c5d122 100644
--- a/src/hotshot_query_service/data_source/storage/sql.rs.html
+++ b/src/hotshot_query_service/data_source/storage/sql.rs.html
@@ -1197,6 +1197,17 @@
 1197
 1198
 1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1273,8 +1284,9 @@
 ///
 /// ```
 /// # use hotshot_query_service::data_source::sql::{include_migrations, Migration};
-/// let migrations: Vec<Migration> =
+/// let mut migrations: Vec<Migration> =
 ///     include_migrations!("$CARGO_MANIFEST_DIR/migrations").collect();
+/// migrations.sort();
 /// assert_eq!(migrations[0].version(), 10);
 /// assert_eq!(migrations[0].name(), "init_schema");
 /// ```
@@ -1319,12 +1331,22 @@
     // Check version uniqueness and sort by version.
     validate_migrations(&mut migrations).expect("default migrations are invalid");
 
-    // Check that all migration versions are multiples of 10, so that custom migrations can be
+    // Check that all migration versions are multiples of 100, so that custom migrations can be
     // inserted in between.
     for m in &migrations {
-        if m.version() == 0 || m.version() % 10 != 0 {
-            panic!(
-                "default migration version {} is not a positive multiple of 10",
+        if m.version() <= 30 {
+            // An older version of this software used intervals of 10 instead of 100. This was
+            // changed to allow more custom migrations between each default migration, but we must
+            // still accept older migrations that followed the older rule.
+            assert!(
+                m.version() > 0 && m.version() % 10 == 0,
+                "legacy default migration version {} is not a positive multiple of 10",
+                m.version()
+            );
+        } else {
+            assert!(
+                m.version() % 100 == 0,
+                "default migration version {} is not a multiple of 100",
                 m.version()
             );
         }
@@ -2145,11 +2167,11 @@
         // The SQL commands used here will fail if not run in order.
         let migrations = vec![
             Migration::unapplied(
-                "V33__create_test_table.sql",
+                "V103__create_test_table.sql",
                 "ALTER TABLE test ADD COLUMN data INTEGER;",
             )
             .unwrap(),
-            Migration::unapplied("V32__create_test_table.sql", "CREATE TABLE test ();").unwrap(),
+            Migration::unapplied("V102__create_test_table.sql", "CREATE TABLE test ();").unwrap(),
         ];
         connect(true, migrations.clone()).await.unwrap();
 
diff --git a/src/hotshot_query_service/fetching/provider/query_service.rs.html b/src/hotshot_query_service/fetching/provider/query_service.rs.html
index 07f25debe..91a9f5ca6 100644
--- a/src/hotshot_query_service/fetching/provider/query_service.rs.html
+++ b/src/hotshot_query_service/fetching/provider/query_service.rs.html
@@ -1059,6 +1059,13 @@
 1059
 1060
 1061
+1062
+1063
+1064
+1065
+1066
+1067
+1068
 

// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1161,17 +1168,24 @@
     async fn fetch(&self, req: LeafRequest) -> Option<LeafQueryData<Types>> {
         match self
             .client
-            .get(&format!("availability/leaf/{}", usize::from(req)))
+            .get::<LeafQueryData<Types>>(&format!("availability/leaf/{}", usize::from(req)))
             .send()
             .await
         {
-            Ok(leaf) => {
+            Ok(mut leaf) => {
                 // TODO we should also download a chain of QCs justifying the inclusion of `leaf` in
                 // the chain at the requested height. However, HotShot currently lacks a good light
                 // client API to verify this chain, so for now we just trust the other server.
                 // https://github.com/EspressoSystems/HotShot/issues/2137
                 // https://github.com/EspressoSystems/hotshot-query-service/issues/354
-                Some(leaf)
+
+                // There is a potential DOS attack where the peer sends us a leaf with the full
+                // payload in it, which uses redundant resources in the database, since we fetch and
+                // store payloads separately. We can defend ourselves by simply dropping the payload
+                // if present.
+                leaf.leaf.unfill_block_payload();
+
+                Some(leaf)
             }
             Err(err) => {
                 tracing::error!("failed to fetch leaf {req:?}: {err}");
diff --git a/type.impl/hotshot_query_service/data_source/storage/sql/struct.Config.js b/type.impl/hotshot_query_service/data_source/storage/sql/struct.Config.js
index 2e8bcf2d4..9c888cbf3 100644
--- a/type.impl/hotshot_query_service/data_source/storage/sql/struct.Config.js
+++ b/type.impl/hotshot_query_service/data_source/storage/sql/struct.Config.js
@@ -1,5 +1,5 @@
 (function() {
-    var type_impls = Object.fromEntries([["hotshot_query_service",[["
source§

impl<DB> Clone for Config<DB>
where\n DB: Database + Clone,\n DB::Connection: Clone,

source§

fn clone(&self) -> Config<DB>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","hotshot_query_service::data_source::sql::Config"],["
source§

impl<DB: Database> Config<DB>

source

pub fn schema(self, schema: impl Into<String>) -> Self

Set the name of the schema to use for queries.

\n

The default schema is named hotshot and is created via the default migrations.

\n
source

pub fn reset_schema(self) -> Self

Reset the schema on connection.

\n

When this Config is used to connect a\nSqlDataSource, if this option is set, the relevant\nschema will first be dropped and then recreated, yielding a completely\nfresh instance of the query service.

\n

This is a particularly useful capability for development and staging environments. Still, it\nmust be used with extreme caution, as using this will irrevocably delete any data pertaining\nto the query service in the database.

\n
source

pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self

Add custom migrations to run when connecting to the database.

\n
source

pub fn no_migrations(self) -> Self

Skip all migrations when connecting to the database.

\n
source

pub fn pruner_cfg(self, cfg: PrunerCfg) -> Result<Self, Error>

Enable pruning with a given configuration.

\n

If archive was previously specified, this will override it.

\n
source

pub fn archive(self) -> Self

Disable pruning and reconstruct previously pruned data.

\n

While running without pruning is the default behavior, the default will not try to\nreconstruct data that was pruned in a previous run where pruning was enabled. This option\ninstructs the service to run without pruning and reconstruct all previously pruned data by\nfetching from peers.

\n

If pruner_cfg was previously specified, this will override it.

\n
source

pub fn idle_connection_timeout(self, timeout: Duration) -> Self

Set the maximum idle time of a connection.

\n

Any connection which has been open and unused longer than this duration will be\nautomatically closed to reduce load on the server.

\n
source

pub fn connection_timeout(self, timeout: Duration) -> Self

Set the maximum lifetime of a connection.

\n

Any connection which has been open longer than this duration will be automatically closed\n(and, if needed, replaced), even if it is otherwise healthy. It is good practice to refresh\neven healthy connections once in a while (e.g. daily) in case of resource leaks in the\nserver implementation.

\n
source

pub fn min_connections(self, min: u32) -> Self

Set the minimum number of connections to maintain at any time.

\n

The data source will, to the best of its ability, maintain at least min open connections\nat all times. This can be used to reduce the latency hit of opening new connections when at\nleast this many simultaneous connections are frequently needed.

\n
source

pub fn max_connections(self, max: u32) -> Self

Set the maximum number of connections to maintain at any time.

\n

Once max connections are in use simultaneously, further attempts to acquire a connection\n(or begin a transaction) will block until one of the existing connections is released.

\n
",0,"hotshot_query_service::data_source::sql::Config"],["
source§

impl Config<Postgres>

source

pub fn host(self, host: impl Into<String>) -> Self

Set the hostname of the database server.

\n

The default is localhost.

\n
source

pub fn port(self, port: u16) -> Self

Set the port on which to connect to the database.

\n

The default is 5432, the default Postgres port.

\n
source

pub fn user(self, user: &str) -> Self

Set the DB user to connect as.

\n
source

pub fn password(self, password: &str) -> Self

Set a password for connecting to the database.

\n
source

pub fn database(self, database: &str) -> Self

Set the name of the database to connect to.

\n
source

pub fn tls(self) -> Self

Use TLS for an encrypted connection to the database.

\n

Note that an encrypted connection may be established even if this option is not set, as long\nas both the client and server support it. This option merely causes connection to fail if an\nencrypted stream cannot be established.

\n
",0,"hotshot_query_service::data_source::sql::Config"],["
source§

impl<DB> Debug for Config<DB>
where\n DB: Database + Debug,\n DB::Connection: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Debug","hotshot_query_service::data_source::sql::Config"],["
source§

impl Default for Config<Postgres>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
","Default","hotshot_query_service::data_source::sql::Config"],["
source§

impl From<PgConnectOptions> for Config<Postgres>

source§

fn from(db_opt: PgConnectOptions) -> Self

Converts to this type from the input type.
","From","hotshot_query_service::data_source::sql::Config"],["
source§

impl FromStr for Config<Postgres>

source§

type Err = <PgConnectOptions as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
","FromStr","hotshot_query_service::data_source::sql::Config"]]]]); + var type_impls = Object.fromEntries([["hotshot_query_service",[["
source§

impl<DB> Clone for Config<DB>
where\n DB: Database + Clone,\n DB::Connection: Clone,

source§

fn clone(&self) -> Config<DB>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","hotshot_query_service::data_source::sql::Config"],["
source§

impl<DB: Database> Config<DB>

source

pub fn schema(self, schema: impl Into<String>) -> Self

Set the name of the schema to use for queries.

\n

The default schema is named hotshot and is created via the default migrations.

\n
source

pub fn reset_schema(self) -> Self

Reset the schema on connection.

\n

When this Config is used to connect a\nSqlDataSource, if this option is set, the relevant\nschema will first be dropped and then recreated, yielding a completely\nfresh instance of the query service.

\n

This is a particularly useful capability for development and staging environments. Still, it\nmust be used with extreme caution, as using this will irrevocably delete any data pertaining\nto the query service in the database.

\n
source

pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self

Add custom migrations to run when connecting to the database.

\n
source

pub fn no_migrations(self) -> Self

Skip all migrations when connecting to the database.

\n
source

pub fn pruner_cfg(self, cfg: PrunerCfg) -> Result<Self, Error>

Enable pruning with a given configuration.

\n

If archive was previously specified, this will override it.

\n
source

pub fn archive(self) -> Self

Disable pruning and reconstruct previously pruned data.

\n

While running without pruning is the default behavior, the default will not try to\nreconstruct data that was pruned in a previous run where pruning was enabled. This option\ninstructs the service to run without pruning and reconstruct all previously pruned data by\nfetching from peers.

\n

If pruner_cfg was previously specified, this will override it.

\n
source

pub fn idle_connection_timeout(self, timeout: Duration) -> Self

Set the maximum idle time of a connection.

\n

Any connection which has been open and unused longer than this duration will be\nautomatically closed to reduce load on the server.

\n
source

pub fn connection_timeout(self, timeout: Duration) -> Self

Set the maximum lifetime of a connection.

\n

Any connection which has been open longer than this duration will be automatically closed\n(and, if needed, replaced), even if it is otherwise healthy. It is good practice to refresh\neven healthy connections once in a while (e.g. daily) in case of resource leaks in the\nserver implementation.

\n
source

pub fn min_connections(self, min: u32) -> Self

Set the minimum number of connections to maintain at any time.

\n

The data source will, to the best of its ability, maintain at least min open connections\nat all times. This can be used to reduce the latency hit of opening new connections when at\nleast this many simultaneous connections are frequently needed.

\n
source

pub fn max_connections(self, max: u32) -> Self

Set the maximum number of connections to maintain at any time.

\n

Once max connections are in use simultaneously, further attempts to acquire a connection\n(or begin a transaction) will block until one of the existing connections is released.

\n
",0,"hotshot_query_service::data_source::sql::Config"],["
source§

impl Config<Postgres>

source

pub fn host(self, host: impl Into<String>) -> Self

Set the hostname of the database server.

\n

The default is localhost.

\n
source

pub fn port(self, port: u16) -> Self

Set the port on which to connect to the database.

\n

The default is 5432, the default Postgres port.

\n
source

pub fn user(self, user: &str) -> Self

Set the DB user to connect as.

\n
source

pub fn password(self, password: &str) -> Self

Set a password for connecting to the database.

\n
source

pub fn database(self, database: &str) -> Self

Set the name of the database to connect to.

\n
source

pub fn tls(self) -> Self

Use TLS for an encrypted connection to the database.

\n

Note that an encrypted connection may be established even if this option is not set, as long\nas both the client and server support it. This option merely causes connection to fail if an\nencrypted stream cannot be established.

\n
",0,"hotshot_query_service::data_source::sql::Config"],["
source§

impl<DB> Debug for Config<DB>
where\n DB: Database + Debug,\n DB::Connection: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Debug","hotshot_query_service::data_source::sql::Config"],["
source§

impl Default for Config<Postgres>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
","Default","hotshot_query_service::data_source::sql::Config"],["
source§

impl From<PgConnectOptions> for Config<Postgres>

source§

fn from(db_opt: PgConnectOptions) -> Self

Converts to this type from the input type.
","From","hotshot_query_service::data_source::sql::Config"],["
source§

impl FromStr for Config<Postgres>

source§

type Err = <PgConnectOptions as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
","FromStr","hotshot_query_service::data_source::sql::Config"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else {