Commit 671a85fd authored by John Doe's avatar John Doe
Browse files

🟣🏴

parent aff1f6e0
Pipeline #49 failed with stages
in 0 seconds

Too many changes to show.

To preserve performance only 335 of 335+ files are displayed.
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type {
IOracle,
IOracleInterface,
} from "../../../contracts/state.sol/IOracle";
const _abi = [
{
inputs: [
{
internalType: "address",
name: "_chainlinkFeed",
type: "address",
},
],
name: "chainlinkPrice",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
{
internalType: "address",
name: "_chainlinkFeed",
type: "address",
},
{
internalType: "address",
name: "_xftPool",
type: "address",
},
],
name: "getCost",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
] as const;
export class IOracle__factory {
static readonly abi = _abi;
static createInterface(): IOracleInterface {
return new Interface(_abi) as IOracleInterface;
}
static connect(address: string, runner?: ContractRunner | null): IOracle {
return new Contract(address, _abi, runner) as unknown as IOracle;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type {
IVerifier,
IVerifierInterface,
} from "../../../contracts/state.sol/IVerifier";
const _abi = [
{
inputs: [],
name: "getVerificationKeyHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
{
internalType: "bytes32[]",
name: "",
type: "bytes32[]",
},
],
name: "verify",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
] as const;
export class IVerifier__factory {
static readonly abi = _abi;
static createInterface(): IVerifierInterface {
return new Interface(_abi) as IVerifierInterface;
}
static connect(address: string, runner?: ContractRunner | null): IVerifier {
return new Contract(address, _abi, runner) as unknown as IVerifier;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type {
IWETH9,
IWETH9Interface,
} from "../../../contracts/state.sol/IWETH9";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Transfer",
type: "event",
},
{
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "deposit",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "recipient",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "sender",
type: "address",
},
{
internalType: "address",
name: "recipient",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
],
name: "withdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
] as const;
export class IWETH9__factory {
static readonly abi = _abi;
static createInterface(): IWETH9Interface {
return new Interface(_abi) as IWETH9Interface;
}
static connect(address: string, runner?: ContractRunner | null): IWETH9 {
return new Contract(address, _abi, runner) as unknown as IWETH9;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../common";
import type {
Momiji,
MomijiInterface,
} from "../../../contracts/state.sol/Momiji";
const _abi = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [
{
internalType: "address",
name: "target",
type: "address",
},
],
name: "AddressEmptyCode",
type: "error",
},
{
inputs: [],
name: "ECDSAInvalidSignature",
type: "error",
},
{
inputs: [
{
internalType: "uint256",
name: "length",
type: "uint256",
},
],
name: "ECDSAInvalidSignatureLength",
type: "error",
},
{
inputs: [
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "ECDSAInvalidSignatureS",
type: "error",
},
{
inputs: [
{
internalType: "address",
name: "implementation",
type: "address",
},
],
name: "ERC1967InvalidImplementation",
type: "error",
},
{
inputs: [],
name: "ERC1967NonPayable",
type: "error",
},
{
inputs: [],
name: "EnforcedPause",
type: "error",
},
{
inputs: [],
name: "ExpectedPause",
type: "error",
},
{
inputs: [],
name: "FailedInnerCall",
type: "error",
},
{
inputs: [],
name: "InvalidInitialization",
type: "error",
},
{
inputs: [],
name: "NotInitializing",
type: "error",
},
{
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "OwnableInvalidOwner",
type: "error",
},
{
inputs: [
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "OwnableUnauthorizedAccount",
type: "error",
},
{
inputs: [],
name: "UUPSUnauthorizedCallContext",
type: "error",
},
{
inputs: [
{
internalType: "bytes32",
name: "slot",
type: "bytes32",
},
],
name: "UUPSUnsupportedProxiableUUID",
type: "error",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "_batchNumber",
type: "uint256",
},
{
indexed: false,
internalType: "bytes32",
name: "_oldRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "_newRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "_oracle",
type: "bytes32",
},
{
indexed: false,
internalType: "bytes32[20]",
name: "_historicPath",
type: "bytes32[20]",
},
],
name: "BatchPublish",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "_merkleRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "string",
name: "_address",
type: "string",
},
],
name: "BroadcastAddress",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "_oldPercentage",
type: "uint256",
},
{
indexed: true,
internalType: "uint256",
name: "_newPercentage",
type: "uint256",
},
],
name: "BurnPercentageChanged",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "_oldCap",
type: "uint256",
},
{
indexed: true,
internalType: "uint256",
name: "_newCap",
type: "uint256",
},
],
name: "DailyCapChanged",
type: "event",
},
{
anonymous: false,
inputs: [],
name: "EIP712DomainChanged",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "_oldRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "_utxoId",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
indexed: false,
internalType: "struct EncryptedUTXO",
name: "_encryptedUTXO",
type: "tuple",
},
],
name: "EncryptedUTXOBroadcast",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint64",
name: "version",
type: "uint64",
},
],
name: "Initialized",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address",
},
],
name: "Paused",
type: "event",
},
{
anonymous: false,
inputs: [
{
components: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "transaction",
type: "tuple",
},
{
internalType: "bytes32[93]",
name: "proof",
type: "bytes32[93]",
},
{
internalType: "bytes",
name: "proofU8",
type: "bytes",
},
],
indexed: false,
internalType: "struct TransactionWithProof",
name: "_tx",
type: "tuple",
},
{
indexed: true,
internalType: "bytes32",
name: "_merkleRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "_txId",
type: "bytes32",
},
],
name: "TransactionBroadcast",
type: "event",
},
{
anonymous: false,
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
indexed: false,
internalType: "struct Transaction",
name: "_tx",
type: "tuple",
},
{
indexed: true,
internalType: "bytes32",
name: "_merkleRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "_txId",
type: "bytes32",
},
],
name: "TransactionPublish",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address",
},
],
name: "Unpaused",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "implementation",
type: "address",
},
],
name: "Upgraded",
type: "event",
},
{
stateMutability: "payable",
type: "fallback",
},
{
inputs: [],
name: "MAX_ITEMS",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "MAX_UTXOS",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "STATE_DEPTH",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "UPGRADE_INTERFACE_VERSION",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "_previousAccumulator",
type: "bytes32",
},
{
internalType: "bytes32",
name: "_publicInputsHash",
type: "bytes32",
},
],
name: "_accumulatePublicInputs",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "_transaction",
type: "tuple",
},
],
name: "_getSignatureHash",
outputs: [
{
internalType: "bytes32",
name: "_signatureHash",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "batchNumber",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "string",
name: "_address",
type: "string",
},
],
name: "broadcastAddress",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "transaction",
type: "tuple",
},
{
internalType: "bytes32[93]",
name: "proof",
type: "bytes32[93]",
},
{
internalType: "bytes",
name: "proofU8",
type: "bytes",
},
],
internalType: "struct TransactionWithProof",
name: "_tx",
type: "tuple",
},
{
internalType: "bytes32",
name: "_recipient",
type: "bytes32",
},
],
name: "broadcastTransaction",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "burnPercentageSwap",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_percentage",
type: "uint256",
},
],
name: "changeBurnPercentage",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_cap",
type: "uint256",
},
],
name: "changeCap",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address[]",
name: "_addrs",
type: "address[]",
},
],
name: "changePools",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "dailyCap",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "dailyMint",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "_hash",
type: "bytes32",
},
{
internalType: "bytes",
name: "_signature",
type: "bytes",
},
],
name: "ecRecover",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "eip712Domain",
outputs: [
{
internalType: "bytes1",
name: "fields",
type: "bytes1",
},
{
internalType: "string",
name: "name",
type: "string",
},
{
internalType: "string",
name: "version",
type: "string",
},
{
internalType: "uint256",
name: "chainId",
type: "uint256",
},
{
internalType: "address",
name: "verifyingContract",
type: "address",
},
{
internalType: "bytes32",
name: "salt",
type: "bytes32",
},
{
internalType: "uint256[]",
name: "extensions",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "emergencyPause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "emergencyUnpause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "fee",
outputs: [
{
internalType: "uint24",
name: "",
type: "uint24",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32[]",
name: "_nullifierHashes",
type: "bytes32[]",
},
],
name: "getSpentNullifiers",
outputs: [
{
internalType: "bool[]",
name: "spent",
type: "bool[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_index",
type: "uint256",
},
],
name: "getValidRootAtIndex",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getValidRoots",
outputs: [
{
internalType: "bytes32[]",
name: "",
type: "bytes32[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_start",
type: "uint256",
},
{
internalType: "uint256",
name: "_end",
type: "uint256",
},
],
name: "getValidRootsPaginated",
outputs: [
{
internalType: "bytes32[]",
name: "",
type: "bytes32[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "_tx",
type: "tuple",
},
{
internalType: "bytes32",
name: "_signatureHash",
type: "bytes32",
},
],
name: "hashCircuitInputsForTx",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "_tx",
type: "tuple",
},
],
name: "hashCircuitInputsForTxWithoutDeposit",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "_tx",
type: "tuple",
},
{
internalType: "bytes32",
name: "_signatureHash",
type: "bytes32",
},
],
name: "hashContractOnlyInputsForTx",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction",
name: "_tx",
type: "tuple",
},
],
name: "hashContractOnlyInputsForTxWithoutDeposit",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "_deposit",
type: "tuple",
},
],
name: "hashTypedDataV4",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "histRoot",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract IVerifier",
name: "_verifier",
type: "address",
},
{
internalType: "address",
name: "_token",
type: "address",
},
{
internalType: "bytes32",
name: "_txKeyHash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "_txWrapperKeyHash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "_recursiveKeyHash",
type: "bytes32",
},
{
internalType: "address",
name: "_xftPool",
type: "address",
},
],
name: "initialize",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "_nullifierHash",
type: "bytes32",
},
],
name: "isSpent",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "lastCapReset",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "merkleRoot",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "nullifierHashes",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "oracle",
outputs: [
{
internalType: "contract IOracle",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "paused",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "tx_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "recursive_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "old_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "oracle",
type: "bytes32",
},
{
internalType: "bytes32[20]",
name: "historic_path",
type: "bytes32[20]",
},
{
internalType: "bytes32[16]",
name: "aggregation_object",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction[]",
name: "transactions",
type: "tuple[]",
},
],
internalType: "struct Batch",
name: "_batch",
type: "tuple",
},
{
internalType: "bytes32",
name: "_accumulator",
type: "bytes32",
},
],
name: "prepareBatchPublicInputs",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "proxiableUUID",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "_proof",
type: "bytes",
},
{
components: [
{
internalType: "bytes32",
name: "tx_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "recursive_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "old_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "oracle",
type: "bytes32",
},
{
internalType: "bytes32[20]",
name: "historic_path",
type: "bytes32[20]",
},
{
internalType: "bytes32[16]",
name: "aggregation_object",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction[]",
name: "transactions",
type: "tuple[]",
},
],
internalType: "struct Batch",
name: "_batch",
type: "tuple",
},
],
name: "publish",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "recursiveKeyHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "relay",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "bytes32",
name: "tx_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "recursive_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "old_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "oracle",
type: "bytes32",
},
{
internalType: "bytes32[20]",
name: "historic_path",
type: "bytes32[20]",
},
{
internalType: "bytes32[16]",
name: "aggregation_object",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction[]",
name: "transactions",
type: "tuple[]",
},
],
internalType: "struct Batch",
name: "_batch",
type: "tuple",
},
],
name: "simulatePublish",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "swapRouter",
outputs: [
{
internalType: "contract ISwapRouter",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "token",
outputs: [
{
internalType: "contract IElasticERC20",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "txKeyHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "txWrapperKeyHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32[]",
name: "_circuits",
type: "bytes32[]",
},
],
name: "updateCircuits",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newImplementation",
type: "address",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "upgradeToAndCall",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "utxoPrevRoots",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "validRoots",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "verifier",
outputs: [
{
internalType: "contract IVerifier",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "_proof",
type: "bytes",
},
{
components: [
{
internalType: "bytes32",
name: "tx_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "recursive_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "old_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "oracle",
type: "bytes32",
},
{
internalType: "bytes32[20]",
name: "historic_path",
type: "bytes32[20]",
},
{
internalType: "bytes32[16]",
name: "aggregation_object",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction[]",
name: "transactions",
type: "tuple[]",
},
],
internalType: "struct Batch",
name: "_batch",
type: "tuple",
},
{
internalType: "bytes32",
name: "_accumulator",
type: "bytes32",
},
],
name: "verifyProof",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "xft",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "xftPool",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
stateMutability: "payable",
type: "receive",
},
] as const;
const _bytecode =
"0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051616465620001005f395f81816141470152818161417001526143bb01526164655ff3fe608060405260043610610384575f3560e01c806371919408116101d0578063af95daca11610101578063ddca3f431161009f578063f0b02d1c1161006e578063f0b02d1c14610b19578063f2fde38b14610b2e578063f6f6bc5e14610b4d578063fc0c546a14610b6c576103f8565b8063ddca3f4314610a64578063e39c9eb214610aab578063e5285dcc14610ad6578063eb33939114610b04576103f8565b8063c31c9c07116100db578063c31c9c07146109f2578063c50a53eb14610a11578063d050786514610a30578063d419f58414610a4f576103f8565b8063af95daca14610992578063afbd8bd3146109b1578063ba873065146109dd576103f8565b806389aa6e081161016e57806395a4f7c21161014857806395a4f7c2146108ea578063993544bb146108ff578063aa2d61db1461091e578063ad3cb1cc1461093d576103f8565b806389aa6e081461087a5780638c17d367146108995780638da5cb5b146108ae576103f8565b8063800edb9d116101aa578063800edb9d14610800578063848090e81461081f57806384b0196e1461083457806384e2ad141461085b576103f8565b806371919408146107ad5780637b996fd6146107cc5780637dc0d1d0146107e1576103f8565b80634a4e3bd5116102b557806355330a9a1161025357806363f132ff1161022257806363f132ff1461073c578063671094c61461075b5780636d8550651461077a578063715018a614610799576103f8565b806355330a9a146106a757806357d4c4ee146106c65780635ab573d5146106db5780635c975abb14610706576103f8565b80634f1ef2861161028f5780634f1ef2861461064d578063514b3d151461066057806351858e271461067f57806352d1902d14610693576103f8565b80634a4e3bd5146106105780634cfb149e146106245780634ef548f114610639576103f8565b80632eb4a7ab116103225780633ddfbceb116102fc5780633ddfbceb1461059e5780634382e92a146105bd57806345e833e8146105dc5780634a0415f7146105fb576103f8565b80632eb4a7ab1461054b578063306520471461056057806335db62f31461057f576103f8565b80631f8c449d1161035e5780631f8c449d146104ab5780631fbcb0d5146104ca5780632b7ac3f3146104f65780632c58f4ed1461052c576103f8565b80631103d1f614610426578063161a054b1461044e57806317cc915c1461046d576103f8565b366103f8573373c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2146103f657336001600160a01b0316346040515b5f6040518083038185875af1925050503d805f81146103ed576040519150601f19603f3d011682016040523d82523d5f602084013e6103f2565b606091505b5050505b005b3373c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2146103f657336001600160a01b0316346040516103b3565b348015610431575f80fd5b5061043b600a5481565b6040519081526020015b60405180910390f35b348015610459575f80fd5b506103f6610468366004614fa5565b610b8b565b348015610478575f80fd5b5061049b610487366004615009565b60116020525f908152604090205460ff1681565b6040519015158152602001610445565b3480156104b6575f80fd5b506103f66104c5366004615020565b6114bd565b3480156104d5575f80fd5b506104e96104e4366004615052565b611593565b60405161044591906150ac565b348015610501575f80fd5b505f54610514906001600160a01b031681565b6040516001600160a01b039091168152602001610445565b348015610537575f80fd5b5061043b6105463660046150be565b6116f3565b348015610556575f80fd5b5061043b600b5481565b34801561056b575f80fd5b506103f661057a366004615141565b611852565b34801561058a575f80fd5b506103f6610599366004615141565b6119b1565b3480156105a9575f80fd5b5061043b6105b8366004615009565b611a65565b3480156105c8575f80fd5b5061043b6105d7366004615191565b611a89565b3480156105e7575f80fd5b5061049b6105f63660046151c3565b611af6565b348015610606575f80fd5b5061043b60065481565b34801561061b575f80fd5b506103f6611c30565b34801561062f575f80fd5b5061043b600c5481565b348015610644575f80fd5b506104e9611c42565b6103f661065b3660046153a2565b611c98565b34801561066b575f80fd5b506103f661067a3660046153ef565b611cb7565b34801561068a575f80fd5b506103f6612017565b34801561069e575f80fd5b5061043b612027565b3480156106b2575f80fd5b5061043b6106c1366004615452565b612055565b3480156106d1575f80fd5b5061043b60095481565b3480156106e6575f80fd5b5061043b6106f5366004615009565b60136020525f908152604090205481565b348015610711575f80fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1661049b565b348015610747575f80fd5b5061043b610756366004615191565b61224f565b348015610766575f80fd5b506103f6610775366004615485565b612459565b348015610785575f80fd5b506103f6610794366004615009565b6124b2565b3480156107a4575f80fd5b506103f6612563565b3480156107b8575f80fd5b506105146107c73660046154b8565b612574565b3480156107d7575f80fd5b5061043b600e5481565b3480156107ec575f80fd5b50600254610514906001600160a01b031681565b34801561080b575f80fd5b506103f661081a366004615009565b6125b4565b34801561082a575f80fd5b5061043b60105481565b34801561083f575f80fd5b50610848612666565b604051610445979695949392919061554d565b348015610866575f80fd5b5061043b610875366004615600565b612746565b348015610885575f80fd5b50601654610514906001600160a01b031681565b3480156108a4575f80fd5b5061043b60075481565b3480156108b9575f80fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610514565b3480156108f5575f80fd5b5061043b60085481565b34801561090a575f80fd5b5061043b610919366004615191565b61278a565b348015610929575f80fd5b5061043b610938366004615009565b6129e8565b348015610948575f80fd5b506109856040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516104459190615637565b34801561099d575f80fd5b5061043b6109ac366004615452565b612a07565b3480156109bc575f80fd5b506109d06109cb366004615141565b612cba565b6040516104459190615649565b3480156109e8575f80fd5b5061043b60145481565b3480156109fd575f80fd5b50600354610514906001600160a01b031681565b348015610a1c575f80fd5b5061043b610a2b366004615052565b612d76565b348015610a3b575f80fd5b50601554610514906001600160a01b031681565b348015610a5a575f80fd5b5061043b60055481565b348015610a6f575f80fd5b50601654610a979074010000000000000000000000000000000000000000900462ffffff1681565b60405162ffffff9091168152602001610445565b348015610ab6575f80fd5b5061043b610ac5366004615009565b60126020525f908152604090205481565b348015610ae1575f80fd5b5061049b610af0366004615009565b5f9081526011602052604090205460ff1690565b348015610b0f575f80fd5b5061043b600d5481565b348015610b24575f80fd5b5061043b600f5481565b348015610b39575f80fd5b506103f6610b4836600461568e565b612e56565b348015610b58575f80fd5b506103f6610b673660046156a9565b612eac565b348015610b77575f80fd5b50600154610514906001600160a01b031681565b5f5c15610b96575f80fd5b60015f5d610ba261305c565b600854610bb09060026157fd565b60145410610c2b5760405162461bcd60e51b815260206004820152602360248201527f6d6f6d696a692e7075626c6973683a207374617465206465707468207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600554813514610ca35760405162461bcd60e51b815260206004820152602260248201527f6d6f6d696a692e7075626c6973683a20696e76616c6964207478206b6579486160448201527f73680000000000000000000000000000000000000000000000000000000000006064820152608401610c22565b600754816020013514610d1e5760405162461bcd60e51b815260206004820152602960248201527f6d6f6d696a692e7075626c6973683a20696e76616c696420726563757273697660448201527f65206b65794861736800000000000000000000000000000000000000000000006064820152608401610c22565b600c54816060013514610d995760405162461bcd60e51b815260206004820152602560248201527f6d6f6d696a692e7075626c6973683a20696e76616c696420686973746f72696360448201527f20726f6f740000000000000000000000000000000000000000000000000000006064820152608401610c22565b5f610da8610540830183615808565b600a546009549193507f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72092505f91610de0919061584e565b67ffffffffffffffff811115610df857610df8615243565b604051908082528060200260200182016040528015610e4857816020015b604080516080810182525f8082526020808301829052928201819052606082015282525f19909201910181610e165790505b5090505f5b838110156113f3577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610e84610540870187615808565b83818110610e9457610e94615865565b9050602002810190610ea69190615892565b6020013503610f1c5760405162461bcd60e51b8152602060048201526024808201527f6d6f6d696a692e7075626c6973683a207478206d757374206e6f74206265206560448201527f6d707479000000000000000000000000000000000000000000000000000000006064820152608401610c22565b7f11d25ff6aa8a431fbce8e8d9a87a2d7986adf38e724fbe47f15752d0931f14d8610f4b610540870187615808565b83818110610f5b57610f5b615865565b9050602002810190610f6d9190615892565b6020013503610fe45760405162461bcd60e51b815260206004820152602a60248201527f6d6f6d696a692e7075626c6973683a207478207574786f73206d757374206e6f60448201527f7420626520656d707479000000000000000000000000000000000000000000006064820152608401610c22565b603c610ff4610540870187615808565b8381811061100457611004615865565b90506020028101906110169190615892565b6110249190606001356158fb565b156110975760405162461bcd60e51b815260206004820152603160248201527f6d6f6d696a692e7075626c6973683a2074696d657374616d70206d757374206260448201527f6520646976697369626c652062792036300000000000000000000000000000006064820152608401610c22565b426110a6610540870187615808565b838181106110b6576110b6615865565b90506020028101906110c89190615892565b60600135106111195760405162461bcd60e51b815260206004820181905260248201527f6d6f6d696a692e7075626c6973683a207478206e6f74207965742076616c69646044820152606401610c22565b603c611129610540870187615808565b8381811061113957611139615865565b905060200281019061114b9190615892565b6111599190608001356158fb565b156111cc5760405162461bcd60e51b815260206004820152603060248201527f6d6f6d696a692e7075626c6973683a20646561646c696e65206d75737420626560448201527f20646976697369626c65206279203630000000000000000000000000000000006064820152608401610c22565b426111db610540870187615808565b838181106111eb576111eb615865565b90506020028101906111fd9190615892565b608001351161124e5760405162461bcd60e51b815260206004820152601e60248201527f6d6f6d696a692e7075626c6973683a20747820686173206578706972656400006044820152606401610c22565b5f611282611260610540880188615808565b8481811061127057611270615865565b90506020028101906105d79190615892565b90505f6112be611296610540890189615808565b858181106112a6576112a6615865565b90506020028101906112b89190615892565b83612055565b90506112ca8582612d76565b9450811561130b5761130b6112e3610540890189615808565b858181106112f3576112f3615865565b90506020028101906113059190615892565b836130b8565b61134361131c610540890189615808565b8581811061132c5761132c615865565b905060200281019061133e9190615892565b613259565b61137e611354610540890189615808565b8581811061136457611364615865565b90506020028101906113769190615892565b8583866135fd565b600b5481907f48aca1b0c57ac5ec7c6882f807fc4b69f9dbe52279cf980f541149e13cebdf476113b26105408b018b615808565b878181106113c2576113c2615865565b90506020028101906113d49190615892565b6040516113e19190615b16565b60405180910390a35050600101610e4d565b506113fe81846137bc565b61140f61140a85615e6b565b613f50565b8360a0013584604001356014547fad6428c585490bbbc6ea9b4a1d150f301530bd4f6374ce30d6a4c44f547d9458600b548860c001604051611452929190615f12565b60405180910390a461146686868685611af6565b6114b25760405162461bcd60e51b815260206004820152601d60248201527f6d6f6d696a692e7075626c6973683a20696e76616c69642070726f6f660000006044820152606401610c22565b5050505f805d505050565b5f80306001600160a01b031663161a054b60e01b846040516024016114e29190615ffc565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161154d91906160bd565b5f604051808303815f865af19150503d805f8114611586576040519150601f19603f3d011682016040523d82523d5f602084013e61158b565b606091505b505050505050565b60608183106115e45760405162461bcd60e51b815260206004820152600d60248201527f496e76616c69642072616e6765000000000000000000000000000000000000006044820152606401610c22565b60045482106116355760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420656e6420696e6465780000000000000000000000000000006044820152606401610c22565b5f61164084846160ce565b67ffffffffffffffff81111561165857611658615243565b604051908082528060200260200182016040528015611681578160200160208202803683370190505b5090505f845b8481116116e757600481815481106116a1576116a1615865565b905f5260205f2001548383815181106116bc576116bc615865565b6020908102919091010152816116d1816160e1565b92505080806116df906160e1565b915050611687565b50909150505b92915050565b60408051601a80825261036082019092525f9182919060208201610340803683370190505090508360400135815f8151811061173157611731615865565b60200260200101818152505083606001358160018151811061175557611755615865565b60200260200101818152505083608001358160028151811061177957611779615865565b602002602001018181525050828160038151811061179957611799615865565b602002602001018181525050835f0135816004815181106117bc576117bc615865565b6020026020010181815250508360200135816005815181106117e0576117e0615865565b6020026020010181815250505f5b6014811015611840578460c001816014811061180c5761180c615865565b60200201358261181d8360066160f9565b8151811061182d5761182d615865565b60209081029190910101526001016117ee565b5061184a81613fad565b949350505050565b61185a61400f565b81815f81811061186c5761186c615865565b9050602002016020810190611881919061568e565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055818160018181106118c1576118c1615865565b90506020020160208101906118d6919061568e565b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790558181600281811061191657611916615865565b905060200201602081019061192b919061568e565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790558181600281811061196b5761196b615865565b9050602002016020810190611980919061568e565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b6119b961400f565b81815f8181106119cb576119cb615865565b602002919091013560055550818160018181106119ea576119ea615865565b60200291909101356006555081816002818110611a0957611a09615865565b602002919091013560075550611a3582826003818110611a2b57611a2b615865565b9050602002013590565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b5f60048281548110611a7957611a79615865565b905f5260205f2001549050919050565b5f60a082013515611aef576116ed7fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae55445435611ac18461224f565b6040805160208101939093528201526060015b60405160208183030381529060405280519060200120614083565b505f919050565b60408051601180825261024082019092525f918291906020820161022080368337019050509050611b2784846116f3565b815f81518110611b3957611b39615865565b6020026020010181815250505f5b6010811015611b9a5784610340018160108110611b6657611b66615865565b602002013582611b778360016160f9565b81518110611b8757611b87615865565b6020908102919091010152600101611b47565b505f546040517fea50d0e40000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ea50d0e490611be79089908990869060040161610c565b602060405180830381865afa158015611c02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c269190616131565b9695505050505050565b611c3861400f565b611c406140ca565b565b60606004805480602002602001604051908101604052809291908181526020018280548015611c8e57602002820191905f5260205f20905b815481526020019060010190808311611c7a575b5050505050905090565b611ca061413c565b611ca98261420c565b611cb38282614214565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015611d015750825b90505f8267ffffffffffffffff166001148015611d1d5750303b155b905081158015611d2b575080155b15611d62576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315611dc35784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b611dcb61431a565b611dd43361432a565b611ddc61433b565b5f80546001600160a01b03808e1673ffffffffffffffffffffffffffffffffffffffff19928316178355600180548e831690841681178255601680548516909117815560058e815560068e815560078e905560158054958e16958716959095179094556003805490951673e592427a0aece92de3edee1f18e0157c0586156417909455601460085560106009819055600a8190557f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720600b81905560048054808601825597527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909601959095557f06f93f503e77fcdcacfe622e66adc639b63e8c0083f5cab5d71d461aa4562c92600c558054750bb800000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff90911617905591909255600d8190556040805180820182529283527f4d6f6d696a69000000000000000000000000000000000000000000000000000060208481019190915281518083019092529181527f310000000000000000000000000000000000000000000000000000000000000091810191909152611fa99190614343565b831561200a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b61201f61400f565b611c40614355565b5f6120306143b0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6040805160358082526106c082019092525f91829190602082016106a080368337019050509050835f0135815f8151811061209257612092615865565b6020026020010181815250508360200135816001815181106120b6576120b6615865565b6020026020010181815250508360a00135816002815181106120da576120da615865565b6020026020010181815250506120f08484612a07565b8160038151811061210357612103615865565b6020026020010181815250505f5b601081101561184057846106c001816010811061213057612130615865565b60200201355f1c8260048151811061214a5761214a615865565b60200260200101515f1c61215e91906160f9565b5f1b8260048151811061217357612173615865565b602002602001018181525050846108c001816010811061219557612195615865565b6020020135826121a68360056160f9565b815181106121b6576121b6615865565b60200260200101818152505084610ac00181601081106121d8576121d8615865565b6020020135826121e98360156160f9565b815181106121f9576121f9615865565b60200260200101818152505084610ec001816010811061221b5761221b615865565b60200201358261222c8360256160f9565b8151811061223c5761223c615865565b6020908102919091010152600101612111565b6040805160358082526106c082019092525f91829190602082016106a080368337019050509050825f0135815f8151811061228c5761228c615865565b6020026020010181815250508260200135816001815181106122b0576122b0615865565b6020026020010181815250508260a00135816002815181106122d4576122d4615865565b6020026020010181815250506122e98361278a565b816003815181106122fc576122fc615865565b6020026020010181815250505f5b601081101561244857836106c001816010811061232957612329615865565b60200201355f1c8260048151811061234357612343615865565b60200260200101515f1c61235791906160f9565b5f1b8260048151811061236c5761236c615865565b602002602001018181525050836108c001816010811061238e5761238e615865565b60200201358261239f8360056160f9565b815181106123af576123af615865565b60200260200101818152505083610ac00181601081106123d1576123d1615865565b6020020135826123e28360156160f9565b815181106123f2576123f2615865565b60200260200101818152505083610ec001816010811061241457612414615865565b6020020135826124258360256160f9565b8151811061243557612435615865565b602090810291909101015260010161230a565b5061245281613fad565b9392505050565b5f5c15612464575f80fd5b60015f5d8181604051612478929190616150565b604051908190038120600b5490917ffc72adab542ee24184b61a98f915fe9c57b47d6ac9d0e321bef8688088d8e407905f90a35f805d5050565b6124ba61400f565b606481106125305760405162461bcd60e51b815260206004820152602f60248201527f6d6f6d696a692e6368616e67654275726e50657263656e746167653a2043616e60448201527f6e6f7420657863656564203130302500000000000000000000000000000000006064820152608401610c22565b6010546040518291907f4edd9592d353a646c5be3fa8a62e97e4db7b3237a92805a5b1e5b0b54c749fda905f90a3601055565b61256b61400f565b611c405f614412565b5f61184a8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061448f92505050565b6125bc61400f565b6103e881106126335760405162461bcd60e51b815260206004820152602860248201527f6d6f6d696a692e6368616e67654361703a2043616e6e6f74206578636565642060448201527f31303030206270730000000000000000000000000000000000000000000000006064820152608401610c22565b600d546040518291907f6e8bb5be61baafba8ec82417b4affe3b5f010b01fe01e4dd798a605f93e82f9b905f90a3600d55565b5f60608082808083817fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10080549091501580156126a457506001810154155b6126f05760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606401610c22565b6126f86144ad565b612700614580565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009c939b5091995046985030975095509350915050565b5f6116ed7fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae554454358360200135604051602001611ad4929190918252602082015260400190565b604080516063808252610c8082019092525f9182919060208201610c60803683370190505090508260600135815f815181106127c8576127c8615865565b6020026020010181815250508260800135816001815181106127ec576127ec615865565b60200260200101818152505082604001358160028151811061281057612810615865565b6020026020010181815250505f5b60108110156124485783610cc001816010811061283d5761283d615865565b60200201358261284e8360036160f9565b8151811061285e5761285e615865565b602002602001018181525050836112c001816010811061288057612880615865565b6020020135826128918360136160f9565b815181106128a1576128a1615865565b602002602001018181525050836110c00181601081106128c3576128c3615865565b6020020135826128d48360236160f9565b815181106128e4576128e4615865565b6020026020010181815250508360c001816010811061290557612905615865565b60600201358261291683600361584e565b6129219060336160f9565b8151811061293157612931615865565b6020026020010181815250508360c001816010811061295257612952615865565b606002016020013582826003612968919061584e565b6129739060346160f9565b8151811061298357612983615865565b6020026020010181815250508360c00181601081106129a4576129a4615865565b6060020160400135828260036129ba919061584e565b6129c59060356160f9565b815181106129d5576129d5615865565b602090810291909101015260010161281e565b600481815481106129f7575f80fd5b5f91825260209091200154905081565b604080516064808252610ca082019092525f9182919060208201610c80803683370190505090508360600135815f81518110612a4557612a45615865565b602002602001018181525050836080013581600181518110612a6957612a69615865565b6020908102919091010152612a9f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060016160f9565b612aa990846158fb565b5f1b81600281518110612abe57612abe615865565b602002602001018181525050836040013581600381518110612ae257612ae2615865565b6020026020010181815250505f5b60108110156118405784610cc0018160108110612b0f57612b0f615865565b602002013582612b208360046160f9565b81518110612b3057612b30615865565b602002602001018181525050846112c0018160108110612b5257612b52615865565b602002013582612b638360146160f9565b81518110612b7357612b73615865565b602002602001018181525050846110c0018160108110612b9557612b95615865565b602002013582612ba68360246160f9565b81518110612bb657612bb6615865565b6020026020010181815250508460c0018160108110612bd757612bd7615865565b606002013582612be883600361584e565b612bf39060346160f9565b81518110612c0357612c03615865565b6020026020010181815250508460c0018160108110612c2457612c24615865565b606002016020013582826003612c3a919061584e565b612c459060356160f9565b81518110612c5557612c55615865565b6020026020010181815250508460c0018160108110612c7657612c76615865565b606002016040013582826003612c8c919061584e565b612c979060366160f9565b81518110612ca757612ca7615865565b6020908102919091010152600101612af0565b6060818067ffffffffffffffff811115612cd657612cd6615243565b604051908082528060200260200182016040528015612cff578160200160208202803683370190505b5091505f5b81811015612d6e57612d3c858583818110612d2157612d21615865565b905060200201355f9081526011602052604090205460ff1690565b15612d66576001838281518110612d5557612d55615865565b911515602092830291909101909101525b600101612d04565b505092915050565b60408051600480825260a082019092525f918291906020820160808036833701905050905083815f81518110612dae57612dae615865565b6020026020010181815250508281600181518110612dce57612dce615865565b60200260200101818152505060055481600281518110612df057612df0615865565b60209081029190910101527f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f7208414612e2a57600754612e2e565b6006545b81600381518110612e4157612e41615865565b60200260200101818152505061184a81613fad565b612e5e61400f565b6001600160a01b038116612ea0576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610c22565b612ea981614412565b50565b5f5c15612eb7575f80fd5b60015f5d5f80612ec78480615892565b60a001351115612f3357612f2c7fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae55445435612eff8580615892565b612f0e906114c081019061615f565b60200135604051602001611ad4929190918252602082015260400190565b9050612f36565b505f5b5f612f446112b88580615892565b5f8181526013602052604090205490915015612fc85760405162461bcd60e51b815260206004820152602560248201527f6d6f6d696a692e62726f6164636173743a20616c72656164792062726f61646360448201527f61737465640000000000000000000000000000000000000000000000000000006064820152608401610c22565b5f5b6010811015613017576002612fdf8680615892565b610cc0018260108110612ff457612ff4615865565b60200201350361300f575f8281526013602052604090208490555b600101612fca565b5080600b547f91efbe0215cd10bb052900975342af064e302eb66071e2a5c31632991497b9b58660405161304b9190616191565b60405180910390a350505f805d5050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615611c40576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6130d5826130cb6114c086018661615f565b6107c790806161f4565b6001546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935060a086013592909116906370a0823190602401602060405180830381865afa15801561313f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131639190616237565b10156131d75760405162461bcd60e51b815260206004820152602c60248201527f6d6f6d696a692e5f7075626c6973684465706f7369743a20696e73756666696360448201527f69656e742062616c616e636500000000000000000000000000000000000000006064820152608401610c22565b6001546040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260a0860135602483015290911690639dc29fac906044015f604051808303815f87803b15801561323e575f80fd5b505af1158015613250573d5f803e3d5ffd5b50505050505050565b5f5b6010811015611cb3577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610ec08301826010811061329b5761329b615865565b6020020135146133905760115f83610ec00183601081106132be576132be615865565b6020908102919091013582528101919091526040015f205460ff161561334c5760405162461bcd60e51b815260206004820152602860248201527f6d6f6d696a692e5f7075626c69736857697468647261773a206e756c6c69666960448201527f6572207370656e740000000000000000000000000000000000000000000000006064820152608401610c22565b600160115f84610ec001846010811061336757613367615865565b602002013581526020019081526020015f205f6101000a81548160ff0219169083151502179055505b7f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610ac0830182601081106133c7576133c7615865565b6020020135146135125760125f83610ac00183601081106133ea576133ea615865565b602002013581526020019081526020015f20545f801b146134725760405162461bcd60e51b8152602060048201526024808201527f6d6f6d696a692e5f7075626c69736857697468647261773a207574786f20657860448201527f69737473000000000000000000000000000000000000000000000000000000006064820152608401610c22565b600b5460125f84610ac001846010811061348e5761348e615865565b602002013581526020019081526020015f2081905550816110c00181601081106134ba576134ba615865565b6020020135600b547fec4ce5084cd118adcfcc534001c121cc3f04525ef85b0c342ed2fe88e629286b8460c00184601081106134f8576134f8615865565b60600201604051613509919061624e565b60405180910390a35b7f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f7206108c08301826010811061354957613549615865565b6020020135146135f55760125f836108c001836010811061356c5761356c615865565b602002013581526020019081526020015f20545f801b036135f55760405162461bcd60e51b815260206004820152602860248201527f6d6f6d696a692e7075626c6973683a20636f6d6d69746d656e7420646f65736e60448201527f27742065786973740000000000000000000000000000000000000000000000006064820152608401610c22565b60010161325b565b5f5b600a548110156137b5577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72080610cc08701836010811061364157613641615865565b6020020135146137ac576002610cc08701836010811061366357613663615865565b60200201350361368157505f8381526013602052604090205461369f565b85610cc001826010811061369757613697615865565b602002013590505b5f866112c00183601081106136b6576136b6615865565b602002013590505f816106c0890185601081106136d5576136d5615865565b60200201355f1c6136e691906160ce565b9050606460105460646136f991906160ce565b613703908461584e565b61370d919061626f565b91505f60408901357f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72014613745576040890135613747565b5f5b90506040518060800160405280858152602001838152602001848152602001826001600160a01b03168152508886600a5489613783919061584e565b61378d91906160f9565b8151811061379d5761379d615865565b60200260200101819052505050505b506001016135ff565b5050505050565b5f600190505f805f600a54856137d2919061584e565b6137dd9060016160f9565b67ffffffffffffffff8111156137f5576137f5615243565b60405190808252806020026020018201604052801561381e578160200160208202803683370190505b50604080516080810182525f80825260208201819052918101829052606081018290529192505b86811015613a86575f5b600a54811015613a7d578881600a5484613869919061584e565b61387391906160f9565b8151811061388357613883615865565b602002602001015192507f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f7205f1b835f0151141580156138c25750825115155b15613a755782517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd016138f3574183525b82515f1901613900573383525b82606001516001600160a01b0316856001600160a01b0316101561392657826060015194505b8251805c905f82900361398557845f0151868a8151811061394957613949615865565b60200260200101818152505082600a5485613964919061584e565b61396e91906160f9565b915081815d8861397d816160e1565b995050613a61565b6020850151156139c25784602001518b83815181106139a6576139a6615865565b60200260200101516020018181516139be91906160f9565b9052505b6040850151156139ff5784604001518b83815181106139e3576139e3615865565b60200260200101516040018181516139fb91906160f9565b9052505b60405180608001604052805f801b81526020015f81526020015f81526020015f6001600160a01b03168152508b84600a5487613a3b919061584e565b613a4591906160f9565b81518110613a5557613a55615865565b60200260200101819052505b6040850151613a7090896160f9565b975050505b60010161384f565b50600101613845565b50600f5442906201518090613a9b90836160ce565b1115613aab57600f8190555f600e555b5f8515613f4557600154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e8926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015613b14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b389190616237565b600d54613b45919061584e565b613b4f919061626f565b600e54613b5c90886160f9565b1115613bd05760405162461bcd60e51b815260206004820152602a60248201527f6d6f6d696a692e5f68616e646c655061796d656e74733a206461696c7920636160448201527f70206578636565646564000000000000000000000000000000000000000000006064820152608401610c22565b85600e5f828254613be191906160f9565b90915550506001546040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018890526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015613c48575f80fd5b505af1158015613c5a573d5f803e3d5ffd5b50505050613c6886866145d1565b905060015b87811015613f43575f801b858281518110613c8a57613c8a615865565b602002602001015114613f3b575f80868381518110613cab57613cab615865565b60200260200101519050805c91508b8281518110613ccb57613ccb615865565b602002602001015195505f8087604001511115613d565789858860400151613cf3919061584e565b613cfd919061626f565b9050613d1f888581518110613d1457613d14615865565b602002602001015190565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015613d54573d5f803e3d5ffd5b505b60208701518015613f3657600154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e8926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015613dc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613de79190616237565b600d54613df4919061584e565b613dfe919061626f565b600e54613e0b90836160f9565b1115613e7f5760405162461bcd60e51b815260206004820152602a60248201527f6d6f6d696a692e5f68616e646c655061796d656e74733a206461696c7920636160448201527f70206578636565646564000000000000000000000000000000000000000000006064820152608401610c22565b80600e5f828254613e9091906160f9565b909155505060015489516001600160a01b03909116906340c10f1990613ec2908c9089908110613d1457613d14615865565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015613f1f575f80fd5b505af1158015613f31573d5f803e3d5ffd5b505050505b505050505b600101613c6d565b505b505050505050505050565b604081018051600480546001810182555f9182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01919091559051600b556080820151600c556014805491613fa5836160e1565b919050555050565b5f8082604051602001613fc09190616282565b6040516020818303038152906040528051906020012090507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000600161400591906160f9565b61245290826158fb565b336140417f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614611c40576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610c22565b5f6116ed61408f614823565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6140d2614831565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806141d557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166141c97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611c40576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612ea961400f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561426e575060408051601f3d908101601f1916820190925261426b91810190616237565b60015b6142af576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610c22565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461430b576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610c22565b614315838361488c565b505050565b6143226148e1565b611c40614948565b6143326148e1565b612ea98161497b565b611c406148e1565b61434b6148e1565b611cb38282614983565b61435d61305c565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361411e565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c40576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f805f8061449d86866149f5565b9250925092506116e78282614a3e565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100916144fe906162b7565b80601f016020809104026020016040519081016040528092919081815260200182805461452a906162b7565b80156145755780601f1061454c57610100808354040283529160200191614575565b820191905f5260205f20905b81548152906001019060200180831161455857829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100916144fe906162b7565b6001546003546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018590525f92919091169063095ea7b3906044016020604051808303815f875af1158015614640573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146649190616131565b5060035460408051610100810182526016546001600160a01b03808216835273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2602084019081527401000000000000000000000000000000000000000090920462ffffff9081168486019081523060608601908152426080870190815260a087018c81525f60c089019081528c871660e08a0190815299517f414bf3890000000000000000000000000000000000000000000000000000000081529851871660048a0152965186166024890152925190931660448701525183166064860152905160848501525160a4840152905160c48301529151821660e482015291169063414bf38990610104016020604051808303815f875af115801561477d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147a19190616237565b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b158015614807575f80fd5b505af1158015614819573d5f803e3d5ffd5b5050505092915050565b5f61482c614b41565b905090565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16611c40576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61489582614bb4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156148d9576143158282614c50565b611cb3614cc2565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611c40576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6149506148e1565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff19169055565b612e5e6148e1565b61498b6148e1565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026149d78482616346565b50600381016149e68382616346565b505f8082556001909101555050565b5f805f8351604103614a2c576020840151604085015160608601515f1a614a1e88828585614cfa565b955095509550505050614a37565b505081515f91506002905b9250925092565b5f826003811115614a5157614a51616402565b03614a5a575050565b6001826003811115614a6e57614a6e616402565b03614aa5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115614ab957614ab9616402565b03614af3576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610c22565b6003826003811115614b0757614b07616402565b03611cb3576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610c22565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614b6b614dc2565b614b73614e3d565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b806001600160a01b03163b5f03614c02576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610c22565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051614c6c91906160bd565b5f60405180830381855af49150503d805f8114614ca4576040519150601f19603f3d011682016040523d82523d5f602084013e614ca9565b606091505b5091509150614cb9858383614e92565b95945050505050565b3415611c40576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115614d3357505f91506003905082614db8565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614d84573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116614daf57505f925060019150829050614db8565b92505f91508190505b9450945094915050565b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081614ded6144ad565b805190915015614e0557805160209091012092915050565b81548015614e14579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081614e68614580565b805190915015614e8057805160209091012092915050565b60018201548015614e14579392505050565b606082614ea757614ea282614f07565b612452565b8151158015614ebe57506001600160a01b0384163b155b15614f00576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c22565b5080612452565b805115614f175780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8083601f840112614f59575f80fd5b50813567ffffffffffffffff811115614f70575f80fd5b602083019150836020828501011115614f87575f80fd5b9250929050565b5f6105608284031215614f9f575f80fd5b50919050565b5f805f60408486031215614fb7575f80fd5b833567ffffffffffffffff80821115614fce575f80fd5b614fda87838801614f49565b90955093506020860135915080821115614ff2575f80fd5b50614fff86828701614f8e565b9150509250925092565b5f60208284031215615019575f80fd5b5035919050565b5f60208284031215615030575f80fd5b813567ffffffffffffffff811115615046575f80fd5b61184a84828501614f8e565b5f8060408385031215615063575f80fd5b50508035926020909101359150565b5f815180845260208085019450602084015f5b838110156150a157815187529582019590820190600101615085565b509495945050505050565b602081525f6124526020830184615072565b5f80604083850312156150cf575f80fd5b823567ffffffffffffffff8111156150e5575f80fd5b6150f185828601614f8e565b95602094909401359450505050565b5f8083601f840112615110575f80fd5b50813567ffffffffffffffff811115615127575f80fd5b6020830191508360208260051b8501011115614f87575f80fd5b5f8060208385031215615152575f80fd5b823567ffffffffffffffff811115615168575f80fd5b61517485828601615100565b90969095509350505050565b5f6114e08284031215614f9f575f80fd5b5f602082840312156151a1575f80fd5b813567ffffffffffffffff8111156151b7575f80fd5b61184a84828501615180565b5f805f80606085870312156151d6575f80fd5b843567ffffffffffffffff808211156151ed575f80fd5b6151f988838901614f49565b90965094506020870135915080821115615211575f80fd5b5061521e87828801614f8e565b949793965093946040013593505050565b6001600160a01b0381168114612ea9575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561529357615293615243565b60405290565b6040516101e0810167ffffffffffffffff8111828210171561529357615293615243565b604051610120810167ffffffffffffffff8111828210171561529357615293615243565b604051610200810167ffffffffffffffff8111828210171561529357615293615243565b604051601f8201601f1916810167ffffffffffffffff8111828210171561532e5761532e615243565b604052919050565b5f82601f830112615345575f80fd5b813567ffffffffffffffff81111561535f5761535f615243565b6153726020601f19601f84011601615305565b818152846020838601011115615386575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156153b3575f80fd5b82356153be8161522f565b9150602083013567ffffffffffffffff8111156153d9575f80fd5b6153e585828601615336565b9150509250929050565b5f805f805f8060c08789031215615404575f80fd5b863561540f8161522f565b9550602087013561541f8161522f565b945060408701359350606087013592506080870135915060a08701356154448161522f565b809150509295509295509295565b5f8060408385031215615463575f80fd5b823567ffffffffffffffff811115615479575f80fd5b6150f185828601615180565b5f8060208385031215615496575f80fd5b823567ffffffffffffffff8111156154ac575f80fd5b61517485828601614f49565b5f805f604084860312156154ca575f80fd5b83359250602084013567ffffffffffffffff8111156154e7575f80fd5b6154f386828701614f49565b9497909650939450505050565b5f5b8381101561551a578181015183820152602001615502565b50505f910152565b5f8151808452615539816020860160208601615500565b601f01601f19169290920160200192915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e0602084015261558960e084018a615522565b838103604085015261559b818a615522565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b818110156155ee578351835292840192918401916001016155d2565b50909c9b505050505050505050505050565b5f60208284031215615610575f80fd5b813567ffffffffffffffff811115615626575f80fd5b820160408185031215612452575f80fd5b602081525f6124526020830184615522565b602080825282518282018190525f9190848201906040850190845b81811015615682578351151583529284019291840191600101615664565b50909695505050505050565b5f6020828403121561569e575f80fd5b81356124528161522f565b5f80604083850312156156ba575f80fd5b823567ffffffffffffffff8111156156d0575f80fd5b8301610be081860312156156e2575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b8085111561575757815f190482111561573d5761573d6156f0565b8085161561574a57918102915b93841c9390800290615722565b509250929050565b5f8261576d575060016116ed565b8161577957505f6116ed565b816001811461578f5760028114615799576157b5565b60019150506116ed565b60ff8411156157aa576157aa6156f0565b50506001821b6116ed565b5060208310610133831016604e8410600b84101617156157d8575081810a6116ed565b6157e2838361571d565b805f19048211156157f5576157f56156f0565b029392505050565b5f612452838361575f565b5f808335601e1984360301811261581d575f80fd5b83018035915067ffffffffffffffff821115615837575f80fd5b6020019150600581901b3603821315614f87575f80fd5b80820281158282048414176116ed576116ed6156f0565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb218336030181126158c4575f80fd5b9190910192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615909576159096158ce565b500690565b805f5b60108110156159445781358452602080830135908501526040808301359085015260609384019390910190600101615911565b50505050565b6102008183375050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112615986575f80fd5b90910192915050565b5f808335601e198436030181126159a4575f80fd5b830160208101925035905067ffffffffffffffff8111156159c3575f80fd5b803603821315614f87575f80fd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b5f615a05828361598f565b60408552615a176040860182846159d1565b915050602083013560208501528091505092915050565b5f6114e0823584526020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a0850152615a7860c0850160c0850161590e565b6106c0615a8981860182860161594a565b506108c0615a9b81860182860161594a565b50610ac0615aad81860182860161594a565b50610cc0615abf81860182860161594a565b50610ec0615ad181860182860161594a565b506110c0615ae381860182860161594a565b506112c0615af581860182860161594a565b506114c0615b0581850185615954565b8282870152611c26838701826159fa565b602081525f6124526020830184615a2e565b5f82601f830112615b37575f80fd5b60405161028080820182811067ffffffffffffffff82111715615b5c57615b5c615243565b60405283018185821115615b6e575f80fd5b845b82811015615b88578035825260209182019101615b70565b509195945050505050565b5f82601f830112615ba2575f80fd5b615baa6152e1565b80610200840185811115615bbc575f80fd5b845b81811015615bd6578035845260209384019301615bbe565b509095945050505050565b5f82601f830112615bf0575f80fd5b615bf86152e1565b80610600840185811115615c0a575f80fd5b845b81811015615bd65760608188031215615c23575f80fd5b615c2b615270565b8135815260208083013581830152604080840135908301529085529390930192606001615c0c565b5f60408284031215615c63575f80fd5b6040516040810167ffffffffffffffff8282108183111715615c8757615c87615243565b816040528293508435915080821115615c9e575f80fd5b50615cab85828601615336565b825250602083013560208201525092915050565b5f82601f830112615cce575f80fd5b8135602067ffffffffffffffff80831115615ceb57615ceb615243565b8260051b615cfa838201615305565b9384528581018301938381019088861115615d13575f80fd5b84880192505b85831015615e5f57823584811115615d2f575f80fd5b88016114e0818b03601f1901811315615d46575f80fd5b615d4e615299565b87830135815260408084013589830152606080850135828401526080915081850135818401525060a0808501358284015260c0915081850135818401525060e0615d9a8e828701615be1565b82840152615dac8e6106e08701615b93565b9083015250615dbf8c6108e08501615b93565b610100820152615dd38c610ae08501615b93565b610120820152615de78c610ce08501615b93565b610140820152615dfb8c610ee08501615b93565b610160820152615e0f8c6110e08501615b93565b610180820152615e238c6112e08501615b93565b6101a0820152908201359086821115615e3a575f80fd5b615e488c8984860101615c53565b6101c0820152845250509184019190840190615d19565b98975050505050505050565b5f6105608236031215615e7c575f80fd5b615e846152bd565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a0820152615ec73660c08501615b28565b60c0820152615eda366103408501615b93565b60e082015261054083013567ffffffffffffffff811115615ef9575f80fd5b615f0536828601615cbf565b6101008301525092915050565b8281526102a081016102808360208401379392505050565b5f808335601e19843603018112615f3f575f80fd5b830160208101925035905067ffffffffffffffff811115615f5e575f80fd5b8060051b3603821315614f87575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb21833603018112615986575f80fd5b5f838385526020808601955060208560051b830101845f5b87811015615fef57601f19858403018952615fdd83615fd8848a615f6f565b615a2e565b98840198925090830190600101615fb9565b5090979650505050505050565b604081526040808201525f7f30303030303030303030303030303030303030303030303030303030303030308060608401528060808401525060a06020830152823560a0830152602083013560c0830152604083013560e08301526060830135610100830152608083013561012083015260a083013561014083015261028060c084016101608401376160976103e08301610340850161594a565b6160a5610540840184615f2a565b6105606105e0850152614cb961060085018284615fa1565b5f82516158c4818460208701615500565b818103818111156116ed576116ed6156f0565b5f5f1982036160f2576160f26156f0565b5060010190565b808201808211156116ed576116ed6156f0565b604081525f61611f6040830185876159d1565b8281036020840152611c268185615072565b5f60208284031215616141575f80fd5b81518015158114612452575f80fd5b818382375f9101908152919050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126158c4575f80fd5b602081525f6161a08384615f6f565b610be08060208501526161b7610c00850183615a2e565b9150610ba06020860160408601376161d3610bc086018661598f565b601f1986850301838701526161e98482846159d1565b979650505050505050565b5f808335601e19843603018112616209575f80fd5b83018035915067ffffffffffffffff821115616223575f80fd5b602001915036819003821315614f87575f80fd5b5f60208284031215616247575f80fd5b5051919050565b813581526020808301359082015260408083013590820152606081016116ed565b5f8261627d5761627d6158ce565b500490565b81515f9082906020808601845b838110156162ab5781518552938201939082019060010161628f565b50929695505050505050565b600181811c908216806162cb57607f821691505b602082108103614f9f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561431557805f5260205f20601f840160051c810160208510156163275750805b601f840160051c820191505b818110156137b5575f8155600101616333565b815167ffffffffffffffff81111561636057616360615243565b6163748161636e84546162b7565b84616302565b602080601f8311600181146163a7575f84156163905750858301515b5f19600386901b1c1916600185901b17855561158b565b5f85815260208120601f198616915b828110156163d5578886015182559484019460019091019084016163b6565b50858210156163f257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220a64b7938a5c1e4af6e517810f07c91033292aec4d6520e2dece78171ee009aba64736f6c63430008180033";
type MomijiConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: MomijiConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class Momiji__factory extends ContractFactory {
constructor(...args: MomijiConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(overrides || {});
}
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
return super.deploy(overrides || {}) as Promise<
Momiji & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(runner: ContractRunner | null): Momiji__factory {
return super.connect(runner) as Momiji__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): MomijiInterface {
return new Interface(_abi) as MomijiInterface;
}
static connect(address: string, runner?: ContractRunner | null): Momiji {
return new Contract(address, _abi, runner) as unknown as Momiji;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../common";
import type {
TechnicalPreviewTest,
TechnicalPreviewTestInterface,
} from "../../../contracts/TechnicalPreview.sol/TechnicalPreviewTest";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "",
type: "address",
},
],
name: "log_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "log_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "log_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256",
name: "",
type: "int256",
},
],
name: "log_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address",
name: "val",
type: "address",
},
],
name: "log_named_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes",
name: "val",
type: "bytes",
},
],
name: "log_named_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes32",
name: "val",
type: "bytes32",
},
],
name: "log_named_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
],
name: "log_named_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "string",
name: "val",
type: "string",
},
],
name: "log_named_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
],
name: "log_named_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "log_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "logs",
type: "event",
},
{
inputs: [],
name: "IS_TEST",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_address",
type: "address",
},
{
internalType: "bytes",
name: "_proof",
type: "bytes",
},
{
components: [
{
internalType: "bytes32",
name: "tx_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "recursive_key_hash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "old_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "new_hist_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "oracle",
type: "bytes32",
},
{
internalType: "bytes32[20]",
name: "historic_path",
type: "bytes32[20]",
},
{
internalType: "bytes32[16]",
name: "aggregation_object",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes32",
name: "current_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "utxo_root",
type: "bytes32",
},
{
internalType: "bytes32",
name: "price_limit",
type: "bytes32",
},
{
internalType: "bytes32",
name: "timestamp",
type: "bytes32",
},
{
internalType: "bytes32",
name: "deadline",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
components: [
{
internalType: "bytes32",
name: "secret",
type: "bytes32",
},
{
internalType: "bytes32",
name: "amount",
type: "bytes32",
},
{
internalType: "bytes32",
name: "data",
type: "bytes32",
},
],
internalType: "struct EncryptedUTXO[16]",
name: "encrypted_utxo",
type: "tuple[16]",
},
{
internalType: "bytes32[16]",
name: "withdrawals",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments_in",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "commitments",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "recipients",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "nullifier_hashes",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "uids",
type: "bytes32[16]",
},
{
internalType: "bytes32[16]",
name: "swap_amounts",
type: "bytes32[16]",
},
{
components: [
{
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
internalType: "bytes32",
name: "pi_hash",
type: "bytes32",
},
],
internalType: "struct Deposit",
name: "deposit",
type: "tuple",
},
],
internalType: "struct Transaction[]",
name: "transactions",
type: "tuple[]",
},
],
internalType: "struct Batch",
name: "_batch",
type: "tuple",
},
],
name: "coinbaseTest",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "contractInstance",
outputs: [
{
internalType: "contract TechnicalPreview",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeArtifacts",
outputs: [
{
internalType: "string[]",
name: "excludedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeContracts",
outputs: [
{
internalType: "address[]",
name: "excludedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeSenders",
outputs: [
{
internalType: "address[]",
name: "excludedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "failed",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract IVerifier",
name: "_outerVerifier",
type: "address",
},
{
internalType: "address",
name: "_token",
type: "address",
},
{
internalType: "bytes32",
name: "_txKeyHash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "_txWrapperKeyHash",
type: "bytes32",
},
{
internalType: "bytes32",
name: "_recursiveKeyHash",
type: "bytes32",
},
{
internalType: "address",
name: "_xftPool",
type: "address",
},
],
name: "setUp",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "targetArtifactSelectors",
outputs: [
{
components: [
{
internalType: "string",
name: "artifact",
type: "string",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzArtifactSelector[]",
name: "targetedArtifactSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetArtifacts",
outputs: [
{
internalType: "string[]",
name: "targetedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetContracts",
outputs: [
{
internalType: "address[]",
name: "targetedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetInterfaces",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "string[]",
name: "artifacts",
type: "string[]",
},
],
internalType: "struct StdInvariant.FuzzInterface[]",
name: "targetedInterfaces_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSelectors",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzSelector[]",
name: "targetedSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSenders",
outputs: [
{
internalType: "address[]",
name: "targetedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
] as const;
const _bytecode =
"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002c575f80fd5b5061649b8061003a5f395ff3fe608060405234801562000010575f80fd5b5060043610620000f8575f3560e01c80637c6b2fc41162000093578063b5508aa9116200006b578063b5508aa91462000212578063ba414fa6146200021c578063e20c9f711462000237578063fa7626d41462000241575f80fd5b80637c6b2fc414620001c957806385226c8114620001e0578063916a17c614620001f9575f80fd5b80633e5e3c2311620000d35780633e5e3c2314620001835780633f7286f4146200018d5780636577d07a146200019757806366d9a9a014620001b0575f80fd5b80631ed7831c14620000fc57806329fa6a6f146200011e5780632ade3880146200016a575b5f80fd5b620001066200024f565b60405162000115919062000d03565b60405180910390f35b601e546200014490610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200162000115565b62000174620002be565b60405162000115919062000da3565b6200010662000413565b6200010662000480565b620001ae620001a836600462000eb3565b620004ed565b005b620001ba6200061d565b60405162000115919062000fc1565b620001ae620001da3660046200104c565b620007a2565b620001ea6200085b565b604051620001159190620010b6565b6200020362000930565b6040516200011591906200111c565b620001ea62000a37565b6200022662000b0c565b604051901515815260200162000115565b6200010662000be0565b601e54620002269060ff1681565b60606016805480602002602001604051908101604052809291908181526020018280548015620002b457602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000288575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156200040a575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620003f2578382905f5260205f2001805462000360906200119c565b80601f01602080910402602001604051908101604052809291908181526020018280546200038e906200119c565b8015620003dd5780601f10620003b357610100808354040283529160200191620003dd565b820191905f5260205f20905b815481529060010190602001808311620003bf57829003601f168201915b50505050508152602001906001019062000340565b505050508152505081526020019060010190620002e1565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015620002b457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000288575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015620002b457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000288575050505050905090565b6040517fff483c5400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ff483c54906024015f604051808303815f87803b15801562000566575f80fd5b505af115801562000579573d5f803e3d5ffd5b50505050620005884162000c4d565b601e546040517f161a054b00000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063161a054b90620005e8908690869086906004016200150f565b5f604051808303815f87803b15801562000600575f80fd5b505af115801562000613573d5f803e3d5ffd5b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156200040a578382905f5260205f2090600202016040518060400160405290815f8201805462000673906200119c565b80601f0160208091040260200160405190810160405280929190818152602001828054620006a1906200119c565b8015620006f05780601f10620006c657610100808354040283529160200191620006f0565b820191905f5260205f20905b815481529060010190602001808311620006d257829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200078957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620007355790505b5050505050815250508152602001906001019062000640565b858585858585604051620007b69062000cf5565b73ffffffffffffffffffffffffffffffffffffffff9687168152948616602086015260408501939093526060840191909152608083015290911660a082015260c001604051809103905ff08015801562000812573d5f803e3d5ffd5b50601e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156200040a578382905f5260205f200180546200089e906200119c565b80601f0160208091040260200160405190810160405280929190818152602001828054620008cc906200119c565b80156200091b5780601f10620008f1576101008083540402835291602001916200091b565b820191905f5260205f20905b815481529060010190602001808311620008fd57829003601f168201915b5050505050815260200190600101906200087e565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156200040a575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801562000a1e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620009ca5790505b5050505050815250508152602001906001019062000953565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156200040a578382905f5260205f2001805462000a7a906200119c565b80601f016020809104026020016040519081016040528092919081815260200182805462000aa8906200119c565b801562000af75780601f1062000acd5761010080835404028352916020019162000af7565b820191905f5260205f20905b81548152906001019060200180831162000ad957829003601f168201915b50505050508152602001906001019062000a5a565b6008545f9060ff161562000b24575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562000bb3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000bd99190620015b8565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015620002b457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000288575050505050905090565b60405173ffffffffffffffffffffffffffffffffffffffff8216602482015262000cd29060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc20000000000000000000000000000000000000000000000000000000017905262000cd5565b50565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b614e9580620015d183390190565b602080825282518282018190525f9190848201906040850190845b8181101562000d5257835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162000d1e565b50909695505050505050565b5f81518084525f5b8181101562000d845760208185018101518683018201520162000d66565b505f602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562000e8257603f198a84030186528151805173ffffffffffffffffffffffffffffffffffffffff168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562000e6b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088850301835262000e5884865162000d5e565b948d01949350918c019160010162000e1b565b505050968901969350509087019060010162000dc8565b50909998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811462000cd2575f80fd5b5f805f806060858703121562000ec7575f80fd5b843562000ed48162000e91565b9350602085013567ffffffffffffffff8082111562000ef1575f80fd5b818701915087601f83011262000f05575f80fd5b81358181111562000f14575f80fd5b88602082850101111562000f26575f80fd5b60208301955080945050604087013591508082111562000f44575f80fd5b508501610560818803121562000f58575f80fd5b939692955090935050565b5f815180845260208085019450602084015f5b8381101562000fb65781517fffffffff00000000000000000000000000000000000000000000000000000000168752958201959082019060010162000f76565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200103e57603f19898403018552815180518785526200100f8886018262000d5e565b91890151858303868b015291905062001029818362000f63565b96890196945050509086019060010162000fe8565b509098975050505050505050565b5f805f805f8060c0878903121562001062575f80fd5b86356200106f8162000e91565b95506020870135620010818162000e91565b945060408701359350606087013592506080870135915060a0870135620010a88162000e91565b809150509295509295509295565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200110f57603f19888603018452620010fc85835162000d5e565b94509285019290850190600101620010dd565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200103e57888303603f190185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052620011888785018262000f63565b958801959350509086019060010162001143565b600181811c90821680620011b157607f821691505b602082108103620011e9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b6102008183375050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811262001256575f80fd5b830160208101925035905067ffffffffffffffff81111562001276575f80fd5b8060051b360382131562001288575f80fd5b9250929050565b805f5b6010811015620012c7578135845260208083013590850152604080830135908501526060938401939091019060010162001292565b50505050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811262001300575f80fd5b90910192915050565b5f81357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18336030181126200133c575f80fd5b820160208101903567ffffffffffffffff81111562001359575f80fd5b80360382131562001368575f80fd5b604085526200137c604086018284620011ef565b915050602083013560208501528091505092915050565b5f8383855260208086019550808560051b830101845f5b878110156200150257601f1985840301895281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb21883603018112620013ee575f80fd5b870180358452848101358585015260408082013590850152606080820135908501526080808201359085015260a080820135908501526114e060c0620014398187018285016200128f565b506106c06200144d81870182850162001218565b506108c06200146181870182850162001218565b50610ac06200147581870182850162001218565b50610cc06200148981870182850162001218565b50610ec06200149d81870182850162001218565b506110c0620014b181870182850162001218565b506112c0620014c581870182850162001218565b506114c0620014d781840184620012cd565b9250818187015250620014ed8186018362001309565b9a86019a9450505090830190600101620013aa565b5090979650505050505050565b604081525f62001524604083018587620011ef565b8281036020840152610560843582526020850135602083015260408501356040830152606085013560608301526080850135608083015260a085013560a083015261028060c0860160c08401376103406200158481840182880162001218565b50610540620015968187018762001222565b8383860152620015aa848601828462001393565b9a9950505050505050505050565b5f60208284031215620015c9575f80fd5b505191905056fe610160604052600580546001600160a01b03191673e592427a0aece92de3edee1f18e0157c058615641781556014600a556010600b819055600c8190557f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720600d557f06f93f503e77fcdcacfe622e66adc639b63e8c0083f5cab5d71d461aa4562c92600e556003600f5560029055600160118190555f601281905560168190556018556019805461017760a31b62ffffff60a01b19909116179055601a55601b55348015620000cc575f80fd5b5060405162004e9538038062004e95833981016040819052620000ef916200030d565b604080518082018252601081526f546563686e6963616c5072657669657760801b602080830191909152825180840190935260018352603160f81b90830152906200013b825f62000272565b610120526200014c81600162000272565b61014052815160208084019190912060e052815190820120610100524660a052620001d960e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c052600280546001600160a01b039788166001600160a01b0319918216179091556003805496881696821687179055601980548216909617909555600d54600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01556007939093556008919091556009556017805491909316911617905562000556565b5f60208351101562000291576200028983620002aa565b9050620002a4565b816200029e848262000418565b5060ff90505b92915050565b5f80829050601f81511115620002e0578260405163305a27a960e01b8152600401620002d79190620004e4565b60405180910390fd5b8051620002ed8262000532565b179392505050565b6001600160a01b03811681146200030a575f80fd5b50565b5f805f805f8060c0878903121562000323575f80fd5b86516200033081620002f5565b60208801519096506200034381620002f5565b8095505060408701519350606087015192506080870151915060a08701516200036c81620002f5565b809150509295509295509295565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620003a357607f821691505b602082108103620003c257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200041357805f5260205f20601f840160051c81016020851015620003ef5750805b601f840160051c820191505b8181101562000410575f8155600101620003fb565b50505b505050565b81516001600160401b038111156200043457620004346200037a565b6200044c816200044584546200038e565b84620003c8565b602080601f83116001811462000482575f84156200046a5750858301515b5f19600386901b1c1916600185901b178555620004dc565b5f85815260208120601f198616915b82811015620004b25788860151825594840194600190910190840162000491565b5085821015620004d057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602080835283518060208501525f5b818110156200051257858101830151858201604001528201620004f4565b505f604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620003c2575f1960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516148ed620005a85f395f611b9601525f611b6c01525f61359a01525f61357201525f6134cd01525f6134f701525f61352101526148ed5ff3fe6080604052600436106102f5575f3560e01c806384b0196e1161018e578063ba873065116100e0578063ddca3f4311610089578063ed6839f011610063578063ed6839f0146108d1578063f01f20df146108e6578063fc0c546a146108fb57610369565b8063ddca3f4314610831578063e39c9eb214610878578063e5285dcc146108a357610369565b8063c7c28b0b116100ba578063c7c28b0b146107e8578063d0507865146107fd578063d419f5841461081c57610369565b8063ba87306514610795578063c31c9c07146107aa578063c50a53eb146107c957610369565b8063993544bb11610142578063af95daca1161011c578063af95daca14610735578063afbd8bd314610754578063b42274bc1461078057610369565b8063993544bb146106d8578063aa2d61db146106f7578063ab67560e1461071657610369565b806389aa6e081161017357806389aa6e081461068f5780638c17d367146106ae57806395a4f7c2146106c357610369565b806384b0196e1461064957806384e2ad141461067057610369565b80634a0415f7116102475780635ab573d5116101fb5780637dc0d1d0116101d55780637dc0d1d014610600578063848090e81461061f57806384af63c51461063457610369565b80635ab573d51461059757806363f132ff146105c257806371919408146105e157610369565b80634ef548f11161022c5780634ef548f11461054f57806355330a9a1461056357806357d4c4ee1461058257610369565b80634a0415f7146105255780634cfb149e1461053a57610369565b80632b7ac3f3116102a95780633ddfbceb116102835780633ddfbceb146104c85780634382e92a146104e757806345e833e81461050657610369565b80632b7ac3f31461045d5780632c58f4ed146104945780632eb4a7ab146104b357610369565b8063161a054b116102da578063161a054b146103d457806317cc915c146103f35780631fbcb0d51461043157610369565b80630c20f5a1146103975780631103d1f6146103bf57610369565b36610369573373c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21461036757336001600160a01b0316346040515b5f6040518083038185875af1925050503d805f811461035e576040519150601f19603f3d011682016040523d82523d5f602084013e610363565b606091505b5050505b005b3373c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21461036757336001600160a01b031634604051610324565b3480156103a2575f80fd5b506103ac60125481565b6040519081526020015b60405180910390f35b3480156103ca575f80fd5b506103ac600c5481565b3480156103df575f80fd5b506103676103ee366004613927565b61091a565b3480156103fe575f80fd5b5061042161040d36600461398b565b60136020525f908152604090205460ff1681565b60405190151581526020016103b6565b34801561043c575f80fd5b5061045061044b3660046139a2565b611244565b6040516103b691906139fc565b348015610468575f80fd5b5060025461047c906001600160a01b031681565b6040516001600160a01b0390911681526020016103b6565b34801561049f575f80fd5b506103ac6104ae366004613a0e565b61139a565b3480156104be575f80fd5b506103ac600d5481565b3480156104d3575f80fd5b506103ac6104e236600461398b565b6114f9565b3480156104f2575f80fd5b506103ac610501366004613a61565b61151d565b348015610511575f80fd5b50610421610520366004613a93565b61158a565b348015610530575f80fd5b506103ac60085481565b348015610545575f80fd5b506103ac600e5481565b34801561055a575f80fd5b506104506116c5565b34801561056e575f80fd5b506103ac61057d366004613aff565b61171b565b34801561058d575f80fd5b506103ac600b5481565b3480156105a2575f80fd5b506103ac6105b136600461398b565b60156020525f908152604090205481565b3480156105cd575f80fd5b506103ac6105dc366004613a61565b611915565b3480156105ec575f80fd5b5061047c6105fb366004613b32565b611b1f565b34801561060b575f80fd5b5060045461047c906001600160a01b031681565b34801561062a575f80fd5b506103ac601b5481565b34801561063f575f80fd5b506103ac600f5481565b348015610654575f80fd5b5061065d611b5f565b6040516103b69796959493929190613bbd565b34801561067b575f80fd5b506103ac61068a366004613c70565b611c01565b34801561069a575f80fd5b5060195461047c906001600160a01b031681565b3480156106b9575f80fd5b506103ac60095481565b3480156106ce575f80fd5b506103ac600a5481565b3480156106e3575f80fd5b506103ac6106f2366004613a61565b611c45565b348015610702575f80fd5b506103ac61071136600461398b565b611ea3565b348015610721575f80fd5b50610367610730366004613aff565b611ec2565b348015610740575f80fd5b506103ac61074f366004613aff565b612051565b34801561075f575f80fd5b5061077361076e366004613ca7565b612304565b6040516103b69190613d16565b34801561078b575f80fd5b506103ac60185481565b3480156107a0575f80fd5b506103ac60165481565b3480156107b5575f80fd5b5060055461047c906001600160a01b031681565b3480156107d4575f80fd5b506103ac6107e33660046139a2565b6123c0565b3480156107f3575f80fd5b506103ac60105481565b348015610808575f80fd5b5060175461047c906001600160a01b031681565b348015610827575f80fd5b506103ac60075481565b34801561083c575f80fd5b506019546108649074010000000000000000000000000000000000000000900462ffffff1681565b60405162ffffff90911681526020016103b6565b348015610883575f80fd5b506103ac61089236600461398b565b60146020525f908152604090205481565b3480156108ae575f80fd5b506104216108bd36600461398b565b5f9081526013602052604090205460ff1690565b3480156108dc575f80fd5b506103ac60115481565b3480156108f1575f80fd5b506103ac601a5481565b348015610906575f80fd5b5060035461047c906001600160a01b031681565b5f5c15610925575f80fd5b60015f5d600a54610937906002613e68565b601654106109b25760405162461bcd60e51b815260206004820152602360248201527f6d6f6d696a692e7075626c6973683a207374617465206465707468207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600754813514610a2a5760405162461bcd60e51b815260206004820152602260248201527f6d6f6d696a692e7075626c6973683a20696e76616c6964207478206b6579486160448201527f736800000000000000000000000000000000000000000000000000000000000060648201526084016109a9565b600954816020013514610aa55760405162461bcd60e51b815260206004820152602960248201527f6d6f6d696a692e7075626c6973683a20696e76616c696420726563757273697660448201527f65206b657948617368000000000000000000000000000000000000000000000060648201526084016109a9565b600e54816060013514610b205760405162461bcd60e51b815260206004820152602560248201527f6d6f6d696a692e7075626c6973683a20696e76616c696420686973746f72696360448201527f20726f6f7400000000000000000000000000000000000000000000000000000060648201526084016109a9565b5f610b2f610540830183613e73565b600c54600b549193507f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72092505f91610b679190613eb9565b67ffffffffffffffff811115610b7f57610b7f613ed0565b604051908082528060200260200182016040528015610bcf57816020015b604080516080810182525f8082526020808301829052928201819052606082015282525f19909201910181610b9d5790505b5090505f5b8381101561117a577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610c0b610540870187613e73565b83818110610c1b57610c1b613efd565b9050602002810190610c2d9190613f2a565b6020013503610ca35760405162461bcd60e51b8152602060048201526024808201527f6d6f6d696a692e7075626c6973683a207478206d757374206e6f74206265206560448201527f6d7074790000000000000000000000000000000000000000000000000000000060648201526084016109a9565b7f11d25ff6aa8a431fbce8e8d9a87a2d7986adf38e724fbe47f15752d0931f14d8610cd2610540870187613e73565b83818110610ce257610ce2613efd565b9050602002810190610cf49190613f2a565b6020013503610d6b5760405162461bcd60e51b815260206004820152602a60248201527f6d6f6d696a692e7075626c6973683a207478207574786f73206d757374206e6f60448201527f7420626520656d7074790000000000000000000000000000000000000000000060648201526084016109a9565b603c610d7b610540870187613e73565b83818110610d8b57610d8b613efd565b9050602002810190610d9d9190613f2a565b610dab919060600135613f93565b15610e1e5760405162461bcd60e51b815260206004820152603160248201527f6d6f6d696a692e7075626c6973683a2074696d657374616d70206d757374206260448201527f6520646976697369626c6520627920363000000000000000000000000000000060648201526084016109a9565b42610e2d610540870187613e73565b83818110610e3d57610e3d613efd565b9050602002810190610e4f9190613f2a565b6060013510610ea05760405162461bcd60e51b815260206004820181905260248201527f6d6f6d696a692e7075626c6973683a207478206e6f74207965742076616c696460448201526064016109a9565b603c610eb0610540870187613e73565b83818110610ec057610ec0613efd565b9050602002810190610ed29190613f2a565b610ee0919060800135613f93565b15610f535760405162461bcd60e51b815260206004820152603060248201527f6d6f6d696a692e7075626c6973683a20646561646c696e65206d75737420626560448201527f20646976697369626c652062792036300000000000000000000000000000000060648201526084016109a9565b42610f62610540870187613e73565b83818110610f7257610f72613efd565b9050602002810190610f849190613f2a565b6080013511610fd55760405162461bcd60e51b815260206004820152601e60248201527f6d6f6d696a692e7075626c6973683a207478206861732065787069726564000060448201526064016109a9565b5f611009610fe7610540880188613e73565b84818110610ff757610ff7613efd565b90506020028101906105019190613f2a565b90505f61104561101d610540890189613e73565b8581811061102d5761102d613efd565b905060200281019061103f9190613f2a565b8361171b565b905061105185826123c0565b945081156110925761109261106a610540890189613e73565b8581811061107a5761107a613efd565b905060200281019061108c9190613f2a565b836124a0565b6110ca6110a3610540890189613e73565b858181106110b3576110b3613efd565b90506020028101906110c59190613f2a565b612641565b6111056110db610540890189613e73565b858181106110eb576110eb613efd565b90506020028101906110fd9190613f2a565b8583866129e9565b600d5481907f48aca1b0c57ac5ec7c6882f807fc4b69f9dbe52279cf980f541149e13cebdf476111396105408b018b613e73565b8781811061114957611149613efd565b905060200281019061115b9190613f2a565b60405161116891906140b7565b60405180910390a35050600101610bd4565b506111858184612ba9565b8360a0013584604001356016547fad6428c585490bbbc6ea9b4a1d150f301530bd4f6374ce30d6a4c44f547d9458600d548860c0016040516111c89291906141a6565b60405180910390a46111dc8686868561158a565b6112285760405162461bcd60e51b815260206004820152601d60248201527f6d6f6d696a692e7075626c6973683a20696e76616c69642070726f6f6600000060448201526064016109a9565b61123961123485614621565b61309e565b5050505f805d505050565b60608183106112955760405162461bcd60e51b815260206004820152600d60248201527f496e76616c69642072616e67650000000000000000000000000000000000000060448201526064016109a9565b60065482106112e65760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420656e6420696e64657800000000000000000000000000000060448201526064016109a9565b5f6112f184846146c8565b67ffffffffffffffff81111561130957611309613ed0565b604051908082528060200260200182016040528015611332578160200160208202803683370190505b5090505f845b8481101561138e576006818154811061135357611353613efd565b905f5260205f20015483838151811061136e5761136e613efd565b602090810291909101015281611383816146db565b925050600101611338565b50909150505b92915050565b60408051601a80825261036082019092525f9182919060208201610340803683370190505090508360400135815f815181106113d8576113d8613efd565b6020026020010181815250508360600135816001815181106113fc576113fc613efd565b60200260200101818152505083608001358160028151811061142057611420613efd565b602002602001018181525050828160038151811061144057611440613efd565b602002602001018181525050835f01358160048151811061146357611463613efd565b60200260200101818152505083602001358160058151811061148757611487613efd565b6020026020010181815250505f5b60148110156114e7578460c00181601481106114b3576114b3613efd565b6020020135826114c48360066146f3565b815181106114d4576114d4613efd565b6020908102919091010152600101611495565b506114f1816130fb565b949350505050565b5f6006828154811061150d5761150d613efd565b905f5260205f2001549050919050565b5f60a082013515611583576113947fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae5544543561155584611915565b6040805160208101939093528201526060015b6040516020818303038152906040528051906020012061315d565b505f919050565b60408051601180825261024082019092525f9182919060208201610220803683370190505090506115bb848461139a565b815f815181106115cd576115cd613efd565b6020026020010181815250505f5b601081101561162e57846103400181601081106115fa576115fa613efd565b60200201358261160b8360016146f3565b8151811061161b5761161b613efd565b60209081029190910101526001016115db565b506002546040517fea50d0e40000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ea50d0e49061167c90899089908690600401614706565b602060405180830381865afa158015611697573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116bb919061472b565b9695505050505050565b6060600680548060200260200160405190810160405280929190818152602001828054801561171157602002820191905f5260205f20905b8154815260200190600101908083116116fd575b5050505050905090565b6040805160358082526106c082019092525f91829190602082016106a080368337019050509050835f0135815f8151811061175857611758613efd565b60200260200101818152505083602001358160018151811061177c5761177c613efd565b6020026020010181815250508360a00135816002815181106117a0576117a0613efd565b6020026020010181815250506117b68484612051565b816003815181106117c9576117c9613efd565b6020026020010181815250505f5b60108110156114e757846106c00181601081106117f6576117f6613efd565b60200201355f1c8260048151811061181057611810613efd565b60200260200101515f1c61182491906146f3565b5f1b8260048151811061183957611839613efd565b602002602001018181525050846108c001816010811061185b5761185b613efd565b60200201358261186c8360056146f3565b8151811061187c5761187c613efd565b60200260200101818152505084610ac001816010811061189e5761189e613efd565b6020020135826118af8360156146f3565b815181106118bf576118bf613efd565b60200260200101818152505084610ec00181601081106118e1576118e1613efd565b6020020135826118f28360256146f3565b8151811061190257611902613efd565b60209081029190910101526001016117d7565b6040805160358082526106c082019092525f91829190602082016106a080368337019050509050825f0135815f8151811061195257611952613efd565b60200260200101818152505082602001358160018151811061197657611976613efd565b6020026020010181815250508260a001358160028151811061199a5761199a613efd565b6020026020010181815250506119af83611c45565b816003815181106119c2576119c2613efd565b6020026020010181815250505f5b6010811015611b0e57836106c00181601081106119ef576119ef613efd565b60200201355f1c82600481518110611a0957611a09613efd565b60200260200101515f1c611a1d91906146f3565b5f1b82600481518110611a3257611a32613efd565b602002602001018181525050836108c0018160108110611a5457611a54613efd565b602002013582611a658360056146f3565b81518110611a7557611a75613efd565b60200260200101818152505083610ac0018160108110611a9757611a97613efd565b602002013582611aa88360156146f3565b81518110611ab857611ab8613efd565b60200260200101818152505083610ec0018160108110611ada57611ada613efd565b602002013582611aeb8360256146f3565b81518110611afb57611afb613efd565b60209081029190910101526001016119d0565b50611b18816130fb565b9392505050565b5f6114f18484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506131a492505050565b5f60608082808083611b917f0000000000000000000000000000000000000000000000000000000000000000836131c6565b611bbc7f000000000000000000000000000000000000000000000000000000000000000060016131c6565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f6113947fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae554454358360200135604051602001611568929190918252602082015260400190565b604080516063808252610c8082019092525f9182919060208201610c60803683370190505090508260600135815f81518110611c8357611c83613efd565b602002602001018181525050826080013581600181518110611ca757611ca7613efd565b602002602001018181525050826040013581600281518110611ccb57611ccb613efd565b6020026020010181815250505f5b6010811015611b0e5783610cc0018160108110611cf857611cf8613efd565b602002013582611d098360036146f3565b81518110611d1957611d19613efd565b602002602001018181525050836112c0018160108110611d3b57611d3b613efd565b602002013582611d4c8360136146f3565b81518110611d5c57611d5c613efd565b602002602001018181525050836110c0018160108110611d7e57611d7e613efd565b602002013582611d8f8360236146f3565b81518110611d9f57611d9f613efd565b6020026020010181815250508360c0018160108110611dc057611dc0613efd565b606002013582611dd1836003613eb9565b611ddc9060336146f3565b81518110611dec57611dec613efd565b6020026020010181815250508360c0018160108110611e0d57611e0d613efd565b606002016020013582826003611e239190613eb9565b611e2e9060346146f3565b81518110611e3e57611e3e613efd565b6020026020010181815250508360c0018160108110611e5f57611e5f613efd565b606002016040013582826003611e759190613eb9565b611e809060356146f3565b81518110611e9057611e90613efd565b6020908102919091010152600101611cd9565b60068181548110611eb2575f80fd5b5f91825260209091200154905081565b5f5c15611ecd575f80fd5b60015f5d5f60a083013515611f3357611f2c7fc4dd6012c4600edff964806e010811c5cddd87247d2494b9719d8bae55445435611f0e6114c086018661474a565b60200135604051602001611568929190918252602082015260400190565b9050611f36565b505f5b5f611f41848361171b565b5f8181526015602052604090205490915015611fc55760405162461bcd60e51b815260206004820152602560248201527f6d6f6d696a692e62726f6164636173743a20616c72656164792062726f61646360448201527f617374656400000000000000000000000000000000000000000000000000000060648201526084016109a9565b5f5b601081101561200c5760105485610cc0018260108110611fe957611fe9613efd565b602002013503612004575f8281526015602052604090208490555b600101611fc7565b5080600d547f4272ab98363027330bc7eaf7c24d25a397f0c903a7fda26bd253e54f6498fd898660405161204091906140b7565b60405180910390a350505f805d5050565b604080516064808252610ca082019092525f9182919060208201610c80803683370190505090508360600135815f8151811061208f5761208f613efd565b6020026020010181815250508360800135816001815181106120b3576120b3613efd565b60209081029190910101526120e97f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060016146f3565b6120f39084613f93565b5f1b8160028151811061210857612108613efd565b60200260200101818152505083604001358160038151811061212c5761212c613efd565b6020026020010181815250505f5b60108110156114e75784610cc001816010811061215957612159613efd565b60200201358261216a8360046146f3565b8151811061217a5761217a613efd565b602002602001018181525050846112c001816010811061219c5761219c613efd565b6020020135826121ad8360146146f3565b815181106121bd576121bd613efd565b602002602001018181525050846110c00181601081106121df576121df613efd565b6020020135826121f08360246146f3565b8151811061220057612200613efd565b6020026020010181815250508460c001816010811061222157612221613efd565b606002013582612232836003613eb9565b61223d9060346146f3565b8151811061224d5761224d613efd565b6020026020010181815250508460c001816010811061226e5761226e613efd565b6060020160200135828260036122849190613eb9565b61228f9060356146f3565b8151811061229f5761229f613efd565b6020026020010181815250508460c00181601081106122c0576122c0613efd565b6060020160400135828260036122d69190613eb9565b6122e19060366146f3565b815181106122f1576122f1613efd565b602090810291909101015260010161213a565b6060818067ffffffffffffffff81111561232057612320613ed0565b604051908082528060200260200182016040528015612349578160200160208202803683370190505b5091505f5b818110156123b85761238685858381811061236b5761236b613efd565b905060200201355f9081526013602052604090205460ff1690565b156123b057600183828151811061239f5761239f613efd565b911515602092830291909101909101525b60010161234e565b505092915050565b60408051600480825260a082019092525f918291906020820160808036833701905050905083815f815181106123f8576123f8613efd565b602002602001018181525050828160018151811061241857612418613efd565b6020026020010181815250506007548160028151811061243a5761243a613efd565b60209081029190910101527f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720841461247457600954612478565b6008545b8160038151811061248b5761248b613efd565b6020026020010181815250506114f1816130fb565b5f6124bd826124b36114c086018661474a565b6105fb908061477c565b6003546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935060a086013592909116906370a0823190602401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b91906147bf565b10156125bf5760405162461bcd60e51b815260206004820152602c60248201527f6d6f6d696a692e5f7075626c6973684465706f7369743a20696e73756666696360448201527f69656e742062616c616e6365000000000000000000000000000000000000000060648201526084016109a9565b6003546040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260a0860135602483015290911690639dc29fac906044015f604051808303815f87803b158015612626575f80fd5b505af1158015612638573d5f803e3d5ffd5b50505050505050565b5f5b60108110156129e5577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610ec08301826010811061268357612683613efd565b6020020135146127785760135f83610ec00183601081106126a6576126a6613efd565b6020908102919091013582528101919091526040015f205460ff16156127345760405162461bcd60e51b815260206004820152602860248201527f6d6f6d696a692e5f7075626c69736857697468647261773a206e756c6c69666960448201527f6572207370656e7400000000000000000000000000000000000000000000000060648201526084016109a9565b600160135f84610ec001846010811061274f5761274f613efd565b602002013581526020019081526020015f205f6101000a81548160ff0219169083151502179055505b7f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f720610ac0830182601081106127af576127af613efd565b6020020135146128fa5760145f83610ac00183601081106127d2576127d2613efd565b602002013581526020019081526020015f20545f801b1461285a5760405162461bcd60e51b8152602060048201526024808201527f6d6f6d696a692e5f7075626c69736857697468647261773a207574786f20657860448201527f697374730000000000000000000000000000000000000000000000000000000060648201526084016109a9565b600d5460145f84610ac001846010811061287657612876613efd565b602002013581526020019081526020015f2081905550816110c00181601081106128a2576128a2613efd565b6020020135600d547fec4ce5084cd118adcfcc534001c121cc3f04525ef85b0c342ed2fe88e629286b8460c00184601081106128e0576128e0613efd565b606002016040516128f191906147d6565b60405180910390a35b7f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f7206108c08301826010811061293157612931613efd565b6020020135146129dd5760145f836108c001836010811061295457612954613efd565b602002013581526020019081526020015f20545f801b036129dd5760405162461bcd60e51b815260206004820152602860248201527f6d6f6d696a692e7075626c6973683a20636f6d6d69746d656e7420646f65736e60448201527f277420657869737400000000000000000000000000000000000000000000000060648201526084016109a9565b600101612643565b5050565b5f5b600c54811015612ba2577f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72080610cc087018360108110612a2d57612a2d613efd565b602002013514612b995760105486610cc0018360108110612a5057612a50613efd565b602002013503612a6e57505f83815260156020526040902054612a8c565b85610cc0018260108110612a8457612a84613efd565b602002013590505b5f866112c0018360108110612aa357612aa3613efd565b602002013590505f816106c089018560108110612ac257612ac2613efd565b60200201355f1c612ad391906146c8565b90506064601b546064612ae691906146c8565b612af09084613eb9565b612afa91906147f7565b91505f60408901357f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72014612b32576040890135612b34565b5f5b90506040518060800160405280858152602001838152602001848152602001826001600160a01b03168152508886600c5489612b709190613eb9565b612b7a91906146f3565b81518110612b8a57612b8a613efd565b60200260200101819052505050505b506001016129eb565b5050505050565b5f600190505f805f600c5485612bbf9190613eb9565b612bca9060016146f3565b67ffffffffffffffff811115612be257612be2613ed0565b604051908082528060200260200182016040528015612c0b578160200160208202803683370190505b50604080516080810182525f80825260208201819052918101829052606081018290529192505b86811015612e61575f5b600c54811015612e58578881600c5484612c569190613eb9565b612c6091906146f3565b81518110612c7057612c70613efd565b602002602001015192505f83604001511115612e505782517f016a430aa58685aba1311244a973a3bc358859da86784be51094368e8fb6f72014801590612cba5750601254835114155b15612e5057600f54835103612ccd574183525b601154835103612cdb573383525b82606001516001600160a01b0316856001600160a01b03161015612d0157826060015194505b8251805c905f829003612d6057845f0151868a81518110612d2457612d24613efd565b60200260200101818152505082600c5485612d3f9190613eb9565b612d4991906146f3565b915081815d88612d58816146db565b995050612e3c565b602085015115612d9d5784602001518b8381518110612d8157612d81613efd565b6020026020010151602001818151612d9991906146f3565b9052505b604085015115612dda5784604001518b8381518110612dbe57612dbe613efd565b6020026020010151604001818151612dd691906146f3565b9052505b604051806080016040528060125481526020015f81526020015f81526020015f6001600160a01b03168152508b84600c5487612e169190613eb9565b612e2091906146f3565b81518110612e3057612e30613efd565b60200260200101819052505b6040850151612e4b90896146f3565b975050505b600101612c3c565b50600101612c32565b505f8415613094576003546040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018790526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015612ecb575f80fd5b505af1158015612edd573d5f803e3d5ffd5b50505050612eeb858561326f565b905060015b8681101561309257601254848281518110612f0d57612f0d613efd565b60200260200101511461308a575f80858381518110612f2e57612f2e613efd565b60200260200101519050805c91508a8281518110612f4e57612f4e613efd565b602002602001015194505f8086604001511115612fd95788858760400151612f769190613eb9565b612f8091906147f7565b9050612fa2878581518110612f9757612f97613efd565b602002602001015190565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015612fd7573d5f803e3d5ffd5b505b602086015180156130855760035488516001600160a01b03909116906340c10f1990613011908b9089908110612f9757612f97613efd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b15801561306e575f80fd5b505af1158015613080573d5f803e3d5ffd5b505050505b505050505b600101612ef0565b505b5050505050505050565b604081018051600680546001810182555f9182527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01919091559051600d556080820151600e5560168054916130f3836146db565b919050555050565b5f808260405160200161310e919061480a565b6040516020818303038152906040528051906020012090507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000600161315391906146f3565b611b189082613f93565b5f6113946131696134c1565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6131b185856135ef565b915091506131be81613631565b509392505050565b606060ff83146131e0576131d983613798565b9050611394565b8180546131ec9061483f565b80601f01602080910402602001604051908101604052809291908181526020018280546132189061483f565b80156132635780601f1061323a57610100808354040283529160200191613263565b820191905f5260205f20905b81548152906001019060200180831161324657829003601f168201915b50505050509050611394565b6003546005546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018590525f92919091169063095ea7b3906044016020604051808303815f875af11580156132de573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613302919061472b565b5060055460408051610100810182526019546001600160a01b03808216835273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2602084019081527401000000000000000000000000000000000000000090920462ffffff9081168486019081523060608601908152426080870190815260a087018c81525f60c089019081528c871660e08a0190815299517f414bf3890000000000000000000000000000000000000000000000000000000081529851871660048a0152965186166024890152925190931660448701525183166064860152905160848501525160a4840152905160c48301529151821660e482015291169063414bf38990610104016020604051808303815f875af115801561341b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343f91906147bf565b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b1580156134a5575f80fd5b505af11580156134b7573d5f803e3d5ffd5b5050505092915050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561351957507f000000000000000000000000000000000000000000000000000000000000000046145b1561354357507f000000000000000000000000000000000000000000000000000000000000000090565b6135ea604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b905090565b5f808251604103613623576020830151604084015160608501515f1a613617878285856137d5565b9450945050505061362a565b505f905060025b9250929050565b5f8160048111156136445761364461488a565b0361364c5750565b60018160048111156136605761366061488a565b036136ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109a9565b60028160048111156136c1576136c161488a565b0361370e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109a9565b60038160048111156137225761372261488a565b036137955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016109a9565b50565b60605f6137a483613892565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561380a57505f90506003613889565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561385b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116613883575f60019250925050613889565b91505f90505b94509492505050565b5f60ff8216601f811115611394576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8083601f8401126138e2575f80fd5b50813567ffffffffffffffff8111156138f9575f80fd5b60208301915083602082850101111561362a575f80fd5b5f6105608284031215613921575f80fd5b50919050565b5f805f60408486031215613939575f80fd5b833567ffffffffffffffff80821115613950575f80fd5b61395c878388016138d2565b90955093506020860135915080821115613974575f80fd5b5061398186828701613910565b9150509250925092565b5f6020828403121561399b575f80fd5b5035919050565b5f80604083850312156139b3575f80fd5b50508035926020909101359150565b5f815180845260208085019450602084015f5b838110156139f1578151875295820195908201906001016139d5565b509495945050505050565b602081525f611b1860208301846139c2565b5f8060408385031215613a1f575f80fd5b823567ffffffffffffffff811115613a35575f80fd5b613a4185828601613910565b95602094909401359450505050565b5f6114e08284031215613921575f80fd5b5f60208284031215613a71575f80fd5b813567ffffffffffffffff811115613a87575f80fd5b6114f184828501613a50565b5f805f8060608587031215613aa6575f80fd5b843567ffffffffffffffff80821115613abd575f80fd5b613ac9888389016138d2565b90965094506020870135915080821115613ae1575f80fd5b50613aee87828801613910565b949793965093946040013593505050565b5f8060408385031215613b10575f80fd5b823567ffffffffffffffff811115613b26575f80fd5b613a4185828601613a50565b5f805f60408486031215613b44575f80fd5b83359250602084013567ffffffffffffffff811115613b61575f80fd5b613b6d868287016138d2565b9497909650939450505050565b5f81518084525f5b81811015613b9e57602081850181015186830182015201613b82565b505f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152613bf960e084018a613b7a565b8381036040850152613c0b818a613b7a565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015613c5e57835183529284019291840191600101613c42565b50909c9b505050505050505050505050565b5f60208284031215613c80575f80fd5b813567ffffffffffffffff811115613c96575f80fd5b820160408185031215611b18575f80fd5b5f8060208385031215613cb8575f80fd5b823567ffffffffffffffff80821115613ccf575f80fd5b818501915085601f830112613ce2575f80fd5b813581811115613cf0575f80fd5b8660208260051b8501011115613d04575f80fd5b60209290920196919550909350505050565b602080825282518282018190525f9190848201906040850190845b81811015613d4f578351151583529284019291840191600101613d31565b50909695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115613dc257815f1904821115613da857613da8613d5b565b80851615613db557918102915b93841c9390800290613d8d565b509250929050565b5f82613dd857506001611394565b81613de457505f611394565b8160018114613dfa5760028114613e0457613e20565b6001915050611394565b60ff841115613e1557613e15613d5b565b50506001821b611394565b5060208310610133831016604e8410600b8410161715613e43575081810a611394565b613e4d8383613d88565b805f1904821115613e6057613e60613d5b565b029392505050565b5f611b188383613dca565b5f808335601e19843603018112613e88575f80fd5b83018035915067ffffffffffffffff821115613ea2575f80fd5b6020019150600581901b360382131561362a575f80fd5b808202811582820484141761139457611394613d5b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb21833603018112613f5c575f80fd5b9190910192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613fa157613fa1613f66565b500690565b805f5b6010811015613fdc5781358452602080830135908501526040808301359085015260609384019390910190600101613fa9565b50505050565b6102008183375050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261401e575f80fd5b90910192915050565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b5f8135601e19833603018112614064575f80fd5b820160208101903567ffffffffffffffff811115614080575f80fd5b80360382131561408e575f80fd5b604085526140a0604086018284614027565b915050602083013560208501528091505092915050565b6020815281356020820152602082013560408201526040820135606082015260608201356080820152608082013560a082015260a082013560c082015261410460e0820160c08401613fa6565b6141166106e082016106c08401613fe2565b6141286108e082016108c08401613fe2565b61413a610ae08201610ac08401613fe2565b61414c610ce08201610cc08401613fe2565b61415e610ee08201610ec08401613fe2565b6141706110e082016110c08401613fe2565b6141826112e082016112c08401613fe2565b5f6141916114c0840184613fec565b6114e0838101526114f1611500840182614050565b8281526102a081016102808360208401379392505050565b6040516060810167ffffffffffffffff811182821017156141e1576141e1613ed0565b60405290565b6040805190810167ffffffffffffffff811182821017156141e1576141e1613ed0565b6040516101e0810167ffffffffffffffff811182821017156141e1576141e1613ed0565b604051610120810167ffffffffffffffff811182821017156141e1576141e1613ed0565b604051610200810167ffffffffffffffff811182821017156141e1576141e1613ed0565b604051601f8201601f1916810167ffffffffffffffff8111828210171561429f5761429f613ed0565b604052919050565b5f82601f8301126142b6575f80fd5b60405161028080820182811067ffffffffffffffff821117156142db576142db613ed0565b604052830181858211156142ed575f80fd5b845b828110156143075780358252602091820191016142ef565b509195945050505050565b5f82601f830112614321575f80fd5b614329614252565b8061020084018581111561433b575f80fd5b845b8181101561435557803584526020938401930161433d565b509095945050505050565b5f82601f83011261436f575f80fd5b614377614252565b80610600840185811115614389575f80fd5b845b8181101561435557606081880312156143a2575f80fd5b6143aa6141be565b813581526020808301358183015260408084013590830152908552939093019260600161438b565b5f604082840312156143e2575f80fd5b6143ea6141e7565b9050813567ffffffffffffffff80821115614403575f80fd5b818401915084601f830112614416575f80fd5b813560208282111561442a5761442a613ed0565b61443c81601f19601f85011601614276565b92508183528681838601011115614451575f80fd5b81818501828501375f81838501015282855280860135818601525050505092915050565b5f82601f830112614484575f80fd5b8135602067ffffffffffffffff808311156144a1576144a1613ed0565b8260051b6144b0838201614276565b93845285810183019383810190888611156144c9575f80fd5b84880192505b85831015614615578235848111156144e5575f80fd5b88016114e0818b03601f19018113156144fc575f80fd5b61450461420a565b87830135815260408084013589830152606080850135828401526080915081850135818401525060a0808501358284015260c0915081850135818401525060e06145508e828701614360565b828401526145628e6106e08701614312565b90830152506145758c6108e08501614312565b6101008201526145898c610ae08501614312565b61012082015261459d8c610ce08501614312565b6101408201526145b18c610ee08501614312565b6101608201526145c58c6110e08501614312565b6101808201526145d98c6112e08501614312565b6101a08201529082013590868211156145f0575f80fd5b6145fe8c89848601016143d2565b6101c08201528452505091840191908401906144cf565b98975050505050505050565b5f6105608236031215614632575f80fd5b61463a61422e565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015261467d3660c085016142a7565b60c0820152614690366103408501614312565b60e082015261054083013567ffffffffffffffff8111156146af575f80fd5b6146bb36828601614475565b6101008301525092915050565b8181038181111561139457611394613d5b565b5f5f1982036146ec576146ec613d5b565b5060010190565b8082018082111561139457611394613d5b565b604081525f614719604083018587614027565b82810360208401526116bb81856139c2565b5f6020828403121561473b575f80fd5b81518015158114611b18575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613f5c575f80fd5b5f808335601e19843603018112614791575f80fd5b83018035915067ffffffffffffffff8211156147ab575f80fd5b60200191503681900382131561362a575f80fd5b5f602082840312156147cf575f80fd5b5051919050565b81358152602080830135908201526040808301359082015260608101611394565b5f8261480557614805613f66565b500490565b81515f9082906020808601845b8381101561483357815185529382019390820190600101614817565b50929695505050505050565b600181811c9082168061485357607f821691505b602082108103613921577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212206d51acca634be4573391186c7cbdb604db76bc3a751f7c9d3ad39d0319f4f6c664736f6c63430008180033a26469706673582212207a7b732fb286b2eb3181ad7a784473656109370d1bb9e9cf4d8fd9e8c8854eb564736f6c63430008180033";
type TechnicalPreviewTestConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: TechnicalPreviewTestConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class TechnicalPreviewTest__factory extends ContractFactory {
constructor(...args: TechnicalPreviewTestConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(overrides || {});
}
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
return super.deploy(overrides || {}) as Promise<
TechnicalPreviewTest & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(
runner: ContractRunner | null
): TechnicalPreviewTest__factory {
return super.connect(runner) as TechnicalPreviewTest__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): TechnicalPreviewTestInterface {
return new Interface(_abi) as TechnicalPreviewTestInterface;
}
static connect(
address: string,
runner?: ContractRunner | null
): TechnicalPreviewTest {
return new Contract(
address,
_abi,
runner
) as unknown as TechnicalPreviewTest;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
export { IMomiji__factory } from "./IMomiji__factory";
export { IOracle__factory } from "./IOracle__factory";
export { IVerifier__factory } from "./IVerifier__factory";
export { IWETH9__factory } from "./IWETH9__factory";
export { Momiji__factory } from "./Momiji__factory";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
export * as chainlink from "./@chainlink";
export * as openzeppelin from "./@openzeppelin";
export * as uniswap from "./@uniswap";
export * as contracts from "./contracts";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
export * as src from "./src";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type {
StdAssertions,
StdAssertionsInterface,
} from "../../../../lib/forge-std/src/StdAssertions";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "",
type: "address",
},
],
name: "log_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "log_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "log_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256",
name: "",
type: "int256",
},
],
name: "log_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address",
name: "val",
type: "address",
},
],
name: "log_named_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes",
name: "val",
type: "bytes",
},
],
name: "log_named_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes32",
name: "val",
type: "bytes32",
},
],
name: "log_named_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
],
name: "log_named_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "string",
name: "val",
type: "string",
},
],
name: "log_named_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
],
name: "log_named_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "log_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "logs",
type: "event",
},
{
inputs: [],
name: "failed",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
] as const;
export class StdAssertions__factory {
static readonly abi = _abi;
static createInterface(): StdAssertionsInterface {
return new Interface(_abi) as StdAssertionsInterface;
}
static connect(
address: string,
runner?: ContractRunner | null
): StdAssertions {
return new Contract(address, _abi, runner) as unknown as StdAssertions;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../../../common";
import type {
StdError,
StdErrorInterface,
} from "../../../../../lib/forge-std/src/StdError.sol/StdError";
const _abi = [
{
inputs: [],
name: "arithmeticError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "assertionError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "divisionError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "encodeStorageError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "enumConversionError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "indexOOBError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "memOverflowError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "popError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "zeroVarError",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
] as const;
const _bytecode =
"0x6102c3610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100aa575f3560e01c8063986c5f681161007d578063b67689da11610063578063b67689da146100f4578063d160e4de146100fc578063fa784a4414610104575f80fd5b8063986c5f68146100e4578063b22dc54d146100ec575f80fd5b806305ee8612146100ae57806310332977146100cc5780631de45560146100d45780638995290f146100dc575b5f80fd5b6100b661010c565b6040516100c39190610223565b60405180910390f35b6100b6610193565b6100b66101a5565b6100b66101b7565b6100b66101c9565b6100b66101db565b6100b66101ed565b6100b66101ff565b6100b6610211565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011a565b6040516021602482015260440161011a565b6040516011602482015260440161011a565b6040516041602482015260440161011a565b6040516031602482015260440161011a565b6040516051602482015260440161011a565b6040516022602482015260440161011a565b6040516012602482015260440161011a565b5f602080835283518060208501525f5b8181101561024f57858101830151858201604001528201610233565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509291505056fea2646970667358221220b6d1ea483d569e9e77d273822a87fc08c1a13dbcf1ba8683adf3c889f53e9fbc64736f6c63430008180033";
type StdErrorConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: StdErrorConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class StdError__factory extends ContractFactory {
constructor(...args: StdErrorConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(overrides || {});
}
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
return super.deploy(overrides || {}) as Promise<
StdError & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(runner: ContractRunner | null): StdError__factory {
return super.connect(runner) as StdError__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): StdErrorInterface {
return new Interface(_abi) as StdErrorInterface;
}
static connect(address: string, runner?: ContractRunner | null): StdError {
return new Contract(address, _abi, runner) as unknown as StdError;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
export { StdError__factory } from "./StdError__factory";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type {
StdInvariant,
StdInvariantInterface,
} from "../../../../lib/forge-std/src/StdInvariant";
const _abi = [
{
inputs: [],
name: "excludeArtifacts",
outputs: [
{
internalType: "string[]",
name: "excludedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeContracts",
outputs: [
{
internalType: "address[]",
name: "excludedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeSenders",
outputs: [
{
internalType: "address[]",
name: "excludedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetArtifactSelectors",
outputs: [
{
components: [
{
internalType: "string",
name: "artifact",
type: "string",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzArtifactSelector[]",
name: "targetedArtifactSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetArtifacts",
outputs: [
{
internalType: "string[]",
name: "targetedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetContracts",
outputs: [
{
internalType: "address[]",
name: "targetedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetInterfaces",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "string[]",
name: "artifacts",
type: "string[]",
},
],
internalType: "struct StdInvariant.FuzzInterface[]",
name: "targetedInterfaces_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSelectors",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzSelector[]",
name: "targetedSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSenders",
outputs: [
{
internalType: "address[]",
name: "targetedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
] as const;
export class StdInvariant__factory {
static readonly abi = _abi;
static createInterface(): StdInvariantInterface {
return new Interface(_abi) as StdInvariantInterface;
}
static connect(
address: string,
runner?: ContractRunner | null
): StdInvariant {
return new Contract(address, _abi, runner) as unknown as StdInvariant;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../../../common";
import type {
StdStorageSafe,
StdStorageSafeInterface,
} from "../../../../../lib/forge-std/src/StdStorage.sol/StdStorageSafe";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "who",
type: "address",
},
{
indexed: false,
internalType: "bytes4",
name: "fsig",
type: "bytes4",
},
{
indexed: false,
internalType: "bytes32",
name: "keysHash",
type: "bytes32",
},
{
indexed: false,
internalType: "uint256",
name: "slot",
type: "uint256",
},
],
name: "SlotFound",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "who",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "slot",
type: "uint256",
},
],
name: "WARNING_UninitedSlot",
type: "event",
},
] as const;
const _bytecode =
"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220447bd53e161ce5bf71fc508bef4d63be1e0a791832683bc4af3351410193199264736f6c63430008180033";
type StdStorageSafeConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: StdStorageSafeConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class StdStorageSafe__factory extends ContractFactory {
constructor(...args: StdStorageSafeConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(overrides || {});
}
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
return super.deploy(overrides || {}) as Promise<
StdStorageSafe & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(runner: ContractRunner | null): StdStorageSafe__factory {
return super.connect(runner) as StdStorageSafe__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): StdStorageSafeInterface {
return new Interface(_abi) as StdStorageSafeInterface;
}
static connect(
address: string,
runner?: ContractRunner | null
): StdStorageSafe {
return new Contract(address, _abi, runner) as unknown as StdStorageSafe;
}
}
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
export { StdStorageSafe__factory } from "./StdStorageSafe__factory";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type { Test, TestInterface } from "../../../../lib/forge-std/src/Test";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "",
type: "address",
},
],
name: "log_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "log_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "log_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "int256",
name: "",
type: "int256",
},
],
name: "log_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address",
name: "val",
type: "address",
},
],
name: "log_named_address",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256[]",
name: "val",
type: "uint256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256[]",
name: "val",
type: "int256[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "address[]",
name: "val",
type: "address[]",
},
],
name: "log_named_array",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes",
name: "val",
type: "bytes",
},
],
name: "log_named_bytes",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "bytes32",
name: "val",
type: "bytes32",
},
],
name: "log_named_bytes32",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "decimals",
type: "uint256",
},
],
name: "log_named_decimal_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "int256",
name: "val",
type: "int256",
},
],
name: "log_named_int",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "string",
name: "val",
type: "string",
},
],
name: "log_named_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "key",
type: "string",
},
{
indexed: false,
internalType: "uint256",
name: "val",
type: "uint256",
},
],
name: "log_named_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "",
type: "string",
},
],
name: "log_string",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "log_uint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "logs",
type: "event",
},
{
inputs: [],
name: "IS_TEST",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeArtifacts",
outputs: [
{
internalType: "string[]",
name: "excludedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeContracts",
outputs: [
{
internalType: "address[]",
name: "excludedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "excludeSenders",
outputs: [
{
internalType: "address[]",
name: "excludedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "failed",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetArtifactSelectors",
outputs: [
{
components: [
{
internalType: "string",
name: "artifact",
type: "string",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzArtifactSelector[]",
name: "targetedArtifactSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetArtifacts",
outputs: [
{
internalType: "string[]",
name: "targetedArtifacts_",
type: "string[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetContracts",
outputs: [
{
internalType: "address[]",
name: "targetedContracts_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetInterfaces",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "string[]",
name: "artifacts",
type: "string[]",
},
],
internalType: "struct StdInvariant.FuzzInterface[]",
name: "targetedInterfaces_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSelectors",
outputs: [
{
components: [
{
internalType: "address",
name: "addr",
type: "address",
},
{
internalType: "bytes4[]",
name: "selectors",
type: "bytes4[]",
},
],
internalType: "struct StdInvariant.FuzzSelector[]",
name: "targetedSelectors_",
type: "tuple[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "targetSenders",
outputs: [
{
internalType: "address[]",
name: "targetedSenders_",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
] as const;
export class Test__factory {
static readonly abi = _abi;
static createInterface(): TestInterface {
return new Interface(_abi) as TestInterface;
}
static connect(address: string, runner?: ContractRunner | null): Test {
return new Contract(address, _abi, runner) as unknown as Test;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment