diff --git a/cairo_native/all.html b/cairo_native/all.html index 6a1dda4e9..184c88339 100644 --- a/cairo_native/all.html +++ b/cairo_native/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Statics

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Statics

Constants

\ No newline at end of file diff --git a/cairo_native/cache/enum.ProgramCache.html b/cairo_native/cache/enum.ProgramCache.html index e13beffb6..d6dacab5d 100644 --- a/cairo_native/cache/enum.ProgramCache.html +++ b/cairo_native/cache/enum.ProgramCache.html @@ -4,8 +4,8 @@ Jit(JitProgramCache<'a, K>), }

Variants§

§

Aot(AotProgramCache<'a, K>)

§

Jit(JitProgramCache<'a, K>)

Trait Implementations§

source§

impl<'a, K> Debug for ProgramCache<'a, K>
where K: PartialEq + Eq + Hash + Debug,

source§

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

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

impl<'a, K> From<AotProgramCache<'a, K>> for ProgramCache<'a, K>
where - K: PartialEq + Eq + Hash,

source§

fn from(value: AotProgramCache<'a, K>) -> Self

Converts to this type from the input type.
source§

impl<'a, K> From<JitProgramCache<'a, K>> for ProgramCache<'a, K>
where - K: PartialEq + Eq + Hash,

source§

fn from(value: JitProgramCache<'a, K>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, K> Freeze for ProgramCache<'a, K>

§

impl<'a, K> RefUnwindSafe for ProgramCache<'a, K>
where + K: PartialEq + Eq + Hash,

source§

fn from(value: AotProgramCache<'a, K>) -> Self

Converts to this type from the input type.
source§

impl<'a, K> From<JitProgramCache<'a, K>> for ProgramCache<'a, K>
where + K: PartialEq + Eq + Hash,

source§

fn from(value: JitProgramCache<'a, K>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, K> Freeze for ProgramCache<'a, K>

§

impl<'a, K> RefUnwindSafe for ProgramCache<'a, K>
where K: RefUnwindSafe,

§

impl<'a, K> Send for ProgramCache<'a, K>
where K: Send,

§

impl<'a, K> Sync for ProgramCache<'a, K>
where K: Sync,

§

impl<'a, K> Unpin for ProgramCache<'a, K>
where diff --git a/cairo_native/enum.OptLevel.html b/cairo_native/enum.OptLevel.html index d1016f40f..2c2fd03c5 100644 --- a/cairo_native/enum.OptLevel.html +++ b/cairo_native/enum.OptLevel.html @@ -4,7 +4,7 @@ Default, Aggressive, }
Expand description

Optimization levels.

-

Variants§

§

None

§

Less

§

Default

§

Aggressive

Trait Implementations§

source§

impl Clone for OptLevel

source§

fn clone(&self) -> OptLevel

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 Debug for OptLevel

source§

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

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

impl Default for OptLevel

source§

fn default() -> OptLevel

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

impl From<OptLevel> for usize

source§

fn from(val: OptLevel) -> Self

Converts to this type from the input type.
source§

impl From<u8> for OptLevel

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl From<usize> for OptLevel

source§

fn from(value: usize) -> Self

Converts to this type from the input type.
source§

impl Hash for OptLevel

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Variants§

§

None

§

Less

§

Default

§

Aggressive

Trait Implementations§

source§

impl Clone for OptLevel

source§

fn clone(&self) -> OptLevel

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 Debug for OptLevel

source§

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

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

impl Default for OptLevel

source§

fn default() -> OptLevel

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

impl From<OptLevel> for usize

source§

fn from(val: OptLevel) -> Self

Converts to this type from the input type.
source§

impl From<u8> for OptLevel

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl From<usize> for OptLevel

source§

fn from(value: usize) -> Self

Converts to this type from the input type.
source§

impl Hash for OptLevel

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for OptLevel

source§

fn cmp(&self, other: &OptLevel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/cairo_native/enum.Value.html b/cairo_native/enum.Value.html index 5af6d0ab1..3f9f47ec7 100644 --- a/cairo_native/enum.Value.html +++ b/cairo_native/enum.Value.html @@ -1,4 +1,4 @@ -Value in cairo_native - Rust

Enum cairo_native::Value

source ·
pub enum Value {
+Value in cairo_native - Rust

Enum cairo_native::Value

source ·
pub enum Value {
 
Show 22 variants Felt252(Felt), Bytes31([u8; 31]), Array(Vec<Self>), @@ -40,11 +40,11 @@

A Boxed value or a non-null Nullable value is returned with it’s inner value.

Variants§

§

Felt252(Felt)

§

Bytes31([u8; 31])

§

Array(Vec<Self>)

all elements need to be same type

§

Struct

Fields

§fields: Vec<Self>
§debug_name: Option<String>
§

Enum

Fields

§tag: usize
§value: Box<Self>
§debug_name: Option<String>
§

Felt252Dict

Fields

§value: HashMap<Felt, Self>
§debug_name: Option<String>
§

Uint8(u8)

§

Uint16(u16)

§

Uint32(u32)

§

Uint64(u64)

§

Uint128(u128)

§

Sint8(i8)

§

Sint16(i16)

§

Sint32(i32)

§

Sint64(i64)

§

Sint128(i128)

§

EcPoint(Felt, Felt)

§

EcState(Felt, Felt, Felt, Felt)

§

Secp256K1Point(Secp256k1Point)

§

Secp256R1Point(Secp256r1Point)

§

BoundedInt

Fields

§value: Felt
§range: Range
§

Null

Used as return value for Nullables that are null.

-

Trait Implementations§

source§

impl Clone for Value

source§

fn clone(&self) -> Value

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 Debug for Value

source§

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

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

impl<'de> Deserialize<'de> for Value

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<T: Into<Value> + Clone> From<&[T]> for Value

source§

fn from(value: &[T]) -> Self

Converts to this type from the input type.
source§

impl<T: Into<Value>, const N: usize> From<[T; N]> for Value

source§

fn from(value: [T; N]) -> Self

Converts to this type from the input type.
source§

impl From<Felt> for Value

source§

fn from(value: Felt) -> Self

Converts to this type from the input type.
source§

impl<T: Into<Value>> From<Vec<T>> for Value

source§

fn from(value: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl From<i128> for Value

source§

fn from(value: i128) -> Self

Converts to this type from the input type.
source§

impl From<i16> for Value

source§

fn from(value: i16) -> Self

Converts to this type from the input type.
source§

impl From<i32> for Value

source§

fn from(value: i32) -> Self

Converts to this type from the input type.
source§

impl From<i64> for Value

source§

fn from(value: i64) -> Self

Converts to this type from the input type.
source§

impl From<i8> for Value

source§

fn from(value: i8) -> Self

Converts to this type from the input type.
source§

impl From<u128> for Value

source§

fn from(value: u128) -> Self

Converts to this type from the input type.
source§

impl From<u16> for Value

source§

fn from(value: u16) -> Self

Converts to this type from the input type.
source§

impl From<u32> for Value

source§

fn from(value: u32) -> Self

Converts to this type from the input type.
source§

impl From<u64> for Value

source§

fn from(value: u64) -> Self

Converts to this type from the input type.
source§

impl From<u8> for Value

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Value

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Value

source§

fn clone(&self) -> Value

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 Debug for Value

source§

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

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

impl<'de> Deserialize<'de> for Value

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<T: Into<Value> + Clone> From<&[T]> for Value

source§

fn from(value: &[T]) -> Self

Converts to this type from the input type.
source§

impl<T: Into<Value>, const N: usize> From<[T; N]> for Value

source§

fn from(value: [T; N]) -> Self

Converts to this type from the input type.
source§

impl From<Felt> for Value

source§

fn from(value: Felt) -> Self

Converts to this type from the input type.
source§

impl<T: Into<Value>> From<Vec<T>> for Value

source§

fn from(value: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl From<i128> for Value

source§

fn from(value: i128) -> Self

Converts to this type from the input type.
source§

impl From<i16> for Value

source§

fn from(value: i16) -> Self

Converts to this type from the input type.
source§

impl From<i32> for Value

source§

fn from(value: i32) -> Self

Converts to this type from the input type.
source§

impl From<i64> for Value

source§

fn from(value: i64) -> Self

Converts to this type from the input type.
source§

impl From<i8> for Value

source§

fn from(value: i8) -> Self

Converts to this type from the input type.
source§

impl From<u128> for Value

source§

fn from(value: u128) -> Self

Converts to this type from the input type.
source§

impl From<u16> for Value

source§

fn from(value: u16) -> Self

Converts to this type from the input type.
source§

impl From<u32> for Value

source§

fn from(value: u32) -> Self

Converts to this type from the input type.
source§

impl From<u64> for Value

source§

fn from(value: u64) -> Self

Converts to this type from the input type.
source§

impl From<u8> for Value

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Value

source§

fn eq(&self, other: &Self) -> bool

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

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

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

impl Serialize for Value

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 Eq for Value

Auto Trait Implementations§

§

impl Freeze for Value

§

impl RefUnwindSafe for Value

§

impl Send for Value

§

impl Sync for Value

§

impl Unpin for Value

§

impl UnwindSafe for Value

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl Serialize for Value

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 Eq for Value

Auto Trait Implementations§

§

impl Freeze for Value

§

impl RefUnwindSafe for Value

§

impl Send for Value

§

impl Sync for Value

§

impl Unpin for Value

§

impl UnwindSafe for Value

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/cairo_native/error/enum.CompilerError.html b/cairo_native/error/enum.CompilerError.html index 07bbc5270..1398460ac 100644 --- a/cairo_native/error/enum.CompilerError.html +++ b/cairo_native/error/enum.CompilerError.html @@ -3,7 +3,7 @@ value: Box<BigInt>, range: Box<(BigInt, BigInt)>, }, -}

Variants§

§

BoundedIntOutOfRange

Fields

§value: Box<BigInt>
§range: Box<(BigInt, BigInt)>

Trait Implementations§

source§

impl Debug for CompilerError

source§

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

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

impl Display for CompilerError

source§

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

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

impl Error for CompilerError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<CompilerError> for Error

source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Variants§

§

BoundedIntOutOfRange

Fields

§value: Box<BigInt>
§range: Box<(BigInt, BigInt)>

Trait Implementations§

source§

impl Debug for CompilerError

source§

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

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

impl Display for CompilerError

source§

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

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

impl Error for CompilerError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<CompilerError> for Error

source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/cairo_native/error/enum.Error.html b/cairo_native/error/enum.Error.html index 66437c85d..9eadcdeae 100644 --- a/cairo_native/error/enum.Error.html +++ b/cairo_native/error/enum.Error.html @@ -21,7 +21,7 @@ IoError(Error), LibraryLoadError(Error), SerdeJsonError(Error), -

}

Variants§

§

LayoutError(LayoutError)

§

MlirError(Error)

§

MissingParameter(String)

§

UnexpectedValue(String)

§

MissingSyscallHandler

§

LayoutErrorPolyfill(LayoutError)

§

ProgramRegistryErrorBoxed(Box<ProgramRegistryError>)

§

TryFromIntError(TryFromIntError)

§

ParseAttributeError

§

MissingMetadata

§

SierraAssert(SierraAssertError)

§

Compiler(CompilerError)

§

EditStateError(EditStateError)

§

GasMetadataError(GasMetadataError)

§

LLVMCompileError(String)

§

LinkError(String)

§

ConstDataMismatch

§

IntegerLikeTypeExpected

§

IntegerConversion

§

IoError(Error)

§

LibraryLoadError(Error)

§

SerdeJsonError(Error)

Implementations§

source§

impl Error

source

pub fn make_missing_parameter(ty: &ConcreteTypeId) -> Self

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Box<ProgramRegistryError>> for Error

source§

fn from(source: Box<ProgramRegistryError>) -> Self

Converts to this type from the input type.
source§

impl From<CompilerError> for Error

source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.
source§

impl From<EditStateError> for Error

source§

fn from(source: EditStateError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<GasMetadataError> for Error

source§

fn from(source: GasMetadataError) -> Self

Converts to this type from the input type.
source§

impl From<LayoutError> for Error

source§

fn from(source: LayoutError) -> Self

Converts to this type from the input type.
source§

impl From<LayoutError> for Error

source§

fn from(source: LayoutError) -> Self

Converts to this type from the input type.
source§

impl From<SierraAssertError> for Error

source§

fn from(source: SierraAssertError) -> Self

Converts to this type from the input type.
source§

impl From<TryFromIntError> for Error

source§

fn from(source: TryFromIntError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

}

Variants§

§

LayoutError(LayoutError)

§

MlirError(Error)

§

MissingParameter(String)

§

UnexpectedValue(String)

§

MissingSyscallHandler

§

LayoutErrorPolyfill(LayoutError)

§

ProgramRegistryErrorBoxed(Box<ProgramRegistryError>)

§

TryFromIntError(TryFromIntError)

§

ParseAttributeError

§

MissingMetadata

§

SierraAssert(SierraAssertError)

§

Compiler(CompilerError)

§

EditStateError(EditStateError)

§

GasMetadataError(GasMetadataError)

§

LLVMCompileError(String)

§

LinkError(String)

§

ConstDataMismatch

§

IntegerLikeTypeExpected

§

IntegerConversion

§

IoError(Error)

§

LibraryLoadError(Error)

§

SerdeJsonError(Error)

Implementations§

source§

impl Error

source

pub fn make_missing_parameter(ty: &ConcreteTypeId) -> Self

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Box<ProgramRegistryError>> for Error

source§

fn from(source: Box<ProgramRegistryError>) -> Self

Converts to this type from the input type.
source§

impl From<CompilerError> for Error

source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.
source§

impl From<EditStateError> for Error

source§

fn from(source: EditStateError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<GasMetadataError> for Error

source§

fn from(source: GasMetadataError) -> Self

Converts to this type from the input type.
source§

impl From<LayoutError> for Error

source§

fn from(source: LayoutError) -> Self

Converts to this type from the input type.
source§

impl From<LayoutError> for Error

source§

fn from(source: LayoutError) -> Self

Converts to this type from the input type.
source§

impl From<SierraAssertError> for Error

source§

fn from(source: SierraAssertError) -> Self

Converts to this type from the input type.
source§

impl From<TryFromIntError> for Error

source§

fn from(source: TryFromIntError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/cairo_native/executor/index.html b/cairo_native/executor/index.html index 8430c851a..603f17179 100644 --- a/cairo_native/executor/index.html +++ b/cairo_native/executor/index.html @@ -1,4 +1,4 @@ -cairo_native::executor - Rust

Module cairo_native::executor

source ·
Expand description

§Executors

+cairo_native::executor - Rust

Module cairo_native::executor

source ·
Expand description

§Executors

This module provides methods to execute the programs, either via JIT or compiled ahead of time. It also provides a cache to avoid recompiling previously compiled programs.

Structs§

\ No newline at end of file diff --git a/cairo_native/executor/struct.AotContractExecutor.html b/cairo_native/executor/struct.AotContractExecutor.html index a6baf140c..f326be25d 100644 --- a/cairo_native/executor/struct.AotContractExecutor.html +++ b/cairo_native/executor/struct.AotContractExecutor.html @@ -1,23 +1,23 @@ -AotContractExecutor in cairo_native::executor - Rust

Struct cairo_native::executor::AotContractExecutor

source ·
pub struct AotContractExecutor { /* private fields */ }
Expand description

Please look at the module level docs.

-

Implementations§

source§

impl AotContractExecutor

source

pub fn new(sierra_program: &Program, opt_level: OptLevel) -> Result<Self>

Create the executor from a sierra program with the given optimization level. +AotContractExecutor in cairo_native::executor - Rust

Struct cairo_native::executor::AotContractExecutor

source ·
pub struct AotContractExecutor { /* private fields */ }
Expand description

Please look at the module level docs.

+

Implementations§

source§

impl AotContractExecutor

source

pub fn new(sierra_program: &Program, opt_level: OptLevel) -> Result<Self>

Create the executor from a sierra program with the given optimization level. You can save the library on the desired location later using save. If not saved, the path is treated as a temporary file an deleted when dropped. If you loaded a ContractExecutor using [load] then it will not be treated as a temp file.

-
source

pub fn save(&mut self, to: impl AsRef<Path>) -> Result<()>

Save the library to the desired path, alongside it is saved also a json file with additional info.

-
source

pub fn load(library_path: &Path) -> Result<Self>

Load the executor from an already compiled library with the additional info json file.

-
source

pub fn run( +

source

pub fn save(&mut self, to: impl AsRef<Path>) -> Result<()>

Save the library to the desired path, alongside it is saved also a json file with additional info.

+
source

pub fn load(library_path: &Path) -> Result<Self>

Load the executor from an already compiled library with the additional info json file.

+
source

pub fn run( &self, function_id: &FunctionId, args: &[Felt], gas: Option<u128>, syscall_handler: impl StarknetSyscallHandler, ) -> Result<ContractExecutionResult>

Runs the given entry point.

-
source

pub fn find_function_ptr( +

source

pub fn find_function_ptr( &self, function_id: &FunctionId, is_for_contract_executor: bool, -) -> Result<*mut c_void>

Trait Implementations§

source§

impl Clone for AotContractExecutor

source§

fn clone(&self) -> AotContractExecutor

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 Debug for AotContractExecutor

source§

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

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

impl Drop for AotContractExecutor

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<*mut c_void>

Trait Implementations§

source§

impl Clone for AotContractExecutor

source§

fn clone(&self) -> AotContractExecutor

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 Debug for AotContractExecutor

source§

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

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

impl Drop for AotContractExecutor

source§

fn drop(&mut self)

Executes the destructor for this type. 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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/cairo_native/metadata/gas/enum.GasMetadataError.html b/cairo_native/metadata/gas/enum.GasMetadataError.html index bf758aa9b..898ae0f88 100644 --- a/cairo_native/metadata/gas/enum.GasMetadataError.html +++ b/cairo_native/metadata/gas/enum.GasMetadataError.html @@ -5,7 +5,7 @@ gas: Box<(u128, u128)>, }, }
Expand description

Error for metadata calculations.

-

Variants§

§

ApChangeError(ApChangeError)

§

CostError(CostError)

§

NotEnoughGas

Fields

§gas: Box<(u128, u128)>

Trait Implementations§

source§

impl Debug for GasMetadataError

source§

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

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

impl Display for GasMetadataError

source§

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

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

impl Error for GasMetadataError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ApChangeError> for GasMetadataError

source§

fn from(source: ApChangeError) -> Self

Converts to this type from the input type.
source§

impl From<CostError> for GasMetadataError

source§

fn from(source: CostError) -> Self

Converts to this type from the input type.
source§

impl From<GasMetadataError> for Error

source§

fn from(source: GasMetadataError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for GasMetadataError

source§

fn eq(&self, other: &GasMetadataError) -> bool

This method tests for self and other values to be equal, and is used +

Variants§

§

ApChangeError(ApChangeError)

§

CostError(CostError)

§

NotEnoughGas

Fields

§gas: Box<(u128, u128)>

Trait Implementations§

source§

impl Debug for GasMetadataError

source§

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

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

impl Display for GasMetadataError

source§

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

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

impl Error for GasMetadataError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ApChangeError> for GasMetadataError

source§

fn from(source: ApChangeError) -> Self

Converts to this type from the input type.
source§

impl From<CostError> for GasMetadataError

source§

fn from(source: CostError) -> Self

Converts to this type from the input type.
source§

impl From<GasMetadataError> for Error

source§

fn from(source: GasMetadataError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for GasMetadataError

source§

fn eq(&self, other: &GasMetadataError) -> bool

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

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

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

impl Eq for GasMetadataError

source§

impl StructuralPartialEq for GasMetadataError

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
source§

impl<T> Borrow<T> for T
where diff --git a/cairo_native/metadata/realloc_bindings/index.html b/cairo_native/metadata/realloc_bindings/index.html index ae6ef4750..67f3deffb 100644 --- a/cairo_native/metadata/realloc_bindings/index.html +++ b/cairo_native/metadata/realloc_bindings/index.html @@ -1,4 +1,4 @@ -cairo_native::metadata::realloc_bindings - Rust

Module cairo_native::metadata::realloc_bindings

source ·
Expand description

§Memory allocation external bindings

+cairo_native::metadata::realloc_bindings - Rust

Module cairo_native::metadata::realloc_bindings

source ·
Expand description

§Memory allocation external bindings

This metadata ensures that the bindings to the C function realloc exist in the current compilation context.

Structs§

\ No newline at end of file diff --git a/cairo_native/metadata/realloc_bindings/struct.ReallocBindingsMeta.html b/cairo_native/metadata/realloc_bindings/struct.ReallocBindingsMeta.html index b87c834cb..713089a94 100644 --- a/cairo_native/metadata/realloc_bindings/struct.ReallocBindingsMeta.html +++ b/cairo_native/metadata/realloc_bindings/struct.ReallocBindingsMeta.html @@ -1,12 +1,12 @@ -ReallocBindingsMeta in cairo_native::metadata::realloc_bindings - Rust
pub struct ReallocBindingsMeta { /* private fields */ }
Expand description

Memory allocation realloc metadata.

-

Implementations§

source§

impl ReallocBindingsMeta

source

pub fn new(context: &Context, module: &Module<'_>) -> Self

Register the bindings to the realloc C function and return the metadata.

-
source

pub fn realloc<'c, 'a>( +ReallocBindingsMeta in cairo_native::metadata::realloc_bindings - Rust
pub struct ReallocBindingsMeta;
Expand description

Memory allocation realloc metadata.

+

Implementations§

source§

impl ReallocBindingsMeta

source

pub fn new(context: &Context, module: &Module<'_>) -> Self

Register the bindings to the realloc C function and return the metadata.

+
source

pub fn realloc<'c, 'a>( context: &'c Context, ptr: Value<'c, 'a>, len: Value<'c, 'a>, location: Location<'c>, ) -> Operation<'c>

Calls the realloc function, returns a op with 1 result: an opaque pointer.

-
source

pub fn free<'c>( +

source

pub fn free<'c>( context: &'c Context, ptr: Value<'c, '_>, location: Location<'c>, diff --git a/cairo_native/metadata/runtime_bindings/index.html b/cairo_native/metadata/runtime_bindings/index.html index 85f40d54c..05f94b6a5 100644 --- a/cairo_native/metadata/runtime_bindings/index.html +++ b/cairo_native/metadata/runtime_bindings/index.html @@ -1,4 +1,4 @@ -cairo_native::metadata::runtime_bindings - Rust

Module cairo_native::metadata::runtime_bindings

source ·
Expand description

§Runtime library bindings

+cairo_native::metadata::runtime_bindings - Rust

Module cairo_native::metadata::runtime_bindings

source ·
Expand description

§Runtime library bindings

This metadata ensures that the bindings to the runtime functions exist in the current compilation context.

Structs§

\ No newline at end of file diff --git a/cairo_native/metadata/runtime_bindings/struct.RuntimeBindingsMeta.html b/cairo_native/metadata/runtime_bindings/struct.RuntimeBindingsMeta.html index 5ddf57bfe..241221377 100644 --- a/cairo_native/metadata/runtime_bindings/struct.RuntimeBindingsMeta.html +++ b/cairo_native/metadata/runtime_bindings/struct.RuntimeBindingsMeta.html @@ -1,5 +1,5 @@ RuntimeBindingsMeta in cairo_native::metadata::runtime_bindings - Rust
pub struct RuntimeBindingsMeta { /* private fields */ }
Expand description

Runtime library bindings metadata.

-

Implementations§

source§

impl RuntimeBindingsMeta

source

pub fn libfunc_debug_print<'c, 'a>( +

Implementations§

source§

impl RuntimeBindingsMeta

source

pub fn libfunc_debug_print<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -90,16 +90,16 @@ state_ptr: Value<'c, '_>, location: Location<'c>, ) -> Result<OperationRef<'c, 'a>>
where - 'c: 'a,

source

pub fn dict_new<'c, 'a>( + 'c: 'a,

source

pub fn dict_new<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, block: &'a Block<'c>, location: Location<'c>, -) -> Result<OperationRef<'c, 'a>>
where +) -> Result<Value<'c, 'a>>
where 'c: 'a,

Register if necessary, then invoke the dict_alloc_new() function.

Returns a opaque pointer as the result.

-
source

pub fn dict_drop<'c, 'a>( +

source

pub fn dict_drop<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -110,7 +110,7 @@ ) -> Result<OperationRef<'c, 'a>>
where 'c: 'a,

Register if necessary, then invoke the dict_alloc_new() function.

Returns a opaque pointer as the result.

-
source

pub fn dict_dup<'c, 'a>( +

source

pub fn dict_dup<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -121,7 +121,7 @@ ) -> Result<Value<'c, 'a>>
where 'c: 'a,

Register if necessary, then invoke the dict_alloc_new() function.

Returns a opaque pointer as the result.

-
source

pub fn dict_get<'c, 'a>( +

source

pub fn dict_get<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -129,11 +129,11 @@ dict_ptr: Value<'c, 'a>, key_ptr: Value<'c, 'a>, location: Location<'c>, -) -> Result<OperationRef<'c, 'a>>
where +) -> Result<Value<'c, 'a>>
where 'c: 'a,

Register if necessary, then invoke the dict_get() function.

Gets the value for a given key, the returned pointer is null if not found.

Returns a opaque pointer as the result.

-
source

pub fn dict_insert<'c, 'a>( +

source

pub fn dict_insert<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -146,7 +146,7 @@ 'c: 'a,

Register if necessary, then invoke the dict_insert() function.

Inserts the provided key value. Returning the old one or nullptr if there was none.

Returns a opaque pointer as the result.

-
source

pub fn dict_gas_refund<'c, 'a>( +

source

pub fn dict_gas_refund<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -157,7 +157,7 @@ 'c: 'a,

Register if necessary, then invoke the dict_gas_refund() function.

Compute the total gas refund for the dictionary.

Returns a u64 of the result.

-
source

pub fn vtable_cheatcode<'c, 'a>( +

source

pub fn vtable_cheatcode<'c, 'a>( &mut self, context: &'c Context, module: &Module<'_>, @@ -170,7 +170,7 @@ 'c: 'a,

Register if necessary, then invoke the vtable_cheatcode() runtime function.

Calls the cheatcode syscall with the given arguments.

The result is stored in result_ptr.

-

Trait Implementations§

source§

impl Debug for RuntimeBindingsMeta

source§

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

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

impl Default for RuntimeBindingsMeta

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl Freeze for RuntimeBindingsMeta

§

impl RefUnwindSafe for RuntimeBindingsMeta

§

impl Send for RuntimeBindingsMeta

§

impl Sync for RuntimeBindingsMeta

§

impl Unpin for RuntimeBindingsMeta

§

impl UnwindSafe for RuntimeBindingsMeta

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for RuntimeBindingsMeta

source§

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

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

impl Default for RuntimeBindingsMeta

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl Freeze for RuntimeBindingsMeta

§

impl RefUnwindSafe for RuntimeBindingsMeta

§

impl Send for RuntimeBindingsMeta

§

impl Sync for RuntimeBindingsMeta

§

impl Unpin for RuntimeBindingsMeta

§

impl UnwindSafe for RuntimeBindingsMeta

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html b/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html index b84b5957e..11e3e2d2e 100644 --- a/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html +++ b/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html @@ -1 +1 @@ -SYSCALL_HANDLER_VTABLE in cairo_native::starknet - Rust

Constant cairo_native::starknet::SYSCALL_HANDLER_VTABLE

source ·
pub const SYSCALL_HANDLER_VTABLE: LocalKey<Cell<*mut ()>>;
\ No newline at end of file +SYSCALL_HANDLER_VTABLE in cairo_native::starknet - Rust

Constant cairo_native::starknet::SYSCALL_HANDLER_VTABLE

source ·
pub const SYSCALL_HANDLER_VTABLE: LocalKey<Cell<*mut ()>>;
\ No newline at end of file diff --git a/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html b/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html index 8fd779868..9f85c5557 100644 --- a/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html +++ b/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html @@ -1,4 +1,4 @@ -cairo_native__vtable_cheatcode in cairo_native::starknet - Rust
pub extern "C" fn cairo_native__vtable_cheatcode(
+cairo_native__vtable_cheatcode in cairo_native::starknet - Rust
pub extern "C" fn cairo_native__vtable_cheatcode(
     result_ptr: &mut ArrayAbi<Felt252Abi>,
     selector: &Felt252Abi,
     input: &ArrayAbi<Felt252Abi>,
diff --git a/cairo_native/starknet/index.html b/cairo_native/starknet/index.html
index 765497dea..98c2e5dc3 100644
--- a/cairo_native/starknet/index.html
+++ b/cairo_native/starknet/index.html
@@ -1,2 +1,2 @@
-cairo_native::starknet - Rust

Module cairo_native::starknet

source ·
Expand description

Starknet related code for cairo_native

+cairo_native::starknet - Rust

Module cairo_native::starknet

source ·
Expand description

Starknet related code for cairo_native

Structs§

Constants§

Traits§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/cairo_native/starknet/struct.DummySyscallHandler.html b/cairo_native/starknet/struct.DummySyscallHandler.html index 35699b016..e947672e0 100644 --- a/cairo_native/starknet/struct.DummySyscallHandler.html +++ b/cairo_native/starknet/struct.DummySyscallHandler.html @@ -106,10 +106,10 @@ _remaining_gas: &mut u128, ) -> SyscallResult<(U256, U256)>

source§

fn sha256_process_block( &mut self, - _prev_state: &[u32; 8], - _current_block: &[u32; 16], + _state: &mut [u32; 8], + _block: &[u32; 16], _remaining_gas: &mut u128, -) -> SyscallResult<[u32; 8]>

source§

fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt>

Auto Trait Implementations§

§

impl Freeze for DummySyscallHandler

§

impl RefUnwindSafe for DummySyscallHandler

§

impl Send for DummySyscallHandler

§

impl Sync for DummySyscallHandler

§

impl Unpin for DummySyscallHandler

§

impl UnwindSafe for DummySyscallHandler

Blanket Implementations§

source§

impl<T> Any for T
where +) -> SyscallResult<()>

source§

fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt>

Auto Trait Implementations§

§

impl Freeze for DummySyscallHandler

§

impl RefUnwindSafe for DummySyscallHandler

§

impl Send for DummySyscallHandler

§

impl Sync for DummySyscallHandler

§

impl Unpin for DummySyscallHandler

§

impl UnwindSafe for DummySyscallHandler

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/cairo_native/starknet/trait.StarknetSyscallHandler.html b/cairo_native/starknet/trait.StarknetSyscallHandler.html index 6789915ec..42bb76115 100644 --- a/cairo_native/starknet/trait.StarknetSyscallHandler.html +++ b/cairo_native/starknet/trait.StarknetSyscallHandler.html @@ -130,10 +130,10 @@ ) -> SyscallResult<(U256, U256)>; fn sha256_process_block( &mut self, - prev_state: &[u32; 8], - current_block: &[u32; 16], + state: &mut [u32; 8], + block: &[u32; 16], remaining_gas: &mut u128, - ) -> SyscallResult<[u32; 8]>; + ) -> SyscallResult<()>; // Provided method fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt> { ... } @@ -245,7 +245,7 @@ remaining_gas: &mut u128, ) -> SyscallResult<(U256, U256)>

source

fn sha256_process_block( &mut self, - prev_state: &[u32; 8], - current_block: &[u32; 16], + state: &mut [u32; 8], + block: &[u32; 16], remaining_gas: &mut u128, -) -> SyscallResult<[u32; 8]>

Provided Methods§

source

fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt>

Implementors§

\ No newline at end of file +) -> SyscallResult<()>

Provided Methods§

source

fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt>

Implementors§

\ No newline at end of file diff --git a/cairo_native/starknet_stub/index.html b/cairo_native/starknet_stub/index.html index 725f26820..617ad017d 100644 --- a/cairo_native/starknet_stub/index.html +++ b/cairo_native/starknet_stub/index.html @@ -1,2 +1,2 @@ -cairo_native::starknet_stub - Rust

Module cairo_native::starknet_stub

source ·
Expand description

A (somewhat) usable implementation of the starknet syscall handler trait.

+cairo_native::starknet_stub - Rust

Module cairo_native::starknet_stub

source ·
Expand description

A (somewhat) usable implementation of the starknet syscall handler trait.

Structs§

Functions§

\ No newline at end of file diff --git a/cairo_native/starknet_stub/struct.StubSyscallHandler.html b/cairo_native/starknet_stub/struct.StubSyscallHandler.html index fe6840347..209f5d55f 100644 --- a/cairo_native/starknet_stub/struct.StubSyscallHandler.html +++ b/cairo_native/starknet_stub/struct.StubSyscallHandler.html @@ -5,7 +5,7 @@ pub logs: HashMap<Felt, ContractLogs>, }
Expand description

A (somewhat) usable implementation of the starknet syscall handler trait.

Currently gas is not deducted.

-

Fields§

§storage: HashMap<(u32, Felt), Felt>§events: Vec<StubEvent>§execution_info: ExecutionInfoV2§logs: HashMap<Felt, ContractLogs>

Trait Implementations§

source§

impl Clone for StubSyscallHandler

source§

fn clone(&self) -> StubSyscallHandler

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 Debug for StubSyscallHandler

source§

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

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

impl Default for StubSyscallHandler

source§

fn default() -> Self

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

impl StarknetSyscallHandler for &mut StubSyscallHandler

Fields§

§storage: HashMap<(u32, Felt), Felt>§events: Vec<StubEvent>§execution_info: ExecutionInfoV2§logs: HashMap<Felt, ContractLogs>

Trait Implementations§

source§

impl Clone for StubSyscallHandler

source§

fn clone(&self) -> StubSyscallHandler

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 Debug for StubSyscallHandler

source§

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

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

impl Default for StubSyscallHandler

source§

fn default() -> Self

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

impl StarknetSyscallHandler for &mut StubSyscallHandler

source§

fn get_block_hash( &mut self, block_number: u64, remaining_gas: &mut u128, @@ -107,12 +107,12 @@ &mut self, p: Secp256r1Point, _remaining_gas: &mut u128, -) -> SyscallResult<(U256, U256)>

source§

fn cheatcode(&mut self, selector: Felt, input: &[Felt]) -> Vec<Felt>

source§

fn sha256_process_block( +) -> SyscallResult<(U256, U256)>

source§

fn cheatcode(&mut self, selector: Felt, input: &[Felt]) -> Vec<Felt>

source§

fn sha256_process_block( &mut self, - prev_state: &[u32; 8], - current_block: &[u32; 16], + state: &mut [u32; 8], + block: &[u32; 16], _remaining_gas: &mut u128, -) -> SyscallResult<[u32; 8]>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> SyscallResult<()>

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
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/cairo_native/utils/fn.cairo_to_sierra.html b/cairo_native/utils/fn.cairo_to_sierra.html index 05d3acdb7..7834a3729 100644 --- a/cairo_native/utils/fn.cairo_to_sierra.html +++ b/cairo_native/utils/fn.cairo_to_sierra.html @@ -1,2 +1,2 @@ -cairo_to_sierra in cairo_native::utils - Rust

Function cairo_native::utils::cairo_to_sierra

source ·
pub fn cairo_to_sierra(program: &Path) -> Arc<Program>
Expand description

Compile a cairo program found at the given path to sierra.

+cairo_to_sierra in cairo_native::utils - Rust

Function cairo_native::utils::cairo_to_sierra

source ·
pub fn cairo_to_sierra(program: &Path) -> Arc<Program>
Expand description

Compile a cairo program found at the given path to sierra.

\ No newline at end of file diff --git a/cairo_native/utils/fn.create_engine.html b/cairo_native/utils/fn.create_engine.html index 1fd93355f..7410d2740 100644 --- a/cairo_native/utils/fn.create_engine.html +++ b/cairo_native/utils/fn.create_engine.html @@ -1,4 +1,4 @@ -create_engine in cairo_native::utils - Rust

Function cairo_native::utils::create_engine

source ·
pub fn create_engine(
+create_engine in cairo_native::utils - Rust

Function cairo_native::utils::create_engine

source ·
pub fn create_engine(
     module: &Module<'_>,
     _metadata: &MetadataStorage,
     opt_level: OptLevel,
diff --git a/cairo_native/utils/fn.debug_with.html b/cairo_native/utils/fn.debug_with.html
index 254883dfb..9c5de429d 100644
--- a/cairo_native/utils/fn.debug_with.html
+++ b/cairo_native/utils/fn.debug_with.html
@@ -1,3 +1,3 @@
-debug_with in cairo_native::utils - Rust

Function cairo_native::utils::debug_with

source ·
pub fn debug_with<F>(fmt: F) -> impl Debug
where +debug_with in cairo_native::utils - Rust

Function cairo_native::utils::debug_with

source ·
pub fn debug_with<F>(fmt: F) -> impl Debug
where F: Fn(&mut Formatter<'_>) -> Result,
Expand description

Return a type that calls a closure when formatted using Debug.

\ No newline at end of file diff --git a/cairo_native/utils/fn.decode_error_message.html b/cairo_native/utils/fn.decode_error_message.html index 1b687c160..82ba83a80 100644 --- a/cairo_native/utils/fn.decode_error_message.html +++ b/cairo_native/utils/fn.decode_error_message.html @@ -1,3 +1,3 @@ -decode_error_message in cairo_native::utils - Rust

Function cairo_native::utils::decode_error_message

source ·
pub fn decode_error_message(data: &[u8]) -> String
Expand description

Decode an UTF-8 error message replacing invalid bytes with their hexadecimal representation, as +decode_error_message in cairo_native::utils - Rust

Function cairo_native::utils::decode_error_message

source ·
pub fn decode_error_message(data: &[u8]) -> String
Expand description

Decode an UTF-8 error message replacing invalid bytes with their hexadecimal representation, as done by Python’s x.decode('utf-8', errors='backslashreplace').

\ No newline at end of file diff --git a/cairo_native/utils/fn.felt252_bigint.html b/cairo_native/utils/fn.felt252_bigint.html index ca650e3e2..e6637b943 100644 --- a/cairo_native/utils/fn.felt252_bigint.html +++ b/cairo_native/utils/fn.felt252_bigint.html @@ -1,2 +1,2 @@ -felt252_bigint in cairo_native::utils - Rust

Function cairo_native::utils::felt252_bigint

source ·
pub fn felt252_bigint(value: impl Into<BigInt>) -> Felt
Expand description

Parse any type that can be a bigint to a felt that can be used in the cairo-native input.

+felt252_bigint in cairo_native::utils - Rust

Function cairo_native::utils::felt252_bigint

source ·
pub fn felt252_bigint(value: impl Into<BigInt>) -> Felt
Expand description

Parse any type that can be a bigint to a felt that can be used in the cairo-native input.

\ No newline at end of file diff --git a/cairo_native/utils/fn.felt252_short_str.html b/cairo_native/utils/fn.felt252_short_str.html index 81455d502..69548a6b6 100644 --- a/cairo_native/utils/fn.felt252_short_str.html +++ b/cairo_native/utils/fn.felt252_short_str.html @@ -1,2 +1,2 @@ -felt252_short_str in cairo_native::utils - Rust

Function cairo_native::utils::felt252_short_str

source ·
pub fn felt252_short_str(value: &str) -> Felt
Expand description

Parse a short string into a felt that can be used in the cairo-native input.

+felt252_short_str in cairo_native::utils - Rust

Function cairo_native::utils::felt252_short_str

source ·
pub fn felt252_short_str(value: &str) -> Felt
Expand description

Parse a short string into a felt that can be used in the cairo-native input.

\ No newline at end of file diff --git a/cairo_native/utils/fn.felt252_str.html b/cairo_native/utils/fn.felt252_str.html index aab682bd2..5358fb9cb 100644 --- a/cairo_native/utils/fn.felt252_str.html +++ b/cairo_native/utils/fn.felt252_str.html @@ -1,2 +1,2 @@ -felt252_str in cairo_native::utils - Rust

Function cairo_native::utils::felt252_str

source ·
pub fn felt252_str(value: &str) -> Felt
Expand description

Parse a numeric string into felt, wrapping negatives around the prime modulo.

+felt252_str in cairo_native::utils - Rust

Function cairo_native::utils::felt252_str

source ·
pub fn felt252_str(value: &str) -> Felt
Expand description

Parse a numeric string into felt, wrapping negatives around the prime modulo.

\ No newline at end of file diff --git a/cairo_native/utils/fn.find_entry_point.html b/cairo_native/utils/fn.find_entry_point.html index df8c7ef0a..dd7f40e11 100644 --- a/cairo_native/utils/fn.find_entry_point.html +++ b/cairo_native/utils/fn.find_entry_point.html @@ -1,4 +1,4 @@ -find_entry_point in cairo_native::utils - Rust

Function cairo_native::utils::find_entry_point

source ·
pub fn find_entry_point<'a>(
+find_entry_point in cairo_native::utils - Rust

Function cairo_native::utils::find_entry_point

source ·
pub fn find_entry_point<'a>(
     program: &'a Program,
     entry_point: &str,
 ) -> Option<&'a GenFunction<StatementIdx>>
Expand description

Returns the given entry point if present.

diff --git a/cairo_native/utils/fn.find_entry_point_by_idx.html b/cairo_native/utils/fn.find_entry_point_by_idx.html index fa0c45bb5..4d7ed8f94 100644 --- a/cairo_native/utils/fn.find_entry_point_by_idx.html +++ b/cairo_native/utils/fn.find_entry_point_by_idx.html @@ -1,4 +1,4 @@ -find_entry_point_by_idx in cairo_native::utils - Rust

Function cairo_native::utils::find_entry_point_by_idx

source ·
pub fn find_entry_point_by_idx(
+find_entry_point_by_idx in cairo_native::utils - Rust

Function cairo_native::utils::find_entry_point_by_idx

source ·
pub fn find_entry_point_by_idx(
     program: &Program,
     entry_point_idx: usize,
 ) -> Option<&GenFunction<StatementIdx>>
Expand description

Returns the given entry point if present.

diff --git a/cairo_native/utils/fn.find_function_id.html b/cairo_native/utils/fn.find_function_id.html index 1d6eb26ee..cd73934ab 100644 --- a/cairo_native/utils/fn.find_function_id.html +++ b/cairo_native/utils/fn.find_function_id.html @@ -1,4 +1,4 @@ -find_function_id in cairo_native::utils - Rust

Function cairo_native::utils::find_function_id

source ·
pub fn find_function_id<'a>(
+find_function_id in cairo_native::utils - Rust

Function cairo_native::utils::find_function_id

source ·
pub fn find_function_id<'a>(
     program: &'a Program,
     function_name: &str,
 ) -> Option<&'a FunctionId>
Expand description

Given a string representing a function name, searches in the program for the id corresponding diff --git a/cairo_native/utils/fn.generate_function_name.html b/cairo_native/utils/fn.generate_function_name.html index a0e9f5243..8dce7daf7 100644 --- a/cairo_native/utils/fn.generate_function_name.html +++ b/cairo_native/utils/fn.generate_function_name.html @@ -1,4 +1,4 @@ -generate_function_name in cairo_native::utils - Rust

Function cairo_native::utils::generate_function_name

source ·
pub fn generate_function_name(
+generate_function_name in cairo_native::utils - Rust

Function cairo_native::utils::generate_function_name

source ·
pub fn generate_function_name(
     function_id: &FunctionId,
     is_for_contract_executor: bool,
 ) -> Cow<'_, str>
Expand description

Generate a function name.

diff --git a/cairo_native/utils/fn.get_integer_layout.html b/cairo_native/utils/fn.get_integer_layout.html index d830e019c..7934bfc99 100644 --- a/cairo_native/utils/fn.get_integer_layout.html +++ b/cairo_native/utils/fn.get_integer_layout.html @@ -1,4 +1,4 @@ -get_integer_layout in cairo_native::utils - Rust

Function cairo_native::utils::get_integer_layout

source ·
pub fn get_integer_layout(width: u32) -> Layout
Expand description

Return the layout for an integer of arbitrary width.

+get_integer_layout in cairo_native::utils - Rust

Function cairo_native::utils::get_integer_layout

source ·
pub fn get_integer_layout(width: u32) -> Layout
Expand description

Return the layout for an integer of arbitrary width.

This assumes the platform’s maximum (effective) alignment is 16 bytes, and that every integer with a size in bytes of a power of two has the same alignment as its size.

\ No newline at end of file diff --git a/cairo_native/utils/fn.layout_repeat.html b/cairo_native/utils/fn.layout_repeat.html index 257ec9487..c31effb12 100644 --- a/cairo_native/utils/fn.layout_repeat.html +++ b/cairo_native/utils/fn.layout_repeat.html @@ -1,4 +1,4 @@ -layout_repeat in cairo_native::utils - Rust

Function cairo_native::utils::layout_repeat

source ·
pub fn layout_repeat(
+layout_repeat in cairo_native::utils - Rust

Function cairo_native::utils::layout_repeat

source ·
pub fn layout_repeat(
     layout: &Layout,
     n: usize,
 ) -> Result<(Layout, usize), LayoutError>
Expand description

Copied from std.

diff --git a/cairo_native/utils/fn.padding_needed_for.html b/cairo_native/utils/fn.padding_needed_for.html index 70df21d1a..6087282d8 100644 --- a/cairo_native/utils/fn.padding_needed_for.html +++ b/cairo_native/utils/fn.padding_needed_for.html @@ -1,4 +1,4 @@ -padding_needed_for in cairo_native::utils - Rust

Function cairo_native::utils::padding_needed_for

source ·
pub const fn padding_needed_for(layout: &Layout, align: usize) -> usize
Expand description

Edit: Copied from the std lib.

+padding_needed_for in cairo_native::utils - Rust

Function cairo_native::utils::padding_needed_for

source ·
pub const fn padding_needed_for(layout: &Layout, align: usize) -> usize
Expand description

Edit: Copied from the std lib.

Returns the amount of padding we must insert after layout to ensure that the following address will satisfy align (measured in bytes).

diff --git a/cairo_native/utils/fn.register_runtime_symbols.html b/cairo_native/utils/fn.register_runtime_symbols.html index a0ff53dc4..6bc97cf4c 100644 --- a/cairo_native/utils/fn.register_runtime_symbols.html +++ b/cairo_native/utils/fn.register_runtime_symbols.html @@ -1 +1 @@ -register_runtime_symbols in cairo_native::utils - Rust

Function cairo_native::utils::register_runtime_symbols

source ·
pub fn register_runtime_symbols(engine: &ExecutionEngine)
\ No newline at end of file +register_runtime_symbols in cairo_native::utils - Rust

Function cairo_native::utils::register_runtime_symbols

source ·
pub fn register_runtime_symbols(engine: &ExecutionEngine)
\ No newline at end of file diff --git a/cairo_native/utils/fn.run_pass_manager.html b/cairo_native/utils/fn.run_pass_manager.html index fe5584b8e..56a40bb6d 100644 --- a/cairo_native/utils/fn.run_pass_manager.html +++ b/cairo_native/utils/fn.run_pass_manager.html @@ -1,4 +1,4 @@ -run_pass_manager in cairo_native::utils - Rust

Function cairo_native::utils::run_pass_manager

source ·
pub fn run_pass_manager(
+run_pass_manager in cairo_native::utils - Rust

Function cairo_native::utils::run_pass_manager

source ·
pub fn run_pass_manager(
     context: &Context,
     module: &mut Module<'_>,
 ) -> Result<(), Error>
\ No newline at end of file diff --git a/cairo_native/utils/index.html b/cairo_native/utils/index.html index a6c92f98c..2f7e051ae 100644 --- a/cairo_native/utils/index.html +++ b/cairo_native/utils/index.html @@ -1,3 +1,3 @@ -cairo_native::utils - Rust

Module cairo_native::utils

source ·
Expand description

§Various utilities

Structs§

Constants§

Statics§

Functions§

  • Compile a cairo program found at the given path to sierra.
  • Creates the execution engine, with all symbols registered.
  • Return a type that calls a closure when formatted using Debug.
  • Decode an UTF-8 error message replacing invalid bytes with their hexadecimal representation, as +cairo_native::utils - Rust

    Module cairo_native::utils

    source ·
    Expand description

    §Various utilities

    Modules§

    Structs§

    Constants§

    Statics§

    Functions§

    \ No newline at end of file diff --git a/cairo_native/utils/mem_tracing/fn.report_stats.html b/cairo_native/utils/mem_tracing/fn.report_stats.html new file mode 100644 index 000000000..1138c9470 --- /dev/null +++ b/cairo_native/utils/mem_tracing/fn.report_stats.html @@ -0,0 +1 @@ +report_stats in cairo_native::utils::mem_tracing - Rust

    Function cairo_native::utils::mem_tracing::report_stats

    source ·
    pub fn report_stats()
    \ No newline at end of file diff --git a/cairo_native/utils/mem_tracing/index.html b/cairo_native/utils/mem_tracing/index.html new file mode 100644 index 000000000..9d6ba5b1f --- /dev/null +++ b/cairo_native/utils/mem_tracing/index.html @@ -0,0 +1 @@ +cairo_native::utils::mem_tracing - Rust

    Module cairo_native::utils::mem_tracing

    source ·

    Functions§

    \ No newline at end of file diff --git a/cairo_native/utils/mem_tracing/sidebar-items.js b/cairo_native/utils/mem_tracing/sidebar-items.js new file mode 100644 index 000000000..617bd0969 --- /dev/null +++ b/cairo_native/utils/mem_tracing/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["report_stats"]}; \ No newline at end of file diff --git a/cairo_native/utils/sidebar-items.js b/cairo_native/utils/sidebar-items.js index 1e6106598..77ad5eb92 100644 --- a/cairo_native/utils/sidebar-items.js +++ b/cairo_native/utils/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":["SHARED_LIBRARY_EXT"],"fn":["cairo_to_sierra","create_engine","debug_with","decode_error_message","felt252_bigint","felt252_short_str","felt252_str","find_entry_point","find_entry_point_by_idx","find_function_id","generate_function_name","get_integer_layout","layout_repeat","padding_needed_for","register_runtime_symbols","run_pass_manager"],"static":["HALF_PRIME","PRIME"],"struct":["LayoutError"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["SHARED_LIBRARY_EXT"],"fn":["cairo_to_sierra","create_engine","debug_with","decode_error_message","felt252_bigint","felt252_short_str","felt252_str","find_entry_point","find_entry_point_by_idx","find_function_id","generate_function_name","get_integer_layout","layout_repeat","padding_needed_for","register_runtime_symbols","run_pass_manager"],"mod":["mem_tracing"],"static":["HALF_PRIME","PRIME"],"struct":["LayoutError"]}; \ No newline at end of file diff --git a/cairo_native/utils/struct.LayoutError.html b/cairo_native/utils/struct.LayoutError.html index e629388a6..95ebf2849 100644 --- a/cairo_native/utils/struct.LayoutError.html +++ b/cairo_native/utils/struct.LayoutError.html @@ -1,6 +1,6 @@ -LayoutError in cairo_native::utils - Rust

    Struct cairo_native::utils::LayoutError

    source ·
    pub struct LayoutError;

    Trait Implementations§

    source§

    impl Clone for LayoutError

    source§

    fn clone(&self) -> LayoutError

    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 Debug for LayoutError

    source§

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

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

    impl Display for LayoutError

    source§

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

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

    impl Error for LayoutError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<LayoutError> for Error

    source§

    fn from(source: LayoutError) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for LayoutError

    source§

    fn eq(&self, other: &LayoutError) -> bool

    This method tests for self and other values to be equal, and is used +LayoutError in cairo_native::utils - Rust

    Struct cairo_native::utils::LayoutError

    source ·
    pub struct LayoutError;

    Trait Implementations§

    source§

    impl Clone for LayoutError

    source§

    fn clone(&self) -> LayoutError

    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 Debug for LayoutError

    source§

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

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

    impl Display for LayoutError

    source§

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

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

    impl Error for LayoutError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<LayoutError> for Error

    source§

    fn from(source: LayoutError) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for LayoutError

    source§

    fn eq(&self, other: &LayoutError) -> bool

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

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

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

    impl Eq for LayoutError

    source§

    impl StructuralPartialEq for LayoutError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl Eq for LayoutError

    source§

    impl StructuralPartialEq for LayoutError

    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
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where diff --git a/cairo_native_runtime/all.html b/cairo_native_runtime/all.html index eb1143f55..21083dc7e 100644 --- a/cairo_native_runtime/all.html +++ b/cairo_native_runtime/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/cairo_native_runtime/constant.BYTES_IN_WORD.html b/cairo_native_runtime/constant.BYTES_IN_WORD.html index 512d4033f..55e3b2796 100644 --- a/cairo_native_runtime/constant.BYTES_IN_WORD.html +++ b/cairo_native_runtime/constant.BYTES_IN_WORD.html @@ -1 +1 @@ -BYTES_IN_WORD in cairo_native_runtime - Rust

    Constant cairo_native_runtime::BYTES_IN_WORD

    source ·
    pub const BYTES_IN_WORD: usize = 31;
    \ No newline at end of file +BYTES_IN_WORD in cairo_native_runtime - Rust

    Constant cairo_native_runtime::BYTES_IN_WORD

    source ·
    pub const BYTES_IN_WORD: usize = 31;
    \ No newline at end of file diff --git a/cairo_native_runtime/constant.BYTE_ARRAY_MAGIC.html b/cairo_native_runtime/constant.BYTE_ARRAY_MAGIC.html index 21eb2bc75..7f7a745db 100644 --- a/cairo_native_runtime/constant.BYTE_ARRAY_MAGIC.html +++ b/cairo_native_runtime/constant.BYTE_ARRAY_MAGIC.html @@ -1 +1 @@ -BYTE_ARRAY_MAGIC in cairo_native_runtime - Rust

    Constant cairo_native_runtime::BYTE_ARRAY_MAGIC

    source ·
    pub const BYTE_ARRAY_MAGIC: &str = "46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3";
    \ No newline at end of file +BYTE_ARRAY_MAGIC in cairo_native_runtime - Rust

    Constant cairo_native_runtime::BYTE_ARRAY_MAGIC

    source ·
    pub const BYTE_ARRAY_MAGIC: &str = "46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3";
    \ No newline at end of file diff --git a/cairo_native_runtime/fn.as_cairo_short_string.html b/cairo_native_runtime/fn.as_cairo_short_string.html index 85c6ef69d..572af68e7 100644 --- a/cairo_native_runtime/fn.as_cairo_short_string.html +++ b/cairo_native_runtime/fn.as_cairo_short_string.html @@ -1,2 +1,2 @@ -as_cairo_short_string in cairo_native_runtime - Rust

    Function cairo_native_runtime::as_cairo_short_string

    source ·
    pub fn as_cairo_short_string(value: &Felt) -> Option<String>
    Expand description

    Converts a bigint representing a felt252 to a Cairo short-string.

    +as_cairo_short_string in cairo_native_runtime - Rust

    Function cairo_native_runtime::as_cairo_short_string

    source ·
    pub fn as_cairo_short_string(value: &Felt) -> Option<String>
    Expand description

    Converts a bigint representing a felt252 to a Cairo short-string.

    \ No newline at end of file diff --git a/cairo_native_runtime/fn.as_cairo_short_string_ex.html b/cairo_native_runtime/fn.as_cairo_short_string_ex.html index 861ccd8df..9fa83eb03 100644 --- a/cairo_native_runtime/fn.as_cairo_short_string_ex.html +++ b/cairo_native_runtime/fn.as_cairo_short_string_ex.html @@ -1,3 +1,3 @@ -as_cairo_short_string_ex in cairo_native_runtime - Rust

    Function cairo_native_runtime::as_cairo_short_string_ex

    source ·
    pub fn as_cairo_short_string_ex(value: &Felt, length: usize) -> Option<String>
    Expand description

    Converts a bigint representing a felt252 to a Cairo short-string of the given length. +as_cairo_short_string_ex in cairo_native_runtime - Rust

    Function cairo_native_runtime::as_cairo_short_string_ex

    source ·
    pub fn as_cairo_short_string_ex(value: &Felt, length: usize) -> Option<String>
    Expand description

    Converts a bigint representing a felt252 to a Cairo short-string of the given length. Nulls are allowed and length must be <= 31.

    \ No newline at end of file diff --git a/cairo_native_runtime/fn.cairo_native__dict_drop.html b/cairo_native_runtime/fn.cairo_native__dict_drop.html index 98a3ee628..0cc654091 100644 --- a/cairo_native_runtime/fn.cairo_native__dict_drop.html +++ b/cairo_native_runtime/fn.cairo_native__dict_drop.html @@ -1,4 +1,4 @@ -cairo_native__dict_drop in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_drop

    source ·
    #[no_mangle]
    +cairo_native__dict_drop in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_drop

    source ·
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_drop(
         ptr: *mut FeltDict,
         drop_fn: Option<extern "C" fn(_: *mut c_void)>,
    diff --git a/cairo_native_runtime/fn.cairo_native__dict_dup.html b/cairo_native_runtime/fn.cairo_native__dict_dup.html
    index c65de1e4b..7b4c1d227 100644
    --- a/cairo_native_runtime/fn.cairo_native__dict_dup.html
    +++ b/cairo_native_runtime/fn.cairo_native__dict_dup.html
    @@ -1,4 +1,4 @@
    -cairo_native__dict_dup in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_dup

    source ·
    #[no_mangle]
    +cairo_native__dict_dup in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_dup

    source ·
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_dup(
         ptr: *mut FeltDict,
         dup_fn: extern "C" fn(_: *mut c_void) -> *mut c_void,
    diff --git a/cairo_native_runtime/fn.cairo_native__dict_gas_refund.html b/cairo_native_runtime/fn.cairo_native__dict_gas_refund.html
    index cc8659858..30bbb8a09 100644
    --- a/cairo_native_runtime/fn.cairo_native__dict_gas_refund.html
    +++ b/cairo_native_runtime/fn.cairo_native__dict_gas_refund.html
    @@ -1,4 +1,4 @@
    -cairo_native__dict_gas_refund in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__dict_gas_refund in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_gas_refund(
         ptr: *const FeltDict,
     ) -> u64
    Expand description

    Compute the total gas refund for the dictionary at squash time.

    diff --git a/cairo_native_runtime/fn.cairo_native__dict_get.html b/cairo_native_runtime/fn.cairo_native__dict_get.html index a98238061..1b2afe15f 100644 --- a/cairo_native_runtime/fn.cairo_native__dict_get.html +++ b/cairo_native_runtime/fn.cairo_native__dict_get.html @@ -1,9 +1,11 @@ -cairo_native__dict_get in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_get

    source ·
    #[no_mangle]
    +cairo_native__dict_get in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_get

    source ·
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_get(
    -    ptr: *mut FeltDict,
    +    dict: &mut FeltDict,
         key: &[u8; 32],
    -) -> *mut c_void
    Expand description

    Return the value (reference) for a given key, or null if not present. Increment the access -count.

    +) -> *mut c_void
    Expand description

    Return a pointer to the entry’s value pointer for a given key, inserting a null pointer if not +present. Increment the access count.

    +

    The null pointer will be either updated by felt252_dict_entry_finalize or removed (along with +everything else in the dict) by the entry’s drop implementation.

    §Safety

    This function is intended to be called from MLIR, deals with pointers, and is therefore definitely unsafe to use manually.

    diff --git a/cairo_native_runtime/fn.cairo_native__dict_insert.html b/cairo_native_runtime/fn.cairo_native__dict_insert.html deleted file mode 100644 index 57b71b4a3..000000000 --- a/cairo_native_runtime/fn.cairo_native__dict_insert.html +++ /dev/null @@ -1,10 +0,0 @@ -cairo_native__dict_insert in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_insert

    source ·
    #[no_mangle]
    -pub unsafe extern "C" fn cairo_native__dict_insert(
    -    ptr: *mut FeltDict,
    -    key: &[u8; 32],
    -    value: NonNull<c_void>,
    -) -> *mut c_void
    Expand description

    Inserts the provided key value. Returning the old one or nullptr if there was none.

    -

    §Safety

    -

    This function is intended to be called from MLIR, deals with pointers, and is therefore -definitely unsafe to use manually.

    -
    \ No newline at end of file diff --git a/cairo_native_runtime/fn.cairo_native__dict_new.html b/cairo_native_runtime/fn.cairo_native__dict_new.html index a78be7818..14af9f624 100644 --- a/cairo_native_runtime/fn.cairo_native__dict_new.html +++ b/cairo_native_runtime/fn.cairo_native__dict_new.html @@ -1,5 +1,7 @@ -cairo_native__dict_new in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_new

    source ·
    #[no_mangle]
    -pub unsafe extern "C" fn cairo_native__dict_new() -> *mut FeltDict
    Expand description

    Allocate a new dictionary.

    +cairo_native__dict_new in cairo_native_runtime - Rust

    Function cairo_native_runtime::cairo_native__dict_new

    source ·
    #[no_mangle]
    +pub unsafe extern "C" fn cairo_native__dict_new(
    +    free_fn: extern "C" fn(_: *mut c_void),
    +) -> *mut FeltDict
    Expand description

    Allocate a new dictionary.

    §Safety

    This function is intended to be called from MLIR, deals with pointers, and is therefore definitely unsafe to use manually.

    diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_from_x_nz.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_from_x_nz.html index d48ab9d70..32083af99 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_from_x_nz.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_from_x_nz.html @@ -1,6 +1,6 @@ -cairo_native__libfunc__ec__ec_point_from_x_nz in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__libfunc__ec__ec_point_from_x_nz in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_point_from_x_nz(
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    point_ptr: &mut [[u8; 32]; 2],
     ) -> bool
    Expand description

    Compute ec_point_from_x_nz(x) and store it.

    §Panics

    This function will panic if either operand is out of range for a felt.

    diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_try_new_nz.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_try_new_nz.html index aa8378d23..2b9543adb 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_try_new_nz.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_point_try_new_nz.html @@ -1,6 +1,6 @@ -cairo_native__libfunc__ec__ec_point_try_new_nz in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__libfunc__ec__ec_point_try_new_nz in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_point_try_new_nz(
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    point_ptr: &mut [[u8; 32]; 2],
     ) -> bool
    Expand description

    Compute ec_point_try_new_nz(x).

    §Panics

    This function will panic if either operand is out of range for a felt.

    diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add.html index 14c247cdf..018d1e012 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add.html @@ -1,7 +1,7 @@ -cairo_native__libfunc__ec__ec_state_add in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__libfunc__ec__ec_state_add in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_add(
    -    state_ptr: NonNull<[[u8; 32]; 4]>,
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    state_ptr: &mut [[u8; 32]; 4],
    +    point_ptr: &[[u8; 32]; 2],
     )
    Expand description

    Compute ec_state_add(state, point) and store the state back.

    §Panics

    This function will panic if either operand is out of range for a felt.

    diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add_mul.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add_mul.html index 8c20a679f..192608feb 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add_mul.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_add_mul.html @@ -1,8 +1,8 @@ -cairo_native__libfunc__ec__ec_state_add_mul in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__libfunc__ec__ec_state_add_mul in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_add_mul(
    -    state_ptr: NonNull<[[u8; 32]; 4]>,
    -    scalar_ptr: NonNull<[u8; 32]>,
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    state_ptr: &mut [[u8; 32]; 4],
    +    scalar_ptr: &[u8; 32],
    +    point_ptr: &[[u8; 32]; 2],
     )
    Expand description

    Compute ec_state_add_mul(state, scalar, point) and store the state back.

    §Panics

    This function will panic if either operand is out of range for a felt.

    diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_init.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_init.html index cb3e5c08b..2723e5938 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_init.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_init.html @@ -1,6 +1,6 @@ -cairo_native__libfunc__ec__ec_state_init in cairo_native_runtime - Rust
    #[no_mangle]
    +cairo_native__libfunc__ec__ec_state_init in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_init(
    -    state_ptr: NonNull<[[u8; 32]; 4]>,
    +    state_ptr: &mut [[u8; 32]; 4],
     )
    Expand description

    Compute ec_state_init() and store the state back.

    §Safety

    This function is intended to be called from MLIR, deals with pointers, and is therefore diff --git a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_try_finalize_nz.html b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_try_finalize_nz.html index 71f8710a8..2c4869413 100644 --- a/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_try_finalize_nz.html +++ b/cairo_native_runtime/fn.cairo_native__libfunc__ec__ec_state_try_finalize_nz.html @@ -1,7 +1,7 @@ -cairo_native__libfunc__ec__ec_state_try_finalize_nz in cairo_native_runtime - Rust

    #[no_mangle]
    +cairo_native__libfunc__ec__ec_state_try_finalize_nz in cairo_native_runtime - Rust
    #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_try_finalize_nz(
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    -    state_ptr: NonNull<[[u8; 32]; 4]>,
    +    point_ptr: &mut [[u8; 32]; 2],
    +    state_ptr: &[[u8; 32]; 4],
     ) -> bool
    Expand description

    Compute ec_state_try_finalize_nz(state) and store the result.

    §Panics

    This function will panic if either operand is out of range for a felt.

    diff --git a/cairo_native_runtime/fn.format_next_item.html b/cairo_native_runtime/fn.format_next_item.html index 74794a655..2202dd7a9 100644 --- a/cairo_native_runtime/fn.format_next_item.html +++ b/cairo_native_runtime/fn.format_next_item.html @@ -1,4 +1,4 @@ -format_next_item in cairo_native_runtime - Rust

    Function cairo_native_runtime::format_next_item

    source ·
    pub fn format_next_item<T>(values: &mut T) -> Option<FormattedItem>
    where +format_next_item in cairo_native_runtime - Rust

    Function cairo_native_runtime::format_next_item

    source ·
    pub fn format_next_item<T>(values: &mut T) -> Option<FormattedItem>
    where T: Iterator<Item = Felt> + Clone,
    Expand description

    Formats a string or a short string / felt252. Returns the formatted string and a boolean indicating whether it’s a string. If can’t format the item, returns None.

    \ No newline at end of file diff --git a/cairo_native_runtime/index.html b/cairo_native_runtime/index.html index c58c38338..c8b902293 100644 --- a/cairo_native_runtime/index.html +++ b/cairo_native_runtime/index.html @@ -1,4 +1,4 @@ -cairo_native_runtime - Rust

    Crate cairo_native_runtime

    source ·

    Structs§

    Constants§

    Functions§

    • Converts a bigint representing a felt252 to a Cairo short-string.
    • Converts a bigint representing a felt252 to a Cairo short-string of the given length. -Nulls are allowed and length must be <= 31.
    • Free a dictionary using an optional callback to drop each element.
    • Duplicate a dictionary using a provided callback to clone each element.
    • Compute the total gas refund for the dictionary at squash time.
    • Return the value (reference) for a given key, or null if not present. Increment the access -count.
    • Inserts the provided key value. Returning the old one or nullptr if there was none.
    • Allocate a new dictionary.
    • Based on cairo-lang-runner’s implementation.
    • Compute ec_point_from_x_nz(x) and store it.
    • Compute ec_point_try_new_nz(x).
    • Compute ec_state_add(state, point) and store the state back.
    • Compute ec_state_add_mul(state, scalar, point) and store the state back.
    • Compute ec_state_init() and store the state back.
    • Compute ec_state_try_finalize_nz(state) and store the result.
    • Compute hades_permutation(op0, op1, op2) and replace the operands with the results.
    • Compute pedersen(lhs, rhs) and store it into dst.
    • Formats a string or a short string / felt252. Returns the formatted string and a boolean +cairo_native_runtime - Rust

      Crate cairo_native_runtime

      source ·

      Structs§

      Constants§

      Functions§

      \ No newline at end of file diff --git a/cairo_native_runtime/sidebar-items.js b/cairo_native_runtime/sidebar-items.js index 1595c0b3d..11da3d3ab 100644 --- a/cairo_native_runtime/sidebar-items.js +++ b/cairo_native_runtime/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC"],"fn":["as_cairo_short_string","as_cairo_short_string_ex","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_insert","cairo_native__dict_new","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","format_next_item"],"struct":["DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC"],"fn":["as_cairo_short_string","as_cairo_short_string_ex","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_new","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","format_next_item"],"struct":["DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME"]}; \ No newline at end of file diff --git a/cairo_native_runtime/struct.FeltDict.html b/cairo_native_runtime/struct.FeltDict.html index 42c6b93c4..fa9486902 100644 --- a/cairo_native_runtime/struct.FeltDict.html +++ b/cairo_native_runtime/struct.FeltDict.html @@ -1,8 +1,9 @@ -FeltDict in cairo_native_runtime - Rust

      Struct cairo_native_runtime::FeltDict

      source ·
      pub struct FeltDict {
      -    pub inner: HashMap<[u8; 32], NonNull<c_void>>,
      +FeltDict in cairo_native_runtime - Rust

      Struct cairo_native_runtime::FeltDict

      source ·
      pub struct FeltDict {
      +    pub inner: HashMap<[u8; 32], *mut c_void>,
           pub count: u64,
      +    pub free_fn: unsafe extern "C" fn(_: *mut c_void),
       }
      Expand description

      Felt252 type used in cairo native runtime

      -

      Fields§

      §inner: HashMap<[u8; 32], NonNull<c_void>>§count: u64

      Trait Implementations§

      source§

      impl Debug for FeltDict

      source§

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

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

      impl Default for FeltDict

      source§

      fn default() -> FeltDict

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

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where +

      Fields§

      §inner: HashMap<[u8; 32], *mut c_void>§count: u64§free_fn: unsafe extern "C" fn(_: *mut c_void)

      Trait Implementations§

      source§

      impl Debug for FeltDict

      source§

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

      Formats the value using the given formatter. 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
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where T: ?Sized,

      source§

      fn borrow_mut(&mut self) -> &mut T

      Mutably borrows from an owned value. Read more
      source§

      impl<T> From<T> for T

      source§

      fn from(t: T) -> T

      Returns the argument unchanged.

      diff --git a/cairo_native_runtime/struct.FormattedItem.html b/cairo_native_runtime/struct.FormattedItem.html index cad4f20dd..7c8728b59 100644 --- a/cairo_native_runtime/struct.FormattedItem.html +++ b/cairo_native_runtime/struct.FormattedItem.html @@ -1,6 +1,6 @@ -FormattedItem in cairo_native_runtime - Rust

      Struct cairo_native_runtime::FormattedItem

      source ·
      pub struct FormattedItem { /* private fields */ }
      Expand description

      A formatted string representation of anything formattable (e.g. ByteArray, felt, short-string).

      -

      Implementations§

      source§

      impl FormattedItem

      source

      pub fn get(self) -> String

      Returns the formatted item as is.

      -
      source

      pub fn quote_if_string(self) -> String

      Wraps the formatted item with quote, if it’s a string. Otherwise returns it as is.

      +FormattedItem in cairo_native_runtime - Rust

      Struct cairo_native_runtime::FormattedItem

      source ·
      pub struct FormattedItem { /* private fields */ }
      Expand description

      A formatted string representation of anything formattable (e.g. ByteArray, felt, short-string).

      +

      Implementations§

      source§

      impl FormattedItem

      source

      pub fn get(self) -> String

      Returns the formatted item as is.

      +
      source

      pub fn quote_if_string(self) -> String

      Wraps the formatted item with quote, if it’s a string. Otherwise returns it as is.

      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
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where diff --git a/help.html b/help.html index 68cdc1b17..7b5408ab2 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Help

      Rustdoc help

      Back
      \ No newline at end of file +Help

      Rustdoc help

      Back
      \ No newline at end of file diff --git a/search-index.js b/search-index.js index 649f56dd3..4993ed376 100644 --- a/search-index.js +++ b/search-index.js @@ -1,13 +1,13 @@ var searchIndex = new Map(JSON.parse('[\ -["cairo_native",{"t":"PPPPPPPPPPPPPGPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNHNNCNNCNNNNNNNNCNNNNNNNNNNNNCCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNCNNNNNNNNNNOOOOOOOOOPEPEGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCCCCCCCCPPPPPGPPPGPPPPPPPPPPPPPPPPPPIPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOFFFNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNOONNNOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNCNNNNNNNNNNNNNNNNNNNCNNNNNCCCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNCNNNNNNNNNNNFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFFGFPNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFPFFFPFSFFKIFFFNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHMNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNMNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNMNMNMNMNMNMNMNMNMNONNNNNNNNNMNOOOMNMNNNNNNNNNNNNNONNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNFFFNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNJFJSNNNNNNNNNNNNNNNNNNHNNNNNHNHHNNNNNNNNNHHHNHHHNNNNHHNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNHNNNNHNNHNNNNNNNNNNNNNNN","n":["Aggressive","Array","BoundedInt","Bytes31","Default","EcPoint","EcState","Enum","Felt252","Felt252Dict","Less","None","Null","OptLevel","Secp256K1Point","Secp256R1Point","Sint128","Sint16","Sint32","Sint64","Sint8","Struct","Uint128","Uint16","Uint32","Uint64","Uint8","Value","__clone_box","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","cache","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","compare","compile","conceal","conceal","context","cyan","cyan","debug","default","deref","deref","deref_mut","deref_mut","deserialize","dim","dim","docs","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error","execution_result","executor","fg","fg","fixed","fixed","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","green","green","hash","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","mask","mask","metadata","module","module_to_object","object_to_shared_lib","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","partial_cmp","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","serialize","starknet","starknet_stub","strike","strike","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","utils","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","debug_name","debug_name","debug_name","fields","range","tag","value","value","value","Aot","AotProgramCache","Jit","JitProgramCache","ProgramCache","aot","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","from","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","jit","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AotProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","JitProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","context","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeContext","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile","conceal","context","cyan","default","deref","deref_mut","dim","drop","eq","equivalent","equivalent","equivalent","equivalent","fg","fixed","fmt","from","green","init","initialize_mlir","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","libfunc_to_name","section01","section02","section03","section04","section05","section06","section07","section08","BadTypeInfo","BadTypeInit","BoundedIntOutOfRange","Cast","Compiler","CompilerError","ConstDataMismatch","EditStateError","Err","Error","GasMetadataError","ImpossibleCircuit","IntegerConversion","IntegerLikeTypeExpected","IoError","LLVMCompileError","LayoutError","LayoutErrorPolyfill","LibraryLoadError","LinkError","MissingMetadata","MissingParameter","MissingSyscallHandler","MlirError","Ok","ParseAttributeError","ProgramRegistryErrorBoxed","Range","Result","SerdeJsonError","SierraAssert","SierraAssertError","TryFromIntError","UnexpectedValue","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","make_missing_parameter","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","source","strike","strike","strike","to_smolstr","to_smolstr","to_smolstr","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","range","value","ranges","BuiltinStats","ContractExecutionResult","ExecutionResult","__clone_box","__clone_box","__clone_box","attr","attr","attr","bg","bg","bg","bitwise","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","builtin_stats","circuit_add","circuit_mul","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","conceal","conceal","conceal","cyan","cyan","cyan","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","dim","dim","dim","drop","drop","drop","ec_op","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error_msg","failure_flag","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","from_execution_result","green","green","green","hash","hash","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","partial_cmp","partial_cmp","pedersen","poseidon","primary","primary","primary","quirk","quirk","quirk","range_check","range_check_96","rapid_blink","rapid_blink","rapid_blink","red","red","red","remaining_gas","remaining_gas","resetting","resetting","resetting","return_value","return_values","rgb","rgb","rgb","segment_arena","serialize","serialize","serialize","strike","strike","strike","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","AotContractExecutor","AotNativeExecutor","JitNativeExecutor","__clone_box","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","drop","fg","fg","fg","find_function_ptr","find_function_ptr","find_function_ptr","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","from_native_module","from_native_module","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","invoke_contract_dynamic","invoke_contract_dynamic","invoke_dynamic","invoke_dynamic","invoke_dynamic_with_syscall_handler","invoke_dynamic_with_syscall_handler","italic","italic","italic","linger","linger","linger","load","magenta","magenta","magenta","mask","mask","mask","module","new","new","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","program_registry","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run","save","strike","strike","strike","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","MetadataStorage","attr","auto_breakpoint","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_utils","default","deref","deref_mut","dim","drop","drop_overrides","dup_overrides","enum_snapshot_variants","fg","fixed","fmt","from","gas","get","get_mut","get_or_insert_with","green","init","insert","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc_bindings","red","remove","resetting","rgb","runtime_bindings","strike","tail_recursion","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AutoBreakpoint","BreakpointEvent","EnumInit","__clone_box","__clone_box","add_event","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","conceal","conceal","cyan","cyan","default","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fg","fg","fixed","fixed","fmt","fmt","from","from","green","green","has_event","hash","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","mask","mask","maybe_breakpoint","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","strike","strike","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","type_id","variant_idx","DebugUtils","attr","bg","black","blink","blue","bold","borrow","borrow_mut","breakpoint_marker","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_breakpoint_trap","debug_print","default","deref","deref_mut","dim","drop","dump_mem","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","print_felt252","print_i1","print_i128","print_i32","print_i64","print_i8","print_pointer","quirk","rapid_blink","red","register_impls","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DropOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DupOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","EnumSnapshotVariantsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","from","get_variants","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","set_mapping","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ApChangeError","CostError","GasCost","GasMetadata","GasMetadataError","MetadataComputationConfig","NotEnoughGas","__clone_box","__clone_box","__clone_box","ap_change_info","attr","attr","attr","attr","bg","bg","bg","bg","black","black","black","black","blink","blink","blink","blink","blue","blue","blue","blue","bold","bold","bold","bold","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright","bright_black","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","compare","conceal","conceal","conceal","conceal","cyan","cyan","cyan","cyan","default","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","dim","dim","dim","dim","drop","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fg","fg","fg","fg","fixed","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","function_set_costs","gas_info","get_gas_cost_for_statement","get_gas_cost_for_statement_and_cost_token_type","get_initial_available_gas","green","green","green","green","hash","init","init","init","init","initial_required_gas","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","into","invert","invert","invert","invert","italic","italic","italic","italic","linear_ap_change_solver","linear_gas_solver","linger","linger","linger","linger","magenta","magenta","magenta","magenta","mask","mask","mask","mask","new","on_black","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","on_yellow","partial_cmp","primary","primary","primary","primary","quirk","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","rapid_blink","red","red","red","red","resetting","resetting","resetting","resetting","rgb","rgb","rgb","rgb","source","strike","strike","strike","strike","to_owned","to_owned","to_owned","to_smolstr","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","underline","underline","underline","underline","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","vzip","whenever","whenever","whenever","whenever","white","white","white","white","wrap","wrap","wrap","wrap","yellow","yellow","yellow","yellow","gas","ReallocBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","free","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","RuntimeBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dict_drop","dict_dup","dict_gas_refund","dict_get","dict_insert","dict_new","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","libfunc_debug_print","libfunc_ec_point_from_x_nz","libfunc_ec_point_try_new_nz","libfunc_ec_state_add","libfunc_ec_state_add_mul","libfunc_ec_state_init","libfunc_ec_state_try_finalize_nz","libfunc_hades_permutation","libfunc_pedersen","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vtable_cheatcode","vzip","whenever","white","wrap","yellow","TailRecursionMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","depth_counter","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","recursion_target","red","resetting","return_target","rgb","set_return_target","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeModule","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get_metadata","green","init","insert_metadata","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","metadata","module","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","program_registry","quirk","rapid_blink","red","remove_metadata","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ArrayAbi","BlockInfo","DummySyscallHandler","Err","ExecutionInfo","ExecutionInfoV2","Felt252Abi","Ok","ResourceBounds","SYSCALL_HANDLER_VTABLE","Secp256k1Point","Secp256r1Point","StarknetSyscallHandler","SyscallResult","TxInfo","TxV2Info","U256","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","account_contract_address","account_contract_address","account_deployment_data","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","black","black","black","black","black","black","black","black","black","black","black","black","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","block_info","block_info","block_number","block_timestamp","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","cairo_native__vtable_cheatcode","call_contract","call_contract","caller_address","caller_address","capacity","chain_id","chain_id","cheatcode","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","contract_address","contract_address","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","default","default","default","deploy","deploy","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","emit_event","emit_event","entry_point_selector","entry_point_selector","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fee_data_availability_mode","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","get_block_hash","get_block_hash","get_execution_info","get_execution_info","get_execution_info_v2","get_execution_info_v2","green","green","green","green","green","green","green","green","green","green","green","green","hash","hash","hash","hash","hash","hash","hash","hash","hash","hi","init","init","init","init","init","init","init","init","init","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","into","into","into","into","into","into","into","into","into","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","is_infinity","is_infinity","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","keccak","keccak","library_call","library_call","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","lo","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","max_amount","max_fee","max_fee","max_price_per_unit","new","new","nonce","nonce","nonce_data_availability_mode","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","paymaster_data","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","ptr","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","red","red","red","red","red","red","red","red","red","red","red","red","replace_class","replace_class","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resource","resource_bounds","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","secp256k1_add","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_get_xy","secp256k1_mul","secp256k1_mul","secp256k1_new","secp256k1_new","secp256r1_add","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_get_xy","secp256r1_mul","secp256r1_mul","secp256r1_new","secp256r1_new","send_message_to_l1","send_message_to_l1","sequencer_address","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","sha256_process_block","sha256_process_block","signature","signature","since","storage_read","storage_read","storage_write","storage_write","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transaction_hash","transaction_hash","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_info","tx_info","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","until","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","white","white","white","white","white","white","white","white","white","white","white","white","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","x","x","y","y","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","ContractLogs","StubEvent","StubSyscallHandler","__clone_box","__clone_box","__clone_box","attr","attr","attr","bg","bg","bg","big4int_to_u256","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","call_contract","cheatcode","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","conceal","conceal","conceal","cyan","cyan","cyan","data","decode_felts_as_str","default","default","deploy","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","emit_event","encode_str_as_felts","events","events","execution_info","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","get_block_hash","get_execution_info","get_execution_info_v2","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","keccak","keys","l2_to_l1_messages","library_call","linger","linger","linger","logs","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","replace_class","resetting","resetting","resetting","rgb","rgb","rgb","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_mul","secp256k1_new","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_mul","secp256r1_new","send_message_to_l1","sha256_process_block","storage","storage_read","storage_write","strike","strike","strike","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","u256_to_biguint","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","HALF_PRIME","LayoutError","PRIME","SHARED_LIBRARY_EXT","__clone_box","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","cairo_to_sierra","clear","clone","clone_into","clone_to_uninit","conceal","create_engine","cyan","debug_with","decode_error_message","deref","deref_mut","dim","drop","eq","equivalent","equivalent","equivalent","equivalent","felt252_bigint","felt252_short_str","felt252_str","fg","find_entry_point","find_entry_point_by_idx","find_function_id","fixed","fmt","fmt","from","generate_function_name","get_integer_layout","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","layout_repeat","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","padding_needed_for","primary","quirk","rapid_blink","red","register_runtime_symbols","resetting","rgb","run_pass_manager","strike","to_owned","to_smolstr","to_string","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow"],"q":[[0,"cairo_native"],[249,"cairo_native::Value"],[258,"cairo_native::cache"],[348,"cairo_native::cache::aot"],[433,"cairo_native::cache::jit"],[519,"cairo_native::context"],[611,"cairo_native::debug"],[612,"cairo_native::docs"],[620,"cairo_native::error"],[920,"cairo_native::error::CompilerError"],[922,"cairo_native::error::SierraAssertError"],[923,"cairo_native::execution_result"],[1233,"cairo_native::executor"],[1503,"cairo_native::metadata"],[1601,"cairo_native::metadata::auto_breakpoint"],[1786,"cairo_native::metadata::auto_breakpoint::BreakpointEvent"],[1788,"cairo_native::metadata::debug_utils"],[1883,"cairo_native::metadata::drop_overrides"],[1966,"cairo_native::metadata::dup_overrides"],[2049,"cairo_native::metadata::enum_snapshot_variants"],[2133,"cairo_native::metadata::gas"],[2517,"cairo_native::metadata::gas::GasMetadataError"],[2518,"cairo_native::metadata::realloc_bindings"],[2603,"cairo_native::metadata::runtime_bindings"],[2702,"cairo_native::metadata::tail_recursion"],[2789,"cairo_native::module"],[2878,"cairo_native::starknet"],[4115,"cairo_native::starknet_stub"],[4414,"cairo_native::utils"],[4528,"dyn_clone::sealed"],[4529,"yansi::attr_quirk"],[4530,"yansi::paint"],[4531,"yansi::color"],[4532,"cairo_native::ffi"],[4533,"cairo_native::values"],[4534,"core::cmp"],[4535,"melior::context"],[4536,"melior::ir::module"],[4537,"cairo_lang_sierra::program"],[4538,"cairo_lang_sierra::extensions::core"],[4539,"cairo_lang_sierra::program_registry"],[4540,"melior::ir::attribute"],[4541,"core::result"],[4542,"serde::de"],[4543,"core::fmt"],[4544,"alloc::vec"],[4545,"core::convert"],[4546,"starknet_types_core::felt"],[4547,"core::clone"],[4548,"core::hash"],[4549,"core::option"],[4550,"cairo_lang_semantic::substitution"],[4551,"alloc::collections::vec_deque"],[4552,"cairo_lang_utils::ordered_hash_map"],[4553,"alloc::boxed"],[4554,"std::path"],[4555,"serde::ser"],[4556,"core::any"],[4557,"yansi::condition"],[4558,"cairo_native::executor::aot"],[4559,"alloc::sync"],[4560,"cairo_native::executor::jit"],[4561,"libloading::error"],[4562,"core::alloc::layout"],[4563,"std::io::error"],[4564,"core::num::error"],[4565,"serde_json::error"],[4566,"melior::error"],[4567,"cairo_lang_sierra::edit_state"],[4568,"cairo_lang_sierra::ids"],[4569,"core::error"],[4570,"smol_str"],[4571,"alloc::string"],[4572,"cairo_native::executor::contract"],[4573,"core::ffi"],[4574,"libloading::safe"],[4575,"core::ops::function"],[4576,"melior::ir::block"],[4577,"melior::ir::location"],[4578,"melior::ir::value"],[4579,"melior::execution_engine"],[4580,"cairo_lang_sierra_gas"],[4581,"cairo_lang_sierra_ap_change"],[4582,"cairo_lang_sierra::extensions::modules::gas"],[4583,"melior::ir::operation"],[4584,"ark_ff::biginteger"],[4585,"num_bigint::biguint"],[4586,"num_bigint::bigint"],[4587,"alloc::borrow"],[4588,"cairo_native::compiler"]],"i":[8,9,9,9,8,9,9,9,9,9,8,8,9,0,9,9,9,9,9,9,9,9,9,9,9,9,9,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,0,8,9,8,9,8,9,8,8,9,8,8,0,8,9,0,8,9,0,8,8,9,8,9,9,8,9,0,8,9,8,9,8,8,8,8,9,9,9,9,0,0,0,8,9,8,9,8,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,8,8,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,8,9,8,9,8,9,8,9,8,9,8,9,0,0,0,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,9,0,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,0,8,9,8,9,8,9,8,9,8,9,143,144,145,143,146,144,144,145,146,55,0,55,0,0,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,0,0,0,0,0,0,0,0,0,69,69,70,69,20,0,20,20,49,0,20,69,20,20,20,20,20,20,20,20,20,20,20,20,49,20,20,69,0,20,20,0,20,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,69,70,70,20,20,20,20,20,20,20,20,20,20,20,20,20,69,70,20,69,70,20,69,70,20,20,20,20,20,20,20,69,69,69,69,69,69,69,70,70,70,70,70,70,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,147,147,148,0,0,0,85,86,87,85,86,87,85,86,87,85,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,86,85,85,85,86,87,85,86,87,85,86,87,85,85,86,87,85,87,85,87,85,86,87,85,86,87,85,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,85,86,87,85,85,85,85,86,86,86,86,87,87,87,87,87,87,85,86,87,85,86,87,85,86,87,85,86,87,87,85,86,87,85,87,85,86,87,85,85,85,85,85,85,85,86,86,86,86,86,86,86,87,87,87,87,87,87,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,87,85,85,85,86,87,85,86,87,85,85,85,86,87,85,86,87,86,87,85,86,87,86,87,85,86,87,85,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,0,0,0,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,65,62,88,65,62,88,65,65,65,65,65,65,65,62,62,62,62,62,62,62,88,88,88,88,88,88,88,65,62,88,65,62,88,65,62,65,62,65,62,65,62,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,0,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,17,17,0,0,0,17,17,17,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,17,0,17,0,17,17,17,17,17,17,17,17,17,17,17,0,0,99,99,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,98,99,98,99,98,99,98,99,98,99,99,99,99,99,99,98,99,98,99,98,99,98,99,98,98,99,99,98,99,99,99,99,99,99,99,98,98,98,98,98,98,98,99,98,99,98,99,98,99,98,99,98,99,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,149,149,0,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,0,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,74,74,0,0,0,0,74,93,108,109,93,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,93,108,109,93,108,108,109,108,108,93,108,109,74,93,108,109,74,93,109,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,74,93,93,93,93,108,108,108,108,74,74,74,74,93,108,109,74,93,108,109,74,93,108,109,74,74,93,108,109,74,74,74,109,93,93,93,93,93,108,109,74,108,93,108,109,74,93,93,93,93,93,93,93,93,108,108,108,108,108,108,108,109,109,109,109,109,109,109,74,74,74,74,74,74,74,93,108,109,74,93,108,109,74,93,108,109,74,109,109,93,108,109,74,93,108,109,74,93,108,109,74,93,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,108,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,74,93,108,109,74,93,108,109,74,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,93,108,109,74,150,0,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,0,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,0,122,0,0,0,122,0,0,0,0,0,0,0,0,0,120,124,125,126,127,128,129,130,131,132,127,130,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,125,126,129,129,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,0,91,123,125,126,121,127,130,91,123,121,120,124,125,126,127,128,129,130,131,132,120,124,125,126,127,128,129,130,131,132,120,124,125,126,127,128,129,130,131,132,120,124,124,125,126,127,128,128,129,129,130,131,131,132,132,124,125,126,127,128,129,130,124,125,126,127,128,129,130,123,121,120,124,125,126,127,128,129,130,131,132,125,126,123,121,120,124,125,126,127,128,129,130,131,132,124,131,132,91,123,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,125,126,124,125,126,127,128,129,130,131,132,124,124,124,124,125,125,125,125,126,126,126,126,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,130,131,131,131,131,132,132,132,132,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,131,132,124,123,121,120,124,125,126,127,128,129,130,131,132,123,123,123,123,123,123,123,121,121,121,121,121,121,121,120,120,120,120,120,120,120,124,124,124,124,124,124,124,125,125,125,125,125,125,125,126,126,126,126,126,126,126,127,127,127,127,127,127,127,128,128,128,128,128,128,128,129,129,129,129,129,129,129,130,130,130,130,130,130,130,131,131,131,131,131,131,131,132,132,132,132,132,132,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,124,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,128,127,130,128,131,132,127,130,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,127,123,121,120,124,125,126,127,128,129,130,131,132,121,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,123,121,120,124,125,126,127,128,129,130,131,132,128,127,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,129,124,125,126,127,128,129,130,131,132,91,123,127,130,121,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,127,120,124,125,126,127,128,129,130,131,132,127,130,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,125,126,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,121,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,127,130,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,131,132,131,132,123,121,120,124,125,126,127,128,129,130,131,132,0,0,0,134,135,136,134,135,136,134,135,136,0,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,135,0,134,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,0,134,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,134,134,134,135,136,134,135,136,134,134,134,134,134,134,134,135,135,135,135,135,135,135,136,136,136,136,136,136,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,135,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,135,136,134,135,136,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,0,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,0,0,0,0,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,0,79,79,79,79,79,0,79,0,0,79,79,79,79,79,79,79,79,79,0,0,0,79,0,0,0,79,79,79,79,0,0,79,79,79,79,79,79,79,79,79,79,79,79,0,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,0,79,79,79,79,0,79,79,0,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79],"f":"````````````````````````````{{{b{c}}d}f{}}0{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}l}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0222222222222222222`22{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{c}}{b{ne}}}f{}{}}0{{{b{c}}}f{}}00{{{b{A`}}{b{A`}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}{{{b{Af}}{b{Ah}}{b{Aj}}{b{{B`{AlAn}}}}{b{nBb}}BdBf}{{Bj{fBh}}}}99`99`{{}A`}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ab}}}Bn}==`{Blf}0{{{b{A`}}{b{A`}}}Bf}{{{b{Ab}}{b{Ab}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}0000000```{{{b{c}}l}{{j{{b{e}}}}}{}{}}0{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0{{{b{A`}}{b{nCb}}}Cd}{{{b{Ab}}{b{nCb}}}Cd}{cc{}}{BlA`}{C`A`}{{{Cf{c}}}Ab{{Ch{Ab}}}}{CjAb}{{{Cl{c}}}Ab{{Ch{Ab}}}}5{CnAb}{D`Ab}{DbAb}{DdAb}{DfAb}{C`Ab}{DhAb}{DjAb}{DlAb}{DnAb}{{{b{{E`{c}}}}}Ab{{Ch{Ab}}Eb}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{A`}}{b{nc}}}fEd}{{}Bl}0{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}4603215{ce{}{}}0::::::::::``{{{b{Ah}}A`}{{Fb{{Cf{C`}}}}}}{{{b{{E`{C`}}}}{b{Fd}}}{{Fb{f}}}}<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0========{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}0>>>>{{{b{A`}}{b{A`}}}{{Ef{Ad}}}}??{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000033{{{b{Ab}}c}BjFh}``11{{{b{c}}}e{}{}}0{c{{Bj{e}}}{}{}}000{{{b{c}}}Fj{}}044{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0`=={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}0777777```````````````{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}999943999999999999{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}};{Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Fn{c}}}}{b{nCb}}}Cd{G`GbGdGf}}{{{Gh{c}}}{{Fn{c}}}{G`GbGd}}{cc{}}{{{Gj{c}}}{{Fn{c}}}{G`GbGd}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}99`999999999999999>9999{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}:::{{{b{c}}Ff}{{j{{b{e}}}}}{}{}};;;1;{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}={{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}6{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}2222542222222222{{{b{n{Gh{c}}}}c{b{Aj}}A`}{{Gn{Gl}}}{G`GbGd}}33{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Gh{c}}}}{b{nCb}}}Cd{G`GbGd}}{cc{}}{{{b{{Gh{c}}}}{b{c}}}{{Ef{{Gn{Gl}}}}}{G`GbGd}}:{{}Bl}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{{b{H`}}}{{Gh{c}}}{G`GbGd}}111111111111>1111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}222{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}33313{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}::::43::::::::::{{{b{n{Gj{c}}}}c{b{Aj}}A`}{{Gn{Hb}}}{GbGdG`}};{{{b{{Gj{c}}}}}{{b{H`}}}{GbGdG`}}<{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}>{Blf}5{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Gj{c}}}}{b{nCb}}}Cd{GbGdG`}}{cc{}}{{{b{{Gj{c}}}}{b{c}}}{{Ef{{Gn{Hb}}}}}{GbGdG`}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{ce{}{}}99999{{{b{H`}}}{{Gj{c}}}{GbGdG`}}::::::::::::>::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;;{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}<<<1<{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}>{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}7{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}2222542222222222{{{b{H`}}{b{Aj}}Bf}{{Bj{HdBh}}}}3{{{b{H`}}}{{b{Af}}}}4{{}H`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}{{{b{H`}}{b{H`}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}0008{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{H`}}{b{nCb}}}Cd}{cc{}}={{}Bl}{{}Af}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{}H`}111111111111>1111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}222{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}33313{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888{{{b{Hf}}}{{b{Hh}}}}``````````````````````````````````````````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00;;;;;;;;;;;;555444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00==={Blf}00333{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Bh}}{b{nCb}}}Cd}0{{{b{Hj}}{b{nCb}}}Cd}0{{{b{Hl}}{b{nCb}}}Cd}0{HnBh}{I`Bh}{IbBh}{IdBh}{{{En{If}}}Bh}{IhBh}{IjBh}{cc{}}{HjBh}{HlBh}{IlBh}{InBh}{J`Bh}55{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}13264056042531{ce{}{}}00999999999999{{{b{Jb}}}Bh}:::::::::::::::::::::::::::::::::::::::{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00;;;;;;;;;;;;{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00<<<<<<<<<{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00=========111{{{b{Bh}}}{{Ef{{b{Jd}}}}}}>>>{{{b{c}}}Jf{}}00{{{b{c}}}Jh{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00<<<{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00333333333``````{{{b{c}}d}f{}}00{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00`666666666666555444666666666666666666666666666```666{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{Jn}}}Jn}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}000{{{b{Jj}}{b{Jj}}}Ad}{{{b{Jn}}{b{Jn}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}0>>>>>>{{}Jj}{{}Jn}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00{c{{Bj{Jj}}}Bn}{c{{Bj{Jl}}}Bn}{c{{Bj{Jn}}}Bn}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{Blf}00`{{{b{Jj}}{b{Jj}}}Bf}{{{b{Jl}}{b{Jl}}}Bf}{{{b{Jn}}{b{Jn}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000``{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Jj}}{b{nCb}}}Cd}{{{b{Jl}}{b{nCb}}}Cd}{{{b{Jn}}{b{nCb}}}Cd}{cc{}}00{Jl{{Bj{JnBh}}}}<<<{{{b{Jj}}{b{nc}}}fEd}{{{b{Jn}}{b{nc}}}fEd}{{}Bl}00{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}54601235342106{ce{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000000000000000000000000000000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00111111111111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00222222{{{b{Jj}}{b{Jj}}}{{Ef{Ad}}}}{{{b{Jn}}{b{Jn}}}{{Ef{Ad}}}}``444{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00``555555``555``333`{{{b{Jj}}c}BjFh}{{{b{Jl}}c}BjFh}{{{b{Jn}}c}BjFh}888{{{b{c}}}e{}{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00;;;{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00>>>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00>>>>>>>>>```{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000666555000000000000000000000000000000{{{b{K`}}}K`}{{{b{c}}{b{ne}}}f{}{}}{{{b{c}}}f{}}333333{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00555{Blf}00{{{b{nK`}}}f}888{{{b{Hb}}{b{Kb}}}Kd}{{{b{Gl}}{b{Kb}}}Kd}{{{b{K`}}{b{Kb}}Bf}{{Fb{Kd}}}}{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Hb}}{b{nCb}}}Cd}{{{b{Gl}}{b{nCb}}}Cd}{{{b{K`}}{b{nCb}}}Cd}{cc{}}00{{HdA`}Hb}{{HdA`}Gl}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}12345603015246{ce{}{}}00999{{{b{Hb}}{b{Kb}}{b{{E`{Df}}}}{Ef{Dl}}c}{{Bj{JnBh}}}Kf}{{{b{Gl}}{b{Kb}}{b{{E`{Df}}}}{Ef{Dl}}c}{{Bj{JnBh}}}Kf}{{{b{Hb}}{b{Kb}}{b{{E`{Ab}}}}{Ef{Dl}}}{{Bj{JlBh}}}}{{{b{Gl}}{b{Kb}}{b{{E`{Ab}}}}{Ef{Dl}}}{{Bj{JlBh}}}}{{{b{Hb}}{b{Kb}}{b{{E`{Ab}}}}{Ef{Dl}}c}{{Bj{JlBh}}}Kf}{{{b{Gl}}{b{Kb}}{b{{E`{Ab}}}}{Ef{Dl}}c}{{Bj{JlBh}}}Kf}??????{{{b{Fd}}}{{Fb{K`}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000{{{b{Hb}}}{{b{Ah}}}}{{Kh{B`{AlAn}}Kj}Gl}{{{b{Aj}}A`}{{Fb{K`}}}}333333333333333333333333333333333333{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00444444444444{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00555555555{{{b{Hb}}}{{b{{B`{AlAn}}}}}}{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00777777777222{{{b{K`}}{b{Kb}}{b{{E`{Df}}}}{Ef{Dl}}c}{{Fb{Jn}}}Kf}{{{b{nK`}}c}{{Fb{f}}}{{Kl{Fd}}}}999{{{b{c}}}e{}{}}{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00<<<{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00{ce{}{}}00{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000`{{{b{c}}h}{{j{{b{e}}}}}{}{}}`{{{b{c}}l}{{j{{b{e}}}}}{}{}}222265222222222222`{{}Bb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}```4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Bb}}{b{nCb}}}Cd}{cc{}}`{{{b{Bb}}}{{Ef{{b{c}}}}}Kn}{{{b{nBb}}}{{Ef{{b{nc}}}}}Kn}{{{b{nBb}}e}{{b{nc}}}Kn{{Lb{}{{L`{c}}}}}}<{{}Bl}{{{b{nBb}}c}{{Ef{{b{nc}}}}}Kn}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{}Bb}111111111111{{{b{c}}C`}{{j{{b{e}}}}}{}{}}2222{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}333{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}4`4{{{b{nBb}}}{{Ef{c}}}Kn}52`5`{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}7{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}:{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}:::```{{{b{c}}d}f{}}0{{{b{nLd}}Lf}f}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}l}{{j{{b{e}}}}}{}{}}0>>>>>>>>6655>>>>>>>>>>>>>>>>>>>>{{{b{Lf}}}Lf}{{{b{Ld}}}Ld}{{{b{c}}{b{ne}}}f{}{}}0{{{b{c}}}f{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{}Ld}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}033{Blf}0{{{b{Lf}}{b{Lf}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}000;;{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0{{{b{Lf}}{b{nCb}}}Cd}{{{b{Ld}}{b{nCb}}}Cd}{cc{}}0::{{{b{Ld}}{b{Lf}}}Bf}{{{b{Lf}}{b{nc}}}fEd}{{}Bl}0{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}3120564{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000000000{{{b{Ld}}{b{Lh}}Lj{b{Bb}}{b{Lf}}}{{Bj{fBh}}}}111111111111111111111111{{{b{c}}C`}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}0333333{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}04444441144{{{b{c}}}e{}{}}0{c{{Bj{e}}}{}{}}000{{{b{c}}}Fj{}}077{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0::{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}0::::::```{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}<<<<43{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}Lj}{{Fb{f}}}}============{{{b{Ll}}{b{Lh}}Lj}{{Fb{f}}}}{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}{b{Hh}}Lj}{{Fb{f}}}}{{}Ll}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{Blf}{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}LnBlLj}{{Fb{f}}}}9{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Ll}}{b{nCb}}}Cd}{cc{}}5{{}Bl}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{ce{}{}}>>>>>>>>>>>>>>>>>;>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{f}}}}000000{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{Ll}}{b{M`}}}f}141{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}3{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}9{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}666`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}888843888888888888{{}Mb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}};{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Mb}}{b{nCb}}}Cd}{cc{}}?{{}Bl}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000000000000<0000{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}111{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}22212{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}4{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}7{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}777`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}999943999999999999{{}Md}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Md}}{b{nCb}}}Cd}{cc{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{ce{}{}}99999999999999999<9999{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}:::{{{b{c}}Ff}{{j{{b{e}}}}}{}{}};;;1;{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}={{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}6{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}222254222222222222{{}Mf}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{cc{}}{{{b{Mf}}{b{Jb}}}{{Ef{{b{{Cf{Jb}}}}}}}}9{{}Bl}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000000000000<0000{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}111{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}2221{{{b{nMf}}{b{Jb}}{b{{E`{Jb}}}}}f}3{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888```````{{{b{c}}d}f{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}000{{{b{c}}l}{{j{{b{e}}}}}{}{}}000;;;;;;;;;;;;;;;;55554444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{Kj}}}Kj}{{{b{Mh}}}Mh}{{{b{Mj}}}Mj}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}000{{{b{Mh}}{b{Mh}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}Kj}{{}Mj}{Bl{{b{c}}}{}}000{Bl{{b{nc}}}{}}0004444{Blf}000{{{b{Kj}}{b{Kj}}}Bf}{{{b{Mh}}{b{Mh}}}Bf}{{{b{Id}}{b{Id}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000{{{b{c}}l}{{j{{b{e}}}}}{}{}}000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}000{{{b{Kj}}{b{nCb}}}Cd}{{{b{Mh}}{b{nCb}}}Cd}{{{b{Mj}}{b{nCb}}}Cd}{{{b{Id}}{b{nCb}}}Cd}0{cc{}}000{MlId}{MnId}``{{{b{Kj}}N`}{{Ef{Dl}}}}{{{b{Kj}}N`Nb}{{Ef{Dl}}}}{{{b{Kj}}{b{Kb}}{Ef{Dl}}}{{Bj{DlId}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{{b{Mh}}{b{nc}}}fEd}{{}Bl}000{{{b{Kj}}{b{Kb}}}{{Ef{Dl}}}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}531062441350622346015{ce{}{}}000;;;;;;;;``;;;;;;;;;;;;{{{b{Aj}}{Ef{Mj}}}{{Bj{KjId}}}}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}C`}{{j{{b{e}}}}}{}{}}000================{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}000>>>>>>>>{{{b{Mh}}{b{Mh}}}{{Ef{Ad}}}}????{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}000{{{b{c}}}{{j{{b{e}}}}}{}{}}000000000003333{{{b{Id}}}{{Ef{{b{Jd}}}}}}1111{{{b{c}}}e{}{}}00{{{b{c}}}Jf{}}{{{b{c}}}Jh{}}{c{{Bj{e}}}{}{}}0000000{{{b{c}}}Fj{}}0006666{{{b{c}}}{{b{e}}}{}{}}000{{{b{nc}}}{{b{ne}}}{}{}}000>>>>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}000999999999999``{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}};;;;43;;;;;;;;;;;;{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}={Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Nd}}{b{nCb}}}Cd}{{{b{Af}}LnLj}Nf}{cc{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{ce{}{}}99999{{{b{Af}}{b{Ah}}}Nd}::::::::::::>::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;;{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}<{{{b{Af}}LnLnLj}Nf}==2={c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}?{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}222254222222222222{{}Nh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}Ln{Ef{Ln}}Lj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLj}{{Fb{Ln}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}Lj}{{Fb{Nj}}}};{Blf}:{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Nh}}{b{nCb}}}Cd}{cc{}}?{{}Bl}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Ln}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{Nj}}}}0{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Nj}}}}2100444444444444444{{{b{c}}C`}{{j{{b{e}}}}}{}{}}5555{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}666{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}77717{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}9{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LjLnLnLn}{{Fb{Nj}}}}={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}===`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}????54????????????{{{b{Nl}}}Ln}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{Blf}5?{{{b{Nl}}{b{nCb}}}Cd}{cc{}}3{{}Bl}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}<<<<<{{Ln{b{Lh}}}Nl}============{{{b{c}}C`}{{j{{b{e}}}}}{}{}}>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{{b{Nl}}}Nn}11{{{b{Nl}}}{{Ef{Nn}}}}4{{{b{nNl}}{b{Lh}}}f}3{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}<{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}::::43::::::::::::{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Hd}}{b{nCb}}}Cd}{cc{}}{{{b{Hd}}}{{Ef{{b{c}}}}}Kn}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nHd}}c}{{Ef{{b{nc}}}}}Kn}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}:::::{{{b{Hd}}}{{b{Bb}}}}{{{b{Hd}}}{{b{Ah}}}}{{Ah{B`{AlAn}}Bb}Hd}============{{{b{c}}C`}{{j{{b{e}}}}}{}{}}>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{Hd}}}{{b{{B`{AlAn}}}}}}{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{nHd}}}{{Ef{c}}}Kn}141{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}3{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}666`````````````````{{{b{c}}d}f{}}000000000```{{{b{c}}h}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}l}{{j{{b{e}}}}}{}{}}00000000000999999999999999999999999````999999999999999999999999555555555555444444444444999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999{{{b{n{Ob{O`}}}}{b{O`}}{b{{Ob{O`}}}}}f}{{{b{nKf}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}}{{{b{nOf}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}}`````{{{b{nKf}}Df{b{{E`{Df}}}}}{{Cf{Df}}}}============{{{b{O`}}}O`}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{c}}{b{ne}}}f{}{}}000000000{{{b{c}}}f{}}00000000000000{{{b{Oh}}{b{Oh}}}Ad}{{{b{Oj}}{b{Oj}}}Ad}{{{b{Ol}}{b{Ol}}}Ad}{{{b{On}}{b{On}}}Ad}{{{b{A@`}}{b{A@`}}}Ad}{{{b{A@b}}{b{A@b}}}Ad}{{{b{A@d}}{b{A@d}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000``000000000000{{}Oh}{{}A@f}{{}A@h}{{{b{nKf}}DfDf{b{{E`{Df}}}}Bf{b{nDl}}}{{Od{{F`{Df{Cf{Df}}}}}}}}{{{b{nOf}}DfDf{b{{E`{Df}}}}Bf{b{nDl}}}{{Od{{F`{Df{Cf{Df}}}}}}}}{Bl{{b{c}}}{}}00000000000{Bl{{b{nc}}}{}}00000000000{c{{Bj{Oh}}}Bn}{c{{Bj{Oj}}}Bn}{c{{Bj{Ol}}}Bn}{c{{Bj{On}}}Bn}{c{{Bj{A@`}}}Bn}{c{{Bj{A@b}}}Bn}{c{{Bj{A@d}}}Bn}{c{{Bj{A@f}}}Bn}{c{{Bj{A@h}}}Bn}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{Blf}00000000000{{{b{nKf}}{b{{E`{Df}}}}{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}{{{b{nOf}}{b{{E`{Df}}}}{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}``{{{b{Oh}}{b{Oh}}}Bf}{{{b{Oj}}{b{Oj}}}Bf}{{{b{Ol}}{b{Ol}}}Bf}{{{b{On}}{b{On}}}Bf}{{{b{A@`}}{b{A@`}}}Bf}{{{b{A@b}}{b{A@b}}}Bf}{{{b{A@d}}{b{A@d}}}Bf}{{{b{A@f}}{b{A@f}}}Bf}{{{b{A@h}}{b{A@h}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000000000000000000000000000`{{{b{c}}l}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00000000000{{{b{{Ob{c}}}}{b{nCb}}}CdGf}{{{b{O`}}{b{nCb}}}Cd}{{{b{Oh}}{b{nCb}}}Cd}{{{b{Oj}}{b{nCb}}}Cd}{{{b{Ol}}{b{nCb}}}Cd}{{{b{On}}{b{nCb}}}Cd}{{{b{A@`}}{b{nCb}}}Cd}{{{b{A@b}}{b{nCb}}}Cd}{{{b{A@d}}{b{nCb}}}Cd}{{{b{A@f}}{b{nCb}}}Cd}{{{b{A@h}}{b{nCb}}}Cd}{cc{}}00000000000{{{b{nKf}}Cn{b{nDl}}}{{Od{Df}}}}{{{b{nOf}}Cn{b{nDl}}}{{Od{Df}}}}{{{b{nKf}}{b{nDl}}}{{Od{Oj}}}}{{{b{nOf}}{b{nDl}}}{{Od{Oj}}}}{{{b{nKf}}{b{nDl}}}{{Od{Ol}}}}{{{b{nOf}}{b{nDl}}}{{Od{Ol}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{{{b{Oh}}{b{nc}}}fEd}{{{b{Oj}}{b{nc}}}fEd}{{{b{Ol}}{b{nc}}}fEd}{{{b{On}}{b{nc}}}fEd}{{{b{A@`}}{b{nc}}}fEd}{{{b{A@b}}{b{nc}}}fEd}{{{b{A@d}}{b{nc}}}fEd}{{{b{A@f}}{b{nc}}}fEd}{{{b{A@h}}{b{nc}}}fEd}`{{}Bl}00000000000{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}53401261246305654320106514233065124406123540352612340561621354043210565034621{ce{}{}}00000000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000``000000000000{{{b{nKf}}{b{{E`{Cn}}}}{b{nDl}}}{{Od{Oh}}}}{{{b{nOf}}{b{{E`{Cn}}}}{b{nDl}}}{{Od{Oh}}}}{{{b{nKf}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}}{{{b{nOf}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}}444444444444`444444444444444444444444````{{DlDlDlDlBf}A@f}{{DlDlDlDlBf}A@h}```666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00000000000777777777777777777777777777777777777777777777777{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00000000000888888888888888888888888{{{b{Oh}}{b{Oh}}}{{Ef{Ad}}}}{{{b{Oj}}{b{Oj}}}{{Ef{Ad}}}}{{{b{Ol}}{b{Ol}}}{{Ef{Ad}}}}{{{b{On}}{b{On}}}{{Ef{Ad}}}}{{{b{A@`}}{b{A@`}}}{{Ef{Ad}}}}{{{b{A@b}}{b{A@b}}}{{Ef{Ad}}}}{{{b{A@d}}{b{A@d}}}{{Ef{Ad}}}}`????????????`{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000{{{b{nKf}}Df{b{nDl}}}{{Od{f}}}}{{{b{nOf}}Df{b{nDl}}}{{Od{f}}}}222222222222``;;;;;;;;;;;;{{{b{nKf}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{nOf}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{nKf}}OhBf{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{nOf}}OhBf{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{nKf}}A@f{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{nOf}}A@f{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{nKf}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{nOf}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{nKf}}OhOh{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{nOf}}OhOh{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{nKf}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{nOf}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{nKf}}OhBf{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{nOf}}OhBf{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{nKf}}A@h{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{nOf}}A@h{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{nKf}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{nOf}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{nKf}}OhOh{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{nOf}}OhOh{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{nKf}}Df{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}{{{b{nOf}}Df{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}`{{{b{Oh}}c}BjFh}{{{b{Oj}}c}BjFh}{{{b{Ol}}c}BjFh}{{{b{On}}c}BjFh}{{{b{A@`}}c}BjFh}{{{b{A@b}}c}BjFh}{{{b{A@d}}c}BjFh}{{{b{A@f}}c}BjFh}{{{b{A@h}}c}BjFh}{{{b{nKf}}{b{{Cl{D`}}}}{b{{Cl{D`}}}}{b{nDl}}}{{Od{{Cl{D`}}}}}}{{{b{nOf}}{b{{Cl{D`}}}}{b{{Cl{D`}}}}{b{nDl}}}{{Od{{Cl{D`}}}}}}```{{{b{nKf}}D`Df{b{nDl}}}{{Od{Df}}}}{{{b{nOf}}D`Df{b{nDl}}}{{Od{Df}}}}{{{b{nKf}}D`DfDf{b{nDl}}}{{Od{f}}}}{{{b{nOf}}D`DfDf{b{nDl}}}{{Od{f}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000`{{{b{c}}}e{}{}}000000000``{c{{Bj{e}}}{}{}}00000000000000000000000``{{{b{c}}}Fj{}}00000000000333333333333`{{{b{c}}}{{b{e}}}{}{}}00000000000{{{b{nc}}}{{b{ne}}}{}{}}00000000000``{ce{}{}}00000000000{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00000000000777777777777777777777777````777777777777```{{{b{c}}d}f{}}00{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{A@jOh};;;;;;;;;;;;777666;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{n{b{nA@l}}}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}}{{{b{n{b{nA@l}}}}Df{b{{E`{Df}}}}}{{Cf{Df}}}}==={{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000`{{{b{{E`{Df}}}}}Jh}{{}A@l}{{}AA`}{{{b{n{b{nA@l}}}}DfDf{b{{E`{Df}}}}Bf{b{nDl}}}{{Od{{F`{Df{Cf{Df}}}}}}}}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00666{Blf}00{{{b{n{b{nA@l}}}}{b{{E`{Df}}}}{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}{{{b{Hh}}}{{Cf{Df}}}}```{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{A@l}}{b{nCb}}}Cd}{{{b{A@n}}{b{nCb}}}Cd}{{{b{AA`}}{b{nCb}}}Cd}{cc{}}00{{{b{n{b{nA@l}}}}Cn{b{nDl}}}{{Od{Df}}}}{{{b{n{b{nA@l}}}}{b{nDl}}}{{Od{Oj}}}}{{{b{n{b{nA@l}}}}{b{nDl}}}{{Od{Ol}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}04651235012346{ce{}{}}00999999{{{b{n{b{nA@l}}}}{b{{E`{Cn}}}}{b{nDl}}}{{Od{Oh}}}}``{{{b{n{b{nA@l}}}}DfDf{b{{E`{Df}}}}{b{nDl}}}{{Od{{Cf{Df}}}}}};;;`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00<<<<<<<<<<<<{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00========={{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00>>>>>>{{{b{n{b{nA@l}}}}Df{b{nDl}}}{{Od{f}}}}???222{{{b{n{b{nA@l}}}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{n{b{nA@l}}}}OhBf{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{n{b{nA@l}}}}A@f{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{n{b{nA@l}}}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{n{b{nA@l}}}}OhOh{b{nDl}}}{{Od{{Ef{A@f}}}}}}{{{b{n{b{nA@l}}}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{n{b{nA@l}}}}OhBf{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{n{b{nA@l}}}}A@h{b{nDl}}}{{Od{{F`{OhOh}}}}}}{{{b{n{b{nA@l}}}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{n{b{nA@l}}}}OhOh{b{nDl}}}{{Od{{Ef{A@h}}}}}}{{{b{n{b{nA@l}}}}Df{b{{E`{Df}}}}{b{nDl}}}{{Od{f}}}}{{{b{n{b{nA@l}}}}{b{{Cl{D`}}}}{b{{Cl{D`}}}}{b{nDl}}}{{Od{{Cl{D`}}}}}}`{{{b{n{b{nA@l}}}}D`Df{b{nDl}}}{{Od{Df}}}}{{{b{n{b{nA@l}}}}D`DfDf{b{nDl}}}{{Od{f}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}e{}{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00{OhAAb}444{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00{ce{}{}}00{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00888888888````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}};;;;65;;;;;;;;;{{{b{Fd}}}{{Gn{Aj}}}}<{{{b{In}}}In}{{{b{c}}{b{ne}}}f{}{}}{{{b{c}}}f{}}?{{{b{Ah}}{b{Bb}}A`}M`}{{{b{c}}}{{j{{b{e}}}}}{}{}}{c{{`{Gf}}}{{AAd{{b{nCb}}}{{L`{Cd}}}}}}{{{b{{E`{C`}}}}}Jh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}4{Blf}{{{b{In}}{b{In}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}000{cDf{{Ch{AAf}}}}{{{b{Hh}}}Df}0?{{{b{Aj}}{b{Hh}}}{{Ef{{b{{AAh{N`}}}}}}}}{{{b{Aj}}Bl}{{Ef{{b{{AAh{N`}}}}}}}}{{{b{Aj}}{b{Hh}}}{{Ef{{b{Kb}}}}}}{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{In}}{b{nCb}}}Cd}0{cc{}}{{{b{Kb}}Bf}{{AAj{Hh}}}}{D`AAl}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{F`{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Cf{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Ehi}}}{}{}{}{}}{{{b{nc}}{b{n{Ef{e}}}}}{{Bj{Ehg}}}{}{}{}}{ce{}{}}99{{{b{AAl}}Bl}{{Bj{{F`{AAlBl}}In}}}}:::::::::::::::?::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;{{{b{AAl}}Bl}Bl}<{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}=={{{b{M`}}}f}>3{{{b{Af}}{b{nAh}}}{{Bj{fIl}}}}?{{{b{c}}}e{}{}}{{{b{c}}}Jf{}}{{{b{c}}}Jh{}}{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}333","D":"LAdJKf","p":[[1,"reference"],[5,"Private",4528],[1,"unit"],[6,"Attribute",4529],[5,"Painted",4530],[6,"Color",4531],[0,"mut"],[6,"OptLevel",0,4532],[6,"Value",0,4533],[6,"Ordering",4534],[5,"Context",4535],[5,"Module",4536],[5,"Program",4537],[6,"CoreType",4538],[6,"CoreLibfunc",4538],[5,"ProgramRegistry",4539],[5,"MetadataStorage",1503],[5,"Attribute",4540],[1,"bool"],[6,"Error",620],[6,"Result",4541],[1,"usize"],[10,"Deserializer",4542],[1,"u8"],[5,"Formatter",4543],[8,"Result",4543],[5,"Vec",4544],[10,"Into",4545],[1,"i8"],[1,"array"],[1,"u64"],[1,"u32"],[1,"i16"],[1,"i64"],[5,"Felt",4546],[1,"i128"],[1,"u16"],[1,"u128"],[1,"i32"],[1,"slice"],[10,"Clone",4547],[10,"Hasher",4548],[6,"Option",4549],[6,"RewriteResult",4550],[5,"VecDeque",4551],[5,"OrderedHashMap",4552],[5,"Box",4553],[1,"tuple"],[8,"Result",620],[5,"Path",4554],[6,"Quirk",4529],[10,"Serializer",4555],[5,"TypeId",4556],[5,"Condition",4557],[6,"ProgramCache",258],[10,"PartialEq",4534],[10,"Eq",4534],[10,"Hash",4548],[10,"Debug",4543],[5,"AotProgramCache",348],[5,"JitProgramCache",433],[5,"AotNativeExecutor",1233,4558],[5,"Arc",4559],[5,"NativeContext",519],[5,"JitNativeExecutor",1233,4560],[5,"NativeModule",2789],[6,"CoreConcreteLibfunc",4538],[1,"str"],[6,"SierraAssertError",620],[6,"CompilerError",620],[6,"Error",4561],[5,"LayoutError",4562],[5,"Error",4563],[6,"GasMetadataError",2133],[6,"ProgramRegistryError",4539],[5,"TryFromIntError",4564],[5,"Error",4565],[6,"Error",4566],[5,"LayoutError",4414],[6,"EditStateError",4567],[5,"ConcreteTypeId",4568],[10,"Error",4569],[5,"SmolStr",4570],[5,"String",4571],[5,"BuiltinStats",923],[5,"ExecutionResult",923],[5,"ContractExecutionResult",923],[5,"AotContractExecutor",1233,4572],[5,"FunctionId",4568],[6,"c_void",4573],[10,"StarknetSyscallHandler",2878],[5,"Library",4574],[5,"GasMetadata",2133],[10,"AsRef",4545],[10,"Any",4556],[17,"Output"],[10,"FnOnce",4575],[5,"AutoBreakpoint",1601],[6,"BreakpointEvent",1601],[5,"Block",4576],[5,"Location",4577],[5,"DebugUtils",1788],[5,"Value",4578],[5,"ExecutionEngine",4579],[5,"DropOverridesMeta",1883],[5,"DupOverridesMeta",1966],[5,"EnumSnapshotVariantsMeta",2049],[5,"GasCost",2133],[5,"MetadataComputationConfig",2133],[6,"CostError",4580],[6,"ApChangeError",4581],[5,"StatementIdx",4537],[6,"CostTokenType",4582],[5,"ReallocBindingsMeta",2518],[5,"Operation",4583],[5,"RuntimeBindingsMeta",2603],[5,"OperationRef",4583],[5,"TailRecursionMeta",2702],[5,"BlockRef",4576],[5,"Felt252Abi",2878],[5,"ArrayAbi",2878],[8,"SyscallResult",2878],[5,"DummySyscallHandler",2878],[5,"U256",2878],[5,"ExecutionInfo",2878],[5,"ExecutionInfoV2",2878],[5,"TxV2Info",2878],[5,"ResourceBounds",2878],[5,"BlockInfo",2878],[5,"TxInfo",2878],[5,"Secp256k1Point",2878],[5,"Secp256r1Point",2878],[5,"BigInt",4584],[5,"StubSyscallHandler",4115],[5,"StubEvent",4115],[5,"ContractLogs",4115],[5,"BigUint",4585],[10,"Fn",4575],[5,"BigInt",4586],[5,"GenFunction",4537],[6,"Cow",4587],[5,"Layout",4562],[15,"Struct",249],[15,"Enum",249],[15,"Felt252Dict",249],[15,"BoundedInt",249],[15,"BoundedIntOutOfRange",920],[15,"Range",922],[15,"EnumInit",1786],[15,"NotEnoughGas",2517]],"r":[[13,4532],[27,4533],[76,4588],[164,4532],[165,4532],[259,348],[261,433],[1233,4572],[1234,4558],[1235,4560]],"b":[[114,"impl-From%3Cusize%3E-for-OptLevel"],[115,"impl-From%3Cu8%3E-for-OptLevel"],[116,"impl-From%3CVec%3CT%3E%3E-for-Value"],[117,"impl-From%3Ci8%3E-for-Value"],[118,"impl-From%3C%5BT;+N%5D%3E-for-Value"],[120,"impl-From%3Cu64%3E-for-Value"],[121,"impl-From%3Cu32%3E-for-Value"],[122,"impl-From%3Ci16%3E-for-Value"],[123,"impl-From%3Ci64%3E-for-Value"],[124,"impl-From%3CFelt%3E-for-Value"],[125,"impl-From%3Cu8%3E-for-Value"],[126,"impl-From%3Ci128%3E-for-Value"],[127,"impl-From%3Cu16%3E-for-Value"],[128,"impl-From%3Cu128%3E-for-Value"],[129,"impl-From%3Ci32%3E-for-Value"],[130,"impl-From%3C%26%5BT%5D%3E-for-Value"],[291,"impl-From%3CAotProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[293,"impl-From%3CJitProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[732,"impl-Debug-for-Error"],[733,"impl-Display-for-Error"],[734,"impl-Debug-for-SierraAssertError"],[735,"impl-Display-for-SierraAssertError"],[736,"impl-Debug-for-CompilerError"],[737,"impl-Display-for-CompilerError"],[738,"impl-From%3CError%3E-for-Error"],[739,"impl-From%3CLayoutError%3E-for-Error"],[740,"impl-From%3CError%3E-for-Error"],[741,"impl-From%3CGasMetadataError%3E-for-Error"],[742,"impl-From%3CBox%3CProgramRegistryError%3E%3E-for-Error"],[743,"impl-From%3CTryFromIntError%3E-for-Error"],[744,"impl-From%3CError%3E-for-Error"],[746,"impl-From%3CSierraAssertError%3E-for-Error"],[747,"impl-From%3CCompilerError%3E-for-Error"],[748,"impl-From%3CError%3E-for-Error"],[749,"impl-From%3CLayoutError%3E-for-Error"],[750,"impl-From%3CEditStateError%3E-for-Error"],[2280,"impl-Debug-for-GasMetadataError"],[2281,"impl-Display-for-GasMetadataError"],[2286,"impl-From%3CCostError%3E-for-GasMetadataError"],[2287,"impl-From%3CApChangeError%3E-for-GasMetadataError"],[4463,"impl-Display-for-LayoutError"],[4464,"impl-Debug-for-LayoutError"]],"c":"OzAAAAEAAC0AFgBCAAEAGgEAAG8BAADEAQAAGgIAAMICAgDZAwIACQUCAPMFAABqBgEAEAcAAG4HAADBBwAAFAgAAKUIAwDpCQAAPgoAAKEKAAD4CgAANgwLAFAQAgBWEQAA","e":"OzAAAAEAAEsGEQEBAAAAAwAJAA8ADAAdAAEAKwADAEEAAABEAAgAUAAAAFMABgBdAAsAagAAAHAAAQBzAAQAeQAKAIYAEACkAAAAzwAAANwAAADhAAcA6wADAPAAAQD6AA4ADwEBAB0BAQAgAQAAIwEBACYBAAAoAQcAMwEAAFIBAgBWAQIAXQEAAGQBAQBwAQAAcwEBAHYBAAB5AQAAewEAAH0BBwCLAQAApwECAKsBAgC5AQEAxQEAAMcBAADJAQEAzAEAAM8BAADRAQAA0wEHAOEBAAD9AQIAAQICAA8CAQAdAgAAHwICACMCBQArAgAALgIAADACBgA9AgAAWQICAF0CAgBkAgAAbQIHAHYCDgCGAggAoQIFAMsCBQDUAgIA3QIMAOsCBAD1AhcAHAMAAG4DAAByAw4AhAMIAJkDAwCfAwIAqAMAALUDBQDWAwIA3AMNAPADCgD+AxQAGQQCACMEGQCLBAMAlQQBAJ0EAQCiBAEApwQDAK4ECwC9BAgA0wQAANUEAADoBAUADAUCABUFBQAeBQMAJQUCACsFAgAxBQAANgUXAFQFAQBXBQAAWQUAAGcFAQCpBQAAvgUJAMsFCADiBQAA6AUBAPcFAgD7BQAA/gUAAAEGAAADBgAABgYAAAgGAAAKBgYANwYCADsGAgBCBgUAVAYDAGwGBQB2BgQAfQYGAIgGAQCOBhEArAYAAOMGBwDtBgUA+wYCAAQHAgATBwAAFQcCABkHAAAdBwAAIAcHAEMHBgBNBwAAUQcCAFUHAgBcBwAAYwcBAHEHAgB1BwAAeAcAAHsHBwCkBwIAqAcCAK8HAAC2BwEAxAcCAMgHAADLBwAAzgcHAPcHAgD7BwIAAggAAAkIAQAXCAIAGwgAAB8IAAAhCAcASQgAAEsIAgBPCAIAVggCAFwIBAB5CAcAqQgLAL0ICQDLCBIA5ggEAO8IBQD6CCEAKAkBADYJAACHCQAAoAkAAKUJEAC6CQsA1gkAAN4JAQDsCQEA7wkAAPIJAAD2CQcAIQoCACUKAgAzCgEAQQoCAEsKAABOCgAAUQoHAGIKAACDCgIAhwoBAIoKAACWCgEApQoBAKgKAACrCgAArgoHANsKAgDfCgIA7QoBAPsKAQD+CgAAAQsAAAULAAAHCwYAFAsCACwLAAA0CwIAOAsCAD8LAgBDCwEARwsHAFALDACNCwMAqQsXAC4MBwBCDDAAfwwBAI0MJQC/DD0AFQ0KACwNBQA+DWkAwA0BAM4NAwDeDQAA9w0IAPAOBwAEDwAAKQ8BADcPAQBFDygAeg8yALkPJgAEEAMAFBAAABcQAgAgEAAALRAFAE4QAQBTEAgAYhAKAHAQBwB+EAIAhBACAIoQFwCrEAMAshAAAAERAAAIEQ4AGhEMACoRCAA/EQEAQhEBAEoRAQBXEQIAXxEBAGIRBQBwEQEAdhEHAJ4RAAChEQAAoxEFAKoRAgA="}],\ -["cairo_native_compile",{"t":"PFPGNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","attr","augment_args","augment_args_for_update","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","fixed","fixed","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","output_library","output_mlir","path","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","replace_ids","resetting","resetting","rgb","rgb","single_file","strike","strike","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow"],"q":[[0,"cairo_native_compile"],[190,"dyn_clone::sealed"],[191,"yansi::attr_quirk"],[192,"yansi::paint"],[193,"clap_builder::builder::command"],[194,"yansi::color"],[195,"core::fmt"],[196,"clap_builder::parser::matches::arg_matches"],[197,"clap_builder"],[198,"core::result"],[199,"clap_builder::util::id"],[200,"core::option"],[201,"cairo_lang_semantic::substitution"],[202,"alloc::vec"],[203,"alloc::collections::vec_deque"],[204,"cairo_lang_utils::ordered_hash_map"],[205,"alloc::boxed"],[206,"anyhow"],[207,"clap_builder::builder::possible_value"],[208,"core::any"],[209,"yansi::condition"]],"i":[9,0,9,0,9,14,9,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,9,9,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,14,9,14,9,9,9,9,9,9,9,14,14,14,14,14,14,14,9,14,9,14,9,14,9,14,9,14,0,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,14,14,9,14,9,14,9,14,9,14,14,9,14,9,14,14,9,14,9,9,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,9,14,9,14,9,14,9,14,9,14],"f":"````{{{b{c}}d}f{}}`{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{ll}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`c}}{b{A`{Bj{e}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{e}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bhi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bn{eg}}}}}{{Bb{Bhi}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bb{Bhi}}}{}{}{}{}}2631405{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{{b{c}}Af}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}03333````33{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}04444`4411`44{{{b{c}}}e{}{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}{{}{{b{{Cl{Ab}}}}}}>>{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0>>>>>>","D":"A@d","p":[[1,"reference"],[5,"Private",190],[1,"unit"],[6,"Attribute",191],[5,"Painted",192],[5,"Command",193],[6,"Color",194],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",195],[8,"Result",195],[5,"Args",0],[5,"ArgMatches",196],[8,"Error",197],[6,"Result",198],[5,"Id",199],[6,"Option",200],[6,"RewriteResult",201],[5,"Vec",202],[5,"VecDeque",203],[5,"OrderedHashMap",204],[5,"Box",205],[1,"tuple"],[8,"Result",206],[6,"Quirk",191],[5,"PossibleValue",207],[5,"TypeId",208],[1,"slice"],[5,"Condition",209]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADwADQAAAAEAAwACAAkAAQAVAAMALQAEADYAAwA8AAEAQgABAEYAAQBKABAAZQAAAKQABwCuAAgA"}],\ +["cairo_native",{"t":"PPPPPPPPPPPPPGPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNHNNCNNCNNNNNNNNCNNNNNNNNNNNNCCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNCNNNNNNNNNNOOOOOOOOOPEPEGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCCCCCCCCPPPPPGPPPGPPPPPPPPPPPPPPPPPPIPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOFFFNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNOONNNOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNCNNNNNNNNNNNNNNNNNNNCNNNNNCCCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNCNNNNNNNNNNNFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFFGFPNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFPFFFPFSFFKIFFFNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHMNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNMNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNMNMNMNMNMNMNMNMNMNONNNNNNNNNMNOOOMNMNNNNNNNNNNNNNONNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNFFFNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNJFJSNNNNNNNNNNNNNNNNNNHNNNNNHNHHNNNNNNNNNHHHNHHHNNNNHHNNNNNNNNNNNNHNNNCNNNNNNNNNNNNNNNNNNNNHNNNNHNNHNNNNNNNNNNNNNNNH","n":["Aggressive","Array","BoundedInt","Bytes31","Default","EcPoint","EcState","Enum","Felt252","Felt252Dict","Less","None","Null","OptLevel","Secp256K1Point","Secp256R1Point","Sint128","Sint16","Sint32","Sint64","Sint8","Struct","Uint128","Uint16","Uint32","Uint64","Uint8","Value","__clone_box","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","cache","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","compare","compile","conceal","conceal","context","cyan","cyan","debug","default","deref","deref","deref_mut","deref_mut","deserialize","dim","dim","docs","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error","execution_result","executor","fg","fg","fixed","fixed","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","green","green","hash","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","mask","mask","metadata","module","module_to_object","object_to_shared_lib","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","partial_cmp","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","serialize","starknet","starknet_stub","strike","strike","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","utils","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","debug_name","debug_name","debug_name","fields","range","tag","value","value","value","Aot","AotProgramCache","Jit","JitProgramCache","ProgramCache","aot","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","from","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","jit","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AotProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","JitProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","context","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeContext","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile","conceal","context","cyan","default","deref","deref_mut","dim","drop","eq","equivalent","equivalent","equivalent","equivalent","fg","fixed","fmt","from","green","init","initialize_mlir","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","libfunc_to_name","section01","section02","section03","section04","section05","section06","section07","section08","BadTypeInfo","BadTypeInit","BoundedIntOutOfRange","Cast","Compiler","CompilerError","ConstDataMismatch","EditStateError","Err","Error","GasMetadataError","ImpossibleCircuit","IntegerConversion","IntegerLikeTypeExpected","IoError","LLVMCompileError","LayoutError","LayoutErrorPolyfill","LibraryLoadError","LinkError","MissingMetadata","MissingParameter","MissingSyscallHandler","MlirError","Ok","ParseAttributeError","ProgramRegistryErrorBoxed","Range","Result","SerdeJsonError","SierraAssert","SierraAssertError","TryFromIntError","UnexpectedValue","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","make_missing_parameter","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","source","strike","strike","strike","to_smolstr","to_smolstr","to_smolstr","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","range","value","ranges","BuiltinStats","ContractExecutionResult","ExecutionResult","__clone_box","__clone_box","__clone_box","attr","attr","attr","bg","bg","bg","bitwise","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","builtin_stats","circuit_add","circuit_mul","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","conceal","conceal","conceal","cyan","cyan","cyan","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","dim","dim","dim","drop","drop","drop","ec_op","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error_msg","failure_flag","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","from_execution_result","green","green","green","hash","hash","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","partial_cmp","partial_cmp","pedersen","poseidon","primary","primary","primary","quirk","quirk","quirk","range_check","range_check_96","rapid_blink","rapid_blink","rapid_blink","red","red","red","remaining_gas","remaining_gas","resetting","resetting","resetting","return_value","return_values","rgb","rgb","rgb","segment_arena","serialize","serialize","serialize","strike","strike","strike","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","AotContractExecutor","AotNativeExecutor","JitNativeExecutor","__clone_box","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","drop","fg","fg","fg","find_function_ptr","find_function_ptr","find_function_ptr","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","from_native_module","from_native_module","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","invoke_contract_dynamic","invoke_contract_dynamic","invoke_dynamic","invoke_dynamic","invoke_dynamic_with_syscall_handler","invoke_dynamic_with_syscall_handler","italic","italic","italic","linger","linger","linger","load","magenta","magenta","magenta","mask","mask","mask","module","new","new","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","program_registry","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run","save","strike","strike","strike","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","MetadataStorage","attr","auto_breakpoint","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_utils","default","deref","deref_mut","dim","drop","drop_overrides","dup_overrides","enum_snapshot_variants","fg","fixed","fmt","from","gas","get","get_mut","get_or_insert_with","green","init","insert","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc_bindings","red","remove","resetting","rgb","runtime_bindings","strike","tail_recursion","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AutoBreakpoint","BreakpointEvent","EnumInit","__clone_box","__clone_box","add_event","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","conceal","conceal","cyan","cyan","default","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fg","fg","fixed","fixed","fmt","fmt","from","from","green","green","has_event","hash","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","mask","mask","maybe_breakpoint","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","strike","strike","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","type_id","variant_idx","DebugUtils","attr","bg","black","blink","blue","bold","borrow","borrow_mut","breakpoint_marker","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_breakpoint_trap","debug_print","default","deref","deref_mut","dim","drop","dump_mem","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","print_felt252","print_i1","print_i128","print_i32","print_i64","print_i8","print_pointer","quirk","rapid_blink","red","register_impls","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DropOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DupOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","EnumSnapshotVariantsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","from","get_variants","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","set_mapping","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ApChangeError","CostError","GasCost","GasMetadata","GasMetadataError","MetadataComputationConfig","NotEnoughGas","__clone_box","__clone_box","__clone_box","ap_change_info","attr","attr","attr","attr","bg","bg","bg","bg","black","black","black","black","blink","blink","blink","blink","blue","blue","blue","blue","bold","bold","bold","bold","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright","bright_black","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","compare","conceal","conceal","conceal","conceal","cyan","cyan","cyan","cyan","default","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","dim","dim","dim","dim","drop","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fg","fg","fg","fg","fixed","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","function_set_costs","gas_info","get_gas_cost_for_statement","get_gas_cost_for_statement_and_cost_token_type","get_initial_available_gas","green","green","green","green","hash","init","init","init","init","initial_required_gas","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","into","invert","invert","invert","invert","italic","italic","italic","italic","linear_ap_change_solver","linear_gas_solver","linger","linger","linger","linger","magenta","magenta","magenta","magenta","mask","mask","mask","mask","new","on_black","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","on_yellow","partial_cmp","primary","primary","primary","primary","quirk","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","rapid_blink","red","red","red","red","resetting","resetting","resetting","resetting","rgb","rgb","rgb","rgb","source","strike","strike","strike","strike","to_owned","to_owned","to_owned","to_smolstr","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","underline","underline","underline","underline","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","vzip","whenever","whenever","whenever","whenever","white","white","white","white","wrap","wrap","wrap","wrap","yellow","yellow","yellow","yellow","gas","ReallocBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","free","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","RuntimeBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dict_drop","dict_dup","dict_gas_refund","dict_get","dict_insert","dict_new","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","libfunc_debug_print","libfunc_ec_point_from_x_nz","libfunc_ec_point_try_new_nz","libfunc_ec_state_add","libfunc_ec_state_add_mul","libfunc_ec_state_init","libfunc_ec_state_try_finalize_nz","libfunc_hades_permutation","libfunc_pedersen","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vtable_cheatcode","vzip","whenever","white","wrap","yellow","TailRecursionMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","depth_counter","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","recursion_target","red","resetting","return_target","rgb","set_return_target","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeModule","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get_metadata","green","init","insert_metadata","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","mask","metadata","module","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","program_registry","quirk","rapid_blink","red","remove_metadata","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ArrayAbi","BlockInfo","DummySyscallHandler","Err","ExecutionInfo","ExecutionInfoV2","Felt252Abi","Ok","ResourceBounds","SYSCALL_HANDLER_VTABLE","Secp256k1Point","Secp256r1Point","StarknetSyscallHandler","SyscallResult","TxInfo","TxV2Info","U256","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","account_contract_address","account_contract_address","account_deployment_data","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","attr","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","bg","black","black","black","black","black","black","black","black","black","black","black","black","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","blink","block_info","block_info","block_number","block_timestamp","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","bold","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","bright_yellow","cairo_native__vtable_cheatcode","call_contract","call_contract","caller_address","caller_address","capacity","chain_id","chain_id","cheatcode","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","conceal","contract_address","contract_address","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","cyan","default","default","default","deploy","deploy","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","dim","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","emit_event","emit_event","entry_point_selector","entry_point_selector","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fee_data_availability_mode","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fg","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","get_block_hash","get_block_hash","get_execution_info","get_execution_info","get_execution_info_v2","get_execution_info_v2","green","green","green","green","green","green","green","green","green","green","green","green","hash","hash","hash","hash","hash","hash","hash","hash","hash","hi","init","init","init","init","init","init","init","init","init","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","into","into","into","into","into","into","into","into","into","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","invert","is_infinity","is_infinity","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","italic","keccak","keccak","library_call","library_call","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","linger","lo","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","magenta","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","mask","max_amount","max_fee","max_fee","max_price_per_unit","new","new","nonce","nonce","nonce_data_availability_mode","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","on_yellow","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","paymaster_data","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","primary","ptr","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","rapid_blink","red","red","red","red","red","red","red","red","red","red","red","red","replace_class","replace_class","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resetting","resource","resource_bounds","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","rgb","secp256k1_add","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_get_xy","secp256k1_mul","secp256k1_mul","secp256k1_new","secp256k1_new","secp256r1_add","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_get_xy","secp256r1_mul","secp256r1_mul","secp256r1_new","secp256r1_new","send_message_to_l1","send_message_to_l1","sequencer_address","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","sha256_process_block","sha256_process_block","signature","signature","since","storage_read","storage_read","storage_write","storage_write","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","strike","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transaction_hash","transaction_hash","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_info","tx_info","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","underline","until","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","upcast_mut","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","whenever","white","white","white","white","white","white","white","white","white","white","white","white","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","wrap","x","x","y","y","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","ContractLogs","StubEvent","StubSyscallHandler","__clone_box","__clone_box","__clone_box","attr","attr","attr","bg","bg","bg","big4int_to_u256","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","call_contract","cheatcode","clear","clear","clear","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","conceal","conceal","conceal","cyan","cyan","cyan","data","decode_felts_as_str","default","default","deploy","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","drop","drop","drop","emit_event","encode_str_as_felts","events","events","execution_info","fg","fg","fg","fixed","fixed","fixed","fmt","fmt","fmt","from","from","from","get_block_hash","get_execution_info","get_execution_info_v2","green","green","green","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","keccak","keys","l2_to_l1_messages","library_call","linger","linger","linger","logs","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","replace_class","resetting","resetting","resetting","rgb","rgb","rgb","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_mul","secp256k1_new","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_mul","secp256r1_new","send_message_to_l1","sha256_process_block","storage","storage_read","storage_write","strike","strike","strike","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","u256_to_biguint","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","HALF_PRIME","LayoutError","PRIME","SHARED_LIBRARY_EXT","__clone_box","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","cairo_to_sierra","clear","clone","clone_into","clone_to_uninit","conceal","create_engine","cyan","debug_with","decode_error_message","deref","deref_mut","dim","drop","eq","equivalent","equivalent","equivalent","equivalent","felt252_bigint","felt252_short_str","felt252_str","fg","find_entry_point","find_entry_point_by_idx","find_function_id","fixed","fmt","fmt","from","generate_function_name","get_integer_layout","green","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","layout_repeat","linger","magenta","mask","mem_tracing","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","padding_needed_for","primary","quirk","rapid_blink","red","register_runtime_symbols","resetting","rgb","run_pass_manager","strike","to_owned","to_smolstr","to_string","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","report_stats"],"q":[[0,"cairo_native"],[249,"cairo_native::Value"],[258,"cairo_native::cache"],[348,"cairo_native::cache::aot"],[433,"cairo_native::cache::jit"],[519,"cairo_native::context"],[611,"cairo_native::debug"],[612,"cairo_native::docs"],[620,"cairo_native::error"],[920,"cairo_native::error::CompilerError"],[922,"cairo_native::error::SierraAssertError"],[923,"cairo_native::execution_result"],[1233,"cairo_native::executor"],[1503,"cairo_native::metadata"],[1601,"cairo_native::metadata::auto_breakpoint"],[1786,"cairo_native::metadata::auto_breakpoint::BreakpointEvent"],[1788,"cairo_native::metadata::debug_utils"],[1883,"cairo_native::metadata::drop_overrides"],[1966,"cairo_native::metadata::dup_overrides"],[2049,"cairo_native::metadata::enum_snapshot_variants"],[2133,"cairo_native::metadata::gas"],[2517,"cairo_native::metadata::gas::GasMetadataError"],[2518,"cairo_native::metadata::realloc_bindings"],[2603,"cairo_native::metadata::runtime_bindings"],[2702,"cairo_native::metadata::tail_recursion"],[2789,"cairo_native::module"],[2878,"cairo_native::starknet"],[4115,"cairo_native::starknet_stub"],[4414,"cairo_native::utils"],[4529,"cairo_native::utils::mem_tracing"],[4530,"dyn_clone::sealed"],[4531,"yansi::attr_quirk"],[4532,"yansi::paint"],[4533,"yansi::color"],[4534,"cairo_native::ffi"],[4535,"cairo_native::values"],[4536,"core::cmp"],[4537,"melior::context"],[4538,"melior::ir::module"],[4539,"cairo_lang_sierra::program"],[4540,"cairo_lang_sierra::extensions::core"],[4541,"cairo_lang_sierra::program_registry"],[4542,"melior::ir::attribute"],[4543,"core::result"],[4544,"serde::de"],[4545,"core::fmt"],[4546,"core::convert"],[4547,"alloc::vec"],[4548,"starknet_types_core::felt"],[4549,"core::clone"],[4550,"core::hash"],[4551,"cairo_lang_semantic::substitution"],[4552,"alloc::boxed"],[4553,"cairo_lang_utils::ordered_hash_map"],[4554,"alloc::collections::vec_deque"],[4555,"core::option"],[4556,"std::path"],[4557,"serde::ser"],[4558,"core::any"],[4559,"yansi::condition"],[4560,"cairo_native::executor::aot"],[4561,"alloc::sync"],[4562,"cairo_native::executor::jit"],[4563,"serde_json::error"],[4564,"cairo_lang_sierra::edit_state"],[4565,"core::num::error"],[4566,"core::alloc::layout"],[4567,"melior::error"],[4568,"std::io::error"],[4569,"libloading::error"],[4570,"cairo_lang_sierra::ids"],[4571,"core::error"],[4572,"smol_str"],[4573,"alloc::string"],[4574,"cairo_native::executor::contract"],[4575,"core::ffi"],[4576,"libloading::safe"],[4577,"core::ops::function"],[4578,"melior::ir::block"],[4579,"melior::ir::location"],[4580,"melior::ir::value"],[4581,"melior::execution_engine"],[4582,"cairo_lang_sierra_ap_change"],[4583,"cairo_lang_sierra_gas"],[4584,"cairo_lang_sierra::extensions::modules::gas"],[4585,"melior::ir::operation"],[4586,"ark_ff::biginteger"],[4587,"num_bigint::biguint"],[4588,"num_bigint::bigint"],[4589,"alloc::borrow"],[4590,"cairo_native::compiler"]],"i":[8,9,9,9,8,9,9,9,9,9,8,8,9,0,9,9,9,9,9,9,9,9,9,9,9,9,9,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,0,8,9,8,9,8,9,8,8,9,8,8,0,8,9,0,8,9,0,8,8,9,8,9,9,8,9,0,8,9,8,9,8,8,8,8,9,9,9,9,0,0,0,8,9,8,9,8,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,8,8,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,8,9,8,9,8,9,8,9,8,9,8,9,0,0,0,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,9,0,0,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,0,8,9,8,9,8,9,8,9,8,9,143,144,145,143,146,144,144,145,146,55,0,55,0,0,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,0,0,0,0,0,0,0,0,0,69,69,70,69,20,0,20,20,49,0,20,69,20,20,20,20,20,20,20,20,20,20,20,20,49,20,20,69,0,20,20,0,20,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,69,70,70,20,20,20,20,20,20,20,20,20,20,20,20,20,69,70,20,69,70,20,69,70,20,20,20,20,20,20,20,69,69,69,69,69,69,69,70,70,70,70,70,70,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,20,69,70,147,147,148,0,0,0,85,86,87,85,86,87,85,86,87,85,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,86,85,85,85,86,87,85,86,87,85,86,87,85,85,86,87,85,87,85,87,85,86,87,85,86,87,85,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,85,86,87,85,85,85,85,86,86,86,86,87,87,87,87,87,87,85,86,87,85,86,87,85,86,87,85,86,87,87,85,86,87,85,87,85,86,87,85,85,85,85,85,85,85,86,86,86,86,86,86,86,87,87,87,87,87,87,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,87,85,85,85,86,87,85,86,87,85,85,85,86,87,85,86,87,86,87,85,86,87,86,87,85,86,87,85,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,85,86,87,0,0,0,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,65,62,88,65,62,88,65,65,65,65,65,65,65,62,62,62,62,62,62,62,88,88,88,88,88,88,88,65,62,88,65,62,88,65,62,65,62,65,62,65,62,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,88,88,65,62,88,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,65,62,88,0,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,17,17,0,0,0,17,17,17,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,17,0,17,0,17,17,17,17,17,17,17,17,17,17,17,0,0,99,99,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,98,99,98,99,98,99,98,99,98,99,99,99,99,99,99,98,99,98,99,98,99,98,99,98,98,99,99,98,99,99,99,99,99,99,99,98,98,98,98,98,98,98,99,98,99,98,99,98,99,98,99,98,99,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,149,149,0,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,0,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,71,71,0,0,0,0,71,93,108,109,93,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,93,108,109,93,108,108,109,108,108,93,108,109,71,93,108,109,71,93,109,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,71,93,93,93,93,108,108,108,108,71,71,71,71,93,108,109,71,93,108,109,71,93,108,109,71,71,93,108,109,71,71,71,109,93,93,93,93,93,108,109,71,108,93,108,109,71,93,93,93,93,93,93,93,93,108,108,108,108,108,108,108,109,109,109,109,109,109,109,71,71,71,71,71,71,71,93,108,109,71,93,108,109,71,93,108,109,71,109,109,93,108,109,71,93,108,109,71,93,108,109,71,93,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,108,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,71,93,108,109,71,93,108,109,71,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,93,108,109,71,150,0,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,0,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,0,122,0,0,0,122,0,0,0,0,0,0,0,0,0,120,124,125,126,127,128,129,130,131,132,127,130,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,125,126,129,129,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,0,91,123,125,126,121,127,130,91,123,121,120,124,125,126,127,128,129,130,131,132,120,124,125,126,127,128,129,130,131,132,120,124,125,126,127,128,129,130,131,132,120,124,124,125,126,127,128,128,129,129,130,131,131,132,132,124,125,126,127,128,129,130,124,125,126,127,128,129,130,123,121,120,124,125,126,127,128,129,130,131,132,125,126,123,121,120,124,125,126,127,128,129,130,131,132,124,131,132,91,123,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,125,126,124,125,126,127,128,129,130,131,132,124,124,124,124,125,125,125,125,126,126,126,126,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,130,131,131,131,131,132,132,132,132,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,131,132,124,123,121,120,124,125,126,127,128,129,130,131,132,123,123,123,123,123,123,123,121,121,121,121,121,121,121,120,120,120,120,120,120,120,124,124,124,124,124,124,124,125,125,125,125,125,125,125,126,126,126,126,126,126,126,127,127,127,127,127,127,127,128,128,128,128,128,128,128,129,129,129,129,129,129,129,130,130,130,130,130,130,130,131,131,131,131,131,131,131,132,132,132,132,132,132,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,124,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,128,127,130,128,131,132,127,130,127,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,124,125,126,127,128,129,130,127,123,121,120,124,125,126,127,128,129,130,131,132,121,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,91,123,123,121,120,124,125,126,127,128,129,130,131,132,128,127,123,121,120,124,125,126,127,128,129,130,131,132,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,91,123,129,124,125,126,127,128,129,130,131,132,91,123,127,130,121,91,123,91,123,123,121,120,124,125,126,127,128,129,130,131,132,127,120,124,125,126,127,128,129,130,131,132,127,130,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,125,126,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,121,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,127,130,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,123,121,120,124,125,126,127,128,129,130,131,132,131,132,131,132,123,121,120,124,125,126,127,128,129,130,131,132,0,0,0,134,135,136,134,135,136,134,135,136,0,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,135,0,134,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,0,134,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,134,134,134,135,136,134,135,136,134,134,134,134,134,134,134,135,135,135,135,135,135,135,136,136,136,136,136,136,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,135,136,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,134,135,136,134,135,136,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,0,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,134,135,136,0,0,0,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,75,75,75,75,75,0,75,0,0,75,75,75,75,75,75,75,75,75,0,0,0,75,0,0,0,75,75,75,75,0,0,75,75,75,75,75,75,75,75,75,75,75,75,0,75,75,75,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,75,75,75,75,0,75,75,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0],"f":"````````````````````````````{{{b{c}}d}f{}}0{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}l}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0222222222222222222`22{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{c}}{b{ne}}}f{}{}}0{{{b{c}}}f{}}00{{{b{A`}}{b{A`}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}{{{b{Af}}{b{Ah}}{b{Aj}}{b{{B`{AlAn}}}}{b{nBb}}BdBf}{{Bj{fBh}}}}99`99`{{}A`}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ab}}}Bn}==`{Blf}0{{{b{A`}}{b{A`}}}Bf}{{{b{Ab}}{b{Ab}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}0000000```{{{b{c}}l}{{j{{b{e}}}}}{}{}}0{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0{{{b{A`}}{b{nCb}}}Cd}{{{b{Ab}}{b{nCb}}}Cd}{BlA`}{cc{}}{C`A`}{CfAb}{{{Ch{c}}}Ab{{Cj{Ab}}}}{{{Cl{c}}}Ab{{Cj{Ab}}}}{CnAb}{D`Ab}{DbAb}{DdAb}{DfAb}{DhAb}{DjAb}{DlAb}{{{b{{Dn{c}}}}}Ab{{Cj{Ab}}E`}}={C`Ab}{EbAb}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{A`}}{b{nc}}}fEd}{{}Bl}0{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}0165432{ce{}{}}0::::::::::``{{{b{Ah}}A`}{{Fb{{Cl{C`}}}}}}{{{b{{Dn{C`}}}}{b{Fd}}}{{Fb{f}}}}<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0========{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}0>>>>{{{b{A`}}{b{A`}}}{{F`{Ad}}}}??{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000033{{{b{Ab}}c}BjFh}``11{{{b{c}}}e{}{}}0{c{{Bj{e}}}{}{}}000{{{b{c}}}Fj{}}044{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0`=={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}0777777```````````````{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}999943999999999999{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}};{Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Fn{c}}}}{b{nCb}}}Cd{G`GbGdGf}}{{{Gh{c}}}{{Fn{c}}}{G`GbGd}}{cc{}}{{{Gj{c}}}{{Fn{c}}}{G`GbGd}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}99`999999999999999>9999{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}:::{{{b{c}}Ff}{{j{{b{e}}}}}{}{}};;;1;{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}={{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}6{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}2222542222222222{{{b{n{Gj{c}}}}c{b{Aj}}A`}{{Gn{Gl}}}{G`GbGd}}33{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Gj{c}}}}{b{nCb}}}Cd{G`GbGd}}{cc{}}{{{b{{Gj{c}}}}{b{c}}}{{F`{{Gn{Gl}}}}}{G`GbGd}}:{{}Bl}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{{b{H`}}}{{Gj{c}}}{G`GbGd}}111111111111>1111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}222{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}33313{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}::::43::::::::::{{{b{n{Gh{c}}}}c{b{Aj}}A`}{{Gn{Hb}}}{GbGdG`}};{{{b{{Gh{c}}}}}{{b{H`}}}{GbGdG`}}<{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}>{Blf}5{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{{Gh{c}}}}{b{nCb}}}Cd{GbGdG`}}{cc{}}{{{b{{Gh{c}}}}{b{c}}}{{F`{{Gn{Hb}}}}}{GbGdG`}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}99999{{{b{H`}}}{{Gh{c}}}{GbGdG`}}::::::::::::>::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;;{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}<<<1<{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}>{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}7{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}2222542222222222{{{b{H`}}{b{Aj}}Bf}{{Bj{HdBh}}}}3{{{b{H`}}}{{b{Af}}}}4{{}H`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}{{{b{H`}}{b{H`}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}0008{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{H`}}{b{nCb}}}Cd}{cc{}}={{}Bl}{{}Af}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{}H`}111111111111>1111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}222{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}33313{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888{{{b{Hf}}}{{b{Hh}}}}``````````````````````````````````````````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00;;;;;;;;;;;;555444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00==={Blf}00333{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Bh}}{b{nCb}}}Cd}0{{{b{Hj}}{b{nCb}}}Cd}0{{{b{Hl}}{b{nCb}}}Cd}0{HjBh}{HnBh}{I`Bh}{IbBh}{{{Ej{Id}}}Bh}{cc{}}{IfBh}{IhBh}{HlBh}{IjBh}{IlBh}{InBh}{J`Bh}77{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}36510426240135{ce{}{}}00999999999999{{{b{Jb}}}Bh}:::::::::::::::::::::::::::::::::::::::{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00;;;;;;;;;;;;{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00<<<<<<<<<{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00=========111{{{b{Bh}}}{{F`{{b{Jd}}}}}}>>>{{{b{c}}}Jf{}}00{{{b{c}}}Jh{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00<<<{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00333333333``````{{{b{c}}d}f{}}00{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00`666666666666555444666666666666666666666666666```666{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{Jn}}}Jn}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}000{{{b{Jj}}{b{Jj}}}Ad}{{{b{Jn}}{b{Jn}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}0>>>>>>{{}Jj}{{}Jn}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00{c{{Bj{Jj}}}Bn}{c{{Bj{Jl}}}Bn}{c{{Bj{Jn}}}Bn}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{Blf}00`{{{b{Jj}}{b{Jj}}}Bf}{{{b{Jl}}{b{Jl}}}Bf}{{{b{Jn}}{b{Jn}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000``{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Jj}}{b{nCb}}}Cd}{{{b{Jl}}{b{nCb}}}Cd}{{{b{Jn}}{b{nCb}}}Cd}{cc{}}00{Jl{{Bj{JnBh}}}}<<<{{{b{Jj}}{b{nc}}}fEd}{{{b{Jn}}{b{nc}}}fEd}{{}Bl}00{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}04563121234650{ce{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000000000000000000000000000000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00111111111111{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00222222{{{b{Jj}}{b{Jj}}}{{F`{Ad}}}}{{{b{Jn}}{b{Jn}}}{{F`{Ad}}}}``444{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00``555555``555``333`{{{b{Jj}}c}BjFh}{{{b{Jl}}c}BjFh}{{{b{Jn}}c}BjFh}888{{{b{c}}}e{}{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00;;;{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00>>>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00>>>>>>>>>```{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000666555000000000000000000000000000000{{{b{K`}}}K`}{{{b{c}}{b{ne}}}f{}{}}{{{b{c}}}f{}}333333{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00555{Blf}0{{{b{nK`}}}f}1888{{{b{Hb}}{b{Kb}}}Kd}{{{b{Gl}}{b{Kb}}}Kd}{{{b{K`}}{b{Kb}}Bf}{{Fb{Kd}}}}{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{Hb}}{b{nCb}}}Cd}{{{b{Gl}}{b{nCb}}}Cd}{{{b{K`}}{b{nCb}}}Cd}{cc{}}00{{HdA`}Hb}{{HdA`}Gl}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}02135646401235{ce{}{}}00999{{{b{Hb}}{b{Kb}}{b{{Dn{Dd}}}}{F`{Dl}}c}{{Bj{JnBh}}}Kf}{{{b{Gl}}{b{Kb}}{b{{Dn{Dd}}}}{F`{Dl}}c}{{Bj{JnBh}}}Kf}{{{b{Hb}}{b{Kb}}{b{{Dn{Ab}}}}{F`{Dl}}}{{Bj{JlBh}}}}{{{b{Gl}}{b{Kb}}{b{{Dn{Ab}}}}{F`{Dl}}}{{Bj{JlBh}}}}{{{b{Hb}}{b{Kb}}{b{{Dn{Ab}}}}{F`{Dl}}c}{{Bj{JlBh}}}Kf}{{{b{Gl}}{b{Kb}}{b{{Dn{Ab}}}}{F`{Dl}}c}{{Bj{JlBh}}}Kf}??????{{{b{Fd}}}{{Fb{K`}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000{{{b{Hb}}}{{b{Ah}}}}{{Kh{B`{AlAn}}Kj}Gl}{{{b{Aj}}A`}{{Fb{K`}}}}333333333333333333333333333333333333{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00444444444444{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00555555555{{{b{Hb}}}{{b{{B`{AlAn}}}}}}{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00777777777222{{{b{K`}}{b{Kb}}{b{{Dn{Dd}}}}{F`{Dl}}c}{{Fb{Jn}}}Kf}{{{b{nK`}}c}{{Fb{f}}}{{Kl{Fd}}}}999{{{b{c}}}e{}{}}{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00<<<{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00{ce{}{}}00{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000`{{{b{c}}h}{{j{{b{e}}}}}{}{}}`{{{b{c}}l}{{j{{b{e}}}}}{}{}}222265222222222222`{{}Bb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}```4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Bb}}{b{nCb}}}Cd}{cc{}}`{{{b{Bb}}}{{F`{{b{c}}}}}Kn}{{{b{nBb}}}{{F`{{b{nc}}}}}Kn}{{{b{nBb}}e}{{b{nc}}}Kn{{Lb{}{{L`{c}}}}}}<{{}Bl}{{{b{nBb}}c}{{F`{{b{nc}}}}}Kn}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000{{}Bb}111111111111{{{b{c}}C`}{{j{{b{e}}}}}{}{}}2222{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}333{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}4`4{{{b{nBb}}}{{F`{c}}}Kn}52`5`{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}7{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}:{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}:::```{{{b{c}}d}f{}}0{{{b{nLd}}Lf}f}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}l}{{j{{b{e}}}}}{}{}}0>>>>>>>>6655>>>>>>>>>>>>>>>>>>>>{{{b{Lf}}}Lf}{{{b{Ld}}}Ld}{{{b{c}}{b{ne}}}f{}{}}0{{{b{c}}}f{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{}Ld}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}033{Blf}0{{{b{Lf}}{b{Lf}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}000;;{{{b{c}}C`}{{j{{b{e}}}}}{}{}}0{{{b{Lf}}{b{nCb}}}Cd}{{{b{Ld}}{b{nCb}}}Cd}{cc{}}0::{{{b{Ld}}{b{Lf}}}Bf}{{{b{Lf}}{b{nc}}}fEd}{{}Bl}0{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}3504261{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000000000{{{b{Ld}}{b{Lh}}Lj{b{Bb}}{b{Lf}}}{{Bj{fBh}}}}111111111111111111111111{{{b{c}}C`}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}0333333{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}04444441144{{{b{c}}}e{}{}}0{c{{Bj{e}}}{}{}}000{{{b{c}}}Fj{}}077{{{b{c}}}{{b{e}}}{}{}}0{{{b{nc}}}{{b{ne}}}{}{}}0::{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}0::::::```{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}<<<<43{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}Lj}{{Fb{f}}}}============{{{b{Ll}}{b{Lh}}Lj}{{Fb{f}}}}{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}{b{Hh}}Lj}{{Fb{f}}}}{{}Ll}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{Blf}{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}LnBlLj}{{Fb{f}}}}9{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Ll}}{b{nCb}}}Cd}{cc{}}5{{}Bl}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}>>>>>>>>>>>>>>>>>;>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{nLl}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{f}}}}000000{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{Ll}}{b{M`}}}f}141{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}3{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}9{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}666`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}888843888888888888{{}Mb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}};{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Mb}}{b{nCb}}}Cd}{cc{}}?{{}Bl}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000000000000<0000{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}111{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}22212{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}4{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}7{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}777`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}999943999999999999{{}Md}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Md}}{b{nCb}}}Cd}{cc{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{ce{}{}}99999999999999999<9999{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}:::{{{b{c}}Ff}{{j{{b{e}}}}}{}{}};;;1;{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}={{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}6{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}222254222222222222{{}Mf}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{cc{}}{{{b{Mf}}{b{Jb}}}{{F`{{b{{Cl{Jb}}}}}}}}9{{}Bl}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000000000000<0000{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}111{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}2221{{{b{nMf}}{b{Jb}}{b{{Dn{Jb}}}}}f}3{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888```````{{{b{c}}d}f{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}000{{{b{c}}l}{{j{{b{e}}}}}{}{}}000;;;;;;;;;;;;;;;;55554444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{Kj}}}Kj}{{{b{Mh}}}Mh}{{{b{Mj}}}Mj}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}000{{{b{Mh}}{b{Mh}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}Kj}{{}Mj}{Bl{{b{c}}}{}}000{Bl{{b{nc}}}{}}0004444{Blf}000{{{b{Kj}}{b{Kj}}}Bf}{{{b{Mh}}{b{Mh}}}Bf}{{{b{Hn}}{b{Hn}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000{{{b{c}}l}{{j{{b{e}}}}}{}{}}000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}000{{{b{Kj}}{b{nCb}}}Cd}{{{b{Mh}}{b{nCb}}}Cd}{{{b{Mj}}{b{nCb}}}Cd}{{{b{Hn}}{b{nCb}}}Cd}0{cc{}}000{MlHn}{MnHn}``{{{b{Kj}}N`}{{F`{Dl}}}}{{{b{Kj}}N`Nb}{{F`{Dl}}}}{{{b{Kj}}{b{Kb}}{F`{Dl}}}{{Bj{DlHn}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{{b{Mh}}{b{nc}}}fEd}{{}Bl}000{{{b{Kj}}{b{Kb}}}{{F`{Dl}}}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}045621350431264105632{ce{}{}}000;;;;;;;;``;;;;;;;;;;;;{{{b{Aj}}{F`{Mj}}}{{Bj{KjHn}}}}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}C`}{{j{{b{e}}}}}{}{}}000================{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}000>>>>>>>>{{{b{Mh}}{b{Mh}}}{{F`{Ad}}}}????{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}000{{{b{c}}}{{j{{b{e}}}}}{}{}}000000000003333{{{b{Hn}}}{{F`{{b{Jd}}}}}}1111{{{b{c}}}e{}{}}00{{{b{c}}}Jf{}}{{{b{c}}}Jh{}}{c{{Bj{e}}}{}{}}0000000{{{b{c}}}Fj{}}0006666{{{b{c}}}{{b{e}}}{}{}}000{{{b{nc}}}{{b{ne}}}{}{}}000>>>>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}000999999999999``{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}};;;;43;;;;;;;;;;;;{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}={Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Nd}}{b{nCb}}}Cd}{{{b{Af}}LnLj}Nf}{cc{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}99999{{{b{Af}}{b{Ah}}}Nd}::::::::::::>::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;;{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}<{{{b{Af}}LnLnLj}Nf}==2={c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}?{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}8{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}222254222222222222{{}Nh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}Ln{F`{Ln}}Lj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLj}{{Fb{Ln}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{Nj}}}}1{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}Lj}{{Fb{Ln}}}}:{Blf}9{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Nh}}{b{nCb}}}Cd}{cc{}}>{{}Bl}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Ln}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLj}{{Fb{Nj}}}}0{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLj}{{Fb{Nj}}}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LnLnLnLj}{{Fb{Nj}}}}2100444444444444444{{{b{c}}C`}{{j{{b{e}}}}}{}{}}5555{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}666{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}77717{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}9{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}{{{b{nNh}}{b{Af}}{b{Ah}}{b{Lh}}LjLnLnLn}{{Fb{Nj}}}}={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}===`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}????54????????????{{{b{Nl}}}Ln}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{Blf}5?{{{b{Nl}}{b{nCb}}}Cd}{cc{}}3{{}Bl}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}<<<<<{{Ln{b{Lh}}}Nl}============{{{b{c}}C`}{{j{{b{e}}}}}{}{}}>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{{b{Nl}}}Nn}11{{{b{Nl}}}{{F`{Nn}}}}4{{{b{nNl}}{b{Lh}}}f}3{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}5{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}<{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}888`{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}}::::43::::::::::::{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}3{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{Hd}}{b{nCb}}}Cd}{cc{}}{{{b{Hd}}}{{F`{{b{c}}}}}Kn}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nHd}}c}{{F`{{b{nc}}}}}Kn}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}:::::{{{b{Hd}}}{{b{Bb}}}}{{{b{Hd}}}{{b{Ah}}}}{{Ah{B`{AlAn}}Bb}Hd}============{{{b{c}}C`}{{j{{b{e}}}}}{}{}}>>>>{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}???{{{b{Hd}}}{{b{{B`{AlAn}}}}}}{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{nHd}}}{{F`{c}}}Kn}141{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}3{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}={{{b{c}}Fl}{{j{{b{e}}}}}{}{}}666`````````````````{{{b{c}}d}f{}}000000000```{{{b{c}}h}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}l}{{j{{b{e}}}}}{}{}}00000000000999999999999999999999999````999999999999999999999999555555555555444444444444999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999{{{b{n{Ob{O`}}}}{b{O`}}{b{{Ob{O`}}}}}f}{{{b{nKf}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}}{{{b{nOf}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}}`````{{{b{nKf}}Dd{b{{Dn{Dd}}}}}{{Cl{Dd}}}}============{{{b{O`}}}O`}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{c}}{b{ne}}}f{}{}}000000000{{{b{c}}}f{}}00000000000000{{{b{Oh}}{b{Oh}}}Ad}{{{b{Oj}}{b{Oj}}}Ad}{{{b{Ol}}{b{Ol}}}Ad}{{{b{On}}{b{On}}}Ad}{{{b{A@`}}{b{A@`}}}Ad}{{{b{A@b}}{b{A@b}}}Ad}{{{b{A@d}}{b{A@d}}}Ad}{{{b{c}}{b{e}}}Ad{}{}}000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000``000000000000{{}Oh}{{}A@f}{{}A@h}{{{b{nKf}}DdDd{b{{Dn{Dd}}}}Bf{b{nDl}}}{{Od{{Eh{Dd{Cl{Dd}}}}}}}}{{{b{nOf}}DdDd{b{{Dn{Dd}}}}Bf{b{nDl}}}{{Od{{Eh{Dd{Cl{Dd}}}}}}}}{Bl{{b{c}}}{}}00000000000{Bl{{b{nc}}}{}}00000000000{c{{Bj{Oh}}}Bn}{c{{Bj{Oj}}}Bn}{c{{Bj{Ol}}}Bn}{c{{Bj{On}}}Bn}{c{{Bj{A@`}}}Bn}{c{{Bj{A@b}}}Bn}{c{{Bj{A@d}}}Bn}{c{{Bj{A@f}}}Bn}{c{{Bj{A@h}}}Bn}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{Blf}00000000000{{{b{nKf}}{b{{Dn{Dd}}}}{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}{{{b{nOf}}{b{{Dn{Dd}}}}{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}``{{{b{Oh}}{b{Oh}}}Bf}{{{b{Oj}}{b{Oj}}}Bf}{{{b{Ol}}{b{Ol}}}Bf}{{{b{On}}{b{On}}}Bf}{{{b{A@`}}{b{A@`}}}Bf}{{{b{A@b}}{b{A@b}}}Bf}{{{b{A@d}}{b{A@d}}}Bf}{{{b{A@f}}{b{A@f}}}Bf}{{{b{A@h}}{b{A@h}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}00000000000000000000000000000000000`{{{b{c}}l}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00000000000{{{b{{Ob{c}}}}{b{nCb}}}CdGf}{{{b{O`}}{b{nCb}}}Cd}{{{b{Oh}}{b{nCb}}}Cd}{{{b{Oj}}{b{nCb}}}Cd}{{{b{Ol}}{b{nCb}}}Cd}{{{b{On}}{b{nCb}}}Cd}{{{b{A@`}}{b{nCb}}}Cd}{{{b{A@b}}{b{nCb}}}Cd}{{{b{A@d}}{b{nCb}}}Cd}{{{b{A@f}}{b{nCb}}}Cd}{{{b{A@h}}{b{nCb}}}Cd}{cc{}}00000000000{{{b{nKf}}Cn{b{nDl}}}{{Od{Dd}}}}{{{b{nOf}}Cn{b{nDl}}}{{Od{Dd}}}}{{{b{nKf}}{b{nDl}}}{{Od{Oj}}}}{{{b{nOf}}{b{nDl}}}{{Od{Oj}}}}{{{b{nKf}}{b{nDl}}}{{Od{Ol}}}}{{{b{nOf}}{b{nDl}}}{{Od{Ol}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{{{b{Oh}}{b{nc}}}fEd}{{{b{Oj}}{b{nc}}}fEd}{{{b{Ol}}{b{nc}}}fEd}{{{b{On}}{b{nc}}}fEd}{{{b{A@`}}{b{nc}}}fEd}{{{b{A@b}}{b{nc}}}fEd}{{{b{A@d}}{b{nc}}}fEd}{{{b{A@f}}{b{nc}}}fEd}{{{b{A@h}}{b{nc}}}fEd}`{{}Bl}00000000000{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}45063126345021320165465042315432061564302121036451520346361204503651240654321{ce{}{}}00000000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000``000000000000{{{b{nKf}}{b{{Dn{Cn}}}}{b{nDl}}}{{Od{Oh}}}}{{{b{nOf}}{b{{Dn{Cn}}}}{b{nDl}}}{{Od{Oh}}}}{{{b{nKf}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}}{{{b{nOf}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}}444444444444`444444444444444444444444````{{DlDlDlDlBf}A@f}{{DlDlDlDlBf}A@h}```666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00000000000777777777777777777777777777777777777777777777777{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00000000000888888888888888888888888{{{b{Oh}}{b{Oh}}}{{F`{Ad}}}}{{{b{Oj}}{b{Oj}}}{{F`{Ad}}}}{{{b{Ol}}{b{Ol}}}{{F`{Ad}}}}{{{b{On}}{b{On}}}{{F`{Ad}}}}{{{b{A@`}}{b{A@`}}}{{F`{Ad}}}}{{{b{A@b}}{b{A@b}}}{{F`{Ad}}}}{{{b{A@d}}{b{A@d}}}{{F`{Ad}}}}`????????????`{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000{{{b{nKf}}Dd{b{nDl}}}{{Od{f}}}}{{{b{nOf}}Dd{b{nDl}}}{{Od{f}}}}222222222222``;;;;;;;;;;;;{{{b{nKf}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{nOf}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{nKf}}OhBf{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{nOf}}OhBf{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{nKf}}A@f{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{nOf}}A@f{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{nKf}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{nOf}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{nKf}}OhOh{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{nOf}}OhOh{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{nKf}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{nOf}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{nKf}}OhBf{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{nOf}}OhBf{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{nKf}}A@h{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{nOf}}A@h{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{nKf}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{nOf}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{nKf}}OhOh{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{nOf}}OhOh{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{nKf}}Dd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}{{{b{nOf}}Dd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}`{{{b{Oh}}c}BjFh}{{{b{Oj}}c}BjFh}{{{b{Ol}}c}BjFh}{{{b{On}}c}BjFh}{{{b{A@`}}c}BjFh}{{{b{A@b}}c}BjFh}{{{b{A@d}}c}BjFh}{{{b{A@f}}c}BjFh}{{{b{A@h}}c}BjFh}{{{b{nKf}}{b{n{Ch{Dj}}}}{b{{Ch{Dj}}}}{b{nDl}}}{{Od{f}}}}{{{b{nOf}}{b{n{Ch{Dj}}}}{b{{Ch{Dj}}}}{b{nDl}}}{{Od{f}}}}```{{{b{nKf}}DjDd{b{nDl}}}{{Od{Dd}}}}{{{b{nOf}}DjDd{b{nDl}}}{{Od{Dd}}}}{{{b{nKf}}DjDdDd{b{nDl}}}{{Od{f}}}}{{{b{nOf}}DjDdDd{b{nDl}}}{{Od{f}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000`{{{b{c}}}e{}{}}000000000``{c{{Bj{e}}}{}{}}00000000000000000000000``{{{b{c}}}Fj{}}00000000000333333333333`{{{b{c}}}{{b{e}}}{}{}}00000000000{{{b{nc}}}{{b{ne}}}{}{}}00000000000``{ce{}{}}00000000000{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00000000000777777777777777777777777````777777777777```{{{b{c}}d}f{}}00{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{A@jOh};;;;;;;;;;;;777666;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{n{b{nA@l}}}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}}{{{b{n{b{nA@l}}}}Dd{b{{Dn{Dd}}}}}{{Cl{Dd}}}}==={{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{c}}{b{ne}}}f{}{}}00{{{b{c}}}f{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000`{{{b{{Dn{Dd}}}}}Jh}{{}A@l}{{}AA`}{{{b{n{b{nA@l}}}}DdDd{b{{Dn{Dd}}}}Bf{b{nDl}}}{{Od{{Eh{Dd{Cl{Dd}}}}}}}}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00666{Blf}00{{{b{n{b{nA@l}}}}{b{{Dn{Dd}}}}{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}{{{b{Hh}}}{{Cl{Dd}}}}```{{{b{c}}l}{{j{{b{e}}}}}{}{}}00{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00{{{b{A@l}}{b{nCb}}}Cd}{{{b{A@n}}{b{nCb}}}Cd}{{{b{AA`}}{b{nCb}}}Cd}{cc{}}00{{{b{n{b{nA@l}}}}Cn{b{nDl}}}{{Od{Dd}}}}{{{b{n{b{nA@l}}}}{b{nDl}}}{{Od{Oj}}}}{{{b{n{b{nA@l}}}}{b{nDl}}}{{Od{Ol}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}Bl}00{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}21034563026415{ce{}{}}00999999{{{b{n{b{nA@l}}}}{b{{Dn{Cn}}}}{b{nDl}}}{{Od{Oh}}}}``{{{b{n{b{nA@l}}}}DdDd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{{Cl{Dd}}}}}};;;`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{{b{c}}C`}{{j{{b{e}}}}}{}{}}00<<<<<<<<<<<<{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}}00========={{{b{c}}Ff}{{j{{b{e}}}}}{}{}}00>>>>>>{{{b{n{b{nA@l}}}}Dd{b{nDl}}}{{Od{f}}}}???222{{{b{n{b{nA@l}}}}A@fA@f{b{nDl}}}{{Od{A@f}}}}{{{b{n{b{nA@l}}}}OhBf{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{n{b{nA@l}}}}A@f{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{n{b{nA@l}}}}A@fOh{b{nDl}}}{{Od{A@f}}}}{{{b{n{b{nA@l}}}}OhOh{b{nDl}}}{{Od{{F`{A@f}}}}}}{{{b{n{b{nA@l}}}}A@hA@h{b{nDl}}}{{Od{A@h}}}}{{{b{n{b{nA@l}}}}OhBf{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{n{b{nA@l}}}}A@h{b{nDl}}}{{Od{{Eh{OhOh}}}}}}{{{b{n{b{nA@l}}}}A@hOh{b{nDl}}}{{Od{A@h}}}}{{{b{n{b{nA@l}}}}OhOh{b{nDl}}}{{Od{{F`{A@h}}}}}}{{{b{n{b{nA@l}}}}Dd{b{{Dn{Dd}}}}{b{nDl}}}{{Od{f}}}}{{{b{n{b{nA@l}}}}{b{n{Ch{Dj}}}}{b{{Ch{Dj}}}}{b{nDl}}}{{Od{f}}}}`{{{b{n{b{nA@l}}}}DjDd{b{nDl}}}{{Od{Dd}}}}{{{b{n{b{nA@l}}}}DjDdDd{b{nDl}}}{{Od{f}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}e{}{}}00{c{{Bj{e}}}{}{}}00000{{{b{c}}}Fj{}}00{OhAAb}444{{{b{c}}}{{b{e}}}{}{}}00{{{b{nc}}}{{b{ne}}}{}{}}00{ce{}{}}00{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}00888888888````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}{{{b{c}}l}{{j{{b{e}}}}}{}{}};;;;65;;;;;;;;;{{{b{Fd}}}{{Gn{Aj}}}}<{{{b{If}}}If}{{{b{c}}{b{ne}}}f{}{}}{{{b{c}}}f{}}?{{{b{Ah}}{b{Bb}}A`}M`}{{{b{c}}}{{j{{b{e}}}}}{}{}}{c{{`{Gf}}}{{AAd{{b{nCb}}}{{L`{Cd}}}}}}{{{b{{Dn{C`}}}}}Jh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}4{Blf}{{{b{If}}{b{If}}}Bf}{{{b{c}}{b{e}}}Bf{}{}}000{cDd{{Cj{AAf}}}}{{{b{Hh}}}Dd}0?{{{b{Aj}}{b{Hh}}}{{F`{{b{{AAh{N`}}}}}}}}{{{b{Aj}}Bl}{{F`{{b{{AAh{N`}}}}}}}}{{{b{Aj}}{b{Hh}}}{{F`{{b{Kb}}}}}}{{{b{c}}C`}{{j{{b{e}}}}}{}{}}{{{b{If}}{b{nCb}}}Cd}0{cc{}}{{{b{Kb}}Bf}{{AAj{Hh}}}}{DjAAl}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{}Bl}{{{b{nc}}{b{n{En{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Bj{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{F`{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Eh{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{El{eg}}}}}{{Bj{Efi}}}{}{}{}{}}{{{b{nc}}{b{n{Ej{e}}}}}{{Bj{Efg}}}{}{}{}}{{{b{nc}}{b{n{Cl{e}}}}}{{Bj{Efg}}}{}{}{}}{ce{}{}}99{{{b{AAl}}Bl}{{Bj{{Eh{AAlBl}}If}}}}:::`::::::::::::?::::{{{b{c}}C`C`C`}{{j{{b{e}}}}}{}{}};;{{{b{AAl}}Bl}Bl}<{{{b{c}}Ff}{{j{{b{e}}}}}{}{}}=={{{b{M`}}}f}>3{{{b{Af}}{b{nAh}}}{{Bj{fIl}}}}?{{{b{c}}}e{}{}}{{{b{c}}}Jf{}}{{{b{c}}}Jh{}}{c{{Bj{e}}}{}{}}0{{{b{c}}}Fj{}}{{{b{c}}}{{j{{b{e}}}}}{}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}>{{{b{c}}Fl}{{j{{b{e}}}}}{}{}}333{{}f}","D":"LAdJKf","p":[[1,"reference"],[5,"Private",4530],[1,"unit"],[6,"Attribute",4531],[5,"Painted",4532],[6,"Color",4533],[0,"mut"],[6,"OptLevel",0,4534],[6,"Value",0,4535],[6,"Ordering",4536],[5,"Context",4537],[5,"Module",4538],[5,"Program",4539],[6,"CoreType",4540],[6,"CoreLibfunc",4540],[5,"ProgramRegistry",4541],[5,"MetadataStorage",1503],[5,"Attribute",4542],[1,"bool"],[6,"Error",620],[6,"Result",4543],[1,"usize"],[10,"Deserializer",4544],[1,"u8"],[5,"Formatter",4545],[8,"Result",4545],[1,"i64"],[1,"array"],[10,"Into",4546],[5,"Vec",4547],[1,"u64"],[1,"i8"],[1,"u16"],[5,"Felt",4548],[1,"i32"],[1,"i128"],[1,"u32"],[1,"u128"],[1,"slice"],[10,"Clone",4549],[1,"i16"],[10,"Hasher",4550],[6,"RewriteResult",4551],[1,"tuple"],[5,"Box",4552],[5,"OrderedHashMap",4553],[5,"VecDeque",4554],[6,"Option",4555],[8,"Result",620],[5,"Path",4556],[6,"Quirk",4531],[10,"Serializer",4557],[5,"TypeId",4558],[5,"Condition",4559],[6,"ProgramCache",258],[10,"PartialEq",4536],[10,"Eq",4536],[10,"Hash",4550],[10,"Debug",4545],[5,"JitProgramCache",433],[5,"AotProgramCache",348],[5,"AotNativeExecutor",1233,4560],[5,"Arc",4561],[5,"NativeContext",519],[5,"JitNativeExecutor",1233,4562],[5,"NativeModule",2789],[6,"CoreConcreteLibfunc",4540],[1,"str"],[6,"SierraAssertError",620],[6,"CompilerError",620],[6,"GasMetadataError",2133],[5,"Error",4563],[6,"EditStateError",4564],[6,"ProgramRegistryError",4541],[5,"LayoutError",4414],[5,"TryFromIntError",4565],[5,"LayoutError",4566],[6,"Error",4567],[5,"Error",4568],[6,"Error",4569],[5,"ConcreteTypeId",4570],[10,"Error",4571],[5,"SmolStr",4572],[5,"String",4573],[5,"BuiltinStats",923],[5,"ExecutionResult",923],[5,"ContractExecutionResult",923],[5,"AotContractExecutor",1233,4574],[5,"FunctionId",4570],[6,"c_void",4575],[10,"StarknetSyscallHandler",2878],[5,"Library",4576],[5,"GasMetadata",2133],[10,"AsRef",4546],[10,"Any",4558],[17,"Output"],[10,"FnOnce",4577],[5,"AutoBreakpoint",1601],[6,"BreakpointEvent",1601],[5,"Block",4578],[5,"Location",4579],[5,"DebugUtils",1788],[5,"Value",4580],[5,"ExecutionEngine",4581],[5,"DropOverridesMeta",1883],[5,"DupOverridesMeta",1966],[5,"EnumSnapshotVariantsMeta",2049],[5,"GasCost",2133],[5,"MetadataComputationConfig",2133],[6,"ApChangeError",4582],[6,"CostError",4583],[5,"StatementIdx",4539],[6,"CostTokenType",4584],[5,"ReallocBindingsMeta",2518],[5,"Operation",4585],[5,"RuntimeBindingsMeta",2603],[5,"OperationRef",4585],[5,"TailRecursionMeta",2702],[5,"BlockRef",4578],[5,"Felt252Abi",2878],[5,"ArrayAbi",2878],[8,"SyscallResult",2878],[5,"DummySyscallHandler",2878],[5,"U256",2878],[5,"ExecutionInfo",2878],[5,"ExecutionInfoV2",2878],[5,"TxV2Info",2878],[5,"ResourceBounds",2878],[5,"BlockInfo",2878],[5,"TxInfo",2878],[5,"Secp256k1Point",2878],[5,"Secp256r1Point",2878],[5,"BigInt",4586],[5,"StubSyscallHandler",4115],[5,"StubEvent",4115],[5,"ContractLogs",4115],[5,"BigUint",4587],[10,"Fn",4577],[5,"BigInt",4588],[5,"GenFunction",4539],[6,"Cow",4589],[5,"Layout",4566],[15,"Struct",249],[15,"Enum",249],[15,"Felt252Dict",249],[15,"BoundedInt",249],[15,"BoundedIntOutOfRange",920],[15,"Range",922],[15,"EnumInit",1786],[15,"NotEnoughGas",2517]],"r":[[13,4534],[27,4535],[76,4590],[164,4534],[165,4534],[259,348],[261,433],[1233,4574],[1234,4560],[1235,4562]],"b":[[113,"impl-From%3Cusize%3E-for-OptLevel"],[115,"impl-From%3Cu8%3E-for-OptLevel"],[116,"impl-From%3Ci64%3E-for-Value"],[117,"impl-From%3C%5BT;+N%5D%3E-for-Value"],[118,"impl-From%3CVec%3CT%3E%3E-for-Value"],[119,"impl-From%3Cu64%3E-for-Value"],[120,"impl-From%3Ci8%3E-for-Value"],[121,"impl-From%3Cu16%3E-for-Value"],[122,"impl-From%3CFelt%3E-for-Value"],[123,"impl-From%3Ci32%3E-for-Value"],[124,"impl-From%3Ci128%3E-for-Value"],[125,"impl-From%3Cu32%3E-for-Value"],[126,"impl-From%3Cu128%3E-for-Value"],[127,"impl-From%3C%26%5BT%5D%3E-for-Value"],[129,"impl-From%3Cu8%3E-for-Value"],[130,"impl-From%3Ci16%3E-for-Value"],[291,"impl-From%3CJitProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[293,"impl-From%3CAotProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[732,"impl-Debug-for-Error"],[733,"impl-Display-for-Error"],[734,"impl-Debug-for-SierraAssertError"],[735,"impl-Display-for-SierraAssertError"],[736,"impl-Display-for-CompilerError"],[737,"impl-Debug-for-CompilerError"],[738,"impl-From%3CSierraAssertError%3E-for-Error"],[739,"impl-From%3CGasMetadataError%3E-for-Error"],[740,"impl-From%3CError%3E-for-Error"],[741,"impl-From%3CEditStateError%3E-for-Error"],[742,"impl-From%3CBox%3CProgramRegistryError%3E%3E-for-Error"],[744,"impl-From%3CLayoutError%3E-for-Error"],[745,"impl-From%3CTryFromIntError%3E-for-Error"],[746,"impl-From%3CCompilerError%3E-for-Error"],[747,"impl-From%3CLayoutError%3E-for-Error"],[748,"impl-From%3CError%3E-for-Error"],[749,"impl-From%3CError%3E-for-Error"],[750,"impl-From%3CError%3E-for-Error"],[2280,"impl-Display-for-GasMetadataError"],[2281,"impl-Debug-for-GasMetadataError"],[2286,"impl-From%3CApChangeError%3E-for-GasMetadataError"],[2287,"impl-From%3CCostError%3E-for-GasMetadataError"],[4463,"impl-Debug-for-LayoutError"],[4464,"impl-Display-for-LayoutError"]],"c":"OzAAAAEAAC0AFgBCAAEAGgEAAG8BAADEAQAAGgIAAMICAgDZAwIACQUCAPMFAABqBgEAEAcAAG4HAADBBwAAFAgAAKUIAwDpCQAAPgoAAKEKAAD4CgAANgwLAFAQAgBWEQAA","e":"OzAAAAEAAE0GEwEBAAAAAwAJAA8ADAAdAAEAKwADAEEAAABEAAgAUAAAAFMABgBdAAsAagAAAHAAAgB0AAwAggABAIYAEACkAAAAzwAAANwAAADhAAcA6wADAPAAAQD6AA4ADwEBAB0BAQAgAQAAIwEBACYBAAAoAQcAMwEAAFIBAgBWAQIAXQEAAGQBAQBwAQAAcwEBAHYBAAB5AQAAewEAAH0BBwCLAQAApwECAKsBAgC5AQEAxQEAAMcBAADJAQEAzAEAAM8BAADRAQAA0wEHAOEBAAD9AQIAAQICAA8CAQAdAgAAHwICACMCBQArAgAALgIAADACBgA9AgAAWQICAF0CAgBkAgAAbQIHAHYCDgCGAggAoQIFAMsCBQDUAgIA3QIKAOkCBgD1AhcAHAMAAG4DAAByAw4AhAMIAJkDAwCfAwIAqAMAALUDBQDWAwIA3AMNAPADCgD+AxQAGQQCACMEGQCLBAMAlQQBAJ0EAQCiBAEApwQDAK4ECwC9BAgA0wQAANUEAADoBAUADAUCABUFBQAeBQMAJQUCACsFAgAxBQAANgUXAFQFAQBXBQAAWQUAAGcFAQCpBQAAvgUJAMsFCADiBQAA6AUBAPcFAgD7BQAA/gUAAAEGAAADBgAABgYAAAgGAAAKBgYANwYCADsGAgBCBgUAVAYDAGwGBQB2BgQAfQYGAIgGAQCOBhEArAYAAOMGBwDtBgUA+wYCAAQHAgATBwAAFQcCABkHAAAdBwAAIAcHAEMHBgBNBwAAUQcCAFUHAgBcBwAAYwcBAHEHAgB1BwAAeAcAAHsHBwCkBwIAqAcCAK8HAAC2BwEAxAcCAMgHAADLBwAAzgcHAPcHAgD7BwIAAggAAAkIAQAXCAIAGwgAAB8IAAAhCAcASQgAAEsIAgBPCAIAVggCAFwIBAB5CAcAqQgLAL0ICQDLCBIA5ggEAO8IBQD6CCEAKAkBADYJAACHCQAAoAkAAKUJEAC6CQsA1gkAAN4JAQDsCQEA7wkAAPIJAAD2CQcAIQoCACUKAgAzCgEAQQoCAEsKAABOCgAAUQoHAGIKAACDCgIAhwoBAIoKAACWCgEApQoBAKgKAACrCgAArgoHANsKAgDfCgIA7QoBAPsKAQD+CgAAAQsAAAULAAAHCwYAFAsCACwLAAA0CwIAOAsCAD8LAgBDCwEARwsHAFALDACNCwMAqQsXAC4MBwBCDDAAfwwBAI0MJQC/DD0AFQ0KACwNBQA+DWkAwA0BAM4NAwDeDQAA9w0IAPAOBwAEDwAAKQ8BADcPAQBFDygAeg8yALkPJgAEEAMAFBAAABcQAgAgEAAALRAFAE4QAQBTEAgAYhAKAHAQBwB+EAIAhBACAIoQFwCrEAMAshAAAAERAAAIEQ4AGhEMACoRCAA/EQEAQhEBAEoRAQBXEQIAXxEBAGIRBQBwEQEAdhEHAIURAACfEQAAohEAAKQRBQCrEQIAshEAAA=="}],\ +["cairo_native_compile",{"t":"PFPGNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","attr","augment_args","augment_args_for_update","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","fixed","fixed","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","output_library","output_mlir","path","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","replace_ids","resetting","resetting","rgb","rgb","single_file","strike","strike","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow"],"q":[[0,"cairo_native_compile"],[190,"dyn_clone::sealed"],[191,"yansi::attr_quirk"],[192,"yansi::paint"],[193,"clap_builder::builder::command"],[194,"yansi::color"],[195,"core::fmt"],[196,"clap_builder::parser::matches::arg_matches"],[197,"clap_builder"],[198,"core::result"],[199,"clap_builder::util::id"],[200,"core::option"],[201,"cairo_lang_utils::ordered_hash_map"],[202,"cairo_lang_semantic::substitution"],[203,"alloc::collections::vec_deque"],[204,"alloc::vec"],[205,"alloc::boxed"],[206,"anyhow"],[207,"clap_builder::builder::possible_value"],[208,"core::any"],[209,"yansi::condition"]],"i":[9,0,9,0,9,14,9,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,9,9,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,14,9,14,9,9,9,9,9,9,9,14,14,14,14,14,14,14,9,14,9,14,9,14,9,14,9,14,0,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,14,14,9,14,9,14,9,14,9,14,14,9,14,9,14,14,9,14,9,9,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,9,14,9,14,9,14,9,14,9,14],"f":"````{{{b{c}}d}f{}}`{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{ll}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`c}}{b{A`{Bh{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bl{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bn{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cb{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}3420615{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{{b{c}}Af}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}03333````33{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}04444`4411`44{{{b{c}}}e{}{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}{{}{{b{{Cl{Ab}}}}}}>>{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0>>>>>>","D":"A@d","p":[[1,"reference"],[5,"Private",190],[1,"unit"],[6,"Attribute",191],[5,"Painted",192],[5,"Command",193],[6,"Color",194],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",195],[8,"Result",195],[5,"Args",0],[5,"ArgMatches",196],[8,"Error",197],[6,"Result",198],[5,"Id",199],[6,"Option",200],[5,"OrderedHashMap",201],[6,"RewriteResult",202],[5,"VecDeque",203],[5,"Vec",204],[1,"tuple"],[5,"Box",205],[8,"Result",206],[6,"Quirk",191],[5,"PossibleValue",207],[5,"TypeId",208],[1,"slice"],[5,"Condition",209]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADwADQAAAAEAAwACAAkAAQAVAAMALQAEADYAAwA8AAEAQgABAEYAAQBKABAAZQAAAKQABwCuAAgA"}],\ ["cairo_native_dump",{"t":"FGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["CmdLine","CompilerOutput","Path","Stdout","__clone_box","__clone_box","attr","attr","augment_args","augment_args_for_update","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","command","command_for_update","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","fixed","fixed","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","green","green","group_id","init","init","input","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","load_program","magenta","magenta","main","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","output","parse_input","parse_output","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","starknet","strike","strike","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow"],"q":[[0,"cairo_native_dump"],[192,"dyn_clone::sealed"],[193,"yansi::attr_quirk"],[194,"yansi::paint"],[195,"clap_builder::builder::command"],[196,"yansi::color"],[197,"core::fmt"],[198,"clap_builder::parser::matches::arg_matches"],[199,"clap_builder"],[200,"core::result"],[201,"clap_builder::util::id"],[202,"core::option"],[203,"alloc::collections::vec_deque"],[204,"cairo_lang_semantic::substitution"],[205,"cairo_lang_utils::ordered_hash_map"],[206,"alloc::boxed"],[207,"alloc::vec"],[208,"std::path"],[209,"cairo_lang_sierra::program"],[210,"core::error"],[211,"alloc::string"],[212,"core::any"],[213,"yansi::condition"]],"i":[0,0,10,10,9,10,9,10,9,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,9,10,9,9,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,9,10,9,10,9,10,9,10,0,9,10,0,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,0,0,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,9,10,9,10,9,10,9,10,9,10],"f":"````{{{b{c}}d}f{}}0{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{ll}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{{b{c}}{b{A`e}}}f{}{}}0{{{b{c}}}f{}}0{{}l}07777{Af{{b{c}}}{}}0{Af{{b{A`c}}}{}}099{Aff}0;;{{{b{c}}Ah}{{j{{b{e}}}}}{}{}}0{{{b{Ab}}{b{A`Aj}}}Al}{{{b{Ad}}{b{A`Aj}}}Al}{cc{}}0{{{b{An}}}{{Bb{AbB`}}}}{{{b{A`An}}}{{Bb{AbB`}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{}{{Bf{Bd}}}}{{}Af}0`{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bn{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{e}}}}}{{Bb{Bjg}}}{}{}{}}6051234{ce{}{}}0::::::{{{b{Cd}}Cf}{{Bb{Ch{C`{Cj}}}}}};;{{}{{Bb{f{C`{Cj}}}}}}<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}Ah}{{j{{b{e}}}}}{}{}}0========{{{b{c}}AhAhAh}{{j{{b{e}}}}}{}{}}0>>>>`{{{b{Cl}}}{{Bb{CnD`}}}}{{{b{Cl}}}{{Bb{AdD`}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}0{{{b{c}}Db}{{j{{b{e}}}}}{}{}}011111144`11{{{b{c}}}e{}{}}0{c{{Bb{e}}}{}{}}000{{{b{c}}}Dd{}}044{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{{b{A`Ab}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Ab}}{b{A`An}}}{{Bb{fB`}}}}??{{{b{c}}Df}{{j{{b{e}}}}}{}{}}0999999","D":"Of","p":[[1,"reference"],[5,"Private",192],[1,"unit"],[6,"Attribute",193],[5,"Painted",194],[5,"Command",195],[6,"Color",196],[0,"mut"],[5,"CmdLine",0],[6,"CompilerOutput",0],[1,"usize"],[1,"u8"],[5,"Formatter",197],[8,"Result",197],[5,"ArgMatches",198],[8,"Error",199],[6,"Result",200],[5,"Id",201],[6,"Option",202],[5,"VecDeque",203],[6,"RewriteResult",204],[1,"tuple"],[5,"OrderedHashMap",205],[5,"Box",206],[5,"Vec",207],[5,"Path",208],[1,"bool"],[5,"Program",209],[10,"Error",210],[1,"str"],[5,"PathBuf",208],[5,"String",211],[6,"Quirk",193],[5,"TypeId",212],[5,"Condition",213]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAAEUADgAAAAYACQABABUAAwAtAAcAOQADAD8AAQBFAAEASQABAE0AEQBnAAAAagAAAJUAAgCnAAcAsQAHAA=="}],\ -["cairo_native_run",{"t":"PFPGNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNCNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","attr","augment_args","augment_args_for_update","available_gas","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","fixed","fixed","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","path","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","run_mode","single_file","strike","strike","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"cairo_native_run"],[190,"cairo_native_run::utils"],[369,"cairo_native_run::utils::test"],[624,"dyn_clone::sealed"],[625,"yansi::attr_quirk"],[626,"yansi::paint"],[627,"clap_builder::builder::command"],[628,"yansi::color"],[629,"core::fmt"],[630,"clap_builder::parser::matches::arg_matches"],[631,"clap_builder"],[632,"core::result"],[633,"clap_builder::util::id"],[634,"core::option"],[635,"alloc::boxed"],[636,"cairo_lang_semantic::substitution"],[637,"alloc::collections::vec_deque"],[638,"cairo_lang_utils::ordered_hash_map"],[639,"alloc::vec"],[640,"anyhow"],[641,"clap_builder::builder::possible_value"],[642,"core::any"],[643,"yansi::condition"],[644,"cairo_lang_sierra::program"],[645,"starknet_types_core::felt"],[646,"alloc::vec::into_iter"],[647,"alloc::string"],[648,"cairo_native::values"],[649,"cairo_native::execution_result"],[650,"cairo_lang_runner"],[651,"cairo_lang_test_plugin"],[652,"scarb_metadata"],[653,"cairo_lang_test_plugin::test_config"],[654,"cairo_lang_sierra::ids"],[655,"cairo_lang_sierra::extensions::modules::gas"]],"i":[9,0,9,0,9,14,9,14,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,9,9,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,14,9,14,9,9,9,9,9,9,9,14,14,14,14,14,14,14,9,14,9,14,9,14,9,14,9,14,0,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,9,9,9,14,9,14,9,14,9,14,9,14,9,14,14,14,0,9,9,14,9,14,9,14,9,14,9,14,32,32,0,0,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,32,32,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,0,51,32,32,0,51,32,51,32,51,32,51,51,51,51,51,51,51,32,32,32,32,32,32,32,51,32,51,32,51,32,0,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,51,32,51,32,51,32,51,32,51,32,0,51,32,51,51,32,0,32,32,51,32,51,32,51,32,51,32,51,32,51,32,32,51,32,51,32,51,32,51,32,51,32,52,52,0,0,0,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,0,42,53,52,42,42,42,53,52,0,0,42,53,52,42,53,52,53,42,53,52,42,42,53,52,42,42,42,42,42,42,42,53,53,53,53,53,53,53,52,52,52,52,52,52,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,0,53,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52],"f":"````{{{b{c}}d}f{}}`{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{ll}0`{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bl{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bn{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}4310625{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{{b{c}}Af}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}03333``33{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}044444411``44{{{b{c}}}e{}{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}`{{}{{b{{Cl{Ab}}}}}}>>{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0>>>>>>````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000998800000000000000000000{{{b{D`}}}D`}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}3333{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}055{Adf}077{{{b{Db}}{b{Dd}}}{{Cd{{b{Df}}}}}}{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{D`}}{b{A`Ah}}}Aj}{{{Dj{Dh}}}Dl}{cc{}}0;;{{}Ad}0{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bn{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bb{Bjg}}}{}{}{}}0654321{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{{b{Dn}}}{{C`{Dh}}}}111111111111111111111111111111>>11111111{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}02222`22{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}0333333{{{b{E`}}}{{Cd{Eb}}}}22`44`{{{b{c}}}e{}{}}{{{b{D`}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{}{{b{{Cl{D`}}}}}}<<{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0<<<<<<`````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}n}{{j{{b{e}}}}}{}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{Ad{{b{c}}}{}}00{Ad{{b{A`c}}}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{Ed}}Ad}f}{Adf}00``555{{EfEhEhDl}{{Cb{EfAd}}}}{{{b{Ej}}}{{C`{{b{El}}}}}}{{{b{c}}Af}{{j{{b{e}}}}}{}{}}00{cc{}}00`666`{{}Ad}00{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bl{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bn{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}31264054051236{ce{}{}}00???????????????????????????????????????????????????:::????????????{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000`000{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}00111111111222{{{C`{{Cb{DlEn}}}}Db{Bn{F`{Bn{FbFd}}}}Ff}{{Cd{Ed}}}}`222{c{{Bb{e}}}{}{}}00000{{{b{c}}}Cj{}}00444{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00888{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}00777777777","D":"CGn","p":[[1,"reference"],[5,"Private",624],[1,"unit"],[6,"Attribute",625],[5,"Painted",626],[5,"Command",627],[6,"Color",628],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",629],[8,"Result",629],[5,"Args",0],[5,"ArgMatches",630],[8,"Error",631],[6,"Result",632],[5,"Id",633],[6,"Option",634],[5,"Box",635],[6,"RewriteResult",636],[5,"VecDeque",637],[5,"OrderedHashMap",638],[5,"Vec",639],[1,"tuple"],[8,"Result",640],[6,"Quirk",625],[5,"PossibleValue",641],[5,"TypeId",642],[1,"slice"],[5,"Condition",643],[6,"RunMode",190],[5,"Program",644],[1,"str"],[8,"Function",644],[5,"Felt",645],[5,"IntoIter",646],[5,"String",647],[6,"Value",648],[5,"ExecutionResult",649],[6,"RunResultValue",650],[5,"TestsSummary",369],[5,"TestCompilation",651],[1,"bool"],[5,"PackageMetadata",652],[5,"TargetMetadata",652],[5,"TestConfig",653],[5,"FunctionId",654],[6,"CostTokenType",655],[1,"i32"],[5,"RunArgs",190],[6,"TestStatus",369],[5,"TestResult",369]],"r":[],"b":[],"c":"OzAAAAEAAAYAAwAsAAEA5gABAKoBAgA=","e":"OzAAAAEAALEAIAAAAAEAAwACAAkAAQAWAAMALgAEADcAAwA9AAEAQwABAEcAAQBLABAAZgAAAKMABwCtAAkAvwAEANAAAwDoAAIA7wADAPUAAQD8AAAAAgEPAEcBAABVAQAAWAEIAGMBBgByAQEAiQEFALMBBQC9AQQA0QEYADgCAABQAggAXAIIAA=="}],\ -["cairo_native_runtime",{"t":"SSFFFFHHNNNNNNNNHHHHHHHHHHHHHHHONNNNHNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC","DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME","as_cairo_short_string","as_cairo_short_string_ex","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_insert","cairo_native__dict_new","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","count","default","deref","deref","fmt","format_next_item","from","from","from","from","get","inner","into","into","into","into","quote_if_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","vzip"],"q":[[0,"cairo_native_runtime"],[72,"starknet_types_core::felt"],[73,"alloc::string"],[74,"core::option"],[75,"core::ffi"],[76,"core::ptr::non_null"],[77,"core::fmt"],[78,"core::iter::traits::iterator"],[79,"core::clone"],[80,"core::result"],[81,"core::any"]],"i":[0,0,0,0,0,0,0,0,23,19,20,7,23,19,20,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,19,20,7,0,23,19,20,7,23,7,23,19,20,7,23,23,19,20,7,23,19,20,7,23,19,20,7,23,19,20,7,23,19,20,7,23,19,20,7],"f":"``````{{{d{b}}}{{h{f}}}}{{{d{b}}j}{{h{f}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{lc}}}{{d{le}}}{}{}}000{{n{h{{Af{A`}{{Ab{Ad}}}}}}}Ad}{{n{Af{A`}{{Ab{A`}}}}}n}{nAh}{{n{d{{Al{Aj}}}}}A`}{{n{d{{Al{Aj}}}}{An{A`}}}A`}{{}n}{{B`AlBb}B`}{{{An{{Al{{Al{Aj}}}}}}}Bd}0{{{An{{Al{{Al{Aj}}}}}}{An{{Al{{Al{Aj}}}}}}}Ad}{{{An{{Al{{Al{Aj}}}}}}{An{{Al{Aj}}}}{An{{Al{{Al{Aj}}}}}}}Ad}{{{An{{Al{{Al{Aj}}}}}}}Ad}{{{An{{Al{{Al{Aj}}}}}}{An{{Al{{Al{Aj}}}}}}}Bd}{{AjAjAj}Ad}0`7{{{d{Bf}}}{{d{b}}}}{{{d{Bh}}}{{d{Ah}}}}{{{d{n}}{d{lBj}}}Bl}{{{d{lc}}}{{h{Bn}}}{{Cb{}{{C`{b}}}}Cd}}{cc{}}000{Bnf}`{ce{}{}}0001{c{{Cf{e}}}{}{}}0000000{{{d{c}}}Ch{}}000{{{d{c}}}{{d{e}}}{}{}}000{{{d{lc}}}{{d{le}}}{}{}}0004444","D":"Cl","p":[[5,"Felt",72],[1,"reference"],[5,"String",73],[6,"Option",74],[1,"usize"],[0,"mut"],[5,"FeltDict",0],[6,"c_void",75],[17,"Output"],[1,"unit"],[1,"fn"],[1,"u64"],[1,"u8"],[1,"array"],[5,"NonNull",76],[1,"i32"],[1,"u32"],[1,"bool"],[5,"HALF_PRIME",0],[5,"DICT_GAS_REFUND_PER_ACCESS",0],[5,"Formatter",77],[8,"Result",77],[5,"FormattedItem",0],[17,"Item"],[10,"Iterator",78],[10,"Clone",79],[6,"Result",80],[5,"TypeId",81]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACoABgAAAAMABgAAAAkABwAgAAQAKwAAADEAFwA="}],\ -["cairo_native_stress",{"t":"SJFFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNHHNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AOT_CACHE_DIR","GLOBAL_ALLOC","NaiveAotCache","StressTestCommand","UNIQUE_CONTRACT_VALUE","attr","attr","augment_args","augment_args_for_update","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","cache","clear","clear","command","command_for_update","compile_and_insert","conceal","conceal","context","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","directory_get_size","directory_is_empty","drop","drop","fg","fg","fixed","fixed","fmt","from","from","from_arg_matches","from_arg_matches_mut","generate_starknet_contract","get","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","modify_starknet_contract","new","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","output","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","rounds","set_global_subscriber","strike","strike","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow"],"q":[[0,"cairo_native_stress"],[188,"yansi::attr_quirk"],[189,"yansi::paint"],[190,"clap_builder::builder::command"],[191,"yansi::color"],[192,"cairo_lang_sierra::program"],[193,"cairo_native::ffi"],[194,"cairo_native::executor::aot"],[195,"alloc::sync"],[196,"core::cmp"],[197,"core::hash"],[198,"core::fmt"],[199,"std::io::error"],[200,"std::path"],[201,"core::convert"],[202,"clap_builder::parser::matches::arg_matches"],[203,"clap_builder"],[204,"core::result"],[205,"cairo_lang_sierra::ids"],[206,"core::option"],[207,"clap_builder::util::id"],[208,"cairo_lang_semantic::substitution"],[209,"alloc::vec"],[210,"alloc::collections::vec_deque"],[211,"cairo_lang_utils::ordered_hash_map"],[212,"alloc::boxed"],[213,"cairo_native::context"],[214,"core::any"],[215,"yansi::condition"]],"i":[0,0,0,0,0,7,24,24,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,7,24,24,24,7,7,24,7,7,24,7,24,7,24,7,24,0,0,7,24,7,24,7,24,24,7,24,24,24,0,7,7,24,24,7,24,7,7,7,7,7,7,7,24,24,24,24,24,24,24,7,24,7,24,7,24,7,24,7,24,0,7,24,0,7,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,24,7,24,7,24,7,24,7,24,7,24,7,24,24,0,7,24,7,24,7,24,7,24,7,24,7,24,7,24,24,24,7,24,7,24,7,24,7,24,7,24],"f":"`````{{{b{c}}d}{{f{{b{e}}}}}{}{}}0{hh}0{{{b{c}}j}{{f{{b{e}}}}}{}{}}0{{{b{c}}}{{f{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{lc}}}{{b{le}}}{}{}}0222222222222222222`22{{}h}0{{{b{l{n{c}}}}c{b{A`}}Ab}{{Af{Ad}}}{AhAjAlAn}}44`44{B`{{b{c}}}{}}0{B`{{b{lc}}}{}}066{c{{Bd{Bb}}}{{Bh{Bf}}}}{c{{Bd{Bj}}}{{Bh{Bf}}}}{B`Bl}0::{{{b{c}}Bn}{{f{{b{e}}}}}{}{}}0{{{b{C`}}{b{lCb}}}Cd}{cc{}}0{{{b{Cf}}}{{Cj{C`Ch}}}}{{{b{lCf}}}{{Cj{C`Ch}}}}{Cl{{D`{CnA`}}}}{{{b{{n{c}}}}{b{c}}}{{Db{{Af{Ad}}}}}{AhAjAlAn}}{{{b{c}}}{{f{{b{e}}}}}{}{}}0{{}{{Db{Dd}}}}{{}B`}0{{{b{lc}}{b{l{D`{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}{{{b{lc}}{b{l{Dh{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Db{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Dj{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Cj{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}{{{b{lc}}{b{l{Dl{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}{{{b{lc}}{b{l{Dn{e}}}}}{{Cj{Dfg}}}{}{}{}}5104623{ce{}{}}0::::::::{{}Bl};;{{A`ClCl}A`}{{{b{E`}}}{{n{c}}}{AhAjAlAn}}========================{{{b{c}}Bn}{{f{{b{e}}}}}{}{}}0>>>>>>>>{{{b{c}}BnBnBn}{{f{{b{e}}}}}{}{}}0????`??{{{b{c}}Eb}{{f{{b{e}}}}}{}{}}0{{{b{c}}}{{f{{b{e}}}}}{}{}}0000022`{{{b{C`}}}Bl}11{c{{Cj{e}}}{}{}}000{{{b{c}}}Ed{}}033{{{b{c}}}{{b{e}}}{}{}}0{{{b{lc}}}{{b{le}}}{}{}}0{{{b{lC`}}{b{Cf}}}{{Cj{BlCh}}}}{{{b{lC`}}{b{lCf}}}{{Cj{BlCh}}}}>>{{{b{c}}Ef}{{f{{b{e}}}}}{}{}}0888888","D":"A@j","p":[[1,"reference"],[6,"Attribute",188],[5,"Painted",189],[5,"Command",190],[6,"Color",191],[0,"mut"],[5,"NaiveAotCache",0],[5,"Program",192],[6,"OptLevel",193],[5,"AotNativeExecutor",194],[5,"Arc",195],[10,"PartialEq",196],[10,"Eq",196],[10,"Hash",197],[10,"Display",198],[1,"usize"],[1,"u64"],[8,"Result",199],[5,"Path",200],[10,"AsRef",201],[1,"bool"],[1,"unit"],[1,"u8"],[5,"StressTestCommand",0],[5,"Formatter",198],[8,"Result",198],[5,"ArgMatches",202],[8,"Error",203],[6,"Result",204],[1,"u32"],[5,"FunctionId",205],[1,"tuple"],[6,"Option",206],[5,"Id",207],[6,"RewriteResult",208],[5,"Vec",209],[5,"VecDeque",210],[5,"OrderedHashMap",211],[5,"Box",212],[5,"NativeContext",213],[6,"Quirk",188],[5,"TypeId",214],[5,"Condition",215]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADcAEQACAAAACAABABQAAwAqAAAALQABADIAAAA1AAMAPAACAEMAAABGAAEASQAAAEwAEABnAAAAawAAAKIAAAClAAUArQAHAA=="}],\ +["cairo_native_run",{"t":"PFPGNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNCNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","attr","augment_args","augment_args_for_update","available_gas","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","fixed","fixed","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","path","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","run_mode","single_file","strike","strike","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"cairo_native_run"],[190,"cairo_native_run::utils"],[369,"cairo_native_run::utils::test"],[624,"dyn_clone::sealed"],[625,"yansi::attr_quirk"],[626,"yansi::paint"],[627,"clap_builder::builder::command"],[628,"yansi::color"],[629,"core::fmt"],[630,"clap_builder::parser::matches::arg_matches"],[631,"clap_builder"],[632,"core::result"],[633,"clap_builder::util::id"],[634,"core::option"],[635,"alloc::vec"],[636,"cairo_lang_semantic::substitution"],[637,"alloc::boxed"],[638,"cairo_lang_utils::ordered_hash_map"],[639,"alloc::collections::vec_deque"],[640,"anyhow"],[641,"clap_builder::builder::possible_value"],[642,"core::any"],[643,"yansi::condition"],[644,"cairo_lang_sierra::program"],[645,"starknet_types_core::felt"],[646,"alloc::vec::into_iter"],[647,"alloc::string"],[648,"cairo_native::values"],[649,"cairo_native::execution_result"],[650,"cairo_lang_runner"],[651,"cairo_lang_test_plugin"],[652,"scarb_metadata"],[653,"cairo_lang_test_plugin::test_config"],[654,"cairo_lang_sierra::ids"],[655,"cairo_lang_sierra::extensions::modules::gas"]],"i":[9,0,9,0,9,14,9,14,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,9,9,14,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,14,9,14,9,9,9,9,9,9,9,14,14,14,14,14,14,14,9,14,9,14,9,14,9,14,9,14,0,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,9,14,9,14,9,14,9,14,9,14,14,14,9,14,9,9,9,14,9,14,9,14,9,14,9,14,9,14,14,14,0,9,9,14,9,14,9,14,9,14,9,14,32,32,0,0,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,32,32,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,0,51,32,32,0,51,32,51,32,51,32,51,51,51,51,51,51,51,32,32,32,32,32,32,32,51,32,51,32,51,32,0,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,32,51,51,32,51,32,51,32,51,32,51,32,0,51,32,51,51,32,0,32,32,51,32,51,32,51,32,51,32,51,32,51,32,32,51,32,51,32,51,32,51,32,51,32,52,52,0,0,0,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,0,42,53,52,42,42,42,53,52,0,0,42,53,52,42,53,52,53,42,53,52,42,42,53,52,42,42,42,42,42,42,42,53,53,53,53,53,53,53,52,52,52,52,52,52,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,0,53,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52,42,53,52],"f":"````{{{b{c}}d}f{}}`{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{ll}0`{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bn{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cb{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}1065432{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{{b{c}}Af}{{j{{b{e}}}}}{}{}}022222222{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}03333``33{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}044444411``44{{{b{c}}}e{}{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}`{{}{{b{{Cl{Ab}}}}}}>>{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0>>>>>>````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0000000998800000000000000000000{{{b{D`}}}D`}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}3333{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}055{Adf}077{{{b{Db}}{b{Dd}}}{{Cd{{b{Df}}}}}}{{{b{c}}Af}{{j{{b{e}}}}}{}{}}0{{{b{D`}}{b{A`Ah}}}Aj}{{{Dj{Dh}}}Dl}{cc{}}0;;{{}Ad}0{{{b{A`c}}{b{A`{Bn{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{eg}}}}}{{Bb{Bji}}}{}{}{}{}}1546032{ce{}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}000{{{b{Dn}}}{{Bh{Dh}}}}111111111111111111111111111111>>11111111{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}02222`22{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}0333333{{{b{E`}}}{{Cd{Eb}}}}22`44`{{{b{c}}}e{}{}}{{{b{D`}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}000{{{b{c}}}Cj{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{}{{b{{Cl{D`}}}}}}<<{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}0<<<<<<`````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}n}{{j{{b{e}}}}}{}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{Ad{{b{c}}}{}}00{Ad{{b{A`c}}}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{Ed}}Ad}f}{Adf}00``555{{EfEhEhDl}{{Bl{EfAd}}}}{{{b{Ej}}}{{Bh{{b{El}}}}}}{{{b{c}}Af}{{j{{b{e}}}}}{}{}}00{cc{}}00`666`{{}Ad}00{{{b{A`c}}{b{A`{Bb{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{C`{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cb{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bf{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bh{e}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bb{Bji}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bn{e}}}}}{{Bb{Bjg}}}{}{}{}}34650123426501{ce{}{}}00???????????????????????????????????????????????????:::????????????{{{b{c}}AfAfAf}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000`000{{{b{c}}Cf}{{j{{b{e}}}}}{}{}}00111111111222{{{Bh{{Bl{DlEn}}}}Db{C`{F`{C`{FbFd}}}}Ff}{{Cd{Ed}}}}`222{c{{Bb{e}}}{}{}}00000{{{b{c}}}Cj{}}00444{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00888{{{b{c}}Cn}{{j{{b{e}}}}}{}{}}00777777777","D":"CGn","p":[[1,"reference"],[5,"Private",624],[1,"unit"],[6,"Attribute",625],[5,"Painted",626],[5,"Command",627],[6,"Color",628],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",629],[8,"Result",629],[5,"Args",0],[5,"ArgMatches",630],[8,"Error",631],[6,"Result",632],[5,"Id",633],[6,"Option",634],[5,"Vec",635],[6,"RewriteResult",636],[1,"tuple"],[5,"Box",637],[5,"OrderedHashMap",638],[5,"VecDeque",639],[8,"Result",640],[6,"Quirk",625],[5,"PossibleValue",641],[5,"TypeId",642],[1,"slice"],[5,"Condition",643],[6,"RunMode",190],[5,"Program",644],[1,"str"],[8,"Function",644],[5,"Felt",645],[5,"IntoIter",646],[5,"String",647],[6,"Value",648],[5,"ExecutionResult",649],[6,"RunResultValue",650],[5,"TestsSummary",369],[5,"TestCompilation",651],[1,"bool"],[5,"PackageMetadata",652],[5,"TargetMetadata",652],[5,"TestConfig",653],[5,"FunctionId",654],[6,"CostTokenType",655],[1,"i32"],[5,"RunArgs",190],[6,"TestStatus",369],[5,"TestResult",369]],"r":[],"b":[],"c":"OzAAAAEAAAYAAwAsAAEA5gABAKoBAgA=","e":"OzAAAAEAALEAIAAAAAEAAwACAAkAAQAWAAMALgAEADcAAwA9AAEAQwABAEcAAQBLABAAZgAAAKMABwCtAAkAvwAEANAAAwDoAAIA7wADAPUAAQD8AAAAAgEPAEcBAABVAQAAWAEIAGMBBgByAQEAiQEFALMBBQC9AQQA0QEYADgCAABQAggAXAIIAA=="}],\ +["cairo_native_runtime",{"t":"SSFFFFHHNNNNNNNNHHHHHHHHHHHHHHONNNHONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC","DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME","as_cairo_short_string","as_cairo_short_string_ex","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_new","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","count","deref","deref","fmt","format_next_item","free_fn","from","from","from","from","get","inner","into","into","into","into","quote_if_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","vzip"],"q":[[0,"cairo_native_runtime"],[71,"starknet_types_core::felt"],[72,"alloc::string"],[73,"core::option"],[74,"core::ffi"],[75,"core::fmt"],[76,"core::iter::traits::iterator"],[77,"core::clone"],[78,"core::result"],[79,"core::any"]],"i":[0,0,0,0,0,0,0,0,22,18,19,7,22,18,19,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,18,19,7,0,7,22,18,19,7,22,7,22,18,19,7,22,22,18,19,7,22,18,19,7,22,18,19,7,22,18,19,7,22,18,19,7,22,18,19,7],"f":"``````{{{d{b}}}{{h{f}}}}{{{d{b}}j}{{h{f}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{lc}}}{{d{le}}}{}{}}000{{n{h{{Af{A`}{{Ab{Ad}}}}}}}Ad}{{n{Af{A`}{{Ab{A`}}}}}n}{nAh}{{{d{ln}}{d{{Al{Aj}}}}}A`}{{{Af{A`}{{Ab{Ad}}}}}n}{{AnAlB`}An}{{{d{l{Al{{Al{Aj}}}}}}}Bb}0{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{Aj}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Bb}{{AjAjAj}Ad}0`{{{d{Bd}}}{{d{b}}}}{{{d{Bf}}}{{d{Ah}}}}{{{d{n}}{d{lBh}}}Bj}{{{d{lc}}}{{h{Bl}}}{{C`{}{{Bn{b}}}}Cb}}`{cc{}}000{Blf}`{ce{}{}}0001{c{{Cd{e}}}{}{}}0000000{{{d{c}}}Cf{}}000{{{d{c}}}{{d{e}}}{}{}}000{{{d{lc}}}{{d{le}}}{}{}}0004444","D":"Cj","p":[[5,"Felt",71],[1,"reference"],[5,"String",72],[6,"Option",73],[1,"usize"],[0,"mut"],[5,"FeltDict",0],[6,"c_void",74],[17,"Output"],[1,"unit"],[1,"fn"],[1,"u64"],[1,"u8"],[1,"array"],[1,"i32"],[1,"u32"],[1,"bool"],[5,"HALF_PRIME",0],[5,"DICT_GAS_REFUND_PER_ACCESS",0],[5,"Formatter",75],[8,"Result",75],[5,"FormattedItem",0],[17,"Item"],[10,"Iterator",76],[10,"Clone",77],[6,"Result",78],[5,"TypeId",79]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACoABwAAAAMABgAAAAkABwAfAAMAJAAAACoAAAAwABcA"}],\ +["cairo_native_stress",{"t":"SJFFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNHHNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AOT_CACHE_DIR","GLOBAL_ALLOC","NaiveAotCache","StressTestCommand","UNIQUE_CONTRACT_VALUE","attr","attr","augment_args","augment_args_for_update","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","cache","clear","clear","command","command_for_update","compile_and_insert","conceal","conceal","context","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","directory_get_size","directory_is_empty","drop","drop","fg","fg","fixed","fixed","fmt","from","from","from_arg_matches","from_arg_matches_mut","generate_starknet_contract","get","green","green","group_id","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","linger","linger","magenta","magenta","main","mask","mask","modify_starknet_contract","new","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","output","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","rgb","rgb","rounds","set_global_subscriber","strike","strike","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow"],"q":[[0,"cairo_native_stress"],[188,"yansi::attr_quirk"],[189,"yansi::paint"],[190,"clap_builder::builder::command"],[191,"yansi::color"],[192,"cairo_lang_sierra::program"],[193,"cairo_native::ffi"],[194,"cairo_native::executor::aot"],[195,"alloc::sync"],[196,"core::cmp"],[197,"core::hash"],[198,"core::fmt"],[199,"std::io::error"],[200,"std::path"],[201,"core::convert"],[202,"clap_builder::parser::matches::arg_matches"],[203,"clap_builder"],[204,"core::result"],[205,"cairo_lang_sierra::ids"],[206,"core::option"],[207,"clap_builder::util::id"],[208,"cairo_lang_semantic::substitution"],[209,"alloc::vec"],[210,"alloc::collections::vec_deque"],[211,"alloc::boxed"],[212,"cairo_lang_utils::ordered_hash_map"],[213,"cairo_native::context"],[214,"core::any"],[215,"yansi::condition"]],"i":[0,0,0,0,0,7,24,24,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,7,24,24,24,7,7,24,7,7,24,7,24,7,24,7,24,0,0,7,24,7,24,7,24,24,7,24,24,24,0,7,7,24,24,7,24,7,7,7,7,7,7,7,24,24,24,24,24,24,24,7,24,7,24,7,24,7,24,7,24,0,7,24,0,7,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,7,24,24,7,24,7,24,7,24,7,24,7,24,7,24,24,0,7,24,7,24,7,24,7,24,7,24,7,24,7,24,24,24,7,24,7,24,7,24,7,24,7,24],"f":"`````{{{b{c}}d}{{f{{b{e}}}}}{}{}}0{hh}0{{{b{c}}j}{{f{{b{e}}}}}{}{}}0{{{b{c}}}{{f{{b{e}}}}}{}{}}0000000{{{b{c}}}{{b{e}}}{}{}}0{{{b{lc}}}{{b{le}}}{}{}}0222222222222222222`22{{}h}0{{{b{l{n{c}}}}c{b{A`}}Ab}{{Af{Ad}}}{AhAjAlAn}}44`44{B`{{b{c}}}{}}0{B`{{b{lc}}}{}}066{c{{Bd{Bb}}}{{Bh{Bf}}}}{c{{Bd{Bj}}}{{Bh{Bf}}}}{B`Bl}0::{{{b{c}}Bn}{{f{{b{e}}}}}{}{}}0{{{b{C`}}{b{lCb}}}Cd}{cc{}}0{{{b{Cf}}}{{Cj{C`Ch}}}}{{{b{lCf}}}{{Cj{C`Ch}}}}{Cl{{D`{CnA`}}}}{{{b{{n{c}}}}{b{c}}}{{Db{{Af{Ad}}}}}{AhAjAlAn}}{{{b{c}}}{{f{{b{e}}}}}{}{}}0{{}{{Db{Dd}}}}{{}B`}0{{{b{lc}}{b{l{D`{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}{{{b{lc}}{b{l{Dh{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Cj{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}{{{b{lc}}{b{l{Dj{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Db{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Dl{e}}}}}{{Cj{Dfg}}}{}{}{}}{{{b{lc}}{b{l{Dn{eg}}}}}{{Cj{Dfi}}}{}{}{}{}}6503412{ce{}{}}0::::::::{{}Bl};;{{A`ClCl}A`}{{{b{E`}}}{{n{c}}}{AhAjAlAn}}========================{{{b{c}}Bn}{{f{{b{e}}}}}{}{}}0>>>>>>>>{{{b{c}}BnBnBn}{{f{{b{e}}}}}{}{}}0????`??{{{b{c}}Eb}{{f{{b{e}}}}}{}{}}0{{{b{c}}}{{f{{b{e}}}}}{}{}}0000022`{{{b{C`}}}Bl}11{c{{Cj{e}}}{}{}}000{{{b{c}}}Ed{}}033{{{b{c}}}{{b{e}}}{}{}}0{{{b{lc}}}{{b{le}}}{}{}}0{{{b{lC`}}{b{Cf}}}{{Cj{BlCh}}}}{{{b{lC`}}{b{lCf}}}{{Cj{BlCh}}}}>>{{{b{c}}Ef}{{f{{b{e}}}}}{}{}}0888888","D":"A@j","p":[[1,"reference"],[6,"Attribute",188],[5,"Painted",189],[5,"Command",190],[6,"Color",191],[0,"mut"],[5,"NaiveAotCache",0],[5,"Program",192],[6,"OptLevel",193],[5,"AotNativeExecutor",194],[5,"Arc",195],[10,"PartialEq",196],[10,"Eq",196],[10,"Hash",197],[10,"Display",198],[1,"usize"],[1,"u64"],[8,"Result",199],[5,"Path",200],[10,"AsRef",201],[1,"bool"],[1,"unit"],[1,"u8"],[5,"StressTestCommand",0],[5,"Formatter",198],[8,"Result",198],[5,"ArgMatches",202],[8,"Error",203],[6,"Result",204],[1,"u32"],[5,"FunctionId",205],[1,"tuple"],[6,"Option",206],[5,"Id",207],[6,"RewriteResult",208],[5,"Vec",209],[5,"VecDeque",210],[5,"Box",211],[5,"OrderedHashMap",212],[5,"NativeContext",213],[6,"Quirk",188],[5,"TypeId",214],[5,"Condition",215]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADcAEQACAAAACAABABQAAwAqAAAALQABADIAAAA1AAMAPAACAEMAAABGAAEASQAAAEwAEABnAAAAawAAAKIAAAClAAUArQAHAA=="}],\ ["cairo_native_test",{"t":"FONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNOONNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNOONNNNNNOOONNNNNNNNNCNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Args","allow_warnings","attr","augment_args","augment_args_for_update","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","command","command_for_update","conceal","cyan","deref","deref_mut","dim","drop","fg","filter","fixed","fmt","from","from_arg_matches","from_arg_matches_mut","green","group_id","ignored","include_ignored","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","invert","italic","linger","magenta","main","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","opt_level","path","primary","quirk","rapid_blink","red","resetting","rgb","run_mode","single_file","starknet","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","vzip","whenever","white","wrap","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"cairo_native_test"],[102,"cairo_native_test::utils"],[281,"cairo_native_test::utils::test"],[536,"yansi::attr_quirk"],[537,"yansi::paint"],[538,"clap_builder::builder::command"],[539,"yansi::color"],[540,"core::fmt"],[541,"clap_builder::parser::matches::arg_matches"],[542,"clap_builder"],[543,"core::result"],[544,"clap_builder::util::id"],[545,"core::option"],[546,"cairo_lang_utils::ordered_hash_map"],[547,"cairo_lang_semantic::substitution"],[548,"alloc::collections::vec_deque"],[549,"alloc::vec"],[550,"alloc::boxed"],[551,"anyhow"],[552,"core::any"],[553,"yansi::condition"],[554,"dyn_clone::sealed"],[555,"cairo_lang_sierra::program"],[556,"starknet_types_core::felt"],[557,"alloc::vec::into_iter"],[558,"alloc::string"],[559,"cairo_native::values"],[560,"cairo_native::execution_result"],[561,"cairo_lang_runner"],[562,"clap_builder::builder::possible_value"],[563,"cairo_lang_test_plugin"],[564,"scarb_metadata"],[565,"cairo_lang_test_plugin::test_config"],[566,"cairo_lang_sierra::ids"],[567,"cairo_lang_sierra::extensions::modules::gas"]],"i":[0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,10,10,10,10,10,29,29,0,0,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,29,29,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,0,50,29,29,0,50,29,50,29,50,29,50,50,50,50,50,50,50,29,29,29,29,29,29,29,50,29,50,29,50,29,0,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,29,50,50,29,50,29,50,29,50,29,50,29,0,50,29,50,50,29,0,29,29,50,29,50,29,50,29,50,29,50,29,50,29,29,50,29,50,29,50,29,50,29,50,29,51,51,0,0,0,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,0,41,52,51,41,41,41,52,51,0,0,41,52,51,41,52,51,52,41,52,51,41,41,52,51,41,41,41,41,41,41,41,52,52,52,52,52,52,52,51,51,51,51,51,51,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,0,52,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51,41,52,51],"f":"``{{{b{c}}d}{{f{{b{e}}}}}{}{}}{hh}0{{{b{c}}j}{{f{{b{e}}}}}{}{}}{{{b{c}}}{{f{{b{e}}}}}{}{}}000{{{b{c}}}{{b{e}}}{}{}}{{{b{lc}}}{{b{le}}}{}{}}2222222222{{}h}033{n{{b{c}}}{}}{n{{b{lc}}}{}}5{nA`}7`{{{b{c}}Ab}{{f{{b{e}}}}}{}{}}{{{b{Ad}}{b{lAf}}}Ah}{cc{}}{{{b{Aj}}}{{An{AdAl}}}}{{{b{lAj}}}{{An{AdAl}}}};{{}{{Bb{B`}}}}``{{}n}{{{b{lc}}{b{l{Bd{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bb{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bh{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{An{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bj{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bl{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bn{e}}}}}{{An{Bfg}}}{}{}{}}{ce{}{}}{{{b{c}}}{{f{{b{e}}}}}{}{}}000{{}{{C`{A`}}}}1111111111111{{{b{c}}Ab}{{f{{b{e}}}}}{}{}}2222{{{b{c}}AbAbAb}{{f{{b{e}}}}}{}{}}33``3{{{b{c}}Cb}{{f{{b{e}}}}}{}{}}4441```4{c{{An{e}}}{}{}}0{{{b{c}}}Cd{}}6{{{b{c}}}{{b{e}}}{}{}}{{{b{lc}}}{{b{le}}}{}{}}{{{b{lAd}}{b{Aj}}}{{An{A`Al}}}}{{{b{lAd}}{b{lAj}}}{{An{A`Al}}}}`;{{{b{c}}Cf}{{f{{b{e}}}}}{}{}};;;````{{{b{c}}Ch}A`{}}{{{b{c}}d}{{f{{b{e}}}}}{}{}}0{{{b{c}}j}{{f{{b{e}}}}}{}{}}0>>>>>>>>7766>>>>>>>>>>>>>>>>>>>>{{{b{Cj}}}Cj}{{{b{c}}{b{le}}}A`{}{}}{{{b{c}}}A`{}}{{{b{c}}}{{f{{b{e}}}}}{}{}}000{n{{b{c}}}{}}0{n{{b{lc}}}{}}022{nA`}077{{{b{Cl}}{b{Cn}}}{{C`{{b{D`}}}}}}{{{b{c}}Ab}{{f{{b{e}}}}}{}{}}0{{{b{Cj}}{b{lAf}}}Ah}{{{Dd{Db}}}Df}{cc{}}088{{}n}0{{{b{lc}}{b{l{Bj{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bl{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bn{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bd{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{An{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bh{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bb{e}}}}}{{An{Bfg}}}{}{}{}}5361240{ce{}{}}0{{{b{c}}}{{f{{b{e}}}}}{}{}}000{{{b{Dh}}}{{Bj{Db}}}}111111111111111111111111111111>>11111111{{{b{c}}AbAbAb}{{f{{b{e}}}}}{}{}}02222`22{{{b{c}}Cb}{{f{{b{e}}}}}{}{}}0333333{{{b{Dj}}}{{C`{Dl}}}}22`44`{{{b{c}}}e{}{}}{{{b{Cj}}}{{Bb{Dn}}}}{c{{An{e}}}{}{}}000{{{b{c}}}Cd{}}088{{{b{c}}}{{b{e}}}{}{}}0{{{b{lc}}}{{b{le}}}{}{}}0{{}{{b{{E`{Cj}}}}}}<<{{{b{c}}Cf}{{f{{b{e}}}}}{}{}}0<<<<<<`````{{{b{c}}d}{{f{{b{e}}}}}{}{}}00{{{b{c}}j}{{f{{b{e}}}}}{}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{n{{b{c}}}{}}00{n{{b{lc}}}{}}00{{{b{c}}}{{f{{b{e}}}}}{}{}}00{{{b{Eb}}n}A`}{nA`}00``555{{EdEfEfDf}{{Bl{Edn}}}}{{{b{Eh}}}{{Bj{{b{Ej}}}}}}{{{b{c}}Ab}{{f{{b{e}}}}}{}{}}00{cc{}}00`666`{{}n}00{{{b{lc}}{b{l{Bn{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bb{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bh{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{An{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bj{e}}}}}{{An{Bfg}}}{}{}{}}{{{b{lc}}{b{l{Bd{eg}}}}}{{An{Bfi}}}{}{}{}{}}{{{b{lc}}{b{l{Bl{eg}}}}}{{An{Bfi}}}{}{}{}{}}20613456520431{ce{}{}}00???????????????????????????????????????????????????:::????????????{{{b{c}}AbAbAb}{{f{{b{e}}}}}{}{}}00{{{b{c}}}{{f{{b{e}}}}}{}{}}00000`000{{{b{c}}Cb}{{f{{b{e}}}}}{}{}}00111111111222{{{Bj{{Bl{DfEl}}}}Cl{Bd{En{Bd{F`Fb}}}}Fd}{{C`{Eb}}}}`222{c{{An{e}}}{}{}}00000{{{b{c}}}Cd{}}00444{{{b{c}}}{{b{e}}}{}{}}00{{{b{lc}}}{{b{le}}}{}{}}00888{{{b{c}}Cf}{{f{{b{e}}}}}{}{}}00777777777","D":"C@j","p":[[1,"reference"],[6,"Attribute",536],[5,"Painted",537],[5,"Command",538],[6,"Color",539],[0,"mut"],[1,"usize"],[1,"unit"],[1,"u8"],[5,"Args",0],[5,"Formatter",540],[8,"Result",540],[5,"ArgMatches",541],[8,"Error",542],[6,"Result",543],[5,"Id",544],[6,"Option",545],[5,"OrderedHashMap",546],[6,"RewriteResult",547],[5,"VecDeque",548],[5,"Vec",549],[1,"tuple"],[5,"Box",550],[8,"Result",551],[6,"Quirk",536],[5,"TypeId",552],[5,"Condition",553],[5,"Private",554],[6,"RunMode",102],[5,"Program",555],[1,"str"],[8,"Function",555],[5,"Felt",556],[5,"IntoIter",557],[5,"String",558],[6,"Value",559],[5,"ExecutionResult",560],[6,"RunResultValue",561],[5,"PossibleValue",562],[1,"slice"],[5,"TestsSummary",281],[5,"TestCompilation",563],[1,"bool"],[5,"PackageMetadata",564],[5,"TargetMetadata",564],[5,"TestConfig",565],[5,"FunctionId",566],[6,"CostTokenType",567],[1,"i32"],[5,"RunArgs",102],[6,"TestStatus",281],[5,"TestResult",281]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAUAEAAAABYAjgCPAFIBUwFUAQ==","e":"OzAAAAEAAJMAIAAAAAAABAABAAsAAQAXAAEAGwABAB4AAAAiAAAAJAABACcAAAAqAAcANwAAAFkAAgBdAAUAZwAEAHgAAwCQAAIAlwADAJ0AAQCkAAAAqgAPAO8AAAD9AAAAAAEIAAsBBgAaAQEAMQEFAFsBBQBlAQQAeQEYAOABAAD4AQgABAIIAA=="}],\ ["scarb_native_dump",{"t":"HCPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["main","utils","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"scarb_native_dump"],[2,"scarb_native_dump::utils"],[181,"scarb_native_dump::utils::test"],[436,"anyhow"],[437,"dyn_clone::sealed"],[438,"yansi::attr_quirk"],[439,"yansi::paint"],[440,"yansi::color"],[441,"cairo_lang_sierra::program"],[442,"core::fmt"],[443,"starknet_types_core::felt"],[444,"alloc::vec::into_iter"],[445,"alloc::string"],[446,"core::option"],[447,"cairo_lang_semantic::substitution"],[448,"core::result"],[449,"alloc::vec"],[450,"alloc::collections::vec_deque"],[451,"cairo_lang_utils::ordered_hash_map"],[452,"alloc::boxed"],[453,"cairo_native::values"],[454,"cairo_native::execution_result"],[455,"cairo_lang_runner"],[456,"clap_builder::builder::possible_value"],[457,"core::any"],[458,"yansi::condition"],[459,"cairo_lang_test_plugin"],[460,"scarb_metadata"],[461,"cairo_lang_test_plugin::test_config"],[462,"cairo_lang_sierra::ids"],[463,"cairo_lang_sierra::extensions::modules::gas"]],"i":[0,0,9,9,0,0,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,9,9,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,0,45,9,9,0,45,9,45,9,45,9,45,45,45,45,45,45,45,9,9,9,9,9,9,9,45,9,45,9,45,9,0,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,9,45,45,9,45,9,45,9,45,9,45,9,0,45,9,45,45,9,0,9,9,45,9,45,9,45,9,45,9,45,9,45,9,9,45,9,45,9,45,9,45,9,45,9,46,46,0,0,0,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,0,36,47,46,36,36,36,47,46,0,0,36,47,46,36,47,46,47,36,47,46,36,36,47,46,36,36,36,36,36,36,36,47,47,47,47,47,47,47,46,46,46,46,46,46,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,0,47,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46,36,47,46],"f":"{{}{{d{b}}}}`````{{{f{c}}h}b{}}{{{f{c}}j}{{l{{f{e}}}}}{}{}}0{{{f{c}}n}{{l{{f{e}}}}}{}{}}0{{{f{c}}}{{l{{f{e}}}}}{}{}}0000000{{{f{c}}}{{f{e}}}{}{}}0{{{f{A`c}}}{{f{A`e}}}{}{}}022222222222222222222{{{f{Ab}}}Ab}{{{f{c}}{f{A`e}}}b{}{}}{{{f{c}}}b{}}5555{Ad{{f{c}}}{}}0{Ad{{f{A`c}}}{}}077{Adb}099{{{f{Af}}{f{Ah}}}{{d{{f{Aj}}}}}}{{{f{c}}Al}{{l{{f{e}}}}}{}{}}0{{{f{Ab}}{f{A`An}}}B`}{{{Bd{Bb}}}Bf}{cc{}}0=={{}Ad}0{{{f{A`c}}{f{A`{Bh{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Bn{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{C`{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Bl{eg}}}}}{{Bl{Bji}}}{}{}{}{}}{{{f{A`c}}{f{A`{Cb{eg}}}}}{{Bl{Bji}}}{}{}{}{}}{{{f{A`c}}{f{A`{Cd{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Cf{eg}}}}}{{Bl{Bji}}}{}{}{}{}}5610342{ce{}{}}0{{{f{c}}}{{l{{f{e}}}}}{}{}}000{{{f{Ch}}}{{Bn{Bb}}}}111111111111111111111111111111>>11111111{{{f{c}}AlAlAl}{{l{{f{e}}}}}{}{}}02222`22{{{f{c}}Cj}{{l{{f{e}}}}}{}{}}0333333{{{f{Cl}}}{{d{Cn}}}}22`44`{{{f{c}}}e{}{}}{{{f{Ab}}}{{Bh{D`}}}}{c{{Bl{e}}}{}{}}000{{{f{c}}}Db{}}088{{{f{c}}}{{f{e}}}{}{}}0{{{f{A`c}}}{{f{A`e}}}{}{}}0{{}{{f{{Dd{Ab}}}}}}<<{{{f{c}}Df}{{l{{f{e}}}}}{}{}}0<<<<<<`````{{{f{c}}j}{{l{{f{e}}}}}{}{}}00{{{f{c}}n}{{l{{f{e}}}}}{}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{Ad{{f{c}}}{}}00{Ad{{f{A`c}}}{}}00{{{f{c}}}{{l{{f{e}}}}}{}{}}00{{{f{Dh}}Ad}b}{Adb}00``555{{DjDlDlBf}{{Cf{DjAd}}}}{{{f{Dn}}}{{Bn{{f{E`}}}}}}{{{f{c}}Al}{{l{{f{e}}}}}{}{}}00{cc{}}00`666`{{}Ad}00{{{f{A`c}}{f{A`{Bl{eg}}}}}{{Bl{Bji}}}{}{}{}{}}{{{f{A`c}}{f{A`{Bh{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Bn{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Cf{eg}}}}}{{Bl{Bji}}}{}{}{}{}}{{{f{A`c}}{f{A`{Cd{e}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`c}}{f{A`{Cb{eg}}}}}{{Bl{Bji}}}{}{}{}{}}{{{f{A`c}}{f{A`{C`{e}}}}}{{Bl{Bjg}}}{}{}{}}16234501502364{ce{}{}}00???????????????????????????????????????????????????:::????????????{{{f{c}}AlAlAl}{{l{{f{e}}}}}{}{}}00{{{f{c}}}{{l{{f{e}}}}}{}{}}00000`000{{{f{c}}Cj}{{l{{f{e}}}}}{}{}}00111111111222{{{Bn{{Cf{BfEb}}}}Af{Cb{Ed{Cb{EfEh}}}}Ej}{{d{Dh}}}}`222{c{{Bl{e}}}{}{}}00000{{{f{c}}}Db{}}00444{{{f{c}}}{{f{e}}}{}{}}00{{{f{A`c}}}{{f{A`e}}}{}{}}00888{{{f{c}}Df}{{l{{f{e}}}}}{}{}}00777777777","D":"BGn","p":[[1,"unit"],[8,"Result",436],[1,"reference"],[5,"Private",437],[6,"Attribute",438],[5,"Painted",439],[6,"Color",440],[0,"mut"],[6,"RunMode",2],[1,"usize"],[5,"Program",441],[1,"str"],[8,"Function",441],[1,"u8"],[5,"Formatter",442],[8,"Result",442],[5,"Felt",443],[5,"IntoIter",444],[5,"String",445],[6,"Option",446],[6,"RewriteResult",447],[6,"Result",448],[5,"Vec",449],[5,"VecDeque",450],[5,"OrderedHashMap",451],[5,"Box",452],[1,"tuple"],[6,"Value",453],[6,"Quirk",438],[5,"ExecutionResult",454],[6,"RunResultValue",455],[5,"PossibleValue",456],[5,"TypeId",457],[1,"slice"],[5,"Condition",458],[5,"TestsSummary",181],[5,"TestCompilation",459],[1,"bool"],[5,"PackageMetadata",460],[5,"TargetMetadata",460],[5,"TestConfig",461],[5,"FunctionId",462],[6,"CostTokenType",463],[1,"i32"],[5,"RunArgs",2],[6,"TestStatus",181],[5,"TestResult",181]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAQAEAAAACoAKwDuAO8A8AA=","e":"OzAAAAEAAHUAFAAAAAAAAgAFABQAAwAsAAIAMwADADkAAQBAAAAARgAPAIsAAACZAAAAnAAIAKcABgC2AAEAzQAFAPcABQABAQQAFQEYAHwBAACUAQgAoAEIAA=="}],\ -["scarb_native_test",{"t":"PFPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["All","Args","Integration","TargetGroupDeduplicator","TestKind","Unit","__clone_box","__clone_box","attr","attr","attr","augment_args","augment_args_for_update","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","command","command_for_update","conceal","conceal","conceal","cyan","cyan","cyan","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_test_compilation","dim","dim","dim","drop","drop","drop","fg","fg","fg","filter","fixed","fixed","fixed","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches_mut","green","green","green","group_id","ignored","include_ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","main","mask","mask","mask","matches","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","opt_level","packages_filter","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_mode","seen","strike","strike","strike","test_kind","to_owned","to_owned","to_possible_value","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","visit","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"scarb_native_test"],[284,"scarb_native_test::utils"],[463,"scarb_native_test::utils::test"],[718,"dyn_clone::sealed"],[719,"yansi::attr_quirk"],[720,"yansi::paint"],[721,"clap_builder::builder::command"],[722,"yansi::color"],[723,"std::path"],[724,"alloc::string"],[725,"cairo_lang_test_plugin"],[726,"anyhow"],[727,"core::fmt"],[728,"clap_builder::parser::matches::arg_matches"],[729,"clap_builder"],[730,"core::result"],[731,"clap_builder::util::id"],[732,"core::option"],[733,"cairo_lang_utils::ordered_hash_map"],[734,"cairo_lang_semantic::substitution"],[735,"alloc::vec"],[736,"alloc::boxed"],[737,"alloc::collections::vec_deque"],[738,"clap_builder::builder::possible_value"],[739,"core::any"],[740,"yansi::condition"],[741,"cairo_lang_sierra::program"],[742,"starknet_types_core::felt"],[743,"alloc::vec::into_iter"],[744,"cairo_native::values"],[745,"cairo_native::execution_result"],[746,"cairo_lang_runner"],[747,"scarb_metadata"],[748,"cairo_lang_test_plugin::test_config"],[749,"cairo_lang_sierra::ids"],[750,"cairo_lang_sierra::extensions::modules::gas"]],"i":[10,0,10,0,0,10,9,10,9,10,11,9,9,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,9,10,9,10,9,9,9,10,11,9,10,11,10,11,9,10,11,9,10,11,0,9,10,11,9,10,11,9,10,11,9,9,10,11,9,10,9,10,11,9,9,9,10,11,9,9,9,9,10,11,9,9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11,11,11,11,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,0,9,10,11,10,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,9,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,11,9,10,11,9,9,10,10,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,9,0,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,38,38,0,0,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,38,38,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,0,53,38,38,0,53,38,53,38,53,38,53,53,53,53,53,53,53,38,38,38,38,38,38,38,53,38,53,38,53,38,0,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,53,38,53,38,53,38,53,38,53,38,0,53,38,53,53,38,0,38,38,53,38,53,38,53,38,53,38,53,38,53,38,38,53,38,53,38,53,38,53,38,53,38,54,54,0,0,0,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,0,46,55,54,46,46,46,55,54,0,0,46,55,54,46,55,54,55,46,55,54,46,46,55,54,46,46,46,46,46,46,46,55,55,55,55,55,55,55,54,54,54,54,54,54,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,0,55,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54],"f":"``````{{{b{c}}d}f{}}0{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{ll}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00222222222222222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{{b{c}}{b{A`e}}}f{}{}}0{{{b{c}}}f{}}0{{}l}0777777{{}Ad}{{}Af}{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{{{b{Aj}}Al}{{B`{An}}}}<<<{Ahf}00>>>`{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00{{{b{Ab}}{b{A`Bd}}}Bf}{{{b{Ad}}{b{A`Bd}}}Bf}{cc{}}00{{{b{Bh}}}{{Bl{AbBj}}}}{{{b{A`Bh}}}{{Bl{AbBj}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}{{C`{Bn}}}}``{{}Ah}00{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Ch{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}12364051236405{ce{}{}}00::::::::::::{{}{{B`{f}}}};;;{{{b{Ad}}{b{Cn}}}D`}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00============{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}00>>>>>>``>>>{{{b{c}}Db}{{j{{b{e}}}}}{}{}}00?????????111``???`{{{b{c}}}e{}{}}0{{{b{Ad}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}00000{{{b{c}}}Df{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00{{{b{A`Ab}}{b{Bh}}}{{Bl{fBj}}}}{{{b{A`Ab}}{b{A`Bh}}}{{Bl{fBj}}}}`{{}{{b{{Dh{Ad}}}}}}{{{b{A`Af}}AlAl}D`}{ce{}{}}00{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}00888888888````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0;;;;;;;;::99;;;;;;;;;;;;;;;;;;;;{{{b{Dl}}}Dl}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}>>>>{Ah{{b{c}}}{}}0{Ah{{b{A`c}}}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0{Ahf}077{{{b{Dn}}{b{Cn}}}{{B`{{b{E`}}}}}}{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}0{{{b{Dl}}{b{A`Bd}}}Bf}{{{Ed{Eb}}}Al}{cc{}}066{{}Ah}0{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Ch{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}5134062{ce{}{}}0????{{{b{Ef}}}{{Cf{Eb}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000000000>>00000000{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}01111`11{{{b{c}}Db}{{j{{b{e}}}}}{}{}}0222222{{{b{Eh}}}{{B`{Ej}}}}22`33`{{{b{c}}}e{}{}}{{{b{Dl}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}000{{{b{c}}}Df{}}077{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{}{{b{{Dh{Dl}}}}}}<<{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}0;;;;;;`````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}n}{{j{{b{e}}}}}{}{}}00============555444===================================={Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00???{{{b{El}}Ah}f}{Ahf}00``444{{AnD`D`Al}{{Cl{AnAh}}}}{{{b{En}}}{{Cf{{b{F`}}}}}}{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00{cc{}}00`{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{}Ah}00{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Ch{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}52340161346205{ce{}{}}00999999999999999999999999999999999999999999999999999;;;999999999999{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}00::::::`:::{{{b{c}}Db}{{j{{b{e}}}}}{}{}}00;;;;;;;;;111{{{Cf{{Cl{AlFb}}}}Dn{Cb{Fd{Cb{FfFh}}}}Fj}{{B`{El}}}}`<<<{c{{Bl{e}}}{}{}}00000{{{b{c}}}Df{}}00>>>{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00777{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000","D":"COj","p":[[1,"reference"],[5,"Private",718],[1,"unit"],[6,"Attribute",719],[5,"Painted",720],[5,"Command",721],[6,"Color",722],[0,"mut"],[5,"Args",0],[6,"TestKind",0],[5,"TargetGroupDeduplicator",0],[1,"usize"],[5,"Path",723],[5,"String",724],[5,"TestCompilation",725],[8,"Result",726],[1,"u8"],[5,"Formatter",727],[8,"Result",727],[5,"ArgMatches",728],[8,"Error",729],[6,"Result",730],[5,"Id",731],[6,"Option",732],[5,"OrderedHashMap",733],[6,"RewriteResult",734],[5,"Vec",735],[5,"Box",736],[5,"VecDeque",737],[1,"tuple"],[1,"str"],[1,"bool"],[6,"Quirk",719],[5,"PossibleValue",738],[5,"TypeId",739],[1,"slice"],[5,"Condition",740],[6,"RunMode",284],[5,"Program",741],[8,"Function",741],[5,"Felt",742],[5,"IntoIter",743],[6,"Value",744],[5,"ExecutionResult",745],[6,"RunResultValue",746],[5,"TestsSummary",463],[5,"PackageMetadata",747],[5,"TargetMetadata",747],[5,"TestConfig",748],[5,"FunctionId",749],[6,"CostTokenType",750],[1,"i32"],[5,"RunArgs",284],[6,"TestStatus",463],[5,"TestResult",463]],"r":[],"b":[],"c":"OzAAAAEAAAcAAwA+AAIARAEBAAgCAgA=","e":"OzAAAAEAANEAJQAAAAEAAwAFAAwAAQAdAAUAQQAHAE8ACABbAAIAZQABAGoAAQBvAAAAcgAXAJkAAACdAAAA2wAAAO8AAAD0AAsAAwEJAA4BAgAdAQQALgEDAEYBAgBNAQMAUwEBAFoBAABgAQ8ApQEAALMBAAC2AQgAwQEGANABAQDnAQUAEQIFABsCBAAvAhgAlgIAAK4CCAC6AggA"}]\ +["scarb_native_test",{"t":"PFPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["All","Args","Integration","TargetGroupDeduplicator","TestKind","Unit","__clone_box","__clone_box","attr","attr","attr","augment_args","augment_args_for_update","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","command","command_for_update","conceal","conceal","conceal","cyan","cyan","cyan","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_test_compilation","dim","dim","dim","drop","drop","drop","fg","fg","fg","filter","fixed","fixed","fixed","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches_mut","green","green","green","group_id","ignored","include_ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","main","mask","mask","mask","matches","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","opt_level","packages_filter","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_mode","seen","strike","strike","strike","test_kind","to_owned","to_owned","to_possible_value","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","visit","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","attr","bg","bg","black","black","blink","blink","blue","blue","bold","bold","borrow","borrow","borrow_mut","borrow_mut","bright","bright","bright_black","bright_black","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_green","bright_green","bright_magenta","bright_magenta","bright_red","bright_red","bright_white","bright_white","bright_yellow","bright_yellow","clear","clear","clone","clone_into","clone_to_uninit","conceal","conceal","cyan","cyan","deref","deref","deref_mut","deref_mut","dim","dim","drop","drop","fg","fg","find_function","fixed","fixed","fmt","format_for_panic","from","from","green","green","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","invert","invert","italic","italic","jitvalue_to_felt","linger","linger","magenta","magenta","mask","mask","on_black","on_black","on_blue","on_blue","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_fixed","on_fixed","on_green","on_green","on_magenta","on_magenta","on_primary","on_primary","on_red","on_red","on_rgb","on_rgb","on_white","on_white","on_yellow","on_yellow","opt_level","primary","primary","quirk","quirk","rapid_blink","rapid_blink","red","red","resetting","resetting","result_to_runresult","rgb","rgb","run_mode","strike","strike","test","to_owned","to_possible_value","try_from","try_from","try_into","try_into","type_id","type_id","underline","underline","upcast","upcast","upcast_mut","upcast_mut","value_variants","vzip","vzip","whenever","whenever","white","white","wrap","wrap","yellow","yellow","Fail","Success","TestResult","TestStatus","TestsSummary","attr","attr","attr","bg","bg","bg","black","black","black","blink","blink","blink","blue","blue","blue","bold","bold","bold","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bright","bright","bright","bright_black","bright_black","bright_black","bright_blue","bright_blue","bright_blue","bright_cyan","bright_cyan","bright_cyan","bright_green","bright_green","bright_green","bright_magenta","bright_magenta","bright_magenta","bright_red","bright_red","bright_red","bright_white","bright_white","bright_white","bright_yellow","bright_yellow","bright_yellow","clear","clear","clear","conceal","conceal","conceal","cyan","cyan","cyan","deref","deref","deref","deref_mut","deref_mut","deref_mut","dim","dim","dim","display_tests_summary","drop","drop","drop","failed","failed_run_results","fg","fg","fg","filter_test_cases","find_testable_targets","fixed","fixed","fixed","from","from","from","gas_usage","green","green","green","ignored","init","init","init","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","internal_rewrite","into","into","into","invert","invert","invert","italic","italic","italic","linger","linger","linger","magenta","magenta","magenta","mask","mask","mask","on_black","on_black","on_black","on_blue","on_blue","on_blue","on_bright","on_bright","on_bright","on_bright_black","on_bright_black","on_bright_black","on_bright_blue","on_bright_blue","on_bright_blue","on_bright_cyan","on_bright_cyan","on_bright_cyan","on_bright_green","on_bright_green","on_bright_green","on_bright_magenta","on_bright_magenta","on_bright_magenta","on_bright_red","on_bright_red","on_bright_red","on_bright_white","on_bright_white","on_bright_white","on_bright_yellow","on_bright_yellow","on_bright_yellow","on_cyan","on_cyan","on_cyan","on_fixed","on_fixed","on_fixed","on_green","on_green","on_green","on_magenta","on_magenta","on_magenta","on_primary","on_primary","on_primary","on_red","on_red","on_red","on_rgb","on_rgb","on_rgb","on_white","on_white","on_white","on_yellow","on_yellow","on_yellow","passed","primary","primary","primary","quirk","quirk","quirk","rapid_blink","rapid_blink","rapid_blink","red","red","red","resetting","resetting","resetting","rgb","rgb","rgb","run_tests","status","strike","strike","strike","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underline","underline","underline","upcast","upcast","upcast","upcast_mut","upcast_mut","upcast_mut","vzip","vzip","vzip","whenever","whenever","whenever","white","white","white","wrap","wrap","wrap","yellow","yellow","yellow"],"q":[[0,"scarb_native_test"],[284,"scarb_native_test::utils"],[463,"scarb_native_test::utils::test"],[718,"dyn_clone::sealed"],[719,"yansi::attr_quirk"],[720,"yansi::paint"],[721,"clap_builder::builder::command"],[722,"yansi::color"],[723,"std::path"],[724,"alloc::string"],[725,"cairo_lang_test_plugin"],[726,"anyhow"],[727,"core::fmt"],[728,"clap_builder::parser::matches::arg_matches"],[729,"clap_builder"],[730,"core::result"],[731,"clap_builder::util::id"],[732,"core::option"],[733,"cairo_lang_utils::ordered_hash_map"],[734,"cairo_lang_semantic::substitution"],[735,"alloc::vec"],[736,"alloc::boxed"],[737,"alloc::collections::vec_deque"],[738,"clap_builder::builder::possible_value"],[739,"core::any"],[740,"yansi::condition"],[741,"cairo_lang_sierra::program"],[742,"starknet_types_core::felt"],[743,"alloc::vec::into_iter"],[744,"cairo_native::values"],[745,"cairo_native::execution_result"],[746,"cairo_lang_runner"],[747,"scarb_metadata"],[748,"cairo_lang_test_plugin::test_config"],[749,"cairo_lang_sierra::ids"],[750,"cairo_lang_sierra::extensions::modules::gas"]],"i":[10,0,10,0,0,10,9,10,9,10,11,9,9,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,9,10,9,10,9,9,9,10,11,9,10,11,10,11,9,10,11,9,10,11,0,9,10,11,9,10,11,9,10,11,9,9,10,11,9,10,9,10,11,9,9,9,10,11,9,9,9,9,10,11,9,9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11,11,11,11,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,0,9,10,11,10,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,9,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,11,9,10,11,9,9,10,10,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,9,0,10,11,9,10,11,9,10,11,9,10,11,9,10,11,9,10,11,38,38,0,0,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,38,38,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,0,53,38,38,0,53,38,53,38,53,38,53,53,53,53,53,53,53,38,38,38,38,38,38,38,53,38,53,38,53,38,0,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,38,53,53,38,53,38,53,38,53,38,53,38,0,53,38,53,53,38,0,38,38,53,38,53,38,53,38,53,38,53,38,53,38,38,53,38,53,38,53,38,53,38,53,38,54,54,0,0,0,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,0,46,55,54,46,46,46,55,54,0,0,46,55,54,46,55,54,55,46,55,54,46,46,55,54,46,46,46,46,46,46,46,55,55,55,55,55,55,55,54,54,54,54,54,54,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,0,55,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54,46,55,54],"f":"``````{{{b{c}}d}f{}}0{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{ll}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00222222222222222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{{b{c}}{b{A`e}}}f{}{}}0{{{b{c}}}f{}}0{{}l}0777777{{}Ad}{{}Af}{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{{{b{Aj}}Al}{{B`{An}}}}<<<{Ahf}00>>>`{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00{{{b{Ab}}{b{A`Bd}}}Bf}{{{b{Ad}}{b{A`Bd}}}Bf}{cc{}}00{{{b{Bh}}}{{Bl{AbBj}}}}{{{b{A`Bh}}}{{Bl{AbBj}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{}{{C`{Bn}}}}``{{}Ah}00{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Ch{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cl{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}50126340126345{ce{}{}}00::::::::::::{{}{{B`{f}}}};;;{{{b{Ad}}{b{Cn}}}D`}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00============{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}00>>>>>>``>>>{{{b{c}}Db}{{j{{b{e}}}}}{}{}}00?????????111``???`{{{b{c}}}e{}{}}0{{{b{Ad}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}00000{{{b{c}}}Df{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00{{{b{A`Ab}}{b{Bh}}}{{Bl{fBj}}}}{{{b{A`Ab}}{b{A`Bh}}}{{Bl{fBj}}}}`{{}{{b{{Dh{Ad}}}}}}{{{b{A`Af}}AlAl}D`}{ce{}{}}00{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}00888888888````{{{b{c}}d}f{}}{{{b{c}}h}{{j{{b{e}}}}}{}{}}0{{{b{c}}n}{{j{{b{e}}}}}{}{}}0;;;;;;;;::99;;;;;;;;;;;;;;;;;;;;{{{b{Dl}}}Dl}{{{b{c}}{b{A`e}}}f{}{}}{{{b{c}}}f{}}>>>>{Ah{{b{c}}}{}}0{Ah{{b{A`c}}}{}}0{{{b{c}}}{{j{{b{e}}}}}{}{}}0{Ahf}077{{{b{Dn}}{b{Cn}}}{{B`{{b{E`}}}}}}{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}0{{{b{Dl}}{b{A`Bd}}}Bf}{{{Ed{Eb}}}Al}{cc{}}066{{}Ah}0{{{b{A`c}}{b{A`{Cl{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Ch{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}5134062{ce{}{}}0????{{{b{Ef}}}{{Cf{Eb}}}}{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000000000000000000000000>>00000000{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}01111`11{{{b{c}}Db}{{j{{b{e}}}}}{}{}}0222222{{{b{Eh}}}{{B`{Ej}}}}22`33`{{{b{c}}}e{}{}}{{{b{Dl}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}000{{{b{c}}}Df{}}077{{{b{c}}}{{b{e}}}{}{}}0{{{b{A`c}}}{{b{A`e}}}{}{}}0{{}{{b{{Dh{Dl}}}}}}<<{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}0;;;;;;`````{{{b{c}}h}{{j{{b{e}}}}}{}{}}00{{{b{c}}n}{{j{{b{e}}}}}{}{}}00============555444===================================={Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00???{{{b{El}}Ah}f}{Ahf}00``444{{AnD`D`Al}{{Ch{AnAh}}}}{{{b{En}}}{{Cf{{b{F`}}}}}}{{{b{c}}Bb}{{j{{b{e}}}}}{}{}}00{cc{}}00`{{{b{c}}}{{j{{b{e}}}}}{}{}}00`{{}Ah}00{{{b{A`c}}{b{A`{Bl{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Cf{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{C`{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cl{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cj{e}}}}}{{Bl{Cdg}}}{}{}{}}{{{b{A`c}}{b{A`{Cb{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}{{{b{A`c}}{b{A`{Ch{eg}}}}}{{Bl{Cdi}}}{}{}{}{}}52340161346205{ce{}{}}00999999999999999999999999999999999999999999999999999;;;999999999999{{{b{c}}BbBbBb}{{j{{b{e}}}}}{}{}}00::::::`:::{{{b{c}}Db}{{j{{b{e}}}}}{}{}}00;;;;;;;;;111{{{Cf{{Ch{AlFb}}}}Dn{Cb{Fd{Cb{FfFh}}}}Fj}{{B`{El}}}}`<<<{c{{Bl{e}}}{}{}}00000{{{b{c}}}Df{}}00>>>{{{b{c}}}{{b{e}}}{}{}}00{{{b{A`c}}}{{b{A`e}}}{}{}}00777{{{b{c}}Dj}{{j{{b{e}}}}}{}{}}00{{{b{c}}}{{j{{b{e}}}}}{}{}}00000000","D":"COj","p":[[1,"reference"],[5,"Private",718],[1,"unit"],[6,"Attribute",719],[5,"Painted",720],[5,"Command",721],[6,"Color",722],[0,"mut"],[5,"Args",0],[6,"TestKind",0],[5,"TargetGroupDeduplicator",0],[1,"usize"],[5,"Path",723],[5,"String",724],[5,"TestCompilation",725],[8,"Result",726],[1,"u8"],[5,"Formatter",727],[8,"Result",727],[5,"ArgMatches",728],[8,"Error",729],[6,"Result",730],[5,"Id",731],[6,"Option",732],[5,"OrderedHashMap",733],[6,"RewriteResult",734],[5,"Vec",735],[1,"tuple"],[5,"Box",736],[5,"VecDeque",737],[1,"str"],[1,"bool"],[6,"Quirk",719],[5,"PossibleValue",738],[5,"TypeId",739],[1,"slice"],[5,"Condition",740],[6,"RunMode",284],[5,"Program",741],[8,"Function",741],[5,"Felt",742],[5,"IntoIter",743],[6,"Value",744],[5,"ExecutionResult",745],[6,"RunResultValue",746],[5,"TestsSummary",463],[5,"PackageMetadata",747],[5,"TargetMetadata",747],[5,"TestConfig",748],[5,"FunctionId",749],[6,"CostTokenType",750],[1,"i32"],[5,"RunArgs",284],[6,"TestStatus",463],[5,"TestResult",463]],"r":[],"b":[],"c":"OzAAAAEAAAcAAwA+AAIARAEBAAgCAgA=","e":"OzAAAAEAANEAJQAAAAEAAwAFAAwAAQAdAAUAQQAHAE8ACABbAAIAZQABAGoAAQBvAAAAcgAXAJkAAACdAAAA2wAAAO8AAAD0AAsAAwEJAA4BAgAdAQQALgEDAEYBAgBNAQMAUwEBAFoBAABgAQ8ApQEAALMBAAC2AQgAwQEGANABAQDnAQUAEQIFABsCBAAvAhgAlgIAAK4CCAC6AggA"}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/search.desc/cairo_native_runtime/cairo_native_runtime-desc-0-.js b/search.desc/cairo_native_runtime/cairo_native_runtime-desc-0-.js index 9504b5dd1..28a8bbfbb 100644 --- a/search.desc/cairo_native_runtime/cairo_native_runtime-desc-0-.js +++ b/search.desc/cairo_native_runtime/cairo_native_runtime-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("cairo_native_runtime", 0, "Felt252 type used in cairo native runtime\nA formatted string representation of anything formattable …\nConverts a bigint representing a felt252 to a Cairo …\nConverts a bigint representing a felt252 to a Cairo …\nFree a dictionary using an optional callback to drop each …\nDuplicate a dictionary using a provided callback to clone …\nCompute the total gas refund for the dictionary at squash …\nReturn the value (reference) for a given key, or null if …\nInserts the provided key value. Returning the old one or …\nAllocate a new dictionary.\nBased on cairo-lang-runner’s implementation.\nCompute ec_point_from_x_nz(x) and store it.\nCompute ec_point_try_new_nz(x).\nCompute ec_state_add(state, point) and store the state …\nCompute ec_state_add_mul(state, scalar, point) and store …\nCompute ec_state_init() and store the state back.\nCompute ec_state_try_finalize_nz(state) and store the …\nCompute hades_permutation(op0, op1, op2) and replace the …\nCompute pedersen(lhs, rhs) and store it into dst.\nFormats a string or a short string / felt252. Returns the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the formatted item as is.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWraps the formatted item with quote, if it’s a string. …") \ No newline at end of file +searchState.loadedDescShard("cairo_native_runtime", 0, "Felt252 type used in cairo native runtime\nA formatted string representation of anything formattable …\nConverts a bigint representing a felt252 to a Cairo …\nConverts a bigint representing a felt252 to a Cairo …\nFree a dictionary using an optional callback to drop each …\nDuplicate a dictionary using a provided callback to clone …\nCompute the total gas refund for the dictionary at squash …\nReturn a pointer to the entry’s value pointer for a …\nAllocate a new dictionary.\nBased on cairo-lang-runner’s implementation.\nCompute ec_point_from_x_nz(x) and store it.\nCompute ec_point_try_new_nz(x).\nCompute ec_state_add(state, point) and store the state …\nCompute ec_state_add_mul(state, scalar, point) and store …\nCompute ec_state_init() and store the state back.\nCompute ec_state_try_finalize_nz(state) and store the …\nCompute hades_permutation(op0, op1, op2) and replace the …\nCompute pedersen(lhs, rhs) and store it into dst.\nFormats a string or a short string / felt252. Returns the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the formatted item as is.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWraps the formatted item with quote, if it’s a string. …") \ No newline at end of file diff --git a/settings.html b/settings.html index 134dbe279..fe384e45b 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Settings

      Rustdoc settings

      Back
      \ No newline at end of file +Settings

      Rustdoc settings

      Back
      \ No newline at end of file diff --git a/src-files.js b/src-files.js index 815929d38..9626775f3 100644 --- a/src-files.js +++ b/src-files.js @@ -1,5 +1,5 @@ var srcIndex = new Map(JSON.parse('[\ -["cairo_native",["",[["arch",[],["x86_64.rs"]],["cache",[],["aot.rs","jit.rs"]],["executor",[],["aot.rs","contract.rs","jit.rs"]],["libfuncs",[["starknet",[],["secp256.rs","testing.rs"]]],["ap_tracking.rs","array.rs","bitwise.rs","bool.rs","bounded_int.rs","box.rs","branch_align.rs","bytes31.rs","cast.rs","circuit.rs","const.rs","coupon.rs","debug.rs","drop.rs","dup.rs","ec.rs","enum.rs","felt252.rs","felt252_dict.rs","felt252_dict_entry.rs","function_call.rs","gas.rs","mem.rs","nullable.rs","pedersen.rs","poseidon.rs","sint128.rs","sint16.rs","sint32.rs","sint64.rs","sint8.rs","snapshot_take.rs","starknet.rs","struct.rs","uint128.rs","uint16.rs","uint256.rs","uint32.rs","uint512.rs","uint64.rs","uint8.rs","unconditional_jump.rs","unwrap_non_zero.rs"]],["metadata",[],["auto_breakpoint.rs","debug_utils.rs","drop_overrides.rs","dup_overrides.rs","enum_snapshot_variants.rs","gas.rs","realloc_bindings.rs","runtime_bindings.rs","tail_recursion.rs"]],["types",[],["array.rs","bitwise.rs","bounded_int.rs","box.rs","builtin_costs.rs","bytes31.rs","circuit.rs","coupon.rs","ec_op.rs","ec_point.rs","ec_state.rs","enum.rs","felt252.rs","felt252_dict.rs","felt252_dict_entry.rs","gas_builtin.rs","non_zero.rs","nullable.rs","pedersen.rs","poseidon.rs","range_check.rs","segment_arena.rs","snapshot.rs","squashed_felt252_dict.rs","starknet.rs","struct.rs","uint128.rs","uint128_mul_guarantee.rs","uint16.rs","uint32.rs","uint64.rs","uint8.rs","uninitialized.rs"]],["utils",[],["block_ext.rs","program_registry_ext.rs","range_ext.rs"]]],["arch.rs","cache.rs","compiler.rs","context.rs","debug.rs","docs.rs","error.rs","execution_result.rs","executor.rs","ffi.rs","lib.rs","libfuncs.rs","metadata.rs","module.rs","starknet.rs","starknet_stub.rs","types.rs","utils.rs","values.rs"]]],\ +["cairo_native",["",[["arch",[],["x86_64.rs"]],["cache",[],["aot.rs","jit.rs"]],["executor",[],["aot.rs","contract.rs","jit.rs"]],["libfuncs",[["starknet",[],["secp256.rs","testing.rs"]]],["ap_tracking.rs","array.rs","bitwise.rs","bool.rs","bounded_int.rs","box.rs","branch_align.rs","bytes31.rs","cast.rs","circuit.rs","const.rs","coupon.rs","debug.rs","drop.rs","dup.rs","ec.rs","enum.rs","felt252.rs","felt252_dict.rs","felt252_dict_entry.rs","function_call.rs","gas.rs","mem.rs","nullable.rs","pedersen.rs","poseidon.rs","sint128.rs","sint16.rs","sint32.rs","sint64.rs","sint8.rs","snapshot_take.rs","starknet.rs","struct.rs","uint128.rs","uint16.rs","uint256.rs","uint32.rs","uint512.rs","uint64.rs","uint8.rs","unconditional_jump.rs","unwrap_non_zero.rs"]],["metadata",[],["auto_breakpoint.rs","debug_utils.rs","drop_overrides.rs","dup_overrides.rs","enum_snapshot_variants.rs","gas.rs","realloc_bindings.rs","runtime_bindings.rs","tail_recursion.rs"]],["types",[],["array.rs","bitwise.rs","bounded_int.rs","box.rs","builtin_costs.rs","bytes31.rs","circuit.rs","coupon.rs","ec_op.rs","ec_point.rs","ec_state.rs","enum.rs","felt252.rs","felt252_dict.rs","felt252_dict_entry.rs","gas_builtin.rs","non_zero.rs","nullable.rs","pedersen.rs","poseidon.rs","range_check.rs","segment_arena.rs","snapshot.rs","squashed_felt252_dict.rs","starknet.rs","struct.rs","uint128.rs","uint128_mul_guarantee.rs","uint16.rs","uint32.rs","uint64.rs","uint8.rs","uninitialized.rs"]],["utils",[],["block_ext.rs","mem_tracing.rs","program_registry_ext.rs","range_ext.rs"]]],["arch.rs","cache.rs","compiler.rs","context.rs","debug.rs","docs.rs","error.rs","execution_result.rs","executor.rs","ffi.rs","lib.rs","libfuncs.rs","metadata.rs","module.rs","starknet.rs","starknet_stub.rs","types.rs","utils.rs","values.rs"]]],\ ["cairo_native_compile",["",[],["cairo-native-compile.rs"]]],\ ["cairo_native_dump",["",[],["cairo-native-dump.rs"]]],\ ["cairo_native_run",["",[["utils",[],["mod.rs","test.rs"]]],["cairo-native-run.rs"]]],\ diff --git a/src/cairo_native/arch.rs.html b/src/cairo_native/arch.rs.html index 58148d7eb..1582550ed 100644 --- a/src/cairo_native/arch.rs.html +++ b/src/cairo_native/arch.rs.html @@ -192,10 +192,12 @@ 192 193 194 +195

      use crate::{
           error,
           starknet::{ArrayAbi, Secp256k1Point, Secp256r1Point},
           types::TypeBuilder,
      +    utils::libc_malloc,
           values::Value,
       };
       use bumpalo::Bump;
      @@ -257,7 +259,7 @@
       
                       let layout = self.registry.get_type(&info.ty)?.layout(self.registry)?;
                       let heap_ptr = unsafe {
      -                    let heap_ptr = libc::malloc(layout.size());
      +                    let heap_ptr = libc_malloc(layout.size());
                           libc::memcpy(heap_ptr, ptr.as_ptr().cast(), layout.size());
                           heap_ptr
                       };
      @@ -272,7 +274,7 @@
       
                           let layout = self.registry.get_type(&info.ty)?.layout(self.registry)?;
                           let heap_ptr = unsafe {
      -                        let heap_ptr = libc::malloc(layout.size());
      +                        let heap_ptr = libc_malloc(layout.size());
                               libc::memcpy(heap_ptr, ptr.as_ptr().cast(), layout.size());
                               heap_ptr
                           };
      diff --git a/src/cairo_native/executor.rs.html b/src/cairo_native/executor.rs.html
      index fe87fbbb4..2964adbfc 100644
      --- a/src/cairo_native/executor.rs.html
      +++ b/src/cairo_native/executor.rs.html
      @@ -707,6 +707,9 @@
       707
       708
       709
      +710
      +711
      +712
       
      //! # Executors
       //!
       //! This module provides methods to execute the programs, either via JIT or compiled ahead
      @@ -719,7 +722,7 @@
           execution_result::{BuiltinStats, ExecutionResult},
           starknet::{handler::StarknetSyscallHandlerCallbacks, StarknetSyscallHandler},
           types::TypeBuilder,
      -    utils::RangeExt,
      +    utils::{libc_free, RangeExt},
           values::Value,
       };
       use bumpalo::Bump;
      @@ -1007,6 +1010,9 @@
                   debug_name: None,
               });
       
      +    #[cfg(feature = "with-mem-tracing")]
      +    crate::utils::mem_tracing::report_stats();
      +
           Ok(ExecutionResult {
               remaining_gas,
               return_value,
      @@ -1045,7 +1051,7 @@
               CoreTypeConcrete::Box(info) => unsafe {
                   let ptr = return_ptr.unwrap_or(NonNull::new_unchecked(ret_registers[0] as *mut ()));
                   let value = Value::from_ptr(ptr, &info.ty, registry)?;
      -            libc::free(ptr.cast().as_ptr());
      +            libc_free(ptr.cast().as_ptr());
                   Ok(value)
               },
               CoreTypeConcrete::EcPoint(_) | CoreTypeConcrete::EcState(_) => {
      @@ -1163,7 +1169,7 @@
                   } else {
                       let ptr = NonNull::new_unchecked(ptr);
                       let value = Value::from_ptr(ptr, &info.ty, registry)?;
      -                libc::free(ptr.as_ptr().cast());
      +                libc_free(ptr.as_ptr().cast());
                       Ok(value)
                   }
               },
      diff --git a/src/cairo_native/executor/contract.rs.html b/src/cairo_native/executor/contract.rs.html
      index 666e275c4..cec9acf4b 100644
      --- a/src/cairo_native/executor/contract.rs.html
      +++ b/src/cairo_native/executor/contract.rs.html
      @@ -543,6 +543,11 @@
       543
       544
       545
      +546
      +547
      +548
      +549
      +550
       
    //! A specialized executor for Starknet contracts, avoiding the overhead of storing the sierra program registry and
     //! enabling efficient serialization of the program/data once compiled.
     //!
    @@ -585,7 +590,9 @@
         module::NativeModule,
         starknet::{handler::StarknetSyscallHandlerCallbacks, StarknetSyscallHandler},
         types::TypeBuilder,
    -    utils::{decode_error_message, generate_function_name, get_integer_layout},
    +    utils::{
    +        decode_error_message, generate_function_name, get_integer_layout, libc_free, libc_malloc,
    +    },
         OptLevel,
     };
     use bumpalo::Bump;
    @@ -791,7 +798,7 @@
             }
     
             let felt_layout = get_integer_layout(252).pad_to_align();
    -        let ptr: *mut () = unsafe { libc::malloc(felt_layout.size() * args.len()).cast() };
    +        let ptr: *mut () = unsafe { libc_malloc(felt_layout.size() * args.len()).cast() };
             let len: u32 = args.len().try_into().unwrap();
     
             ptr.to_bytes(&mut invoke_data)?;
    @@ -932,7 +939,7 @@
             }
     
             if !array_ptr.is_null() {
    -            unsafe { libc::free(array_ptr.cast()) };
    +            unsafe { libc_free(array_ptr.cast()) };
             }
     
             let mut error_msg = None;
    @@ -949,6 +956,9 @@
                 error_msg = Some(str_error);
             }
     
    +        #[cfg(feature = "with-mem-tracing")]
    +        crate::utils::mem_tracing::report_stats();
    +
             Ok(ContractExecutionResult {
                 remaining_gas,
                 failure_flag: tag != 0,
    diff --git a/src/cairo_native/libfuncs/array.rs.html b/src/cairo_native/libfuncs/array.rs.html
    index e4db14135..782a8fd2e 100644
    --- a/src/cairo_native/libfuncs/array.rs.html
    +++ b/src/cairo_native/libfuncs/array.rs.html
    @@ -2456,6 +2456,189 @@
     2456
     2457
     2458
    +2459
    +2460
    +2461
    +2462
    +2463
    +2464
    +2465
    +2466
    +2467
    +2468
    +2469
    +2470
    +2471
    +2472
    +2473
    +2474
    +2475
    +2476
    +2477
    +2478
    +2479
    +2480
    +2481
    +2482
    +2483
    +2484
    +2485
    +2486
    +2487
    +2488
    +2489
    +2490
    +2491
    +2492
    +2493
    +2494
    +2495
    +2496
    +2497
    +2498
    +2499
    +2500
    +2501
    +2502
    +2503
    +2504
    +2505
    +2506
    +2507
    +2508
    +2509
    +2510
    +2511
    +2512
    +2513
    +2514
    +2515
    +2516
    +2517
    +2518
    +2519
    +2520
    +2521
    +2522
    +2523
    +2524
    +2525
    +2526
    +2527
    +2528
    +2529
    +2530
    +2531
    +2532
    +2533
    +2534
    +2535
    +2536
    +2537
    +2538
    +2539
    +2540
    +2541
    +2542
    +2543
    +2544
    +2545
    +2546
    +2547
    +2548
    +2549
    +2550
    +2551
    +2552
    +2553
    +2554
    +2555
    +2556
    +2557
    +2558
    +2559
    +2560
    +2561
    +2562
    +2563
    +2564
    +2565
    +2566
    +2567
    +2568
    +2569
    +2570
    +2571
    +2572
    +2573
    +2574
    +2575
    +2576
    +2577
    +2578
    +2579
    +2580
    +2581
    +2582
    +2583
    +2584
    +2585
    +2586
    +2587
    +2588
    +2589
    +2590
    +2591
    +2592
    +2593
    +2594
    +2595
    +2596
    +2597
    +2598
    +2599
    +2600
    +2601
    +2602
    +2603
    +2604
    +2605
    +2606
    +2607
    +2608
    +2609
    +2610
    +2611
    +2612
    +2613
    +2614
    +2615
    +2616
    +2617
    +2618
    +2619
    +2620
    +2621
    +2622
    +2623
    +2624
    +2625
    +2626
    +2627
    +2628
    +2629
    +2630
    +2631
    +2632
    +2633
    +2634
    +2635
    +2636
    +2637
    +2638
    +2639
    +2640
    +2641
     
    //! # Array libfuncs
     
     // TODO: A future possible improvement would be to put the array behind a double pointer and a
    @@ -2473,7 +2656,7 @@
     use cairo_lang_sierra::{
         extensions::{
             array::{ArrayConcreteLibfunc, ConcreteMultiPopLibfunc},
    -        core::{CoreLibfunc, CoreType},
    +        core::{CoreLibfunc, CoreType, CoreTypeConcrete},
             lib_func::{SignatureAndTypeConcreteLibfunc, SignatureOnlyConcreteLibfunc},
             ConcreteLibfunc,
         },
    @@ -2493,7 +2676,6 @@
         },
         Context,
     };
    -use std::ops::Deref;
     
     /// Select and call the correct libfunc builder function from the selector.
     pub fn build<'ctx, 'this>(
    @@ -2838,6 +3020,21 @@
     
         let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
     
    +    match metadata.get::<DropOverridesMeta>() {
    +        Some(drop_overrides_meta)
    +            if drop_overrides_meta.is_overriden(&info.signature.param_signatures[0].ty) =>
    +        {
    +            drop_overrides_meta.invoke_override(
    +                context,
    +                entry,
    +                location,
    +                &info.signature.param_signatures[0].ty,
    +                entry.argument(0)?.into(),
    +            )?;
    +        }
    +        _ => {}
    +    }
    +
         entry.append_operation(helper.br(0, &[array_len], location));
         Ok(())
     }
    @@ -3036,7 +3233,18 @@
             valid_block.append_operation(helper.br(0, &[range_check, target_ptr], location));
         }
     
    +    metadata
    +        .get::<DropOverridesMeta>()
    +        .unwrap()
    +        .invoke_override(
    +            context,
    +            error_block,
    +            location,
    +            &info.param_signatures()[1].ty,
    +            value,
    +        )?;
         error_block.append_operation(helper.br(1, &[range_check], location));
    +
         Ok(())
     }
     
    @@ -3150,8 +3358,105 @@
         metadata: &mut MetadataStorage,
         info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    // Equivalent to `array_pop_front_consume` for our purposes.
    -    build_pop_front(context, registry, entry, location, helper, metadata, info)
    +    if metadata.get::<ReallocBindingsMeta>().is_none() {
    +        metadata.insert(ReallocBindingsMeta::new(context, helper));
    +    }
    +
    +    let array_ty = registry.build_type(
    +        context,
    +        helper,
    +        registry,
    +        metadata,
    +        &info.param_signatures()[0].ty,
    +    )?;
    +
    +    let elem_ty = registry.get_type(&info.ty)?;
    +    let elem_layout = elem_ty.layout(registry)?;
    +
    +    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
    +    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
    +
    +    let value = entry.argument(0)?.into();
    +
    +    let array_start = entry.extract_value(context, location, value, len_ty, 1)?;
    +    let array_end = entry.extract_value(context, location, value, len_ty, 2)?;
    +
    +    let is_empty = entry.append_op_result(arith::cmpi(
    +        context,
    +        CmpiPredicate::Eq,
    +        array_start,
    +        array_end,
    +        location,
    +    ))?;
    +
    +    let valid_block = helper.append_block(Block::new(&[]));
    +    let empty_block = helper.append_block(Block::new(&[]));
    +    entry.append_operation(cf::cond_br(
    +        context,
    +        is_empty,
    +        empty_block,
    +        valid_block,
    +        &[],
    +        &[],
    +        location,
    +    ));
    +
    +    {
    +        let ptr = valid_block.extract_value(context, location, value, ptr_ty, 0)?;
    +
    +        let elem_size = valid_block.const_int(context, location, elem_layout.size(), 64)?;
    +        let elem_offset = valid_block.append_op_result(arith::extui(
    +            array_start,
    +            IntegerType::new(context, 64).into(),
    +            location,
    +        ))?;
    +        let elem_offset =
    +            valid_block.append_op_result(arith::muli(elem_offset, elem_size, location))?;
    +        let ptr = valid_block.append_op_result(llvm::get_element_ptr_dynamic(
    +            context,
    +            ptr,
    +            &[elem_offset],
    +            IntegerType::new(context, 8).into(),
    +            llvm::r#type::pointer(context, 0),
    +            location,
    +        ))?;
    +
    +        let target_ptr = valid_block.append_op_result(
    +            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
    +        )?;
    +        let target_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
    +            context, target_ptr, elem_size, location,
    +        ))?;
    +        assert_nonnull(
    +            context,
    +            valid_block,
    +            location,
    +            target_ptr,
    +            "realloc returned nullptr",
    +        )?;
    +
    +        valid_block.memcpy(context, location, ptr, target_ptr, elem_size);
    +
    +        let k1 = valid_block.const_int(context, location, 1, 32)?;
    +        let new_start = valid_block.append_op_result(arith::addi(array_start, k1, location))?;
    +        let value = valid_block.insert_value(context, location, value, new_start, 1)?;
    +
    +        valid_block.append_operation(helper.br(0, &[value, target_ptr], location));
    +    }
    +
    +    metadata
    +        .get::<DropOverridesMeta>()
    +        .unwrap()
    +        .invoke_override(
    +            context,
    +            empty_block,
    +            location,
    +            &info.param_signatures()[0].ty,
    +            value,
    +        )?;
    +    empty_block.append_operation(helper.br(1, &[], location));
    +
    +    Ok(())
     }
     
     /// Generate MLIR operations for the `array_snapshot_pop_front` libfunc.
    @@ -3529,60 +3834,46 @@
         metadata: &mut MetadataStorage,
         info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    if metadata.get::<ReallocBindingsMeta>().is_none() {
    -        metadata.insert(ReallocBindingsMeta::new(context, helper));
    -    }
    -
         let range_check =
             super::increment_builtin_counter(context, entry, location, entry.argument(0)?.into())?;
     
    -    let array_ty = registry.build_type(
    -        context,
    -        helper,
    -        registry,
    -        metadata,
    -        &info.param_signatures()[1].ty,
    -    )?;
    -
    -    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
    +    let len_ty = IntegerType::new(context, 32).into();
     
         let elem_ty = registry.get_type(&info.ty)?;
         let elem_layout = elem_ty.layout(registry)?;
     
    -    let slice_since = entry.argument(2)?.into();
    -    let slice_length = entry.argument(3)?.into();
    -
    -    let slice_until = entry.append_op_result(arith::addi(slice_since, slice_length, location))?;
    -
         let array_start =
             entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 1)?;
         let array_end = entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 2)?;
     
    -    let slice_since = entry.append_op_result(arith::addi(slice_since, array_start, location))?;
    -    let slice_until = entry.append_op_result(arith::addi(slice_until, array_start, location))?;
    +    let slice_start = entry.argument(2)?.into();
    +    let slice_len = entry.argument(3)?.into();
    +    let slice_end = entry.append_op_result(arith::addi(slice_start, slice_len, location))?;
     
    +    let slice_start = entry.append_op_result(arith::addi(array_start, slice_start, location))?;
    +    let slice_end = entry.append_op_result(arith::addi(array_start, slice_end, location))?;
         let lhs_bound = entry.append_op_result(arith::cmpi(
             context,
             CmpiPredicate::Uge,
    -        slice_since,
    +        slice_start,
             array_start,
             location,
         ))?;
         let rhs_bound = entry.append_op_result(arith::cmpi(
             context,
             CmpiPredicate::Ule,
    -        slice_until,
    +        slice_end,
             array_end,
             location,
         ))?;
     
    -    let is_fully_contained = entry.append_op_result(arith::andi(lhs_bound, rhs_bound, location))?;
    +    let is_valid = entry.append_op_result(arith::andi(lhs_bound, rhs_bound, location))?;
     
         let slice_block = helper.append_block(Block::new(&[]));
         let error_block = helper.append_block(Block::new(&[]));
         entry.append_operation(cf::cond_br(
             context,
    -        is_fully_contained,
    +        is_valid,
             slice_block,
             error_block,
             &[],
    @@ -3591,65 +3882,106 @@
         ));
     
         {
    -        let elem_size =
    -            slice_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
    -        let dst_size = slice_block.append_op_result(arith::extui(
    -            slice_length,
    -            IntegerType::new(context, 64).into(),
    -            location,
    -        ))?;
    -        let dst_size = slice_block.append_op_result(arith::muli(dst_size, elem_size, location))?;
    +        let elem_ty = elem_ty.build(context, helper, registry, metadata, &info.ty)?;
     
    -        let dst_ptr = slice_block.append_op_result(
    -            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
    -        )?;
    -        let dst_ptr = slice_block.append_op_result(ReallocBindingsMeta::realloc(
    -            context, dst_ptr, dst_size, location,
    -        ))?;
    +        let value = entry.argument(1)?.into();
    +        let value = slice_block.insert_value(context, location, value, slice_start, 1)?;
    +        let value = slice_block.insert_value(context, location, value, slice_end, 2)?;
     
    -        // TODO: Find out if we need to clone stuff using the snapshot clone meta.
    -        let src_offset = {
    -            let slice_since = slice_block.append_op_result(arith::extui(
    -                slice_since,
    +        let elem_stride =
    +            slice_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
    +        let prepare = |value| {
    +            let value = slice_block.append_op_result(arith::extui(
    +                value,
                     IntegerType::new(context, 64).into(),
                     location,
                 ))?;
    +            slice_block.append_op_result(arith::muli(value, elem_stride, location))
    +        };
     
    -            slice_block.append_op_result(arith::muli(slice_since, elem_size, location))?
    -        };
    -
    -        let src_ptr = slice_block.extract_value(
    +        let ptr = slice_block.extract_value(
                 context,
                 location,
                 entry.argument(1)?.into(),
    -            pointer(context, 0),
    +            llvm::r#type::pointer(context, 0),
                 0,
             )?;
    -        let src_ptr = slice_block.append_op_result(llvm::get_element_ptr_dynamic(
    -            context,
    -            src_ptr,
    -            &[src_offset],
    -            IntegerType::new(context, 8).into(),
    -            llvm::r#type::pointer(context, 0),
    -            location,
    -        ))?;
    +        let make_region = |drop_overrides_meta: &DropOverridesMeta| {
    +            let region = Region::new();
    +            let block = region.append_block(Block::new(&[(
    +                IntegerType::new(context, 64).into(),
    +                location,
    +            )]));
    +
    +            let value_ptr = block.append_op_result(llvm::get_element_ptr_dynamic(
    +                context,
    +                ptr,
    +                &[block.argument(0)?.into()],
    +                IntegerType::new(context, 8).into(),
    +                llvm::r#type::pointer(context, 0),
    +                location,
    +            ))?;
    +
    +            let value = block.load(context, location, value_ptr, elem_ty)?;
    +            drop_overrides_meta.invoke_override(context, &block, location, &info.ty, value)?;
    +
    +            block.append_operation(scf::r#yield(&[], location));
    +            Result::Ok(region)
    +        };
    +
    +        let array_start = prepare(array_start)?;
    +        let array_end = prepare(array_end)?;
    +        let slice_start = prepare(slice_start)?;
    +        let slice_end = prepare(slice_end)?;
     
    -        slice_block.memcpy(context, location, src_ptr, dst_ptr, dst_size);
    +        match metadata.get::<DropOverridesMeta>() {
    +            Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
    +                slice_block.append_operation(scf::r#for(
    +                    array_start,
    +                    slice_start,
    +                    elem_stride,
    +                    make_region(drop_overrides_meta)?,
    +                    location,
    +                ));
    +                slice_block.append_operation(scf::r#for(
    +                    slice_end,
    +                    array_end,
    +                    elem_stride,
    +                    make_region(drop_overrides_meta)?,
    +                    location,
    +                ));
    +            }
    +            _ => {}
    +        };
     
    -        let k0 = slice_block.const_int_from_type(context, location, 0, len_ty)?;
    +        slice_block.append_operation(helper.br(0, &[range_check, value], location));
    +    }
     
    -        let value = slice_block.append_op_result(llvm::undef(array_ty, location))?;
    -        let value = slice_block.insert_values(
    +    {
    +        registry.build_type(
                 context,
    -            location,
    -            value,
    -            &[dst_ptr, k0, slice_length, slice_length],
    +            helper,
    +            registry,
    +            metadata,
    +            &info.signature.param_signatures[1].ty,
             )?;
     
    -        slice_block.append_operation(helper.br(0, &[range_check, value], location));
    +        // The following unwrap is unreachable because an array always has a drop implementation,
    +        // which at this point is always inserted thanks to the `build_type()` just above.
    +        metadata
    +            .get::<DropOverridesMeta>()
    +            .unwrap()
    +            .invoke_override(
    +                context,
    +                error_block,
    +                location,
    +                &info.signature.param_signatures[1].ty,
    +                entry.argument(1)?.into(),
    +            )?;
    +
    +        error_block.append_operation(helper.br(1, &[range_check], location));
         }
     
    -    error_block.append_operation(helper.br(1, &[range_check], location));
         Ok(())
     }
     
    @@ -3664,7 +3996,6 @@
         info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
         // tuple to array span (t,t,t) -> &[t,t,t]
    -
         if metadata.get::<ReallocBindingsMeta>().is_none() {
             metadata.insert(ReallocBindingsMeta::new(context, helper));
         }
    @@ -3780,48 +4111,59 @@
         metadata: &mut MetadataStorage,
         info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    // Libfunc Signature:
    -    //
    -    // (Snapshot<Array<felt252>>) -> Box<Tuple<felt252, ...>>
    +    // Tasks:
    +    //   - Check if sizes match.
    +    //   - If they do not match, jump to branch [1].
    +    //   - If they do match:
    +    //     - If start == 0 && capacity == len -> reuse the pointer
    +    //     - Otherwise, realloc + memcpy + free.
     
         if metadata.get::<ReallocBindingsMeta>().is_none() {
             metadata.insert(ReallocBindingsMeta::new(context, helper));
         }
     
    -    // Get type information
    -
    -    let elem_core_ty = registry.get_type(&info.signature.param_signatures[0].ty)?;
    -    let elem_layout = elem_core_ty.layout(registry)?;
    -    let elem_stride = elem_layout.pad_to_align().size();
    -    let tuple_len = registry
    -        .get_type(&info.ty)?
    -        .fields()
    -        .expect("should be a struct (ergo, has fields)")
    -        .len();
    -
    -    let u32_ty = IntegerType::new(context, 32).into();
    +    let array_ty = registry.get_type(&info.signature.param_signatures[0].ty)?;
    +    let (elem_id, elem_ty) = match array_ty {
    +        CoreTypeConcrete::Array(info) => (&info.ty, registry.get_type(&info.ty)?),
    +        CoreTypeConcrete::Snapshot(info) => match registry.get_type(&info.ty)? {
    +            CoreTypeConcrete::Array(info) => (&info.ty, registry.get_type(&info.ty)?),
    +            _ => unreachable!(),
    +        },
    +        _ => unreachable!(),
    +    };
    +    let elem_layout = elem_ty.layout(registry)?;
     
    -    // Get array information
    +    let array_start = entry.extract_value(
    +        context,
    +        location,
    +        entry.argument(0)?.into(),
    +        IntegerType::new(context, 32).into(),
    +        1,
    +    )?;
    +    let array_end = entry.extract_value(
    +        context,
    +        location,
    +        entry.argument(0)?.into(),
    +        IntegerType::new(context, 32).into(),
    +        2,
    +    )?;
     
    -    let array_value = entry.argument(0)?.into();
    -    let array_ptr = entry.extract_value(context, location, array_value, pointer(context, 0), 0)?;
    -    let array_start = entry.extract_value(context, location, array_value, u32_ty, 1)?;
    -    let array_end = entry.extract_value(context, location, array_value, u32_ty, 2)?;
    -    let array_capacity = entry.extract_value(context, location, array_value, u32_ty, 3)?;
    +    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
    +    let (tuple_len, tuple_len_val) = {
    +        let fields = registry.get_type(&info.ty)?.fields().unwrap();
    +        assert!(fields.iter().all(|f| f.id == elem_id.id));
     
    -    // Check if conversion is valid
    -    //
    -    // if array.end - array.start != tuple_len {
    -    //     return err;
    -    // }
    +        (
    +            entry.const_int(context, location, fields.len(), 32)?,
    +            fields.len(),
    +        )
    +    };
     
    -    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
    -    let tuple_len_value = entry.const_int(context, location, tuple_len, 32)?;
    -    let array_len_matches = entry.append_op_result(arith::cmpi(
    +    let len_matches = entry.append_op_result(arith::cmpi(
             context,
             CmpiPredicate::Eq,
             array_len,
    -        tuple_len_value,
    +        tuple_len,
             location,
         ))?;
     
    @@ -3829,7 +4171,7 @@
         let block_err = helper.append_block(Block::new(&[]));
         entry.append_operation(cf::cond_br(
             context,
    -        array_len_matches,
    +        len_matches,
             block_ok,
             block_err,
             &[],
    @@ -3837,108 +4179,132 @@
             location,
         ));
     
    -    // Check if pointer can be passed through, that is
    -    // if array.start == 0 && array.capacity == tuple_len
    -
    -    let is_pointer_passthrough = {
    +    {
             let k0 = block_ok.const_int(context, location, 0, 32)?;
    -        let array_since_is_zero = block_ok.append_op_result(arith::cmpi(
    +        let starts_at_zero = block_ok.append_op_result(arith::cmpi(
                 context,
                 CmpiPredicate::Eq,
                 array_start,
                 k0,
                 location,
             ))?;
    -        let array_cap_matches = block_ok.append_op_result(arith::cmpi(
    +
    +        let array_cap = block_ok.extract_value(
    +            context,
    +            location,
    +            entry.argument(0)?.into(),
    +            IntegerType::new(context, 32).into(),
    +            3,
    +        )?;
    +        let capacity_matches = block_ok.append_op_result(arith::cmpi(
                 context,
                 CmpiPredicate::Eq,
    -            array_capacity,
    -            tuple_len_value,
    +            array_cap,
    +            tuple_len,
                 location,
             ))?;
     
    -        block_ok.append_op_result(arith::andi(
    -            array_since_is_zero,
    -            array_cap_matches,
    +        let array_ptr = block_ok.extract_value(
    +            context,
                 location,
    -        ))?
    -    };
    -
    -    let box_ptr = block_ok.append_op_result(scf::r#if(
    -        is_pointer_passthrough,
    -        &[llvm::r#type::pointer(context, 0)],
    -        {
    -            let region = Region::new();
    -            let block = region.append_block(Block::new(&[]));
    -
    -            // If can be passed through, just return the array ptr
    +            entry.argument(0)?.into(),
    +            llvm::r#type::pointer(context, 0),
    +            0,
    +        )?;
    +        let should_forward_pointer =
    +            block_ok.append_op_result(arith::andi(starts_at_zero, capacity_matches, location))?;
     
    -            block.append_operation(scf::r#yield(&[array_ptr], location));
    +        let block_clone = helper.append_block(Block::new(&[]));
    +        let block_forward = helper.append_block(Block::new(&[]));
    +        block_ok.append_operation(cf::cond_br(
    +            context,
    +            should_forward_pointer,
    +            block_forward,
    +            block_clone,
    +            &[],
    +            &[],
    +            location,
    +        ));
     
    -            region
    -        },
             {
    -            let region = Region::new();
    -            let block = region.append_block(Block::new(&[]));
    -
    -            // Otherwise, alloc memory for the returned tuple and clone it
    -
    -            let tuple_len_value = block.const_int(context, location, tuple_len, 64)?;
    -            let elem_stride_value = block.const_int(context, location, elem_stride, 64)?;
    -            let tuple_len_bytes = block.append_op_result(arith::muli(
    -                tuple_len_value,
    -                elem_stride_value,
    +            let elem_stride =
    +                block_clone.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
    +            let tuple_len = block_clone.append_op_result(arith::extui(
    +                tuple_len,
    +                IntegerType::new(context, 64).into(),
                     location,
                 ))?;
    +            let tuple_len =
    +                block_clone.append_op_result(arith::muli(tuple_len, elem_stride, location))?;
     
    -            let tuple_ptr = {
    -                let null_ptr = block
    -                    .append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
    -                let tuple_ptr = block.append_op_result(ReallocBindingsMeta::realloc(
    -                    context,
    -                    null_ptr,
    -                    tuple_len_bytes,
    -                    location,
    -                ))?;
    -
    -                assert_nonnull(
    -                    context,
    -                    block.deref(),
    -                    location,
    -                    tuple_ptr,
    -                    "realloc returned null",
    -                )?;
    -
    -                tuple_ptr
    -            };
    +            let box_ptr = block_clone
    +                .append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
    +            let box_ptr = block_clone.append_op_result(ReallocBindingsMeta::realloc(
    +                context, box_ptr, tuple_len, location,
    +            ))?;
     
    -            let array_start = block.append_op_result(arith::extui(
    +            let elem_offset = block_clone.append_op_result(arith::extui(
                     array_start,
                     IntegerType::new(context, 64).into(),
                     location,
                 ))?;
    -            let array_start_offset =
    -                block.append_op_result(arith::muli(elem_stride_value, array_start, location))?;
    -
    -            let src_ptr = block.append_op_result(llvm::get_element_ptr_dynamic(
    +            let elem_offset =
    +                block_clone.append_op_result(arith::muli(elem_offset, elem_stride, location))?;
    +            let elem_ptr = block_clone.append_op_result(llvm::get_element_ptr_dynamic(
                     context,
                     array_ptr,
    -                &[array_start_offset],
    +                &[elem_offset],
                     IntegerType::new(context, 8).into(),
                     llvm::r#type::pointer(context, 0),
                     location,
                 ))?;
    -            block.memcpy(context, location, src_ptr, tuple_ptr, tuple_len_bytes);
     
    -            block.append_operation(scf::r#yield(&[tuple_ptr], location));
    +            block_clone.append_operation(
    +                ods::llvm::intr_memcpy_inline(
    +                    context,
    +                    box_ptr,
    +                    elem_ptr,
    +                    IntegerAttribute::new(
    +                        IntegerType::new(context, 64).into(),
    +                        (tuple_len_val * elem_layout.pad_to_align().size()) as i64,
    +                    ),
    +                    IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
    +                    location,
    +                )
    +                .into(),
    +            );
     
    -            region
    -        },
    -        location,
    -    ))?;
    +            block_clone.append_operation(ReallocBindingsMeta::free(context, array_ptr, location));
    +            block_clone.append_operation(helper.br(0, &[box_ptr], location));
    +        }
     
    -    block_ok.append_operation(helper.br(0, &[box_ptr], location));
    -    block_err.append_operation(helper.br(1, &[], location));
    +        block_forward.append_operation(helper.br(0, &[array_ptr], location));
    +    }
    +
    +    {
    +        registry.build_type(
    +            context,
    +            helper,
    +            registry,
    +            metadata,
    +            &info.signature.param_signatures[0].ty,
    +        )?;
    +
    +        // The following unwrap is unreachable because an array always has a drop implementation,
    +        // which at this point is always inserted thanks to the `build_type()` just above.
    +        metadata
    +            .get::<DropOverridesMeta>()
    +            .unwrap()
    +            .invoke_override(
    +                context,
    +                block_err,
    +                location,
    +                &info.signature.param_signatures[0].ty,
    +                entry.argument(0)?.into(),
    +            )?;
    +
    +        block_err.append_operation(helper.br(1, &[], location));
    +    }
     
         Ok(())
     }
    @@ -4209,19 +4575,19 @@
                 use box::BoxTrait;
     
                 fn run_test() -> u32 {
    -                let mut data: Array<u32> = ArrayTrait::new();
    -                data.append(1_u32);
    +                let mut data: Array<u32> = ArrayTrait::new(); // Alloca (freed).
    +                data.append(1_u32);
                     data.append(2_u32);
                     data.append(3_u32);
                     data.append(4_u32);
    -                let sp = data.span();
    -                let slice = sp.slice(1, 2);
    -                data.append(5_u32);
    -                data.append(5_u32);
    +                let sp = data.span(); // Alloca (leaked).
    +                let slice = sp.slice(1, 2);
                     data.append(5_u32);
                     data.append(5_u32);
                     data.append(5_u32);
                     data.append(5_u32);
    +                data.append(5_u32); // Realloc (freed).
    +                data.append(5_u32);
                     *slice.get(1).unwrap().unbox()
                 }
     
    diff --git a/src/cairo_native/libfuncs/box.rs.html b/src/cairo_native/libfuncs/box.rs.html
    index 44ade0672..cd3bf2846 100644
    --- a/src/cairo_native/libfuncs/box.rs.html
    +++ b/src/cairo_native/libfuncs/box.rs.html
    @@ -317,30 +317,6 @@
     317
     318
     319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
     
    //! # Box libfuncs
     //!
     //! A heap allocated value, which is internally a pointer that can't be null.
    @@ -355,10 +331,7 @@
         extensions::{
             boxing::BoxConcreteLibfunc,
             core::{CoreLibfunc, CoreType},
    -        lib_func::{
    -            BranchSignature, LibfuncSignature, SignatureAndTypeConcreteLibfunc,
    -            SignatureOnlyConcreteLibfunc,
    -        },
    +        lib_func::SignatureAndTypeConcreteLibfunc,
         },
         program_registry::ProgramRegistry,
     };
    @@ -495,37 +468,16 @@
     }
     
     fn build_forward_snapshot<'ctx, 'this>(
    -    context: &'ctx Context,
    -    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    _context: &'ctx Context,
    +    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
         entry: &'this Block<'ctx>,
         location: Location<'ctx>,
         helper: &LibfuncHelper<'ctx, 'this>,
    -    metadata: &mut MetadataStorage,
    -    info: &SignatureAndTypeConcreteLibfunc,
    +    _metadata: &mut MetadataStorage,
    +    _info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    super::snapshot_take::build(
    -        context,
    -        registry,
    -        entry,
    -        location,
    -        helper,
    -        metadata,
    -        &SignatureOnlyConcreteLibfunc {
    -            signature: LibfuncSignature {
    -                param_signatures: info.signature.param_signatures.clone(),
    -                branch_signatures: info
    -                    .signature
    -                    .branch_signatures
    -                    .iter()
    -                    .map(|x| BranchSignature {
    -                        vars: x.vars.clone(),
    -                        ap_change: x.ap_change.clone(),
    -                    })
    -                    .collect(),
    -                fallthrough: info.signature.fallthrough,
    -            },
    -        },
    -    )
    +    entry.append_operation(helper.br(0, &[entry.argument(0)?.into()], location));
    +    Ok(())
     }
     
     #[cfg(test)]
    diff --git a/src/cairo_native/libfuncs/debug.rs.html b/src/cairo_native/libfuncs/debug.rs.html
    index 6feeb48d3..ab2668d9b 100644
    --- a/src/cairo_native/libfuncs/debug.rs.html
    +++ b/src/cairo_native/libfuncs/debug.rs.html
    @@ -124,6 +124,21 @@
     124
     125
     126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
     
    //! # Debug libfuncs
     
     // Printable: 9-13, 27, 32, 33-126
    @@ -138,8 +153,10 @@
     use super::LibfuncHelper;
     use crate::{
         error::Result,
    -    metadata::{runtime_bindings::RuntimeBindingsMeta, MetadataStorage},
    -    utils::BlockExt,
    +    metadata::{
    +        drop_overrides::DropOverridesMeta, runtime_bindings::RuntimeBindingsMeta, MetadataStorage,
    +    },
    +    utils::{BlockExt, ProgramRegistryExt},
     };
     use cairo_lang_sierra::{
         extensions::{
    @@ -173,12 +190,12 @@
     
     pub fn build_print<'ctx>(
         context: &'ctx Context,
    -    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
         entry: &Block<'ctx>,
         location: Location<'ctx>,
         helper: &LibfuncHelper<'ctx, '_>,
         metadata: &mut MetadataStorage,
    -    _info: &SignatureOnlyConcreteLibfunc,
    +    info: &SignatureOnlyConcreteLibfunc,
     ) -> Result<()> {
         let stdout_fd = entry.const_int(context, location, 1, 32)?;
     
    @@ -231,6 +248,19 @@
             context, helper, entry, stdout_fd, values_ptr, values_len, location,
         )?;
     
    +    let input_ty = &info.signature.param_signatures[0].ty;
    +    registry.build_type(context, helper, registry, metadata, input_ty)?;
    +    metadata
    +        .get::<DropOverridesMeta>()
    +        .unwrap()
    +        .invoke_override(
    +            context,
    +            entry,
    +            location,
    +            input_ty,
    +            entry.argument(0)?.into(),
    +        )?;
    +
         let k0 = entry.const_int(context, location, 0, 32)?;
         let return_code_is_ok = entry.append_op_result(arith::cmpi(
             context,
    diff --git a/src/cairo_native/libfuncs/felt252.rs.html b/src/cairo_native/libfuncs/felt252.rs.html
    index bdfebf611..9a2146931 100644
    --- a/src/cairo_native/libfuncs/felt252.rs.html
    +++ b/src/cairo_native/libfuncs/felt252.rs.html
    @@ -625,13 +625,6 @@
     625
     626
     627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
     
    //! # `Felt`-related libfuncs
     
     use super::LibfuncHelper;
    @@ -1011,15 +1004,8 @@
     
         lazy_static! {
             static ref FELT252_ADD: (String, Program) = load_cairo! {
    -            use core::debug::PrintTrait;
                 fn run_test(lhs: felt252, rhs: felt252) -> felt252 {
    -                lhs.print();
    -                rhs.print();
    -                let result = lhs + rhs;
    -
    -    result.print();
    -
    -    result
    +                lhs + rhs
                 }
             };
     
    diff --git a/src/cairo_native/libfuncs/felt252_dict.rs.html b/src/cairo_native/libfuncs/felt252_dict.rs.html
    index 397bfb9be..5b7ada53c 100644
    --- a/src/cairo_native/libfuncs/felt252_dict.rs.html
    +++ b/src/cairo_native/libfuncs/felt252_dict.rs.html
    @@ -299,7 +299,6 @@
     299
     300
     301
    -302
     
    //! # `Felt` dictionary libfuncs
     
     use super::LibfuncHelper;
    @@ -358,8 +357,7 @@
             .get_mut::<RuntimeBindingsMeta>()
             .expect("Runtime library not available.");
     
    -    let op = runtime_bindings.dict_new(context, helper, entry, location)?;
    -    let dict_ptr = op.result(0)?.into();
    +    let dict_ptr = runtime_bindings.dict_new(context, helper, entry, location)?;
     
         entry.append_operation(helper.br(0, &[segment_arena, dict_ptr], location));
         Ok(())
    diff --git a/src/cairo_native/libfuncs/felt252_dict_entry.rs.html b/src/cairo_native/libfuncs/felt252_dict_entry.rs.html
    index 139104018..e44faba5a 100644
    --- a/src/cairo_native/libfuncs/felt252_dict_entry.rs.html
    +++ b/src/cairo_native/libfuncs/felt252_dict_entry.rs.html
    @@ -334,17 +334,51 @@
     334
     335
     336
    +337
    +338
    +339
    +340
    +341
    +342
    +343
    +344
    +345
    +346
    +347
    +348
    +349
    +350
    +351
    +352
    +353
    +354
    +355
    +356
    +357
    +358
    +359
    +360
    +361
    +362
    +363
    +364
    +365
    +366
    +367
    +368
    +369
     
    //! # `Felt` dictionary entry libfuncs
     
     use super::LibfuncHelper;
     use crate::{
         error::Result,
         metadata::{
    +        drop_overrides::DropOverridesMeta, dup_overrides::DupOverridesMeta,
             realloc_bindings::ReallocBindingsMeta, runtime_bindings::RuntimeBindingsMeta,
             MetadataStorage,
         },
         types::TypeBuilder,
    -    utils::{get_integer_layout, BlockExt, ProgramRegistryExt},
    +    utils::{BlockExt, ProgramRegistryExt},
     };
     use cairo_lang_sierra::{
         extensions::{
    @@ -356,11 +390,8 @@
         program_registry::ProgramRegistry,
     };
     use melior::{
    -    dialect::{cf, llvm},
    -    ir::{
    -        attribute::IntegerAttribute, operation::OperationBuilder, r#type::IntegerType, Block,
    -        Identifier, Location, Value, ValueLike,
    -    },
    +    dialect::{cf, llvm, ods},
    +    ir::{attribute::IntegerAttribute, r#type::IntegerType, Block, Location},
         Context,
     };
     
    @@ -393,10 +424,6 @@
         metadata: &mut MetadataStorage,
         info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    if metadata.get::<ReallocBindingsMeta>().is_none() {
    -        metadata.insert(ReallocBindingsMeta::new(context, helper));
    -    }
    -
         let (key_ty, key_layout) = registry.build_type_with_layout(
             context,
             helper,
    @@ -404,7 +431,6 @@
             metadata,
             &info.param_signatures()[1].ty,
         )?;
    -
         let entry_ty = registry.build_type(
             context,
             helper,
    @@ -412,169 +438,209 @@
             metadata,
             &info.branch_signatures()[0].vars[0].ty,
         )?;
    -
    -    let (value_ty, value_layout) = registry.build_type_with_layout(
    -        context,
    -        helper,
    -        registry,
    -        metadata,
    -        &info.branch_signatures()[0].vars[1].ty,
    -    )?;
    +    let value_ty = registry.build_type(context, helper, registry, metadata, &info.ty)?;
     
         let dict_ptr = entry.argument(0)?.into();
    -    let key_value = entry.argument(1)?.into();
    -
    -    let key_ptr = helper
    -        .init_block()
    -        .alloca1(context, location, key_ty, key_layout.align())?;
    +    let entry_key = entry.argument(1)?.into();
     
    -    entry.store(context, location, key_ptr, key_value)?;
    +    let entry_key_ptr =
    +        helper
    +            .init_block()
    +            .alloca1(context, location, key_ty, key_layout.align())?;
    +    entry.store(context, location, entry_key_ptr, entry_key)?;
     
    -    let runtime_bindings = metadata
    +    // Double pointer. Avoid allocating an element on a dict getter.
    +    let entry_value_ptr_ptr = metadata
             .get_mut::<RuntimeBindingsMeta>()
    -        .expect("Runtime library not available.");
    -
    -    let op = runtime_bindings.dict_get(context, helper, entry, dict_ptr, key_ptr, location)?;
    -    let result_ptr: Value = op.result(0)?.into();
    -
    -    let null_ptr = entry.append_op_result(
    -        OperationBuilder::new("llvm.mlir.zero", location)
    -            .add_results(&[result_ptr.r#type()])
    -            .build()?,
    +        .unwrap()
    +        .dict_get(context, helper, entry, dict_ptr, entry_key_ptr, location)?;
    +    let entry_value_ptr = entry.load(
    +        context,
    +        location,
    +        entry_value_ptr_ptr,
    +        llvm::r#type::pointer(context, 0),
         )?;
     
    -    // need llvm instead of arith to compare pointers
    -    let is_null_ptr = entry.append_op_result(
    -        OperationBuilder::new("llvm.icmp", location)
    -            .add_operands(&[result_ptr, null_ptr])
    -            .add_attributes(&[(
    -                Identifier::new(context, "predicate"),
    -                IntegerAttribute::new(IntegerType::new(context, 64).into(), 0).into(),
    -            )])
    -            .add_results(&[IntegerType::new(context, 1).into()])
    -            .build()?,
    +    let null_ptr =
    +        entry.append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
    +    let is_vacant = entry.append_op_result(
    +        ods::llvm::icmp(
    +            context,
    +            IntegerType::new(context, 1).into(),
    +            entry_value_ptr,
    +            null_ptr,
    +            IntegerAttribute::new(IntegerType::new(context, 64).into(), 0).into(),
    +            location,
    +        )
    +        .into(),
         )?;
     
    -    let block_is_null = helper.append_block(Block::new(&[]));
    -    let block_is_found = helper.append_block(Block::new(&[]));
    -    let block_final = helper.append_block(Block::new(&[
    -        (llvm::r#type::pointer(context, 0), location),
    -        (value_ty, location),
    -    ]));
    -
    +    let block_occupied = helper.append_block(Block::new(&[]));
    +    let block_vacant = helper.append_block(Block::new(&[]));
    +    let block_final = helper.append_block(Block::new(&[(value_ty, location)]));
         entry.append_operation(cf::cond_br(
             context,
    -        is_null_ptr,
    -        block_is_null,
    -        block_is_found,
    +        is_vacant,
    +        block_vacant,
    +        block_occupied,
             &[],
             &[],
             location,
         ));
     
    -    // null block
    -    {
    -        let alloc_size = block_is_null.const_int(context, location, value_layout.size(), 64)?;
    -
    -        let value_ptr = block_is_null.append_op_result(ReallocBindingsMeta::realloc(
    -            context, result_ptr, alloc_size, location,
    -        ))?;
    +    {
    +        let value = block_occupied.load(context, location, entry_value_ptr, value_ty)?;
    +        let values = match metadata.get::<DupOverridesMeta>() {
    +            Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(&info.ty) => {
    +                dup_overrides_meta.invoke_override(
    +                    context,
    +                    block_occupied,
    +                    location,
    +                    &info.ty,
    +                    value,
    +                )?
    +            }
    +            _ => (value, value),
    +        };
    +
    +        block_occupied.store(context, location, entry_value_ptr, values.0)?;
    +        block_occupied.append_operation(cf::br(block_final, &[values.1], location));
    +    }
     
    -        let default_value = registry
    +    {
    +        let value = registry
                 .get_type(&info.branch_signatures()[0].vars[1].ty)?
                 .build_default(
                     context,
                     registry,
    -                block_is_null,
    +                block_vacant,
                     location,
                     helper,
                     metadata,
                     &info.branch_signatures()[0].vars[1].ty,
                 )?;
    -
    -        block_is_null.append_operation(cf::br(block_final, &[value_ptr, default_value], location));
    -    }
    -
    -    // found block
    -    {
    -        let loaded_val_ptr = block_is_found.load(context, location, result_ptr, value_ty)?;
    -        block_is_found.append_operation(cf::br(
    -            block_final,
    -            &[result_ptr, loaded_val_ptr],
    -            location,
    -        ));
    +        block_vacant.append_operation(cf::br(block_final, &[value], location));
         }
     
    -    // construct the struct
    -
    -    let entry_value = block_final.append_op_result(llvm::undef(entry_ty, location))?;
    -
    -    let value_ptr = block_final.argument(0)?.into();
    -    let value = block_final.argument(1)?.into();
    -
    -    let entry_value = block_final.insert_value(context, location, entry_value, key_value, 0)?;
    -
    -    let entry_value = block_final.insert_value(context, location, entry_value, value_ptr, 1)?;
    -
    -    let entry_value = block_final.insert_value(context, location, entry_value, dict_ptr, 2)?;
    -
    -    block_final.append_operation(helper.br(0, &[entry_value, value], location));
    +    let entry = block_final.append_op_result(llvm::undef(entry_ty, location))?;
    +    let entry =
    +        block_final.insert_values(context, location, entry, &[dict_ptr, entry_value_ptr_ptr])?;
     
    +    block_final.append_operation(helper.br(0, &[entry, block_final.argument(0)?.into()], location));
         Ok(())
     }
     
     pub fn build_finalize<'ctx, 'this>(
         context: &'ctx Context,
    -    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
         entry: &'this Block<'ctx>,
         location: Location<'ctx>,
         helper: &LibfuncHelper<'ctx, 'this>,
         metadata: &mut MetadataStorage,
    -    _info: &SignatureAndTypeConcreteLibfunc,
    +    info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    let key_ty = IntegerType::new(context, 252).into();
    -    let key_layout = get_integer_layout(252);
    +    if metadata.get::<ReallocBindingsMeta>().is_none() {
    +        metadata.insert(ReallocBindingsMeta::new(context, helper));
    +    }
     
    -    let entry_value = entry.argument(0)?.into();
    -    let new_value = entry.argument(1)?.into();
    +    let (value_ty, value_layout) = registry.build_type_with_layout(
    +        context,
    +        helper,
    +        registry,
    +        metadata,
    +        &info.signature.param_signatures[1].ty,
    +    )?;
     
    -    let key_value = entry.extract_value(context, location, entry_value, key_ty, 0)?;
    +    let dict_entry = entry.argument(0)?.into();
    +    let entry_value = entry.argument(1)?.into();
     
    -    let value_ptr = entry.extract_value(
    +    let dict_ptr = entry.extract_value(
             context,
             location,
    -        entry_value,
    +        dict_entry,
    +        llvm::r#type::pointer(context, 0),
    +        0,
    +    )?;
    +    let value_ptr_ptr = entry.extract_value(
    +        context,
    +        location,
    +        dict_entry,
             llvm::r#type::pointer(context, 0),
             1,
         )?;
     
    -    let dict_ptr = entry.extract_value(
    +    let value_ptr = entry.load(
             context,
             location,
    -        entry_value,
    +        value_ptr_ptr,
             llvm::r#type::pointer(context, 0),
    -        2,
         )?;
     
    -    entry.store(context, location, value_ptr, new_value)?;
    +    let null_ptr =
    +        entry.append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
    +    let is_vacant = entry.append_op_result(
    +        ods::llvm::icmp(
    +            context,
    +            IntegerType::new(context, 1).into(),
    +            value_ptr,
    +            null_ptr,
    +            IntegerAttribute::new(IntegerType::new(context, 64).into(), 0).into(),
    +            location,
    +        )
    +        .into(),
    +    )?;
    +
    +    let block_occupied = helper.append_block(Block::new(&[]));
    +    let block_vacant = helper.append_block(Block::new(&[]));
    +    let block_final =
    +        helper.append_block(Block::new(&[(llvm::r#type::pointer(context, 0), location)]));
    +    entry.append_operation(cf::cond_br(
    +        context,
    +        is_vacant,
    +        block_vacant,
    +        block_occupied,
    +        &[],
    +        &[],
    +        location,
    +    ));
     
    -    let key_ptr = helper
    -        .init_block()
    -        .alloca1(context, location, key_ty, key_layout.align())?;
    +    {
    +        match metadata.get::<DropOverridesMeta>() {
    +            Some(drop_overrides_meta)
    +                if drop_overrides_meta.is_overriden(&info.signature.param_signatures[1].ty) =>
    +            {
    +                let value = block_occupied.load(context, location, value_ptr, value_ty)?;
    +                drop_overrides_meta.invoke_override(
    +                    context,
    +                    block_occupied,
    +                    location,
    +                    &info.signature.param_signatures[1].ty,
    +                    value,
    +                )?;
    +            }
    +            _ => {}
    +        }
     
    -    entry.store(context, location, key_ptr, key_value)?;
    +        block_occupied.append_operation(cf::br(block_final, &[value_ptr], location));
    +    }
     
    -    // call insert
    +    {
    +        let value_len = block_vacant.const_int(context, location, value_layout.size(), 64)?;
    +        let value_ptr = block_vacant.append_op_result(ReallocBindingsMeta::realloc(
    +            context, null_ptr, value_len, location,
    +        ))?;
     
    -    let runtime_bindings = metadata
    -        .get_mut::<RuntimeBindingsMeta>()
    -        .expect("Runtime library not available.");
    +        block_vacant.store(context, location, value_ptr_ptr, value_ptr)?;
    +        block_vacant.append_operation(cf::br(block_final, &[value_ptr], location));
    +    }
     
    -    runtime_bindings.dict_insert(
    -        context, helper, entry, dict_ptr, key_ptr, value_ptr, location,
    +    block_final.store(
    +        context,
    +        location,
    +        block_final.argument(0)?.into(),
    +        entry_value,
         )?;
    -
    -    entry.append_operation(helper.br(0, &[dict_ptr], location));
    +    block_final.append_operation(helper.br(0, &[dict_ptr], location));
     
         Ok(())
     }
    diff --git a/src/cairo_native/libfuncs/nullable.rs.html b/src/cairo_native/libfuncs/nullable.rs.html
    index 5d44cded7..9939a05f6 100644
    --- a/src/cairo_native/libfuncs/nullable.rs.html
    +++ b/src/cairo_native/libfuncs/nullable.rs.html
    @@ -255,30 +255,6 @@
     255
     256
     257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
     
    //! # Nullable libfuncs
     //!
     //! Like a Box but it can be null.
    @@ -288,10 +264,7 @@
     use cairo_lang_sierra::{
         extensions::{
             core::{CoreLibfunc, CoreType},
    -        lib_func::{
    -            BranchSignature, LibfuncSignature, SignatureAndTypeConcreteLibfunc,
    -            SignatureOnlyConcreteLibfunc,
    -        },
    +        lib_func::{SignatureAndTypeConcreteLibfunc, SignatureOnlyConcreteLibfunc},
             nullable::NullableConcreteLibfunc,
         },
         program_registry::ProgramRegistry,
    @@ -413,37 +386,16 @@
     }
     
     fn build_forward_snapshot<'ctx, 'this>(
    -    context: &'ctx Context,
    -    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    _context: &'ctx Context,
    +    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
         entry: &'this Block<'ctx>,
         location: Location<'ctx>,
         helper: &LibfuncHelper<'ctx, 'this>,
    -    metadata: &mut MetadataStorage,
    -    info: &SignatureAndTypeConcreteLibfunc,
    +    _metadata: &mut MetadataStorage,
    +    _info: &SignatureAndTypeConcreteLibfunc,
     ) -> Result<()> {
    -    super::snapshot_take::build(
    -        context,
    -        registry,
    -        entry,
    -        location,
    -        helper,
    -        metadata,
    -        &SignatureOnlyConcreteLibfunc {
    -            signature: LibfuncSignature {
    -                param_signatures: info.signature.param_signatures.clone(),
    -                branch_signatures: info
    -                    .signature
    -                    .branch_signatures
    -                    .iter()
    -                    .map(|x| BranchSignature {
    -                        vars: x.vars.clone(),
    -                        ap_change: x.ap_change.clone(),
    -                    })
    -                    .collect(),
    -                fallthrough: info.signature.fallthrough,
    -            },
    -        },
    -    )
    +    entry.append_operation(helper.br(0, &[entry.argument(0)?.into()], location));
    +    Ok(())
     }
     
     #[cfg(test)]
    diff --git a/src/cairo_native/libfuncs/starknet.rs.html b/src/cairo_native/libfuncs/starknet.rs.html
    index 21c513298..42827ae63 100644
    --- a/src/cairo_native/libfuncs/starknet.rs.html
    +++ b/src/cairo_native/libfuncs/starknet.rs.html
    @@ -3403,110 +3403,13 @@
     3403
     3404
     3405
    -3406
    -3407
    -3408
    -3409
    -3410
    -3411
    -3412
    -3413
    -3414
    -3415
    -3416
    -3417
    -3418
    -3419
    -3420
    -3421
    -3422
    -3423
    -3424
    -3425
    -3426
    -3427
    -3428
    -3429
    -3430
    -3431
    -3432
    -3433
    -3434
    -3435
    -3436
    -3437
    -3438
    -3439
    -3440
    -3441
    -3442
    -3443
    -3444
    -3445
    -3446
    -3447
    -3448
    -3449
    -3450
    -3451
    -3452
    -3453
    -3454
    -3455
    -3456
    -3457
    -3458
    -3459
    -3460
    -3461
    -3462
    -3463
    -3464
    -3465
    -3466
    -3467
    -3468
    -3469
    -3470
    -3471
    -3472
    -3473
    -3474
    -3475
    -3476
    -3477
    -3478
    -3479
    -3480
    -3481
    -3482
    -3483
    -3484
    -3485
    -3486
    -3487
    -3488
    -3489
    -3490
    -3491
    -3492
    -3493
    -3494
    -3495
    -3496
    -3497
    -3498
    -3499
    -3500
    -3501
    -3502
     
    //! # Starknet libfuncs
     
     use super::LibfuncHelper;
     use crate::{
         error::Result,
         ffi::get_struct_field_type_at,
    -    metadata::MetadataStorage,
    +    metadata::{drop_overrides::DropOverridesMeta, MetadataStorage},
         starknet::handler::StarknetSyscallHandlerCallbacks,
         utils::{get_integer_layout, BlockExt, ProgramRegistryExt, PRIME},
     };
    @@ -3526,9 +3429,7 @@
             llvm::{self, LoadStoreOptions},
         },
         ir::{
    -        attribute::{
    -            DenseI32ArrayAttribute, DenseI64ArrayAttribute, IntegerAttribute, TypeAttribute,
    -        },
    +        attribute::{DenseI32ArrayAttribute, DenseI64ArrayAttribute, TypeAttribute},
             operation::OperationBuilder,
             r#type::IntegerType,
             Attribute, Block, Identifier, Location, Type, ValueLike,
    @@ -6496,7 +6397,7 @@
             .into();
     
         // Allocate space for the return value.
    -    let (result_layout, (result_tag_ty, result_tag_layout), variant_tys) =
    +    let (result_layout, (result_tag_ty, _), variant_tys) =
             crate::types::r#enum::get_type_for_variants(
                 context,
                 helper,
    @@ -6508,50 +6409,22 @@
                 ],
             )?;
     
    -    let k1 = helper
    -        .init_block()
    -        .append_operation(arith::constant(
    +    let result_ptr = helper.init_block().alloca1(
    +        context,
    +        location,
    +        llvm::r#type::r#struct(
                 context,
    -            IntegerAttribute::new(IntegerType::new(context, 64).into(), 1).into(),
    -            location,
    -        ))
    -        .result(0)?
    -        .into();
    -    let result_ptr = helper
    -        .init_block()
    -        .append_operation(
    -            OperationBuilder::new("llvm.alloca", location)
    -                .add_attributes(&[
    -                    (
    -                        Identifier::new(context, "alignment"),
    -                        IntegerAttribute::new(
    -                            IntegerType::new(context, 64).into(),
    -                            result_layout.align().try_into()?,
    -                        )
    -                        .into(),
    -                    ),
    -                    (
    -                        Identifier::new(context, "elem_type"),
    -                        TypeAttribute::new(llvm::r#type::r#struct(
    -                            context,
    -                            &[
    -                                result_tag_ty,
    -                                llvm::r#type::array(
    -                                    IntegerType::new(context, 8).into(),
    -                                    (result_layout.size() - 1).try_into()?,
    -                                ),
    -                            ],
    -                            false,
    -                        ))
    -                        .into(),
    -                    ),
    -                ])
    -                .add_operands(&[k1])
    -                .add_results(&[llvm::r#type::pointer(context, 0)])
    -                .build()?,
    -        )
    -        .result(0)?
    -        .into();
    +            &[
    +                result_tag_ty,
    +                llvm::r#type::array(
    +                    IntegerType::new(context, 8).into(),
    +                    (result_layout.size() - 1).try_into()?,
    +                ),
    +            ],
    +            false,
    +        ),
    +        result_layout.align(),
    +    )?;
     
         // Allocate space and write the current gas.
         let gas_builtin_ptr = helper.init_block().alloca1(
    @@ -6609,118 +6482,51 @@
                 .build()?,
         );
     
    -    let result = entry
    -        .append_operation(llvm::load(
    -            context,
    -            result_ptr,
    -            llvm::r#type::r#struct(
    -                context,
    -                &[
    -                    result_tag_ty,
    -                    llvm::r#type::array(
    -                        IntegerType::new(context, 8).into(),
    -                        (result_layout.size() - 1).try_into()?,
    -                    ),
    -                ],
    -                false,
    -            ),
    -            location,
    -            LoadStoreOptions::default(),
    -        ))
    -        .result(0)?
    -        .into();
    -    let result_tag = entry
    -        .append_operation(llvm::extract_value(
    +    registry.build_type(
    +        context,
    +        helper,
    +        registry,
    +        metadata,
    +        &info.signature.param_signatures[3].ty,
    +    )?;
    +    metadata
    +        .get::<DropOverridesMeta>()
    +        .unwrap()
    +        .invoke_override(
                 context,
    -            result,
    -            DenseI64ArrayAttribute::new(context, &[0]),
    -            IntegerType::new(context, 1).into(),
    +            entry,
                 location,
    -        ))
    -        .result(0)?
    -        .into();
    +            &info.signature.param_signatures[3].ty,
    +            sha256_current_block_ptr,
    +        )?;
    +
    +    let result_tag = entry.load(context, location, result_ptr, result_tag_ty)?;
     
         let payload_ok = {
    -        let ptr = entry
    -            .append_operation(
    -                OperationBuilder::new("llvm.getelementptr", location)
    -                    .add_attributes(&[
    -                        (
    -                            Identifier::new(context, "rawConstantIndices"),
    -                            DenseI32ArrayAttribute::new(
    -                                context,
    -                                &[result_tag_layout.extend(variant_tys[0].1)?.1.try_into()?],
    -                            )
    -                            .into(),
    -                        ),
    -                        (
    -                            Identifier::new(context, "elem_type"),
    -                            TypeAttribute::new(IntegerType::new(context, 8).into()).into(),
    -                        ),
    -                    ])
    -                    .add_operands(&[result_ptr])
    -                    .add_results(&[llvm::r#type::pointer(context, 0)])
    -                    .build()?,
    -            )
    -            .result(0)?
    -            .into();
    -        entry
    -            .append_operation(llvm::load(
    -                context,
    -                ptr,
    -                variant_tys[0].0,
    -                location,
    -                LoadStoreOptions::default(),
    -            ))
    -            .result(0)?
    -            .into()
    -    };
    +        let value = entry.load(
    +            context,
    +            location,
    +            result_ptr,
    +            llvm::r#type::r#struct(context, &[result_tag_ty, variant_tys[0].0], false),
    +        )?;
    +        entry.extract_value(context, location, value, variant_tys[0].0, 1)?
    +    };
         let payload_err = {
    -        let ptr = entry
    -            .append_operation(
    -                OperationBuilder::new("llvm.getelementptr", location)
    -                    .add_attributes(&[
    -                        (
    -                            Identifier::new(context, "rawConstantIndices"),
    -                            DenseI32ArrayAttribute::new(
    -                                context,
    -                                &[result_tag_layout.extend(variant_tys[1].1)?.1.try_into()?],
    -                            )
    -                            .into(),
    -                        ),
    -                        (
    -                            Identifier::new(context, "elem_type"),
    -                            TypeAttribute::new(IntegerType::new(context, 8).into()).into(),
    -                        ),
    -                    ])
    -                    .add_operands(&[result_ptr])
    -                    .add_results(&[llvm::r#type::pointer(context, 0)])
    -                    .build()?,
    -            )
    -            .result(0)?
    -            .into();
    -        entry
    -            .append_operation(llvm::load(
    -                context,
    -                ptr,
    -                variant_tys[1].0,
    -                location,
    -                LoadStoreOptions::default(),
    -            ))
    -            .result(0)?
    -            .into()
    -    };
    -
    -    let remaining_gas = entry
    -        .append_operation(llvm::load(
    +        let value = entry.load(
                 context,
    -            gas_builtin_ptr,
    -            IntegerType::new(context, 128).into(),
                 location,
    -            LoadStoreOptions::default(),
    -        ))
    -        .result(0)?
    -        .into();
    +            result_ptr,
    +            llvm::r#type::r#struct(context, &[result_tag_ty, variant_tys[1].0], false),
    +        )?;
    +        entry.extract_value(context, location, value, variant_tys[1].0, 1)?
    +    };
    +
    +    let remaining_gas = entry.load(
    +        context,
    +        location,
    +        gas_builtin_ptr,
    +        IntegerType::new(context, 128).into(),
    +    )?;
     
         entry.append_operation(helper.cond_br(
             context,
    diff --git a/src/cairo_native/metadata/realloc_bindings.rs.html b/src/cairo_native/metadata/realloc_bindings.rs.html
    index ecf20bda4..73f63b368 100644
    --- a/src/cairo_native/metadata/realloc_bindings.rs.html
    +++ b/src/cairo_native/metadata/realloc_bindings.rs.html
    @@ -92,47 +92,40 @@
     92
     93
     94
    -95
    -96
     
    //! # Memory allocation external bindings
     //!
     //! This metadata ensures that the bindings to the C function `realloc` exist in the current
     //! compilation context.
     
     use melior::{
    -    dialect::{func, llvm},
    +    dialect::llvm,
         ir::{
             attribute::{FlatSymbolRefAttribute, StringAttribute, TypeAttribute},
    -        r#type::{FunctionType, IntegerType},
    +        operation::OperationBuilder,
    +        r#type::IntegerType,
             Identifier, Location, Module, Operation, Region, Value,
         },
         Context,
     };
    -use std::marker::PhantomData;
     
     /// Memory allocation `realloc` metadata.
     #[derive(Debug)]
    -pub struct ReallocBindingsMeta {
    -    phantom: PhantomData<()>,
    -}
    +pub struct ReallocBindingsMeta;
     
     impl ReallocBindingsMeta {
         /// Register the bindings to the `realloc` C function and return the metadata.
         pub fn new(context: &Context, module: &Module) -> Self {
    -        module.body().append_operation(func::func(
    +        module.body().append_operation(llvm::func(
                 context,
                 StringAttribute::new(context, "realloc"),
    -            TypeAttribute::new(
    -                FunctionType::new(
    -                    context,
    -                    &[
    -                        llvm::r#type::pointer(context, 0),
    -                        IntegerType::new(context, 64).into(),
    -                    ],
    -                    &[llvm::r#type::pointer(context, 0)],
    -                )
    -                .into(),
    -            ),
    +            TypeAttribute::new(llvm::r#type::function(
    +                llvm::r#type::pointer(context, 0),
    +                &[
    +                    llvm::r#type::pointer(context, 0),
    +                    IntegerType::new(context, 64).into(),
    +                ],
    +                false,
    +            )),
                 Region::new(),
                 &[(
                     Identifier::new(context, "sym_visibility"),
    @@ -140,12 +133,14 @@
                 )],
                 Location::unknown(context),
             ));
    -        module.body().append_operation(func::func(
    +        module.body().append_operation(llvm::func(
                 context,
                 StringAttribute::new(context, "free"),
    -            TypeAttribute::new(
    -                FunctionType::new(context, &[llvm::r#type::pointer(context, 0)], &[]).into(),
    -            ),
    +            TypeAttribute::new(llvm::r#type::function(
    +                llvm::r#type::void(context),
    +                &[llvm::r#type::pointer(context, 0)],
    +                false,
    +            )),
                 Region::new(),
                 &[(
                     Identifier::new(context, "sym_visibility"),
    @@ -154,10 +149,8 @@
                 Location::unknown(context),
             ));
     
    -        Self {
    -            phantom: PhantomData,
    -        }
    -    }
    +        Self
    +    }
     
         /// Calls the `realloc` function, returns a op with 1 result: an opaque pointer.
         pub fn realloc<'c, 'a>(
    @@ -166,13 +159,15 @@
             len: Value<'c, 'a>,
             location: Location<'c>,
         ) -> Operation<'c> {
    -        func::call(
    -            context,
    -            FlatSymbolRefAttribute::new(context, "realloc"),
    -            &[ptr, len],
    -            &[llvm::r#type::pointer(context, 0)],
    -            location,
    -        )
    +        OperationBuilder::new("llvm.call", location)
    +            .add_attributes(&[(
    +                Identifier::new(context, "callee"),
    +                FlatSymbolRefAttribute::new(context, "realloc").into(),
    +            )])
    +            .add_operands(&[ptr, len])
    +            .add_results(&[llvm::r#type::pointer(context, 0)])
    +            .build()
    +            .unwrap()
         }
     
         /// Calls the `free` function.
    @@ -181,13 +176,14 @@
             ptr: Value<'c, '_>,
             location: Location<'c>,
         ) -> Operation<'c> {
    -        func::call(
    -            context,
    -            FlatSymbolRefAttribute::new(context, "free"),
    -            &[ptr],
    -            &[],
    -            location,
    -        )
    +        OperationBuilder::new("llvm.call", location)
    +            .add_attributes(&[(
    +                Identifier::new(context, "callee"),
    +                FlatSymbolRefAttribute::new(context, "free").into(),
    +            )])
    +            .add_operands(&[ptr])
    +            .build()
    +            .unwrap()
         }
     }
     
    \ No newline at end of file diff --git a/src/cairo_native/metadata/runtime_bindings.rs.html b/src/cairo_native/metadata/runtime_bindings.rs.html index cc1347598..40d7c7278 100644 --- a/src/cairo_native/metadata/runtime_bindings.rs.html +++ b/src/cairo_native/metadata/runtime_bindings.rs.html @@ -820,6 +820,21 @@ 820 821 822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837
    //! # Runtime library bindings
     //!
     //! This metadata ensures that the bindings to the runtime functions exist in the current
    @@ -827,7 +842,7 @@
     
     use crate::{error::Result, utils::BlockExt};
     use melior::{
    -    dialect::{func, llvm},
    +    dialect::{func, llvm, ods},
         ir::{
             attribute::{FlatSymbolRefAttribute, StringAttribute, TypeAttribute},
             r#type::{FunctionType, IntegerType},
    @@ -1294,7 +1309,7 @@
             module: &Module,
             block: &'a Block<'c>,
             location: Location<'c>,
    -    ) -> Result<OperationRef<'c, 'a>>
    +    ) -> Result<Value<'c, 'a>>
         where
             'c: 'a,
         {
    @@ -1303,7 +1318,12 @@
                     context,
                     StringAttribute::new(context, "cairo_native__dict_new"),
                     TypeAttribute::new(
    -                    FunctionType::new(context, &[], &[llvm::r#type::pointer(context, 0)]).into(),
    +                    FunctionType::new(
    +                        context,
    +                        &[llvm::r#type::pointer(context, 0)],
    +                        &[llvm::r#type::pointer(context, 0)],
    +                    )
    +                    .into(),
                     ),
                     Region::new(),
                     &[(
    @@ -1314,13 +1334,23 @@
                 ));
             }
     
    -        Ok(block.append_operation(func::call(
    +        let free_fn = block.append_op_result(
    +            ods::llvm::mlir_addressof(
    +                context,
    +                llvm::r#type::pointer(context, 0),
    +                FlatSymbolRefAttribute::new(context, "free"),
    +                location,
    +            )
    +            .into(),
    +        )?;
    +
    +        block.append_op_result(func::call(
                 context,
                 FlatSymbolRefAttribute::new(context, "cairo_native__dict_new"),
    -            &[],
    +            &[free_fn],
                 &[llvm::r#type::pointer(context, 0)],
                 location,
    -        )))
    +        ))
         }
     
         /// Register if necessary, then invoke the `dict_alloc_new()` function.
    @@ -1442,7 +1472,7 @@
             dict_ptr: Value<'c, 'a>, // ptr to the dict
             key_ptr: Value<'c, 'a>,  // key must be a ptr to Felt
             location: Location<'c>,
    -    ) -> Result<OperationRef<'c, 'a>>
    +    ) -> Result<Value<'c, 'a>>
         where
             'c: 'a,
         {
    @@ -1470,13 +1500,13 @@
                 ));
             }
     
    -        Ok(block.append_operation(func::call(
    +        block.append_op_result(func::call(
                 context,
                 FlatSymbolRefAttribute::new(context, "cairo_native__dict_get"),
                 &[dict_ptr, key_ptr],
                 &[llvm::r#type::pointer(context, 0)],
                 location,
    -        )))
    +        ))
         }
     
         /// Register if necessary, then invoke the `dict_insert()` function.
    diff --git a/src/cairo_native/starknet.rs.html b/src/cairo_native/starknet.rs.html
    index 5ccc3fa44..3cee635b5 100644
    --- a/src/cairo_native/starknet.rs.html
    +++ b/src/cairo_native/starknet.rs.html
    @@ -1771,6 +1771,27 @@
     1771
     1772
     1773
    +1774
    +1775
    +1776
    +1777
    +1778
    +1779
    +1780
    +1781
    +1782
    +1783
    +1784
    +1785
    +1786
    +1787
    +1788
    +1789
    +1790
    +1791
    +1792
    +1793
    +1794
     
    //! Starknet related code for `cairo_native`
     
     use serde::{Deserialize, Serialize};
    @@ -2059,10 +2080,10 @@
     
         fn sha256_process_block(
             &mut self,
    -        prev_state: &[u32; 8],
    -        current_block: &[u32; 16],
    +        state: &mut [u32; 8],
    +        block: &[u32; 16],
             remaining_gas: &mut u128,
    -    ) -> SyscallResult<[u32; 8]>;
    +    ) -> SyscallResult<()>;
     
         #[cfg(feature = "with-cheatcode")]
         fn cheatcode(&mut self, _selector: Felt, _input: &[Felt]) -> Vec<Felt> {
    @@ -2258,10 +2279,10 @@
     
         fn sha256_process_block(
             &mut self,
    -        _prev_state: &[u32; 8],
    -        _current_block: &[u32; 16],
    +        _state: &mut [u32; 8],
    +        _block: &[u32; 16],
             _remaining_gas: &mut u128,
    -    ) -> SyscallResult<[u32; 8]> {
    +    ) -> SyscallResult<()> {
             unimplemented!()
         }
     }
    @@ -2269,8 +2290,10 @@
     // TODO: Move to the correct place or remove if unused.
     pub(crate) mod handler {
         use super::*;
    +    use crate::utils::{libc_free, libc_malloc};
         use std::{
             alloc::Layout,
    +        ffi::c_void,
             fmt::Debug,
             mem::{size_of, ManuallyDrop, MaybeUninit},
             ptr::{null_mut, NonNull},
    @@ -2535,8 +2558,8 @@
                 result_ptr: &mut SyscallResultAbi<*mut [u32; 8]>,
                 ptr: &mut T,
                 gas: &mut u128,
    -            prev_state: &[u32; 8],
    -            current_block: &[u32; 16],
    +            state: *mut [u32; 8],
    +            block: &[u32; 16],
             ),
             // testing syscalls
             #[cfg(feature = "with-cheatcode")]
    @@ -2626,8 +2649,7 @@
                         capacity: 0,
                     },
                     _ => {
    -                    let ptr =
    -                        libc::malloc(Layout::array::<E>(data.len()).unwrap().size()) as *mut E;
    +                    let ptr = libc_malloc(Layout::array::<E>(data.len()).unwrap().size()) as *mut E;
     
                         let len: u32 = data.len().try_into().unwrap();
                         for (i, val) in data.iter().enumerate() {
    @@ -2682,7 +2704,8 @@
                 selector: &Felt252Abi,
                 input: &ArrayAbi<Felt252Abi>,
             ) {
    -            let input: Vec<_> = unsafe {
    +            let selector = Felt::from_bytes_le(&selector.0);
    +            let input_vec: Vec<_> = unsafe {
                     let since_offset = input.since as usize;
                     let until_offset = input.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -2692,10 +2715,13 @@
                 .iter()
                 .map(|x| Felt::from_bytes_le(&x.0))
                 .collect();
    -            let selector = Felt::from_bytes_le(&selector.0);
    +
    +            unsafe {
    +                libc_free(input.ptr as *mut c_void);
    +            }
     
                 let result = ptr
    -                .cheatcode(selector, &input)
    +                .cheatcode(selector, &input_vec)
                     .into_iter()
                     .map(|x| Felt252Abi(x.to_bytes_le()))
                     .collect::<Vec<_>>();
    @@ -2715,20 +2741,19 @@
                         ok: ManuallyDrop::new(SyscallResultAbiOk {
                             tag: 0u8,
                             payload: unsafe {
    -                            let mut block_info_ptr =
    -                                NonNull::new(
    -                                    libc::malloc(size_of::<BlockInfoAbi>()) as *mut BlockInfoAbi
    -                                )
    -                                .unwrap();
    +                            let mut block_info_ptr = NonNull::new(libc_malloc(
    +                                size_of::<BlockInfoAbi>(),
    +                            )
    +                                as *mut BlockInfoAbi)
    +                            .unwrap();
                                 block_info_ptr.as_mut().block_number = x.block_info.block_number;
                                 block_info_ptr.as_mut().block_timestamp = x.block_info.block_timestamp;
                                 block_info_ptr.as_mut().sequencer_address =
                                     Felt252Abi(x.block_info.sequencer_address.to_bytes_le());
     
    -                            let mut tx_info_ptr = NonNull::new(
    -                                libc::malloc(size_of::<TxInfoAbi>()) as *mut TxInfoAbi,
    -                            )
    -                            .unwrap();
    +                            let mut tx_info_ptr =
    +                                NonNull::new(libc_malloc(size_of::<TxInfoAbi>()) as *mut TxInfoAbi)
    +                                    .unwrap();
                                 tx_info_ptr.as_mut().version =
                                     Felt252Abi(x.tx_info.version.to_bytes_le());
                                 tx_info_ptr.as_mut().account_contract_address =
    @@ -2748,7 +2773,7 @@
                                 tx_info_ptr.as_mut().nonce = Felt252Abi(x.tx_info.nonce.to_bytes_le());
     
                                 let mut execution_info_ptr =
    -                                NonNull::new(libc::malloc(size_of::<ExecutionInfoAbi>())
    +                                NonNull::new(libc_malloc(size_of::<ExecutionInfoAbi>())
                                         as *mut ExecutionInfoAbi)
                                     .unwrap();
                                 execution_info_ptr.as_mut().block_info = block_info_ptr;
    @@ -2781,22 +2806,22 @@
                             tag: 0u8,
                             payload: unsafe {
                                 let mut execution_info_ptr =
    -                                NonNull::new(libc::malloc(size_of::<ExecutionInfoV2Abi>())
    +                                NonNull::new(libc_malloc(size_of::<ExecutionInfoV2Abi>())
                                         as *mut ExecutionInfoV2Abi)
                                     .unwrap();
     
    -                            let mut block_info_ptr =
    -                                NonNull::new(
    -                                    libc::malloc(size_of::<BlockInfoAbi>()) as *mut BlockInfoAbi
    -                                )
    -                                .unwrap();
    +                            let mut block_info_ptr = NonNull::new(libc_malloc(
    +                                size_of::<BlockInfoAbi>(),
    +                            )
    +                                as *mut BlockInfoAbi)
    +                            .unwrap();
                                 block_info_ptr.as_mut().block_number = x.block_info.block_number;
                                 block_info_ptr.as_mut().block_timestamp = x.block_info.block_timestamp;
                                 block_info_ptr.as_mut().sequencer_address =
                                     Felt252Abi(x.block_info.sequencer_address.to_bytes_le());
     
                                 let mut tx_info_ptr = NonNull::new(
    -                                libc::malloc(size_of::<TxInfoV2Abi>()) as *mut TxInfoV2Abi,
    +                                libc_malloc(size_of::<TxInfoV2Abi>()) as *mut TxInfoV2Abi,
                                 )
                                 .unwrap();
                                 tx_info_ptr.as_mut().version =
    @@ -2886,7 +2911,7 @@
                     data
                 });
     
    -            let calldata: Vec<_> = unsafe {
    +            let calldata_vec: Vec<_> = unsafe {
                     let since_offset = calldata.since as usize;
                     let until_offset = calldata.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -2906,10 +2931,14 @@
                 })
                 .collect();
     
    +            unsafe {
    +                libc_free(calldata.ptr as *mut c_void);
    +            }
    +
                 let result = ptr.deploy(
                     class_hash,
                     contract_address_salt,
    -                &calldata,
    +                &calldata_vec,
                     deploy_from_zero,
                     gas,
                 );
    @@ -2972,7 +3001,7 @@
                     data
                 });
     
    -            let calldata: Vec<_> = unsafe {
    +            let calldata_vec: Vec<_> = unsafe {
                     let since_offset = calldata.since as usize;
                     let until_offset = calldata.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -2992,7 +3021,11 @@
                 })
                 .collect();
     
    -            let result = ptr.library_call(class_hash, function_selector, &calldata, gas);
    +            unsafe {
    +                libc_free(calldata.ptr as *mut c_void);
    +            }
    +
    +            let result = ptr.library_call(class_hash, function_selector, &calldata_vec, gas);
     
                 *result_ptr = match result {
                     Ok(x) => {
    @@ -3028,7 +3061,7 @@
                     data
                 });
     
    -            let calldata: Vec<_> = unsafe {
    +            let calldata_vec: Vec<_> = unsafe {
                     let since_offset = calldata.since as usize;
                     let until_offset = calldata.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -3048,7 +3081,11 @@
                 })
                 .collect();
     
    -            let result = ptr.call_contract(address, entry_point_selector, &calldata, gas);
    +            unsafe {
    +                libc_free(calldata.ptr as *mut c_void);
    +            }
    +
    +            let result = ptr.call_contract(address, entry_point_selector, &calldata_vec, gas);
     
                 *result_ptr = match result {
                     Ok(x) => {
    @@ -3128,7 +3165,7 @@
                 keys: &ArrayAbi<Felt252Abi>,
                 data: &ArrayAbi<Felt252Abi>,
             ) {
    -            let keys: Vec<_> = unsafe {
    +            let keys_vec: Vec<_> = unsafe {
                     let since_offset = keys.since as usize;
                     let until_offset = keys.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -3148,7 +3185,11 @@
                 })
                 .collect();
     
    -            let data: Vec<_> = unsafe {
    +            unsafe {
    +                libc_free(keys.ptr as *mut c_void);
    +            }
    +
    +            let data_vec: Vec<_> = unsafe {
                     let since_offset = data.since as usize;
                     let until_offset = data.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -3168,7 +3209,11 @@
                 })
                 .collect();
     
    -            let result = ptr.emit_event(&keys, &data, gas);
    +            unsafe {
    +                libc_free(data.ptr as *mut c_void);
    +            }
    +
    +            let result = ptr.emit_event(&keys_vec, &data_vec, gas);
     
                 *result_ptr = match result {
                     Ok(_) => SyscallResultAbi {
    @@ -3193,7 +3238,7 @@
                     data.reverse();
                     data
                 });
    -            let payload: Vec<_> = unsafe {
    +            let payload_vec: Vec<_> = unsafe {
                     let since_offset = payload.since as usize;
                     let until_offset = payload.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -3213,7 +3258,11 @@
                 })
                 .collect();
     
    -            let result = ptr.send_message_to_l1(to_address, &payload, gas);
    +            unsafe {
    +                libc_free(payload.ptr as *mut c_void);
    +            }
    +
    +            let result = ptr.send_message_to_l1(to_address, &payload_vec, gas);
     
                 *result_ptr = match result {
                     Ok(_) => SyscallResultAbi {
    @@ -3232,7 +3281,7 @@
                 gas: &mut u128,
                 input: &ArrayAbi<u64>,
             ) {
    -            let input = unsafe {
    +            let input_vec = unsafe {
                     let since_offset = input.since as usize;
                     let until_offset = input.until as usize;
                     debug_assert!(since_offset <= until_offset);
    @@ -3243,7 +3292,10 @@
                     }
                 };
     
    -            let result = ptr.keccak(input, gas);
    +            let result = ptr.keccak(input_vec, gas);
    +            unsafe {
    +                libc_free(input.ptr as *mut c_void);
    +            }
     
                 *result_ptr = match result {
                     Ok(x) => SyscallResultAbi {
    @@ -3489,26 +3541,16 @@
                 result_ptr: &mut SyscallResultAbi<*mut [u32; 8]>,
                 ptr: &mut T,
                 gas: &mut u128,
    -            prev_state: &[u32; 8],
    -            current_block: &[u32; 16],
    +            state: *mut [u32; 8],
    +            block: &[u32; 16],
             ) {
    -            let result = ptr.sha256_process_block(prev_state, current_block, gas);
    +            let result = ptr.sha256_process_block(unsafe { &mut *state }, block, gas);
     
                 *result_ptr = match result {
                     Ok(x) => SyscallResultAbi {
                         ok: ManuallyDrop::new(SyscallResultAbiOk {
                             tag: 0u8,
    -                        payload: ManuallyDrop::new({
    -                            unsafe {
    -                                let data = libc::malloc(std::mem::size_of_val(&x)).cast();
    -                                std::ptr::copy_nonoverlapping::<u32>(
    -                                    x.as_ptr().cast(),
    -                                    data,
    -                                    x.len(),
    -                                );
    -                                data.cast()
    -                            }
    -                        }),
    +                        payload: ManuallyDrop::new(state),
                         }),
                     },
                     Err(e) => Self::wrap_error(&e),
    diff --git a/src/cairo_native/starknet_stub.rs.html b/src/cairo_native/starknet_stub.rs.html
    index 8b225cf0d..2ebf3f929 100644
    --- a/src/cairo_native/starknet_stub.rs.html
    +++ b/src/cairo_native/starknet_stub.rs.html
    @@ -1074,7 +1074,6 @@
     1074
     1075
     1076
    -1077
     
    //! A (somewhat) usable implementation of the starknet syscall handler trait.
     
     use std::{
    @@ -1711,19 +1710,18 @@
     
         fn sha256_process_block(
             &mut self,
    -        prev_state: &[u32; 8],
    -        current_block: &[u32; 16],
    +        state: &mut [u32; 8],
    +        block: &[u32; 16],
             _remaining_gas: &mut u128,
    -    ) -> SyscallResult<[u32; 8]> {
    +    ) -> SyscallResult<()> {
             // reference impl
             // https://github.com/starkware-libs/cairo/blob/ba3f82b4a09972b6a24bf791e344cabce579bf69/crates/cairo-lang-runner/src/casm_run/mod.rs#L1292
    -        let mut state = *prev_state;
    -        let data_as_bytes = sha2::digest::generic_array::GenericArray::from_exact_iter(
    -            current_block.iter().flat_map(|x| x.to_be_bytes()),
    +        let data_as_bytes = sha2::digest::generic_array::GenericArray::from_exact_iter(
    +            block.iter().flat_map(|x| x.to_be_bytes()),
             )
             .unwrap();
    -        sha2::compress256(&mut state, &[data_as_bytes]);
    -        Ok(state)
    +        sha2::compress256(state, &[data_as_bytes]);
    +        Ok(())
         }
     }
     
    diff --git a/src/cairo_native/types/felt252_dict_entry.rs.html b/src/cairo_native/types/felt252_dict_entry.rs.html
    index 4325a1796..5c7909fc3 100644
    --- a/src/cairo_native/types/felt252_dict_entry.rs.html
    +++ b/src/cairo_native/types/felt252_dict_entry.rs.html
    @@ -45,18 +45,16 @@
     45
     46
     47
    -48
     
    //! # `Felt` dictionary entry type
     //!
     //! The entry type returning when getting a value from a dictionary.
     //!
     //! It is represented as the following struct:
     //!
    -//! | Index | Type           | Description                      |
    -//! | ----- | -------------- | -------------------------------- |
    -//! |   0   | `i252`         | The entry key.                   |
    -//! |   1   | `!llvm.ptr`    | Pointer to the entry value.      |
    -//! |   2   | `!llvm.ptr`    | Pointer to the dictionary (rust) |
    +//! | Index | Type           | Description                                  |
    +//! | ----- | -------------- | -------------------------------------------- |
    +//! |   0   | `!llvm.ptr`    | Pointer to the dictionary (Rust).            |
    +//! |   1   | `!llvm.ptr`    | Pointer to the entry's value pointer (Rust). |
     //!
     
     use super::WithSelf;
    @@ -70,7 +68,7 @@
     };
     use melior::{
         dialect::llvm,
    -    ir::{r#type::IntegerType, Module, Type},
    +    ir::{Module, Type},
         Context,
     };
     
    @@ -84,12 +82,12 @@
         _metadata: &mut MetadataStorage,
         _info: WithSelf<InfoAndTypeConcreteType>,
     ) -> Result<Type<'ctx>> {
    -    Ok(llvm::r#type::r#struct(
    +    // Note: This is neither droppable nor cloneable.
    +    Ok(llvm::r#type::r#struct(
             context,
             &[
    -            IntegerType::new(context, 252).into(), // entry key
    -            llvm::r#type::pointer(context, 0),     // value ptr
    -            llvm::r#type::pointer(context, 0),     // dict ptr
    +            llvm::r#type::pointer(context, 0), // dict ptr
    +            llvm::r#type::pointer(context, 0), // value ptr
             ],
             false,
         ))
    diff --git a/src/cairo_native/types/squashed_felt252_dict.rs.html b/src/cairo_native/types/squashed_felt252_dict.rs.html
    index 06bd0c6e0..36548d20b 100644
    --- a/src/cairo_native/types/squashed_felt252_dict.rs.html
    +++ b/src/cairo_native/types/squashed_felt252_dict.rs.html
    @@ -26,7 +26,6 @@
     26
     27
     28
    -29
     
    //! # Squashed `Felt` dictionary type
     
     use super::WithSelf;
    @@ -39,7 +38,6 @@
         program_registry::ProgramRegistry,
     };
     use melior::{
    -    dialect::llvm,
         ir::{Module, Type},
         Context,
     };
    @@ -49,11 +47,11 @@
     /// Check out [the module](self) for more info.
     pub fn build<'ctx>(
         context: &'ctx Context,
    -    _module: &Module<'ctx>,
    -    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    -    _metadata: &mut MetadataStorage,
    -    _info: WithSelf<InfoAndTypeConcreteType>,
    +    module: &Module<'ctx>,
    +    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    metadata: &mut MetadataStorage,
    +    info: WithSelf<InfoAndTypeConcreteType>,
     ) -> Result<Type<'ctx>> {
    -    Ok(llvm::r#type::pointer(context, 0))
    +    super::felt252_dict::build(context, module, registry, metadata, info)
     }
     
    \ No newline at end of file diff --git a/src/cairo_native/types/starknet.rs.html b/src/cairo_native/types/starknet.rs.html index 0e9732d1e..5f23d77c8 100644 --- a/src/cairo_native/types/starknet.rs.html +++ b/src/cairo_native/types/starknet.rs.html @@ -196,6 +196,63 @@ 196 197 198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255
    //! # Starknet types
     //!
     //! ## ClassHash
    @@ -220,7 +277,14 @@
     // TODO: Maybe the types used here can be i251 instead of i252.
     
     use super::WithSelf;
    -use crate::{error::Result, metadata::MetadataStorage};
    +use crate::{
    +    error::Result,
    +    metadata::{
    +        drop_overrides::DropOverridesMeta, dup_overrides::DupOverridesMeta,
    +        realloc_bindings::ReallocBindingsMeta, MetadataStorage,
    +    },
    +    utils::BlockExt,
    +};
     use cairo_lang_sierra::{
         extensions::{
             core::{CoreLibfunc, CoreType},
    @@ -230,8 +294,8 @@
         program_registry::ProgramRegistry,
     };
     use melior::{
    -    dialect::llvm,
    -    ir::{r#type::IntegerType, Module, Type},
    +    dialect::{func, llvm, ods},
    +    ir::{attribute::IntegerAttribute, r#type::IntegerType, Block, Location, Module, Region, Type},
         Context,
     };
     
    @@ -386,11 +450,61 @@
     
     pub fn build_sha256_state_handle<'ctx>(
         context: &'ctx Context,
    -    _module: &Module<'ctx>,
    -    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    -    _metadata: &mut MetadataStorage,
    -    _info: WithSelf<InfoOnlyConcreteType>,
    +    module: &Module<'ctx>,
    +    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
    +    metadata: &mut MetadataStorage,
    +    info: WithSelf<InfoOnlyConcreteType>,
     ) -> Result<Type<'ctx>> {
    +    let location = Location::unknown(context);
    +    if metadata.get::<ReallocBindingsMeta>().is_none() {
    +        metadata.insert(ReallocBindingsMeta::new(context, module));
    +    }
    +
    +    DupOverridesMeta::register_with(context, module, registry, metadata, info.self_ty(), |_| {
    +        let region = Region::new();
    +        let block =
    +            region.append_block(Block::new(&[(llvm::r#type::pointer(context, 0), location)]));
    +
    +        let null_ptr =
    +            block.append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
    +        let k32 = block.const_int(context, location, 32, 64)?;
    +        let new_ptr = block.append_op_result(ReallocBindingsMeta::realloc(
    +            context, null_ptr, k32, location,
    +        ))?;
    +
    +        block.append_operation(
    +            ods::llvm::intr_memcpy_inline(
    +                context,
    +                new_ptr,
    +                block.argument(0)?.into(),
    +                IntegerAttribute::new(IntegerType::new(context, 64).into(), 32),
    +                IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
    +                location,
    +            )
    +            .into(),
    +        );
    +
    +        block.append_operation(func::r#return(
    +            &[block.argument(0)?.into(), new_ptr],
    +            location,
    +        ));
    +        Ok(Some(region))
    +    })?;
    +    DropOverridesMeta::register_with(context, module, registry, metadata, info.self_ty(), |_| {
    +        let region = Region::new();
    +        let block =
    +            region.append_block(Block::new(&[(llvm::r#type::pointer(context, 0), location)]));
    +
    +        block.append_operation(ReallocBindingsMeta::free(
    +            context,
    +            block.argument(0)?.into(),
    +            location,
    +        ));
    +
    +        block.append_operation(func::r#return(&[], location));
    +        Ok(Some(region))
    +    })?;
    +
         // A ptr to a heap (realloc) allocated [u32; 8]
         Ok(llvm::r#type::pointer(context, 0))
     }
    diff --git a/src/cairo_native/utils.rs.html b/src/cairo_native/utils.rs.html
    index c721d7ede..2df0b8aac 100644
    --- a/src/cairo_native/utils.rs.html
    +++ b/src/cairo_native/utils.rs.html
    @@ -1018,6 +1018,8 @@
     1018
     1019
     1020
    +1021
    +1022
     
    //! # Various utilities
     
     pub(crate) use self::{
    @@ -1043,12 +1045,12 @@
         fmt::{self, Display},
         ops::Neg,
         path::Path,
    -    ptr::NonNull,
         sync::Arc,
     };
     use thiserror::Error;
     
     mod block_ext;
    +pub mod mem_tracing;
     mod program_registry_ext;
     mod range_ext;
     
    @@ -1069,6 +1071,15 @@
             .unwrap()
     });
     
    +#[cfg(feature = "with-mem-tracing")]
    +#[allow(unused_imports)]
    +pub(crate) use self::mem_tracing::{
    +    _wrapped_free as libc_free, _wrapped_malloc as libc_malloc, _wrapped_realloc as libc_realloc,
    +};
    +#[cfg(not(feature = "with-mem-tracing"))]
    +#[allow(unused_imports)]
    +pub(crate) use libc::{free as libc_free, malloc as libc_malloc, realloc as libc_realloc};
    +
     /// Generate a function name.
     ///
     /// If the program includes function identifiers, return those. Otherwise return `f` followed by the
    @@ -1247,6 +1258,9 @@
             .unwrap()
             .register_impls(&engine);
     
    +    #[cfg(feature = "with-mem-tracing")]
    +    self::mem_tracing::register_bindings(&engine);
    +
         engine
     }
     
    @@ -1349,16 +1363,6 @@
                     as *mut (),
             );
     
    -        engine.register_symbol(
    -            "cairo_native__dict_insert",
    -            cairo_native_runtime::cairo_native__dict_insert
    -                as *const fn(
    -                    *mut FeltDict,
    -                    &[u8; 32],
    -                    NonNull<std::ffi::c_void>,
    -                ) -> *mut std::ffi::c_void as *mut (),
    -        );
    -
             engine.register_symbol(
                 "cairo_native__dict_gas_refund",
                 cairo_native_runtime::cairo_native__dict_gas_refund as *const fn(*const FeltDict) -> u64
    diff --git a/src/cairo_native/utils/mem_tracing.rs.html b/src/cairo_native/utils/mem_tracing.rs.html
    new file mode 100644
    index 000000000..c66840fc5
    --- /dev/null
    +++ b/src/cairo_native/utils/mem_tracing.rs.html
    @@ -0,0 +1,263 @@
    +mem_tracing.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +
    #![cfg(feature = "with-mem-tracing")]
    +
    +use libc::{c_void, size_t};
    +use melior::ExecutionEngine;
    +use std::cell::UnsafeCell;
    +
    +thread_local! {
    +    static MEM_TRACING: UnsafeCell<MemTracing> = const { UnsafeCell::new(MemTracing::new()) };
    +}
    +
    +struct MemTracing {
    +    finished: Vec<AllocTrace>,
    +    pending: Vec<AllocTrace>,
    +}
    +
    +struct AllocTrace {
    +    ptr: *mut c_void,
    +    len: size_t,
    +}
    +
    +impl MemTracing {
    +    pub const fn new() -> Self {
    +        Self {
    +            finished: Vec::new(),
    +            pending: Vec::new(),
    +        }
    +    }
    +
    +    pub fn push(&mut self, trace: AllocTrace) {
    +        match self.pending.binary_search_by_key(&trace.ptr, |x| x.ptr) {
    +            Ok(_) => unreachable!(),
    +            Err(pos) => self.pending.insert(pos, trace),
    +        }
    +    }
    +
    +    pub fn update(&mut self, ptr: *mut c_void, trace: AllocTrace) {
    +        if let Ok(pos) = self.pending.binary_search_by_key(&ptr, |x| x.ptr) {
    +            let trace = self.pending.remove(pos);
    +            if trace.len == 0 {
    +                self.finished.push(trace);
    +                return;
    +            }
    +        };
    +
    +        self.push(trace);
    +    }
    +
    +    pub fn finish(&mut self, ptr: *mut c_void) {
    +        if ptr.is_null() {
    +            return;
    +        }
    +
    +        match self.pending.binary_search_by_key(&ptr, |x| x.ptr) {
    +            Ok(pos) => {
    +                let trace = self.pending.remove(pos);
    +                self.finished.push(trace);
    +            }
    +            Err(_) => unreachable!(),
    +        }
    +    }
    +}
    +
    +impl AllocTrace {
    +    pub fn new(ptr: *mut c_void, len: size_t) -> Self {
    +        Self { ptr, len }
    +    }
    +}
    +
    +pub(crate) fn register_bindings(engine: &ExecutionEngine) {
    +    unsafe {
    +        engine.register_symbol(
    +            "malloc",
    +            _wrapped_malloc as *const fn(size_t) -> *mut c_void as *mut (),
    +        );
    +        engine.register_symbol(
    +            "realloc",
    +            _wrapped_realloc as *const fn(*mut c_void, size_t) -> *mut c_void as *mut (),
    +        );
    +        engine.register_symbol("free", _wrapped_free as *const fn(*mut c_void) as *mut ());
    +    }
    +}
    +
    +pub fn report_stats() {
    +    unsafe {
    +        MEM_TRACING.with(|x| {
    +            println!();
    +            println!("[MemTracing] Stats:");
    +            println!(
    +                "[MemTracing]   Freed allocations: {}",
    +                (*x.get()).finished.len()
    +            );
    +            println!("[MemTracing]   Pending allocations:");
    +            for AllocTrace { ptr, len } in &(*x.get()).pending {
    +                println!("[MemTracing]     - {ptr:?} ({len} bytes)");
    +            }
    +
    +            assert!((*x.get()).pending.is_empty());
    +            *x.get() = MemTracing::new();
    +        });
    +    }
    +}
    +
    +pub(crate) unsafe extern "C" fn _wrapped_malloc(len: size_t) -> *mut c_void {
    +    let ptr = libc::malloc(len);
    +
    +    println!("[MemTracing] Allocating ptr {ptr:?} with {len} bytes.");
    +    MEM_TRACING.with(|x| (*x.get()).push(AllocTrace::new(ptr, len)));
    +
    +    ptr
    +}
    +
    +pub(crate) unsafe extern "C" fn _wrapped_realloc(ptr: *mut c_void, len: size_t) -> *mut c_void {
    +    let new_ptr = libc::realloc(ptr, len);
    +
    +    println!("[MemTracing] Reallocating {ptr:?} into {new_ptr:?} with {len} bytes.");
    +    MEM_TRACING.with(|x| (*x.get()).update(ptr, AllocTrace::new(new_ptr, len)));
    +
    +    new_ptr
    +}
    +
    +pub(crate) unsafe extern "C" fn _wrapped_free(ptr: *mut c_void) {
    +    if !ptr.is_null() {
    +        // This print is placed before the actual call to log pointers before double free
    +        // situations.
    +        println!("[MemTracing] Freeing {ptr:?}.");
    +
    +        libc::free(ptr);
    +
    +        MEM_TRACING.with(|x| (*x.get()).finish(ptr));
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/cairo_native/values.rs.html b/src/cairo_native/values.rs.html index 2422b5afd..2231a4471 100644 --- a/src/cairo_native/values.rs.html +++ b/src/cairo_native/values.rs.html @@ -1584,15 +1584,31 @@ 1584 1585 1586 +1587 +1588 +1589 +1590 +1591 +1592 +1593 +1594 +1595 +1596 +1597 +1598 +1599 +1600
    //! # JIT params and return values de/serialization
    -
    +//!
     //! A Rusty interface to provide parameters to JIT calls.
     
     use crate::{
         error::{CompilerError, Error},
         starknet::{Secp256k1Point, Secp256r1Point},
         types::TypeBuilder,
    -    utils::{felt252_bigint, get_integer_layout, layout_repeat, RangeExt, PRIME},
    +    utils::{
    +        felt252_bigint, get_integer_layout, layout_repeat, libc_free, libc_malloc, RangeExt, PRIME,
    +    },
     };
     use bumpalo::Bump;
     use cairo_lang_sierra::{
    @@ -1820,7 +1836,10 @@
                             let elem_ty = registry.get_type(&info.ty)?;
                             let elem_layout = elem_ty.layout(registry)?.pad_to_align();
     
    -                        let ptr: *mut () = libc::malloc(elem_layout.size() * data.len()).cast();
    +                        let ptr: *mut () = match elem_layout.size() * data.len() {
    +                            0 => std::ptr::null_mut(),
    +                            len => libc_malloc(len).cast(),
    +                        };
                             let len: u32 = data
                                 .len()
                                 .try_into()
    @@ -1969,7 +1988,11 @@
                             let elem_ty = registry.get_type(&info.ty)?;
                             let elem_layout = elem_ty.layout(registry)?.pad_to_align();
     
    -                        let mut value_map = Box::<FeltDict>::default();
    +                        let mut value_map = Box::new(FeltDict {
    +                            inner: HashMap::default(),
    +                            count: 0,
    +                            free_fn: crate::utils::libc_free,
    +                        });
     
                             // next key must be called before next_value
     
    @@ -1977,20 +2000,14 @@
                                 let key = key.to_bytes_le();
                                 let value = value.to_ptr(arena, registry, &info.ty)?;
     
    -                            let value_malloc_ptr = libc::malloc(elem_layout.size());
    -
    +                            let value_malloc_ptr = libc_malloc(elem_layout.size());
                                 std::ptr::copy_nonoverlapping(
                                     value.cast::<u8>().as_ptr(),
                                     value_malloc_ptr.cast(),
                                     elem_layout.size(),
                                 );
     
    -                            value_map.inner.insert(
    -                                key,
    -                                NonNull::new(value_malloc_ptr)
    -                                    .expect("allocation failure")
    -                                    .cast(),
    -                            );
    +                            value_map.inner.insert(key, value_malloc_ptr);
                             }
     
                             NonNull::new_unchecked(Box::into_raw(value_map)).cast()
    @@ -2146,7 +2163,7 @@
                         }
     
                         if !init_data_ptr.is_null() {
    -                        libc::free(init_data_ptr.cast());
    +                        libc_free(init_data_ptr.cast());
                         }
     
                         Self::Array(array_value)
    @@ -2154,7 +2171,7 @@
                     CoreTypeConcrete::Box(info) => {
                         let inner = *ptr.cast::<NonNull<()>>().as_ptr();
                         let value = Self::from_ptr(inner, &info.ty, registry)?;
    -                    libc::free(inner.as_ptr().cast());
    +                    libc_free(inner.as_ptr().cast());
                         value
                     }
                     CoreTypeConcrete::EcPoint(_) => {
    @@ -2199,7 +2216,7 @@
                                 &info.ty,
                                 registry,
                             )?;
    -                        libc::free(inner_ptr.cast());
    +                        libc_free(inner_ptr.cast());
                             value
                         }
                     }
    @@ -2279,9 +2296,20 @@
     
                         let mut output_map = HashMap::with_capacity(inner.len());
                         for (key, val_ptr) in inner.iter() {
    +                        if val_ptr.is_null() {
    +                            continue;
    +                        }
    +
                             let key = Felt::from_bytes_le(key);
    -                        output_map.insert(key, Self::from_ptr(val_ptr.cast(), &info.ty, registry)?);
    -                        libc::free(val_ptr.as_ptr());
    +                        output_map.insert(
    +                            key,
    +                            Self::from_ptr(
    +                                NonNull::new(*val_ptr).unwrap().cast(),
    +                                &info.ty,
    +                                registry,
    +                            )?,
    +                        );
    +                        libc_free(*val_ptr);
                         }
     
                         Self::Felt252Dict {
    diff --git a/src/cairo_native_runtime/lib.rs.html b/src/cairo_native_runtime/lib.rs.html
    index 7d0223a39..5e044bfca 100644
    --- a/src/cairo_native_runtime/lib.rs.html
    +++ b/src/cairo_native_runtime/lib.rs.html
    @@ -616,18 +616,6 @@
     616
     617
     618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
     
    #![allow(non_snake_case)]
     
     use cairo_lang_sierra_gas::core_libfunc_cost::{
    @@ -643,7 +631,7 @@
         felt::Felt,
         hash::StarkHash,
     };
    -use std::{collections::HashMap, fs::File, io::Write, os::fd::FromRawFd, ptr::NonNull, slice};
    +use std::{collections::HashMap, ffi::c_void, fs::File, io::Write, os::fd::FromRawFd, slice};
     use std::{ops::Mul, vec::IntoIter};
     
     lazy_static! {
    @@ -764,10 +752,12 @@
     }
     
     /// Felt252 type used in cairo native runtime
    -#[derive(Debug, Default)]
    +#[derive(Debug)]
     pub struct FeltDict {
    -    pub inner: HashMap<[u8; 32], NonNull<std::ffi::c_void>>,
    +    pub inner: HashMap<[u8; 32], *mut c_void>,
         pub count: u64,
    +
    +    pub free_fn: unsafe extern "C" fn(*mut c_void),
     }
     
     /// Allocate a new dictionary.
    @@ -777,8 +767,14 @@
     /// This function is intended to be called from MLIR, deals with pointers, and is therefore
     /// definitely unsafe to use manually.
     #[no_mangle]
    -pub unsafe extern "C" fn cairo_native__dict_new() -> *mut FeltDict {
    -    Box::into_raw(Box::<FeltDict>::default())
    +pub unsafe extern "C" fn cairo_native__dict_new(
    +    free_fn: extern "C" fn(*mut c_void),
    +) -> *mut FeltDict {
    +    Box::into_raw(Box::new(FeltDict {
    +        inner: HashMap::default(),
    +        count: 0,
    +        free_fn,
    +    }))
     }
     
     /// Free a dictionary using an optional callback to drop each element.
    @@ -787,23 +783,25 @@
     ///
     /// This function is intended to be called from MLIR, deals with pointers, and is therefore
     /// definitely unsafe to use manually.
    -// Note: Using `Option<extern "C" fn(*mut std::ffi::c_void)>` is ffi-safe thanks to Option's null
    +// Note: Using `Option<extern "C" fn(*mut c_void)>` is ffi-safe thanks to Option's null
     //   pointer optimization. Check out
     //   https://doc.rust-lang.org/nomicon/ffi.html#the-nullable-pointer-optimization for more info.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_drop(
         ptr: *mut FeltDict,
    -    drop_fn: Option<extern "C" fn(*mut std::ffi::c_void)>,
    +    drop_fn: Option<extern "C" fn(*mut c_void)>,
     ) {
    -    let map = Box::from_raw(ptr);
    +    let dict = Box::from_raw(ptr);
     
         // Free the entries manually.
    -    for entry in map.inner.into_values() {
    -        if let Some(drop_fn) = drop_fn {
    -            drop_fn(entry.as_ptr());
    -        }
    +    for entry in dict.inner.into_values() {
    +        if !entry.is_null() {
    +            if let Some(drop_fn) = drop_fn {
    +                drop_fn(entry);
    +            }
     
    -        libc::free(entry.as_ptr());
    +            (dict.free_fn)(entry);
    +        }
         }
     }
     
    @@ -816,23 +814,30 @@
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_dup(
         ptr: *mut FeltDict,
    -    dup_fn: extern "C" fn(*mut std::ffi::c_void) -> *mut std::ffi::c_void,
    +    dup_fn: extern "C" fn(*mut c_void) -> *mut c_void,
     ) -> *mut FeltDict {
         let old_dict = &*ptr;
    -    let mut new_dict = Box::<FeltDict>::default();
    +    let mut new_dict = Box::new(FeltDict {
    +        inner: HashMap::default(),
    +        count: 0,
    +        free_fn: old_dict.free_fn,
    +    });
     
         new_dict.inner.extend(
             old_dict
                 .inner
                 .iter()
    -            .map(|(&k, &v)| (k, NonNull::new(dup_fn(v.as_ptr())).unwrap())),
    +            .filter_map(|(&k, &v)| (!v.is_null()).then_some((k, dup_fn(v)))),
         );
     
         Box::into_raw(new_dict)
     }
     
    -/// Return the value (reference) for a given key, or null if not present. Increment the access
    -/// count.
    +/// Return a pointer to the entry's value pointer for a given key, inserting a null pointer if not
    +/// present. Increment the access count.
    +///
    +/// The null pointer will be either updated by `felt252_dict_entry_finalize` or removed (along with
    +/// everything else in the dict) by the entry's drop implementation.
     ///
     /// # Safety
     ///
    @@ -840,38 +845,11 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__dict_get(
    -    ptr: *mut FeltDict,
    +    dict: &mut FeltDict,
         key: &[u8; 32],
    -) -> *mut std::ffi::c_void {
    -    let dict: &mut FeltDict = &mut *ptr;
    +) -> *mut c_void {
         dict.count += 1;
    -
    -    match dict.inner.get(key) {
    -        Some(v) => v.as_ptr(),
    -        None => std::ptr::null_mut(),
    -    }
    -}
    -
    -/// Inserts the provided key value. Returning the old one or nullptr if there was none.
    -///
    -/// # Safety
    -///
    -/// This function is intended to be called from MLIR, deals with pointers, and is therefore
    -/// definitely unsafe to use manually.
    -#[no_mangle]
    -pub unsafe extern "C" fn cairo_native__dict_insert(
    -    ptr: *mut FeltDict,
    -    key: &[u8; 32],
    -    value: NonNull<std::ffi::c_void>,
    -) -> *mut std::ffi::c_void {
    -    let dict = &mut *ptr;
    -    let old_ptr = dict.inner.insert(*key, value);
    -
    -    if let Some(v) = old_ptr {
    -        v.as_ptr()
    -    } else {
    -        std::ptr::null_mut()
    -    }
    +    dict.inner.entry(*key).or_insert(std::ptr::null_mut()) as *mut _ as *mut c_void
     }
     
     /// Compute the total gas refund for the dictionary at squash time.
    @@ -898,9 +876,9 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_point_from_x_nz(
    -    mut point_ptr: NonNull<[[u8; 32]; 2]>,
    +    point_ptr: &mut [[u8; 32]; 2],
     ) -> bool {
    -    let x = Felt::from_bytes_le(&point_ptr.as_ref()[0]);
    +    let x = Felt::from_bytes_le(&point_ptr[0]);
     
         // https://github.com/starkware-libs/cairo/blob/aaad921bba52e729dc24ece07fab2edf09ccfa15/crates/cairo-lang-sierra-to-casm/src/invocations/ec.rs#L63
     
    @@ -935,15 +913,15 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_point_try_new_nz(
    -    mut point_ptr: NonNull<[[u8; 32]; 2]>,
    +    point_ptr: &mut [[u8; 32]; 2],
     ) -> bool {
    -    let x = Felt::from_bytes_le(&point_ptr.as_ref()[0]);
    -    let y = Felt::from_bytes_le(&point_ptr.as_ref()[1]);
    +    let x = Felt::from_bytes_le(&point_ptr[0]);
    +    let y = Felt::from_bytes_le(&point_ptr[1]);
     
         match AffinePoint::new(x, y) {
             Ok(point) => {
    -            point_ptr.as_mut()[0].copy_from_slice(&point.x().to_bytes_le());
    -            point_ptr.as_mut()[1].copy_from_slice(&point.y().to_bytes_le());
    +            point_ptr[0].copy_from_slice(&point.x().to_bytes_le());
    +            point_ptr[1].copy_from_slice(&point.y().to_bytes_le());
                 true
             }
             Err(_) => false,
    @@ -957,9 +935,7 @@
     /// This function is intended to be called from MLIR, deals with pointers, and is therefore
     /// definitely unsafe to use manually.
     #[no_mangle]
    -pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_init(
    -    mut state_ptr: NonNull<[[u8; 32]; 4]>,
    -) {
    +pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_init(state_ptr: &mut [[u8; 32]; 4]) {
         // https://github.com/starkware-libs/cairo/blob/aaad921bba52e729dc24ece07fab2edf09ccfa15/crates/cairo-lang-runner/src/casm_run/mod.rs#L1802
         let mut rng = rand::thread_rng();
         let (random_x, random_y) = loop {
    @@ -975,10 +951,10 @@
         // We already made sure its a valid point.
         let state = AffinePoint::new_unchecked(random_x, random_y);
     
    -    state_ptr.as_mut()[0].copy_from_slice(&state.x().to_bytes_le());
    -    state_ptr.as_mut()[1].copy_from_slice(&state.y().to_bytes_le());
    -    state_ptr.as_mut()[2].copy_from_slice(&state.x().to_bytes_le());
    -    state_ptr.as_mut()[3].copy_from_slice(&state.y().to_bytes_le());
    +    state_ptr[0].copy_from_slice(&state.x().to_bytes_le());
    +    state_ptr[1].copy_from_slice(&state.y().to_bytes_le());
    +    state_ptr[2].copy_from_slice(&state.x().to_bytes_le());
    +    state_ptr[3].copy_from_slice(&state.y().to_bytes_le());
     }
     
     /// Compute `ec_state_add(state, point)` and store the state back.
    @@ -993,24 +969,24 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_add(
    -    mut state_ptr: NonNull<[[u8; 32]; 4]>,
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    state_ptr: &mut [[u8; 32]; 4],
    +    point_ptr: &[[u8; 32]; 2],
     ) {
         // We use unchecked methods because the inputs must already be valid points.
         let mut state = ProjectivePoint::from_affine_unchecked(
    -        Felt::from_bytes_le(&state_ptr.as_ref()[0]),
    -        Felt::from_bytes_le(&state_ptr.as_ref()[1]),
    +        Felt::from_bytes_le(&state_ptr[0]),
    +        Felt::from_bytes_le(&state_ptr[1]),
         );
         let point = AffinePoint::new_unchecked(
    -        Felt::from_bytes_le(&point_ptr.as_ref()[0]),
    -        Felt::from_bytes_le(&point_ptr.as_ref()[1]),
    +        Felt::from_bytes_le(&point_ptr[0]),
    +        Felt::from_bytes_le(&point_ptr[1]),
         );
     
         state += &point;
         let state = state.to_affine().unwrap();
     
    -    state_ptr.as_mut()[0].copy_from_slice(&state.x().to_bytes_le());
    -    state_ptr.as_mut()[1].copy_from_slice(&state.y().to_bytes_le());
    +    state_ptr[0].copy_from_slice(&state.x().to_bytes_le());
    +    state_ptr[1].copy_from_slice(&state.y().to_bytes_le());
     }
     
     /// Compute `ec_state_add_mul(state, scalar, point)` and store the state back.
    @@ -1025,26 +1001,26 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_add_mul(
    -    mut state_ptr: NonNull<[[u8; 32]; 4]>,
    -    scalar_ptr: NonNull<[u8; 32]>,
    -    point_ptr: NonNull<[[u8; 32]; 2]>,
    +    state_ptr: &mut [[u8; 32]; 4],
    +    scalar_ptr: &[u8; 32],
    +    point_ptr: &[[u8; 32]; 2],
     ) {
         // Here the points should already be checked as valid, so we can use unchecked.
         let mut state = ProjectivePoint::from_affine_unchecked(
    -        Felt::from_bytes_le(&state_ptr.as_ref()[0]),
    -        Felt::from_bytes_le(&state_ptr.as_ref()[1]),
    +        Felt::from_bytes_le(&state_ptr[0]),
    +        Felt::from_bytes_le(&state_ptr[1]),
         );
         let point = ProjectivePoint::from_affine_unchecked(
    -        Felt::from_bytes_le(&point_ptr.as_ref()[0]),
    -        Felt::from_bytes_le(&point_ptr.as_ref()[1]),
    +        Felt::from_bytes_le(&point_ptr[0]),
    +        Felt::from_bytes_le(&point_ptr[1]),
         );
    -    let scalar = Felt::from_bytes_le(scalar_ptr.as_ref());
    +    let scalar = Felt::from_bytes_le(scalar_ptr);
     
         state += &point.mul(scalar);
         let state = state.to_affine().unwrap();
     
    -    state_ptr.as_mut()[0].copy_from_slice(&state.x().to_bytes_le());
    -    state_ptr.as_mut()[1].copy_from_slice(&state.y().to_bytes_le());
    +    state_ptr[0].copy_from_slice(&state.x().to_bytes_le());
    +    state_ptr[1].copy_from_slice(&state.y().to_bytes_le());
     }
     
     /// Compute `ec_state_try_finalize_nz(state)` and store the result.
    @@ -1059,17 +1035,17 @@
     /// definitely unsafe to use manually.
     #[no_mangle]
     pub unsafe extern "C" fn cairo_native__libfunc__ec__ec_state_try_finalize_nz(
    -    mut point_ptr: NonNull<[[u8; 32]; 2]>,
    -    state_ptr: NonNull<[[u8; 32]; 4]>,
    +    point_ptr: &mut [[u8; 32]; 2],
    +    state_ptr: &[[u8; 32]; 4],
     ) -> bool {
         // We use unchecked methods because the inputs must already be valid points.
         let state = ProjectivePoint::from_affine_unchecked(
    -        Felt::from_bytes_le(&state_ptr.as_ref()[0]),
    -        Felt::from_bytes_le(&state_ptr.as_ref()[1]),
    +        Felt::from_bytes_le(&state_ptr[0]),
    +        Felt::from_bytes_le(&state_ptr[1]),
         );
         let random = ProjectivePoint::from_affine_unchecked(
    -        Felt::from_bytes_le(&state_ptr.as_ref()[2]),
    -        Felt::from_bytes_le(&state_ptr.as_ref()[3]),
    +        Felt::from_bytes_le(&state_ptr[2]),
    +        Felt::from_bytes_le(&state_ptr[3]),
         );
     
         if state.x() == random.x() && state.y() == random.y() {
    @@ -1078,8 +1054,8 @@
             let point = &state - &random;
             let point = point.to_affine().unwrap();
     
    -        point_ptr.as_mut()[0].copy_from_slice(&point.x().to_bytes_le());
    -        point_ptr.as_mut()[1].copy_from_slice(&point.y().to_bytes_le());
    +        point_ptr[0].copy_from_slice(&point.x().to_bytes_le());
    +        point_ptr[1].copy_from_slice(&point.y().to_bytes_le());
     
             true
         }
    diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js
    index afc2dee5e..c41a95149 100644
    --- a/trait.impl/core/default/trait.Default.js
    +++ b/trait.impl/core/default/trait.Default.js
    @@ -1,5 +1,4 @@
     (function() {var implementors = {
     "cairo_native":[["impl Default for OptLevel"],["impl Default for NativeContext"],["impl Default for BuiltinStats"],["impl Default for ContractExecutionResult"],["impl Default for AutoBreakpoint"],["impl Default for DebugUtils"],["impl Default for DropOverridesMeta"],["impl Default for DupOverridesMeta"],["impl Default for EnumSnapshotVariantsMeta"],["impl Default for GasMetadata"],["impl Default for MetadataComputationConfig"],["impl Default for RuntimeBindingsMeta"],["impl Default for MetadataStorage"],["impl Default for Secp256k1Point"],["impl Default for Secp256r1Point"],["impl Default for U256"],["impl Default for ContractLogs"],["impl Default for StubSyscallHandler"]],
    -"cairo_native_runtime":[["impl Default for FeltDict"]],
     "scarb_native_test":[["impl Default for TestKind"],["impl Default for TargetGroupDeduplicator"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file