import { Abi, Hex, Address } from 'viem';
import * as z from 'zod/v4';

type RelatedV0 = undefined;
type RelatedV1 = undefined;
type RelatedV2 = {
    locker: `0x${string}`;
};
type RelatedV3 = {
    locker: `0x${string}`;
};
type RelatedV3_1 = {
    locker: `0x${string}`;
    vault: `0x${string}`;
};
type RelatedV4 = {
    locker: `0x${string}`;
    vault: `0x${string}`;
    airdrop: `0x${string}`;
    devbuy: `0x${string}`;
    mevModule: `0x${string}`;
    feeLocker: `0x${string}`;
    feeStaticHook: `0x${string}`;
    feeDynamicHook: `0x${string}`;
    presale?: `0x${string}`;
    presaleAllowlist?: `0x${string}`;
    mevModuleV2?: `0x${string}`;
    feeStaticHookV2?: `0x${string}`;
    feeDynamicHookV2?: `0x${string}`;
};
type RelatedAddresses = RelatedV0 | RelatedV1 | RelatedV2 | RelatedV3 | RelatedV4;
type ClankerDeployment<T extends RelatedAddresses = RelatedAddresses> = {
    abi: Abi;
    token: {
        abi: Abi;
        bytecode: Hex;
    };
    chainId: number;
    type: string;
    address: `0x${string}`;
    related: T;
};
declare const CLANKERS: {
    readonly clanker_v0: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "taxCollector_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "weth_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "uint64";
                readonly name: "defaultLockingPeriod_";
                readonly type: "uint64";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "lpNftId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "_supply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "lockerAddress";
                readonly type: "address";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "defaultLockingPeriod";
            readonly outputs: readonly [{
                readonly internalType: "uint64";
                readonly name: "";
                readonly type: "uint64";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "string";
                readonly name: "_name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "_symbol";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "_supply";
                readonly type: "uint256";
            }, {
                readonly internalType: "int24";
                readonly name: "_initialTick";
                readonly type: "int24";
            }, {
                readonly internalType: "uint24";
                readonly name: "_fee";
                readonly type: "uint24";
            }, {
                readonly internalType: "bytes32";
                readonly name: "_salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "address";
                readonly name: "_deployer";
                readonly type: "address";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "contract Token";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "tokenId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }];
            readonly name: "generateSalt";
            readonly outputs: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint24";
                readonly name: "_fee";
                readonly type: "uint24";
            }];
            readonly name: "initialSwapTokens";
            readonly outputs: readonly [];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILockerFactory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "lpFeesCut";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }];
            readonly name: "predictToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "protocolCut";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "taxCollector";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "taxRate";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint64";
                readonly name: "newPeriod";
                readonly type: "uint64";
            }];
            readonly name: "updateDefaultLockingPeriod";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "newFee";
                readonly type: "uint8";
            }];
            readonly name: "updateProtocolFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newCollector";
                readonly type: "address";
            }];
            readonly name: "updateTaxCollector";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "newRate";
                readonly type: "uint8";
            }];
            readonly name: "updateTaxRate";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [];
            readonly bytecode: "0x";
        };
        readonly chainId: 8453;
        readonly type: "proxy";
        readonly address: "0x250c9FB2b411B48273f69879007803790A6AeA47";
        readonly related: undefined;
    };
    readonly clanker_v1: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "taxCollector_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "weth_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "uint64";
                readonly name: "defaultLockingPeriod_";
                readonly type: "uint64";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "lpNftId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "fid";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "lockerAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "castHash";
                readonly type: "string";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "bundleFeeSwitch";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "defaultLockingPeriod";
            readonly outputs: readonly [{
                readonly internalType: "uint64";
                readonly name: "";
                readonly type: "uint64";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "string";
                readonly name: "_name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "_symbol";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "_supply";
                readonly type: "uint256";
            }, {
                readonly internalType: "int24";
                readonly name: "_initialTick";
                readonly type: "int24";
            }, {
                readonly internalType: "uint24";
                readonly name: "_fee";
                readonly type: "uint24";
            }, {
                readonly internalType: "bytes32";
                readonly name: "_salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "address";
                readonly name: "_deployer";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "_fid";
                readonly type: "uint256";
            }, {
                readonly internalType: "string";
                readonly name: "_image";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "_castHash";
                readonly type: "string";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "contract Token";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "tokenId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "fid";
                readonly type: "uint256";
            }, {
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "image";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "castHash";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }];
            readonly name: "generateSalt";
            readonly outputs: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint24";
                readonly name: "_fee";
                readonly type: "uint24";
            }];
            readonly name: "initialSwapTokens";
            readonly outputs: readonly [];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILockerFactory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "lpFeesCut";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "fid";
                readonly type: "uint256";
            }, {
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "image";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "castHash";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }];
            readonly name: "predictToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "protocolCut";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "_deprecated";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "taxCollector";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "taxRate";
            readonly outputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "";
                readonly type: "uint8";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "_enabled";
                readonly type: "bool";
            }];
            readonly name: "toggleBundleFeeSwitch";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint64";
                readonly name: "newPeriod";
                readonly type: "uint64";
            }];
            readonly name: "updateDefaultLockingPeriod";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "newFee";
                readonly type: "uint8";
            }];
            readonly name: "updateProtocolFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newCollector";
                readonly type: "address";
            }];
            readonly name: "updateTaxCollector";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "uint8";
                readonly name: "newRate";
                readonly type: "uint8";
            }];
            readonly name: "updateTaxRate";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [];
            readonly bytecode: "0x";
        };
        readonly chainId: 8453;
        readonly type: "clanker";
        readonly address: "0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1";
        readonly related: undefined;
    };
    readonly clanker_v2: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidConfig";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "NotAdmin";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "NotAllowedPairedToken";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "TokenNotFound";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "fid";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "lockerAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "castHash";
                readonly type: "string";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "allowedPairedTokens";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimRewards";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "string";
                readonly name: "_name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "_symbol";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "_supply";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint24";
                readonly name: "_fee";
                readonly type: "uint24";
            }, {
                readonly internalType: "bytes32";
                readonly name: "_salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "address";
                readonly name: "_deployer";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "_fid";
                readonly type: "uint256";
            }, {
                readonly internalType: "string";
                readonly name: "_image";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "_castHash";
                readonly type: "string";
            }, {
                readonly components: readonly [{
                    readonly internalType: "int24";
                    readonly name: "tick";
                    readonly type: "int24";
                }, {
                    readonly internalType: "address";
                    readonly name: "pairedToken";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint24";
                    readonly name: "devBuyFee";
                    readonly type: "uint24";
                }];
                readonly internalType: "struct Clanker.PoolConfig";
                readonly name: "_poolConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "contract ClankerToken";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "getTokensDeployedByUser";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "positionId";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }];
                readonly internalType: "struct Clanker.DeploymentInfo[]";
                readonly name: "";
                readonly type: "tuple[]";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract LpLockerv2";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "_deprecated";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "allowed";
                readonly type: "bool";
            }];
            readonly name: "toggleAllowedPairedToken";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly name: "tokensDeployedByUsers";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "version";
            readonly outputs: readonly [{
                readonly internalType: "string";
                readonly name: "";
                readonly type: "string";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [];
            readonly bytecode: "0x";
        };
        readonly chainId: 8453;
        readonly type: "clanker_v2";
        readonly address: "0x732560fa1d1A76350b1A500155BA978031B53833";
        readonly related: {
            locker: "0x618A9840691334eE8d24445a4AdA4284Bf42417D";
        };
    };
    readonly clanker_v3: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Invalid";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "deployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "fid";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "supply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "castHash";
                readonly type: "string";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimRewards";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "string";
                    readonly name: "_name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "_symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "_supply";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint24";
                    readonly name: "_fee";
                    readonly type: "uint24";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "_salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "address";
                    readonly name: "_deployer";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "_fid";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "string";
                    readonly name: "_image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "_castHash";
                    readonly type: "string";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "int24";
                        readonly name: "tick";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint24";
                        readonly name: "devBuyFee";
                        readonly type: "uint24";
                    }];
                    readonly internalType: "struct Clanker.PoolConfig";
                    readonly name: "_poolConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct Clanker.PreSaleTokenConfig";
                readonly name: "preSaleTokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "string";
                    readonly name: "_name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "_symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "_supply";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint24";
                    readonly name: "_fee";
                    readonly type: "uint24";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "_salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "address";
                    readonly name: "_deployer";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "_fid";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "string";
                    readonly name: "_image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "_castHash";
                    readonly type: "string";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "int24";
                        readonly name: "tick";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint24";
                        readonly name: "devBuyFee";
                        readonly type: "uint24";
                    }];
                    readonly internalType: "struct Clanker.PoolConfig";
                    readonly name: "_poolConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct Clanker.PreSaleTokenConfig";
                readonly name: "preSaleTokenConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "uint256";
                readonly name: "preSaleId";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "uint256";
                    readonly name: "bpsBought";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "user";
                    readonly type: "address";
                }];
                readonly internalType: "struct Clanker.PreSalePurchase[]";
                readonly name: "preSalePurchases";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "uint256";
                    readonly name: "bpsAvailable";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "ethPerBps";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "endTime";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "bpsSold";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "tokenAddress";
                    readonly type: "address";
                }];
                readonly internalType: "struct Clanker.PreSaleConfig";
                readonly name: "preSaleConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "getTokensDeployedByUser";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "positionId";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }];
                readonly internalType: "struct Clanker.DeploymentInfo[]";
                readonly name: "";
                readonly type: "tuple[]";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILpLockerv2";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly name: "tokensDeployedByUsers";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [];
            readonly bytecode: "0x";
        };
        readonly chainId: 8453;
        readonly type: "clanker_v3";
        readonly address: "0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E";
        readonly related: {
            locker: "0x5eC4f99F342038c67a312a166Ff56e6D70383D86";
        };
    };
    readonly clanker_v3_1: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorReward";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidInterfaceInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidTick";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidVaultConfiguration";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ZeroTeamRewardRecipient";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldClankerDeployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newClankerDeployer";
                readonly type: "address";
            }];
            readonly name: "ClankerDeployerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldLocker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "LiquidityLockerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "creatorAdmin";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "interfaceAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "creatorRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "interfaceRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTickIfToken0IsNewToken";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "metadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amountTokensBought";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "vaultDuration";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint8";
                readonly name: "vaultPercentage";
                readonly type: "uint8";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldVault";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "VaultUpdated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_CREATOR_REWARD";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_TICK";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_VAULT_PERCENTAGE";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "POOL_FEE";
            readonly outputs: readonly [{
                readonly internalType: "uint24";
                readonly name: "";
                readonly type: "uint24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TICK_SPACING";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimRewards";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "teamRewardRecipient";
                readonly type: "address";
            }];
            readonly name: "deployTokenWithCustomTeamRewardRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "getTokensDeployedByUser";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "positionId";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo[]";
                readonly name: "";
                readonly type: "tuple[]";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "weth_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "liquidityLocker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "vault_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILpLockerv2";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "contract ISwapRouter";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly name: "tokensDeployedByUsers";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "updateVault";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "vault";
            readonly outputs: readonly [{
                readonly internalType: "contract IClankerVault";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x61016060405234610141576140a2803803809161001b82610159565b610160396101008161016001911261014157610160516001600160401b038111610141578161004d91610160016101b9565b610180516001600160401b038111610141578261006d91610160016101b9565b6101a05161007c6101c061020e565b6101e0516001600160401b038111610141578561009c91610160016101b9565b610200519091906001600160401b03811161014157866100bf91610160016101b9565b610220519093906001600160401b038111610141576100f0976100e591610160016101b9565b946102405196610669565b604051612ffa908161106882396080518161210a015260a051816121c7015260c051816120db015260e051816121590152610100518161217f01526101205181610bf701526101405181610c200152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610160601f91909101601f19168101906001600160401b0382119082101761018057604052565b610145565b601f909101601f19168101906001600160401b0382119082101761018057604052565b604051906101b7604083610185565b565b81601f82011215610141578051906001600160401b03821161018057604051926101ed601f8401601f191660200185610185565b8284526020838301011161014157815f9260208093018386015e8301015290565b51906001600160a01b038216820361014157565b90600182811c92168015610250575b602083101461023c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610231565b601f8111610266575050565b60035f5260205f20906020601f840160051c830193106102a0575b601f0160051c01905b818110610295575050565b5f815560010161028a565b9091508190610281565b601f82116102b757505050565b5f5260205f20906020601f840160051c830193106102ef575b601f0160051c01905b8181106102e4575050565b5f81556001016102d9565b90915081906102d0565b80519091906001600160401b038111610180576103228161031b600454610222565b60046102aa565b602092601f821160011461036257610352929382915f92610357575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061033e565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103c657508360019596106103ae575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103a3565b91926020600181928685015181550194019201610390565b80519091906001600160401b0381116101805761040781610400600e54610222565b600e6102aa565b602092601f821160011461043b57610436929382915f926103575750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b86811061049f5750836001959610610487575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061047c565b91926020600181928685015181550194019201610469565b80519091906001600160401b038111610180576104e0816104d9600c54610222565b600c6102aa565b602092601f82116001146105145761050f929382915f926103575750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105785750836001959610610560575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610555565b91926020600181928685015181550194019201610542565b80519091906001600160401b038111610180576105b9816105b2600d54610222565b600d6102aa565b602092601f82116001146105ed576105e8929382915f926103575750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b8681106106515750836001959610610639575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061062e565b9192602060018192868501518155019401920161061b565b969594939291966040519061067f604083610185565b60018252603160f81b6020830190815281519093906001600160401b038111610180576106b6816106b1600354610222565b61025a565b6020601f821160011461078f5793610762936107026107719b9a98946106fa856107679a9661076c9d9a5f91610784575b508160011b915f199060031b1c19161790565b6003556102f9565b61070b816108d2565b61012052610718826109c7565b610140526020815191012060e052519020610100524660a052610739610ab9565b6080523060c052600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6103de565b6104b7565b610590565b461461077a5750565b6101b79033610826565b90508501515f6106e7565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061080e57506107719b9a989460018561076c9c999561076299956107679c9861070296106107f6575b5050811b016003556102f9565b8601515f1960f88460031b161c191690555f806107e9565b9192602060018192868a0151815501940192016107bd565b91906001600160a01b03831680156108bf576002548281018091116108ba576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108a357506101b7929350610b96565b630e58ae9360e11b5f52600485905260245260445ffd5b610b82565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f146108ed5750906108ea90610b17565b90565b6001600160401b038111610180576109118161090a600554610222565b60056102aa565b602092601f821160011461094857610940929382915f926103575750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109af5750836001959610610997575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f8080610989565b91926020600181928685015181550194019201610976565b908151602081105f146109df5750906108ea90610b17565b6001600160401b03811161018057610a03816109fc600654610222565b60066102aa565b602092601f8211600114610a3a57610a32929382915f926103575750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610aa15750836001959610610a89575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a7b565b91926020600181928685015181550194019201610a68565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b1160c082610185565b51902090565b601f815111610b42576020815191015160208210610b33571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610ba081610c95565b9165ffffffffffff4311610c7d57600a5480610c475750610bda610bca6101b7945f5b600161100b565b65ffffffffffff4316600a610f35565b50506001600160a01b03168015610c2f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dc4565b610c40610c3b83610c95565b610cc6565b5050610bec565b92835f198101116108ba57600a5f525f5160206140625f395f51905f52909301546101b793610bda91610bca919060301c610bc3565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610caf576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c7d57600a5480610cf05750610bca610cec915f5b600261100b565b9091565b805f198101116108ba57600a5f525f5160206140625f395f51905f520154610cec91610bca9160301c610ce5565b65ffffffffffff4311610c7d57805480610d525750610d42610cec925f600261100b565b9065ffffffffffff431690610f35565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610ce5565b65ffffffffffff4311610c7d57805480610d9d5750610d42610cec925f600161100b565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610bc3565b6001600160a01b03808316939291908116908185141580610eb7575b610dec575b5050505050565b81610e5d575b505082610e01575b8080610de5565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5291610e3a91610e349091610c95565b90610d79565b604080516001600160d01b039384168152919092166020820152a25f8080610dfa565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5290610e9590610e8f86610c95565b90610d1e565b604080516001600160d01b039384168152919092166020820152a25f80610df2565b50831515610de0565b5f198101919082116108ba57565b908154680100000000000000008110156101805760018101808455811015610f21575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610fe157610f4c610f5791610ec0565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fd257879303610f9e5750610f9a92509065ffffffffffff82549181199060301b169116179055565b9190565b915050610f9a91610fbe610fb06101a8565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ece565b632520601d60e01b5f5260045ffd5b509061100691610ff2610fb06101a8565b6001600160d01b0385166020830152610ece565b5f9190565b9190918060011461104d5760021461103157634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108ba5790565b506001600160d01b03918216908216019081116108ba579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461025457806306fdde031461024f578063095ea7b31461024a57806318160ddd1461024557806318bf50771461024057806323b872dd1461023b5780632b8c49e314610236578063313ce567146102315780633644e5151461022c578063392f37e9146102275780633a46b1a81461022257806342966c681461021d5780634bf5d7e914610218578063587cde1e146102135780635c19a95c1461020e5780636fcfff451461020957806370a082311461020457806379cc6790146101ff5780637ecebe00146101fa57806380007e83146101f557806384b0196e146101f05780638e539e8c146101eb578063918b5be1146101e657806391ddadf4146101e157806395d89b41146101dc5780639ab24eb0146101d7578063a9059cbb146101d2578063aba83150146101cd578063c3cda520146101c8578063d0496d6a146101c3578063d505accf146101be578063dd62ed3e146101b9578063eb3d68e7146101b4578063f1127ed8146101af578063f851a440146101aa5763fc735e99146101a5575f80fd5b6119de565b6119ab565b6118d5565b611761565b6116ee565b611553565b6114ae565b611340565b61127b565b611255565b6111ed565b611148565b61111d565b610f70565b610d16565b610bdf565b610bbd565b610b78565b610b48565b610b06565b610a7e565b610a5c565b610a01565b610958565b610939565b610871565b6107cc565b6107aa565b61078f565b610709565b6106d1565b61051d565b610500565b6104cf565b610391565b34610336576020600319360112610336576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610336577f3333199400000000000000000000000000000000000000000000000000000000811490811561030c575b81156102e2575b81156102d9575b506040519015158152602090f35b9050155f6102cb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102c4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102bd565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061038e92818152019061033a565b90565b34610336575f600319360112610336576040515f6003546103b181611abd565b808452906001811690811561044757506001146103e9575b6103e5836103d981850382610e88565b6040519182918261037d565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061042d575090915081016020016103d96103c9565b919260018160209254838588010152019101909291610415565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103d990506103c9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b34610336576040600319360112610336576104f56104eb610489565b6024359033612418565b602060405160018152f35b34610336575f600319360112610336576020600254604051908152f35b3461033657604060031936011261033657610536610489565b6024359073420000000000000000000000000000000000002833036106a95773ffffffffffffffffffffffffffffffffffffffff811690811561067d5761058761058284600254612251565b600255565b6105ae8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef604051806105ea88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161064f5750508261061f91612ccc565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336576060600319360112610336576104f56106ed610489565b6106f56104ac565b60443591610704833383611c66565b611dcb565b3461033657604060031936011261033657610722610489565b60243573420000000000000000000000000000000000002833036106a95761074a8183611f3e565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610336575f60031936011261033657602060405160128152f35b34610336575f6003193601126103365760206107c46120c4565b604051908152f35b34610336575f600319360112610336576040515f600c546107ec81611abd565b80845290600181169081156104475750600114610813576103e5836103d981850382610e88565b600c5f9081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7939250905b808210610857575090915081016020016103d96103c9565b91926001816020925483858801015201910190929161083f565b346103365760406003193601126103365761088a610489565b60243565ffffffffffff61089d436121ed565b168082101561090a576103e579ffffffffffffffffffffffffffffffffffffffffffffffffffff6108f98473ffffffffffffffffffffffffffffffffffffffff87165f5260096020526108f360405f20916121ed565b9061225e565b604051911681529081906020820190565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346103365760206003193601126103365761095660043533611f3e565b005b34610336575f60031936011261033657610971436121ed565b65ffffffffffff80610982436121ed565b169116036109d9576103e560405161099b604082610e88565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061033a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610a2f610489565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461033657602060031936011261033657610956610a78610489565b336122ef565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610aac610489565b165f52600960205260405f205463ffffffff8111610ad65760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103365760206003193601126103365760206107c4610b24610489565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b3461033657604060031936011261033657610956610b64610489565b60243590610b73823383611c66565b611f3e565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610ba6610489565b165f526007602052602060405f2054604051908152f35b34610336575f60031936011261033657602060ff600f54166040519015158152f35b34610336575f60031936011261033657610cbd610c1b7f000000000000000000000000000000000000000000000000000000000000000061284c565b610c447f00000000000000000000000000000000000000000000000000000000000000006128c5565b6020604051610c538282610e88565b5f815281610ccb818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061033a565b90878203604089015261033a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610cff57505050500390f35b835185528695509381019392810192600101610cf0565b346103365760206003193601126103365760043565ffffffffffff610d3a436121ed565b169081811015610e0c57610d4d906121ed565b600a54905f829160058411610db3575b610d699350600a612661565b80610d97575060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b610da2602091612235565b600a5f52815f20015460301c610d73565b9192610dbe816124ec565b8103908111610e0757610d6993600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610df5575091610d5d565b929150610e0190612243565b90610d5d565b611a90565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e8357604052565b610e3a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e8357604052565b60405190610ed8604083610e88565b565b60206003198201126103365760043567ffffffffffffffff811161033657816023820112156103365780600401359067ffffffffffffffff8211610e835760405192610f4e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e88565b8284526024838301011161033657815f92602460209301838601378301015290565b3461033657610f7e36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e8357610fc281610fbd600c54611abd565b611bae565b6020601f8211600114611032579161101382611022937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611027575b505f198260011b9260031b1c19161790565b600c556040519182918261037d565b0390a1005b90508301515f611001565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110dd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261102296106110c5575b5050811b01600c556103d9565b8401515f1960f88460031b161c191690555f806110b8565b9192602060018192868901518155019401920161107e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336575f600319360112610336576020611138436121ed565b65ffffffffffff60405191168152f35b34610336575f600319360112610336576040515f60045461116881611abd565b8084529060018116908115610447575060011461118f576103e5836103d981850382610e88565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111d3575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916111bb565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff61121b610489565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61124c60405f2061239f565b16604051908152f35b34610336576040600319360112610336576104f5611271610489565b6024359033611dcb565b34610336575f600319360112610336576040515f600e5461129b81611abd565b808452906001811690811561044757506001146112c2576103e5836103d981850382610e88565b600e5f9081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210611306575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916112ee565b6064359060ff8216820361033657565b6084359060ff8216820361033657565b346103365760c060031936011261033657611359610489565b60243590604435611368611320565b6084359060a4359280421161148357916113fb93916113ed6113f29460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a60608301526080820152608081526113e560a082610e88565b5190206123c8565b6128fc565b909291926129cd565b61142c8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361143d5761095692506122ef565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610336575f600319360112610336576040515f600d546114ce81611abd565b808452906001811690811561044757506001146114f5576103e5836103d981850382610e88565b600d5f9081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b808210611539575090915081016020016103d96103c9565b919260018160209254838588010152019101909291611521565b346103365760e06003193601126103365761156c610489565b6115746104ac565b6044359060643592611584611330565b60a43560c435908642116116c2576116549261164f6115ca8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c081526113e560e082610e88565b612409565b9373ffffffffffffffffffffffffffffffffffffffff85160361167b576109569350612418565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461033657604060031936011261033657602061175861170c610489565b73ffffffffffffffffffffffffffffffffffffffff6117296104ac565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b346103365761176f36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e83576117b3816117ae600e54611abd565b611bfe565b6020601f8211600114611812579161180382611022937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161102757505f198260011b9260031b1c19161790565b600e556040519182918261037d565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106118bd5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b5552421694926001928261102296106118a5575b5050811b01600e556103d9565b8401515f1960f88460031b161c191690555f80611898565b9192602060018192868901518155019401920161185e565b34610336576040600319360112610336576118ee610489565b6024359063ffffffff82168203610336576103e59173ffffffffffffffffffffffffffffffffffffffff61194892611924611c4e565b5061192d611c4e565b50165f52600960205260405f20611942611c4e565b50612a94565b506040519061195682610e67565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610336575f60031936011261033657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610336575f6003193601126103365773ffffffffffffffffffffffffffffffffffffffff600b541633036110f557600f5460ff8116611a68577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611b04575b6020831014611ad757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611acc565b5f9291815491611b1d83611abd565b8083529260018116908115611b725750600114611b3957505050565b5f9081526020812093945091925b838310611b58575060209250010190565b600181602092949394548385870101520191019190611b47565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611bba575050565b600c5f5260205f20906020601f840160051c83019310611bf4575b601f0160051c01905b818110611be9575050565b5f8155600101611bde565b9091508190611bd5565b601f8111611c0a575050565b600e5f5260205f20906020601f840160051c83019310611c44575b601f0160051c01905b818110611c39575050565b5f8155600101611c2e565b9091508190611c25565b60405190611c5b82610e67565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611cb48360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198103611cc4575b50505050565b818110611d83578215611d575773ffffffffffffffffffffffffffffffffffffffff841615611d2b57611d21925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611cbe565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611f125773ffffffffffffffffffffffffffffffffffffffff8216801561067d57611e308273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611ec65784610ed8969703611e678473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611e8f8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612d5f565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff8116908115611f1257611f838173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106120795790611fbb84610ed8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612061575b61200d61200883612ad6565b612c6b565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b61207261206d83612ad6565b612c0a565b5050611ffc565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163014806121c4575b1561212c577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526121be60c082610e88565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612103565b65ffffffffffff81116122055765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b905f198201918211610e0757565b9060018201809211610e0757565b91908201809211610e0757565b908154905f82916005841161229c575b612279935084612661565b806122845750505f90565b61228d90612235565b905f5260205f20015460301c90565b91926122a7816124ec565b8103908111610e075761227993855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146122dd57509161226e565b9291506122e990612243565b9061226e565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ed8969416946123999390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916126c5565b8054806123ac5750505f90565b805f19810111610e07575f19915f5260205f2001015460301c90565b6042906123d36120c4565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161038e93916113f2936128fc565b73ffffffffffffffffffffffffffffffffffffffff16908115611d575773ffffffffffffffffffffffffffffffffffffffff8116928315611d2b57806124a87f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b81156124bf570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561038e5780600170010000000000000000000000000000000083101561261f575b6125c56125bb6125b16125a761259d6125936125826125cc9760048a680100000000000000006125d19c1015612612575b640100000000811015612605575b620100008110156125f8575b6101008110156125eb575b60108110156125de575b10156125d6575b60030260011c90565b61258c818b6124b5565b0160011c90565b61258c818a6124b5565b61258c81896124b5565b61258c81886124b5565b61258c81876124b5565b61258c81866124b5565b80936124b5565b821190565b900390565b60011b612579565b60041c9160021b91612572565b60081c9160041b91612568565b60101c9160081b9161255d565b60201c9160101b91612551565b60401c9160201b91612543565b50506125d16125cc6125c56125bb6125b16125a761259d6125936125826126468a60801c90565b98506801000000000000000097506125129650505050505050565b91905b8382106126715750505090565b9091928083169080841860011c8201809211610e0757845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146126b35750925b9190612664565b9392506126bf90612243565b916126ac565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612843575b61270d575b5050505050565b816127c0575b505082612722575b8080612706565b6127b561279c7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361279661279079ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612ad6565b90612baa565b6040805192851683529316602082015291829190820190565b0390a25f808061271b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff61283961279c61282a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b61283388612ad6565b90612b46565b0390a25f80612713565b50831515612701565b60ff81146128ab5760ff811690601f82116128835760405191612870604084610e88565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161038e816128be816005611b0e565b0382610e88565b60ff81146128e95760ff811690601f82116128835760405191612870604084610e88565b5060405161038e816128be816006611b0e565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161298b579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612980575f5173ffffffffffffffffffffffffffffffffffffffff81161561297657905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600411156129a057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6129d681612996565b806129df575050565b6129e881612996565b60018103612a18577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612a2181612996565b60028103612a5557507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612a61600392612996565b14612a695750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612aa9575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612b165779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612b50436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612b768561239f565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b9091565b90612bb4436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612bda8561239f565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b612c13436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c3a600a61239f565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b612c74436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c9b600a61239f565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b9073ffffffffffffffffffffffffffffffffffffffff610ed892612cf261206d84612ad6565b5050168015612d4c575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b612d5861200883612ad6565b5050612cfc565b9073ffffffffffffffffffffffffffffffffffffffff80610ed8949316918215612deb575b16908115612dd8575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906126c5565b612de461200884612ad6565b5050612d8d565b612df761206d85612ad6565b5050612d84565b805468010000000000000000811015610e8357612e2091600182018155612a94565b612e655781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612f8757612ea8612eb391612235565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612f5f57879303612f185750612f1492509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612f1491612f38612f2a610ec9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612dfe565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612fbf91612f98612f2a610ec9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612dfe565b5f919056fea264697066735822122063652100b55bf9784d0ea2a4c1e8853b70bcd916398fa5a438bd9f71b717a9cf64736f6c634300081c0033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 8453;
        readonly type: "clanker_v3_1";
        readonly address: "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382";
        readonly related: {
            locker: "0x33e2Eda238edcF470309b8c6D228986A1204c8f9";
            vault: "0x42A95190B4088C88Dd904d930c79deC1158bF09D";
        };
    };
    readonly clanker_v3_1_monadTestnet: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorReward";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidInterfaceInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidTick";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidVaultConfiguration";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ZeroTeamRewardRecipient";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldClankerDeployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newClankerDeployer";
                readonly type: "address";
            }];
            readonly name: "ClankerDeployerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldLocker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "LiquidityLockerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "creatorAdmin";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "interfaceAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "creatorRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "interfaceRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTickIfToken0IsNewToken";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "metadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amountTokensBought";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "vaultDuration";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint8";
                readonly name: "vaultPercentage";
                readonly type: "uint8";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldVault";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "VaultUpdated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_CREATOR_REWARD";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_TICK";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_VAULT_PERCENTAGE";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "POOL_FEE";
            readonly outputs: readonly [{
                readonly internalType: "uint24";
                readonly name: "";
                readonly type: "uint24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TICK_SPACING";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimRewards";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "teamRewardRecipient";
                readonly type: "address";
            }];
            readonly name: "deployTokenWithCustomTeamRewardRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "getTokensDeployedByUser";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "positionId";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo[]";
                readonly name: "";
                readonly type: "tuple[]";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "weth_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "liquidityLocker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "vault_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILpLockerv2";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "contract ISwapRouter";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly name: "tokensDeployedByUsers";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "updateVault";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "vault";
            readonly outputs: readonly [{
                readonly internalType: "contract IClankerVault";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x61016060405234610141576140a2803803809161001b82610159565b610160396101008161016001911261014157610160516001600160401b038111610141578161004d91610160016101b9565b610180516001600160401b038111610141578261006d91610160016101b9565b6101a05161007c6101c061020e565b6101e0516001600160401b038111610141578561009c91610160016101b9565b610200519091906001600160401b03811161014157866100bf91610160016101b9565b610220519093906001600160401b038111610141576100f0976100e591610160016101b9565b946102405196610669565b604051612ffa908161106882396080518161210a015260a051816121c7015260c051816120db015260e051816121590152610100518161217f01526101205181610bf701526101405181610c200152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610160601f91909101601f19168101906001600160401b0382119082101761018057604052565b610145565b601f909101601f19168101906001600160401b0382119082101761018057604052565b604051906101b7604083610185565b565b81601f82011215610141578051906001600160401b03821161018057604051926101ed601f8401601f191660200185610185565b8284526020838301011161014157815f9260208093018386015e8301015290565b51906001600160a01b038216820361014157565b90600182811c92168015610250575b602083101461023c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610231565b601f8111610266575050565b60035f5260205f20906020601f840160051c830193106102a0575b601f0160051c01905b818110610295575050565b5f815560010161028a565b9091508190610281565b601f82116102b757505050565b5f5260205f20906020601f840160051c830193106102ef575b601f0160051c01905b8181106102e4575050565b5f81556001016102d9565b90915081906102d0565b80519091906001600160401b038111610180576103228161031b600454610222565b60046102aa565b602092601f821160011461036257610352929382915f92610357575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061033e565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103c657508360019596106103ae575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103a3565b91926020600181928685015181550194019201610390565b80519091906001600160401b0381116101805761040781610400600e54610222565b600e6102aa565b602092601f821160011461043b57610436929382915f926103575750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b86811061049f5750836001959610610487575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061047c565b91926020600181928685015181550194019201610469565b80519091906001600160401b038111610180576104e0816104d9600c54610222565b600c6102aa565b602092601f82116001146105145761050f929382915f926103575750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105785750836001959610610560575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610555565b91926020600181928685015181550194019201610542565b80519091906001600160401b038111610180576105b9816105b2600d54610222565b600d6102aa565b602092601f82116001146105ed576105e8929382915f926103575750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b8681106106515750836001959610610639575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061062e565b9192602060018192868501518155019401920161061b565b969594939291966040519061067f604083610185565b60018252603160f81b6020830190815281519093906001600160401b038111610180576106b6816106b1600354610222565b61025a565b6020601f821160011461078f5793610762936107026107719b9a98946106fa856107679a9661076c9d9a5f91610784575b508160011b915f199060031b1c19161790565b6003556102f9565b61070b816108d2565b61012052610718826109c7565b610140526020815191012060e052519020610100524660a052610739610ab9565b6080523060c052600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6103de565b6104b7565b610590565b461461077a5750565b6101b79033610826565b90508501515f6106e7565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061080e57506107719b9a989460018561076c9c999561076299956107679c9861070296106107f6575b5050811b016003556102f9565b8601515f1960f88460031b161c191690555f806107e9565b9192602060018192868a0151815501940192016107bd565b91906001600160a01b03831680156108bf576002548281018091116108ba576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108a357506101b7929350610b96565b630e58ae9360e11b5f52600485905260245260445ffd5b610b82565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f146108ed5750906108ea90610b17565b90565b6001600160401b038111610180576109118161090a600554610222565b60056102aa565b602092601f821160011461094857610940929382915f926103575750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109af5750836001959610610997575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f8080610989565b91926020600181928685015181550194019201610976565b908151602081105f146109df5750906108ea90610b17565b6001600160401b03811161018057610a03816109fc600654610222565b60066102aa565b602092601f8211600114610a3a57610a32929382915f926103575750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610aa15750836001959610610a89575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a7b565b91926020600181928685015181550194019201610a68565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b1160c082610185565b51902090565b601f815111610b42576020815191015160208210610b33571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610ba081610c95565b9165ffffffffffff4311610c7d57600a5480610c475750610bda610bca6101b7945f5b600161100b565b65ffffffffffff4316600a610f35565b50506001600160a01b03168015610c2f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dc4565b610c40610c3b83610c95565b610cc6565b5050610bec565b92835f198101116108ba57600a5f525f5160206140625f395f51905f52909301546101b793610bda91610bca919060301c610bc3565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610caf576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c7d57600a5480610cf05750610bca610cec915f5b600261100b565b9091565b805f198101116108ba57600a5f525f5160206140625f395f51905f520154610cec91610bca9160301c610ce5565b65ffffffffffff4311610c7d57805480610d525750610d42610cec925f600261100b565b9065ffffffffffff431690610f35565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610ce5565b65ffffffffffff4311610c7d57805480610d9d5750610d42610cec925f600161100b565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610bc3565b6001600160a01b03808316939291908116908185141580610eb7575b610dec575b5050505050565b81610e5d575b505082610e01575b8080610de5565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5291610e3a91610e349091610c95565b90610d79565b604080516001600160d01b039384168152919092166020820152a25f8080610dfa565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5290610e9590610e8f86610c95565b90610d1e565b604080516001600160d01b039384168152919092166020820152a25f80610df2565b50831515610de0565b5f198101919082116108ba57565b908154680100000000000000008110156101805760018101808455811015610f21575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610fe157610f4c610f5791610ec0565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fd257879303610f9e5750610f9a92509065ffffffffffff82549181199060301b169116179055565b9190565b915050610f9a91610fbe610fb06101a8565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ece565b632520601d60e01b5f5260045ffd5b509061100691610ff2610fb06101a8565b6001600160d01b0385166020830152610ece565b5f9190565b9190918060011461104d5760021461103157634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108ba5790565b506001600160d01b03918216908216019081116108ba579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461025457806306fdde031461024f578063095ea7b31461024a57806318160ddd1461024557806318bf50771461024057806323b872dd1461023b5780632b8c49e314610236578063313ce567146102315780633644e5151461022c578063392f37e9146102275780633a46b1a81461022257806342966c681461021d5780634bf5d7e914610218578063587cde1e146102135780635c19a95c1461020e5780636fcfff451461020957806370a082311461020457806379cc6790146101ff5780637ecebe00146101fa57806380007e83146101f557806384b0196e146101f05780638e539e8c146101eb578063918b5be1146101e657806391ddadf4146101e157806395d89b41146101dc5780639ab24eb0146101d7578063a9059cbb146101d2578063aba83150146101cd578063c3cda520146101c8578063d0496d6a146101c3578063d505accf146101be578063dd62ed3e146101b9578063eb3d68e7146101b4578063f1127ed8146101af578063f851a440146101aa5763fc735e99146101a5575f80fd5b6119de565b6119ab565b6118d5565b611761565b6116ee565b611553565b6114ae565b611340565b61127b565b611255565b6111ed565b611148565b61111d565b610f70565b610d16565b610bdf565b610bbd565b610b78565b610b48565b610b06565b610a7e565b610a5c565b610a01565b610958565b610939565b610871565b6107cc565b6107aa565b61078f565b610709565b6106d1565b61051d565b610500565b6104cf565b610391565b34610336576020600319360112610336576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610336577f3333199400000000000000000000000000000000000000000000000000000000811490811561030c575b81156102e2575b81156102d9575b506040519015158152602090f35b9050155f6102cb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102c4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102bd565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061038e92818152019061033a565b90565b34610336575f600319360112610336576040515f6003546103b181611abd565b808452906001811690811561044757506001146103e9575b6103e5836103d981850382610e88565b6040519182918261037d565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061042d575090915081016020016103d96103c9565b919260018160209254838588010152019101909291610415565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103d990506103c9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b34610336576040600319360112610336576104f56104eb610489565b6024359033612418565b602060405160018152f35b34610336575f600319360112610336576020600254604051908152f35b3461033657604060031936011261033657610536610489565b6024359073420000000000000000000000000000000000002833036106a95773ffffffffffffffffffffffffffffffffffffffff811690811561067d5761058761058284600254612251565b600255565b6105ae8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef604051806105ea88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161064f5750508261061f91612ccc565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336576060600319360112610336576104f56106ed610489565b6106f56104ac565b60443591610704833383611c66565b611dcb565b3461033657604060031936011261033657610722610489565b60243573420000000000000000000000000000000000002833036106a95761074a8183611f3e565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610336575f60031936011261033657602060405160128152f35b34610336575f6003193601126103365760206107c46120c4565b604051908152f35b34610336575f600319360112610336576040515f600c546107ec81611abd565b80845290600181169081156104475750600114610813576103e5836103d981850382610e88565b600c5f9081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7939250905b808210610857575090915081016020016103d96103c9565b91926001816020925483858801015201910190929161083f565b346103365760406003193601126103365761088a610489565b60243565ffffffffffff61089d436121ed565b168082101561090a576103e579ffffffffffffffffffffffffffffffffffffffffffffffffffff6108f98473ffffffffffffffffffffffffffffffffffffffff87165f5260096020526108f360405f20916121ed565b9061225e565b604051911681529081906020820190565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346103365760206003193601126103365761095660043533611f3e565b005b34610336575f60031936011261033657610971436121ed565b65ffffffffffff80610982436121ed565b169116036109d9576103e560405161099b604082610e88565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061033a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610a2f610489565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461033657602060031936011261033657610956610a78610489565b336122ef565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610aac610489565b165f52600960205260405f205463ffffffff8111610ad65760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103365760206003193601126103365760206107c4610b24610489565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b3461033657604060031936011261033657610956610b64610489565b60243590610b73823383611c66565b611f3e565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610ba6610489565b165f526007602052602060405f2054604051908152f35b34610336575f60031936011261033657602060ff600f54166040519015158152f35b34610336575f60031936011261033657610cbd610c1b7f000000000000000000000000000000000000000000000000000000000000000061284c565b610c447f00000000000000000000000000000000000000000000000000000000000000006128c5565b6020604051610c538282610e88565b5f815281610ccb818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061033a565b90878203604089015261033a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610cff57505050500390f35b835185528695509381019392810192600101610cf0565b346103365760206003193601126103365760043565ffffffffffff610d3a436121ed565b169081811015610e0c57610d4d906121ed565b600a54905f829160058411610db3575b610d699350600a612661565b80610d97575060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b610da2602091612235565b600a5f52815f20015460301c610d73565b9192610dbe816124ec565b8103908111610e0757610d6993600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610df5575091610d5d565b929150610e0190612243565b90610d5d565b611a90565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e8357604052565b610e3a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e8357604052565b60405190610ed8604083610e88565b565b60206003198201126103365760043567ffffffffffffffff811161033657816023820112156103365780600401359067ffffffffffffffff8211610e835760405192610f4e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e88565b8284526024838301011161033657815f92602460209301838601378301015290565b3461033657610f7e36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e8357610fc281610fbd600c54611abd565b611bae565b6020601f8211600114611032579161101382611022937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611027575b505f198260011b9260031b1c19161790565b600c556040519182918261037d565b0390a1005b90508301515f611001565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110dd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261102296106110c5575b5050811b01600c556103d9565b8401515f1960f88460031b161c191690555f806110b8565b9192602060018192868901518155019401920161107e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336575f600319360112610336576020611138436121ed565b65ffffffffffff60405191168152f35b34610336575f600319360112610336576040515f60045461116881611abd565b8084529060018116908115610447575060011461118f576103e5836103d981850382610e88565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111d3575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916111bb565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff61121b610489565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61124c60405f2061239f565b16604051908152f35b34610336576040600319360112610336576104f5611271610489565b6024359033611dcb565b34610336575f600319360112610336576040515f600e5461129b81611abd565b808452906001811690811561044757506001146112c2576103e5836103d981850382610e88565b600e5f9081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210611306575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916112ee565b6064359060ff8216820361033657565b6084359060ff8216820361033657565b346103365760c060031936011261033657611359610489565b60243590604435611368611320565b6084359060a4359280421161148357916113fb93916113ed6113f29460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a60608301526080820152608081526113e560a082610e88565b5190206123c8565b6128fc565b909291926129cd565b61142c8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361143d5761095692506122ef565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610336575f600319360112610336576040515f600d546114ce81611abd565b808452906001811690811561044757506001146114f5576103e5836103d981850382610e88565b600d5f9081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b808210611539575090915081016020016103d96103c9565b919260018160209254838588010152019101909291611521565b346103365760e06003193601126103365761156c610489565b6115746104ac565b6044359060643592611584611330565b60a43560c435908642116116c2576116549261164f6115ca8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c081526113e560e082610e88565b612409565b9373ffffffffffffffffffffffffffffffffffffffff85160361167b576109569350612418565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461033657604060031936011261033657602061175861170c610489565b73ffffffffffffffffffffffffffffffffffffffff6117296104ac565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b346103365761176f36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e83576117b3816117ae600e54611abd565b611bfe565b6020601f8211600114611812579161180382611022937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161102757505f198260011b9260031b1c19161790565b600e556040519182918261037d565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106118bd5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b5552421694926001928261102296106118a5575b5050811b01600e556103d9565b8401515f1960f88460031b161c191690555f80611898565b9192602060018192868901518155019401920161185e565b34610336576040600319360112610336576118ee610489565b6024359063ffffffff82168203610336576103e59173ffffffffffffffffffffffffffffffffffffffff61194892611924611c4e565b5061192d611c4e565b50165f52600960205260405f20611942611c4e565b50612a94565b506040519061195682610e67565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610336575f60031936011261033657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610336575f6003193601126103365773ffffffffffffffffffffffffffffffffffffffff600b541633036110f557600f5460ff8116611a68577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611b04575b6020831014611ad757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611acc565b5f9291815491611b1d83611abd565b8083529260018116908115611b725750600114611b3957505050565b5f9081526020812093945091925b838310611b58575060209250010190565b600181602092949394548385870101520191019190611b47565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611bba575050565b600c5f5260205f20906020601f840160051c83019310611bf4575b601f0160051c01905b818110611be9575050565b5f8155600101611bde565b9091508190611bd5565b601f8111611c0a575050565b600e5f5260205f20906020601f840160051c83019310611c44575b601f0160051c01905b818110611c39575050565b5f8155600101611c2e565b9091508190611c25565b60405190611c5b82610e67565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611cb48360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198103611cc4575b50505050565b818110611d83578215611d575773ffffffffffffffffffffffffffffffffffffffff841615611d2b57611d21925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611cbe565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611f125773ffffffffffffffffffffffffffffffffffffffff8216801561067d57611e308273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611ec65784610ed8969703611e678473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611e8f8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612d5f565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff8116908115611f1257611f838173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106120795790611fbb84610ed8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612061575b61200d61200883612ad6565b612c6b565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b61207261206d83612ad6565b612c0a565b5050611ffc565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163014806121c4575b1561212c577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526121be60c082610e88565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612103565b65ffffffffffff81116122055765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b905f198201918211610e0757565b9060018201809211610e0757565b91908201809211610e0757565b908154905f82916005841161229c575b612279935084612661565b806122845750505f90565b61228d90612235565b905f5260205f20015460301c90565b91926122a7816124ec565b8103908111610e075761227993855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146122dd57509161226e565b9291506122e990612243565b9061226e565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ed8969416946123999390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916126c5565b8054806123ac5750505f90565b805f19810111610e07575f19915f5260205f2001015460301c90565b6042906123d36120c4565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161038e93916113f2936128fc565b73ffffffffffffffffffffffffffffffffffffffff16908115611d575773ffffffffffffffffffffffffffffffffffffffff8116928315611d2b57806124a87f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b81156124bf570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561038e5780600170010000000000000000000000000000000083101561261f575b6125c56125bb6125b16125a761259d6125936125826125cc9760048a680100000000000000006125d19c1015612612575b640100000000811015612605575b620100008110156125f8575b6101008110156125eb575b60108110156125de575b10156125d6575b60030260011c90565b61258c818b6124b5565b0160011c90565b61258c818a6124b5565b61258c81896124b5565b61258c81886124b5565b61258c81876124b5565b61258c81866124b5565b80936124b5565b821190565b900390565b60011b612579565b60041c9160021b91612572565b60081c9160041b91612568565b60101c9160081b9161255d565b60201c9160101b91612551565b60401c9160201b91612543565b50506125d16125cc6125c56125bb6125b16125a761259d6125936125826126468a60801c90565b98506801000000000000000097506125129650505050505050565b91905b8382106126715750505090565b9091928083169080841860011c8201809211610e0757845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146126b35750925b9190612664565b9392506126bf90612243565b916126ac565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612843575b61270d575b5050505050565b816127c0575b505082612722575b8080612706565b6127b561279c7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361279661279079ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612ad6565b90612baa565b6040805192851683529316602082015291829190820190565b0390a25f808061271b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff61283961279c61282a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b61283388612ad6565b90612b46565b0390a25f80612713565b50831515612701565b60ff81146128ab5760ff811690601f82116128835760405191612870604084610e88565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161038e816128be816005611b0e565b0382610e88565b60ff81146128e95760ff811690601f82116128835760405191612870604084610e88565b5060405161038e816128be816006611b0e565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161298b579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612980575f5173ffffffffffffffffffffffffffffffffffffffff81161561297657905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600411156129a057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6129d681612996565b806129df575050565b6129e881612996565b60018103612a18577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612a2181612996565b60028103612a5557507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612a61600392612996565b14612a695750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612aa9575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612b165779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612b50436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612b768561239f565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b9091565b90612bb4436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612bda8561239f565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b612c13436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c3a600a61239f565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b612c74436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c9b600a61239f565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b9073ffffffffffffffffffffffffffffffffffffffff610ed892612cf261206d84612ad6565b5050168015612d4c575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b612d5861200883612ad6565b5050612cfc565b9073ffffffffffffffffffffffffffffffffffffffff80610ed8949316918215612deb575b16908115612dd8575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906126c5565b612de461200884612ad6565b5050612d8d565b612df761206d85612ad6565b5050612d84565b805468010000000000000000811015610e8357612e2091600182018155612a94565b612e655781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612f8757612ea8612eb391612235565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612f5f57879303612f185750612f1492509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612f1491612f38612f2a610ec9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612dfe565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612fbf91612f98612f2a610ec9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612dfe565b5f919056fea26469706673582212204e1de4ea938b928df16b4d797528b3228dc67d526470a44525dd87cdb1d41bf164736f6c634300081c0033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 10143;
        readonly type: "clanker_v3_1";
        readonly address: "0xA0C65813DD1Cde7092922a57548Ec1eD25994318";
        readonly related: {
            locker: "0xcd89C55d36097a64f777066A6cc8F2c31B7541F7";
            vault: "0x9505A57Bf782058890f078bE301575cD75045a9b";
        };
    };
    readonly clanker_v3_1_abstract: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidCreatorReward";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidInterfaceInfo";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidTick";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidVaultConfiguration";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ZeroTeamRewardRecipient";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldClankerDeployer";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newClankerDeployer";
                readonly type: "address";
            }];
            readonly name: "ClankerDeployerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldLocker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "LiquidityLockerUpdated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "creatorAdmin";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "interfaceAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "creatorRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "interfaceRewardRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTickIfToken0IsNewToken";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "metadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amountTokensBought";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "vaultDuration";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint8";
                readonly name: "vaultPercentage";
                readonly type: "uint8";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldVault";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "VaultUpdated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_CREATOR_REWARD";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_TICK";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_VAULT_PERCENTAGE";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "POOL_FEE";
            readonly outputs: readonly [{
                readonly internalType: "uint24";
                readonly name: "";
                readonly type: "uint24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TICK_SPACING";
            readonly outputs: readonly [{
                readonly internalType: "int24";
                readonly name: "";
                readonly type: "int24";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimRewards";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint8";
                        readonly name: "vaultPercentage";
                        readonly type: "uint8";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "vaultDuration";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.VaultConfig";
                    readonly name: "vaultConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsNewToken";
                        readonly type: "int24";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint24";
                        readonly name: "pairedTokenPoolFee";
                        readonly type: "uint24";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "pairedTokenSwapAmountOutMinimum";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.InitialBuyConfig";
                    readonly name: "initialBuyConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "uint256";
                        readonly name: "creatorReward";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "creatorRewardRecipient";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "interfaceRewardRecipient";
                        readonly type: "address";
                    }];
                    readonly internalType: "struct IClanker.RewardsConfig";
                    readonly name: "rewardsConfig";
                    readonly type: "tuple";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "teamRewardRecipient";
                readonly type: "address";
            }];
            readonly name: "deployTokenWithCustomTeamRewardRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }, {
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "user";
                readonly type: "address";
            }];
            readonly name: "getTokensDeployedByUser";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "positionId";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo[]";
                readonly name: "";
                readonly type: "tuple[]";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "uniswapV3Factory_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "positionManager_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "swapRouter_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "weth_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "liquidityLocker_";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "vault_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "liquidityLocker";
            readonly outputs: readonly [{
                readonly internalType: "contract ILpLockerv2";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "positionManager";
            readonly outputs: readonly [{
                readonly internalType: "contract INonfungiblePositionManager";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "isAdmin";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "swapRouter";
            readonly outputs: readonly [{
                readonly internalType: "contract ISwapRouter";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly name: "tokensDeployedByUsers";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "positionId";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "uniswapV3Factory";
            readonly outputs: readonly [{
                readonly internalType: "contract IUniswapV3Factory";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newLocker";
                readonly type: "address";
            }];
            readonly name: "updateLiquidityLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newVault";
                readonly type: "address";
            }];
            readonly name: "updateVault";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "vault";
            readonly outputs: readonly [{
                readonly internalType: "contract IClankerVault";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "weth";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101606040523461014157613da3803803809161001b82610159565b610160396101008161016001911261014157610160516001600160401b038111610141578161004d91610160016101b9565b610180516001600160401b038111610141578261006d91610160016101b9565b6101a05161007c6101c061020e565b6101e0516001600160401b038111610141578561009c91610160016101b9565b610200519091906001600160401b03811161014157866100bf91610160016101b9565b610220519093906001600160401b038111610141576100f0976100e591610160016101b9565b946102405196610669565b604051612cfb9081611068823960805181611d25015260a05181611de2015260c05181611cf6015260e05181611d7401526101005181611d9a0152610120518161096c015261014051816109950152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610160601f91909101601f19168101906001600160401b0382119082101761018057604052565b610145565b601f909101601f19168101906001600160401b0382119082101761018057604052565b604051906101b7604083610185565b565b81601f82011215610141578051906001600160401b03821161018057604051926101ed601f8401601f191660200185610185565b8284526020838301011161014157815f9260208093018386015e8301015290565b51906001600160a01b038216820361014157565b90600182811c92168015610250575b602083101461023c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610231565b601f8111610266575050565b60035f5260205f20906020601f840160051c830193106102a0575b601f0160051c01905b818110610295575050565b5f815560010161028a565b9091508190610281565b601f82116102b757505050565b5f5260205f20906020601f840160051c830193106102ef575b601f0160051c01905b8181106102e4575050565b5f81556001016102d9565b90915081906102d0565b80519091906001600160401b038111610180576103228161031b600454610222565b60046102aa565b602092601f821160011461036257610352929382915f92610357575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061033e565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103c657508360019596106103ae575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103a3565b91926020600181928685015181550194019201610390565b80519091906001600160401b0381116101805761040781610400600e54610222565b600e6102aa565b602092601f821160011461043b57610436929382915f926103575750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b86811061049f5750836001959610610487575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061047c565b91926020600181928685015181550194019201610469565b80519091906001600160401b038111610180576104e0816104d9600c54610222565b600c6102aa565b602092601f82116001146105145761050f929382915f926103575750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105785750836001959610610560575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610555565b91926020600181928685015181550194019201610542565b80519091906001600160401b038111610180576105b9816105b2600d54610222565b600d6102aa565b602092601f82116001146105ed576105e8929382915f926103575750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b8681106106515750836001959610610639575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061062e565b9192602060018192868501518155019401920161061b565b969594939291966040519061067f604083610185565b60018252603160f81b6020830190815281519093906001600160401b038111610180576106b6816106b1600354610222565b61025a565b6020601f821160011461078f5793610762936107026107719b9a98946106fa856107679a9661076c9d9a5f91610784575b508160011b915f199060031b1c19161790565b6003556102f9565b61070b816108d2565b61012052610718826109c7565b610140526020815191012060e052519020610100524660a052610739610ab9565b6080523060c052600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6103de565b6104b7565b610590565b461461077a5750565b6101b79033610826565b90508501515f6106e7565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061080e57506107719b9a989460018561076c9c999561076299956107679c9861070296106107f6575b5050811b016003556102f9565b8601515f1960f88460031b161c191690555f806107e9565b9192602060018192868a0151815501940192016107bd565b91906001600160a01b03831680156108bf576002548281018091116108ba576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108a357506101b7929350610b96565b630e58ae9360e11b5f52600485905260245260445ffd5b610b82565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f146108ed5750906108ea90610b17565b90565b6001600160401b038111610180576109118161090a600554610222565b60056102aa565b602092601f821160011461094857610940929382915f926103575750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109af5750836001959610610997575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f8080610989565b91926020600181928685015181550194019201610976565b908151602081105f146109df5750906108ea90610b17565b6001600160401b03811161018057610a03816109fc600654610222565b60066102aa565b602092601f8211600114610a3a57610a32929382915f926103575750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610aa15750836001959610610a89575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a7b565b91926020600181928685015181550194019201610a68565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b1160c082610185565b51902090565b601f815111610b42576020815191015160208210610b33571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610ba081610c95565b9165ffffffffffff4311610c7d57600a5480610c475750610bda610bca6101b7945f5b600161100b565b65ffffffffffff4316600a610f35565b50506001600160a01b03168015610c2f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dc4565b610c40610c3b83610c95565b610cc6565b5050610bec565b92835f198101116108ba57600a5f525f516020613d635f395f51905f52909301546101b793610bda91610bca919060301c610bc3565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610caf576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c7d57600a5480610cf05750610bca610cec915f5b600261100b565b9091565b805f198101116108ba57600a5f525f516020613d635f395f51905f520154610cec91610bca9160301c610ce5565b65ffffffffffff4311610c7d57805480610d525750610d42610cec925f600261100b565b9065ffffffffffff431690610f35565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610ce5565b65ffffffffffff4311610c7d57805480610d9d5750610d42610cec925f600161100b565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610bc3565b6001600160a01b03808316939291908116908185141580610eb7575b610dec575b5050505050565b81610e5d575b505082610e01575b8080610de5565b6001600160a01b03165f9081526009602052604090205f516020613d835f395f51905f5291610e3a91610e349091610c95565b90610d79565b604080516001600160d01b039384168152919092166020820152a25f8080610dfa565b6001600160a01b03165f9081526009602052604090205f516020613d835f395f51905f5290610e9590610e8f86610c95565b90610d1e565b604080516001600160d01b039384168152919092166020820152a25f80610df2565b50831515610de0565b5f198101919082116108ba57565b908154680100000000000000008110156101805760018101808455811015610f21575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610fe157610f4c610f5791610ec0565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fd257879303610f9e5750610f9a92509065ffffffffffff82549181199060301b169116179055565b9190565b915050610f9a91610fbe610fb06101a8565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ece565b632520601d60e01b5f5260045ffd5b509061100691610ff2610fb06101a8565b6001600160d01b0385166020830152610ece565b5f9190565b9190918060011461104d5760021461103157634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108ba5790565b506001600160d01b03918216908216019081116108ba579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461023457806306fdde031461022f578063095ea7b31461022a57806318160ddd1461022557806323b872dd14610220578063313ce5671461021b5780633644e51514610216578063392f37e9146102115780633a46b1a81461020c57806342966c68146102075780634bf5d7e914610202578063587cde1e146101fd5780635c19a95c146101f85780636fcfff45146101f357806370a08231146101ee57806379cc6790146101e95780637ecebe00146101e457806380007e83146101df57806384b0196e146101da5780638e539e8c146101d5578063918b5be1146101d057806391ddadf4146101cb57806395d89b41146101c65780639ab24eb0146101c1578063a9059cbb146101bc578063aba83150146101b7578063c3cda520146101b2578063d0496d6a146101ad578063d505accf146101a8578063dd62ed3e146101a3578063eb3d68e71461019e578063f1127ed814610199578063f851a440146101945763fc735e991461018f575f80fd5b611753565b611720565b61164a565b6114d6565b611463565b6112c8565b611223565b6110b5565b610ff0565b610fca565b610f62565b610ebd565b610e92565b610ce5565b610a8b565b610954565b610932565b6108ed565b6108bd565b61087b565b6107f3565b6107d1565b610776565b6106cd565b6106ae565b6105e6565b610541565b61051f565b610504565b6104cc565b6104af565b61047e565b610340565b346102e55760206003193601126102e5576004357fffffffff0000000000000000000000000000000000000000000000000000000081168091036102e557807f36372b0700000000000000000000000000000000000000000000000000000000602092149081156102bb575b81156102b2575b506040519015158152f35b9050155f6102a7565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102a0565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061033d9281815201906102e9565b90565b346102e5575f6003193601126102e5576040515f60035461036081611832565b80845290600181169081156103f65750600114610398575b6103948361038881850382610bfd565b6040519182918261032c565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b8082106103dc57509091508101602001610388610378565b9192600181602092548385880101520191019092916103c4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103889050610378565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102e557565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102e557565b346102e55760406003193601126102e5576104a461049a610438565b60243590336121ac565b602060405160018152f35b346102e5575f6003193601126102e5576020600254604051908152f35b346102e55760606003193601126102e5576104a46104e8610438565b6104f061045b565b604435916104ff8333836119db565b611b40565b346102e5575f6003193601126102e557602060405160128152f35b346102e5575f6003193601126102e5576020610539611cdf565b604051908152f35b346102e5575f6003193601126102e5576040515f600c5461056181611832565b80845290600181169081156103f65750600114610588576103948361038881850382610bfd565b600c5f9081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7939250905b8082106105cc57509091508101602001610388610378565b9192600181602092548385880101520191019092916105b4565b346102e55760406003193601126102e5576105ff610438565b60243565ffffffffffff61061243611e08565b168082101561067f5761039479ffffffffffffffffffffffffffffffffffffffffffffffffffff61066e8473ffffffffffffffffffffffffffffffffffffffff87165f52600960205261066860405f2091611e08565b90611e6c565b604051911681529081906020820190565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346102e55760206003193601126102e5576106cb60043533611efd565b005b346102e5575f6003193601126102e5576106e643611e08565b65ffffffffffff806106f743611e08565b1691160361074e57610394604051610710604082610bfd565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c7400000060208201526040519182916020835260208301906102e9565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e55760206003193601126102e55773ffffffffffffffffffffffffffffffffffffffff6107a4610438565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346102e55760206003193601126102e5576106cb6107ed610438565b33612083565b346102e55760206003193601126102e55773ffffffffffffffffffffffffffffffffffffffff610821610438565b165f52600960205260405f205463ffffffff811161084b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346102e55760206003193601126102e5576020610539610899610438565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b346102e55760406003193601126102e5576106cb6108d9610438565b602435906108e88233836119db565b611efd565b346102e55760206003193601126102e55773ffffffffffffffffffffffffffffffffffffffff61091b610438565b165f526007602052602060405f2054604051908152f35b346102e5575f6003193601126102e557602060ff600f54166040519015158152f35b346102e5575f6003193601126102e557610a326109907f00000000000000000000000000000000000000000000000000000000000000006125e0565b6109b97f0000000000000000000000000000000000000000000000000000000000000000612659565b60206040516109c88282610bfd565b5f815281610a40818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906102e9565b9087820360408901526102e9565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610a7457505050500390f35b835185528695509381019392810192600101610a65565b346102e55760206003193601126102e55760043565ffffffffffff610aaf43611e08565b169081811015610b8157610ac290611e08565b600a54905f829160058411610b28575b610ade9350600a6123f5565b80610b0c575060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b610b17602091611e50565b600a5f52815f20015460301c610ae8565b9192610b3381612280565b8103908111610b7c57610ade93600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610b6a575091610ad2565b929150610b7690611e5e565b90610ad2565b611805565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610bf857604052565b610baf565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610bf857604052565b60405190610c4d604083610bfd565b565b60206003198201126102e55760043567ffffffffffffffff81116102e557816023820112156102e55780600401359067ffffffffffffffff8211610bf85760405192610cc3601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610bfd565b828452602483830101116102e557815f92602460209301838601378301015290565b346102e557610cf336610c4f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e6a57805167ffffffffffffffff8111610bf857610d3781610d32600c54611832565b611923565b6020601f8211600114610da75791610d8882610d97937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91610d9c575b505f198260011b9260031b1c19161790565b600c556040519182918261032c565b0390a1005b90508301515f610d76565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b818110610e525750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4949260019282610d979610610e3a575b5050811b01600c55610388565b8401515f1960f88460031b161c191690555f80610e2d565b91926020600181928689015181550194019201610df3565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e5575f6003193601126102e5576020610ead43611e08565b65ffffffffffff60405191168152f35b346102e5575f6003193601126102e5576040515f600454610edd81611832565b80845290600181169081156103f65750600114610f04576103948361038881850382610bfd565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210610f4857509091508101602001610388610378565b919260018160209254838588010152019101909291610f30565b346102e55760206003193601126102e55773ffffffffffffffffffffffffffffffffffffffff610f90610438565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff610fc160405f20612133565b16604051908152f35b346102e55760406003193601126102e5576104a4610fe6610438565b6024359033611b40565b346102e5575f6003193601126102e5576040515f600e5461101081611832565b80845290600181169081156103f65750600114611037576103948361038881850382610bfd565b600e5f9081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b80821061107b57509091508101602001610388610378565b919260018160209254838588010152019101909291611063565b6064359060ff821682036102e557565b6084359060ff821682036102e557565b346102e55760c06003193601126102e5576110ce610438565b602435906044356110dd611095565b6084359060a435928042116111f8579161117093916111626111679460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261115a60a082610bfd565b51902061215c565b612690565b90929192612761565b6111a18173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b8093036111b2576106cb9250612083565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346102e5575f6003193601126102e5576040515f600d5461124381611832565b80845290600181169081156103f6575060011461126a576103948361038881850382610bfd565b600d5f9081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b8082106112ae57509091508101602001610388610378565b919260018160209254838588010152019101909291611296565b346102e55760e06003193601126102e5576112e1610438565b6112e961045b565b60443590606435926112f96110a5565b60a43560c43590864211611437576113c9926113c461133f8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261115a60e082610bfd565b61219d565b9373ffffffffffffffffffffffffffffffffffffffff8516036113f0576106cb93506121ac565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346102e55760406003193601126102e55760206114cd611481610438565b73ffffffffffffffffffffffffffffffffffffffff61149e61045b565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b346102e5576114e436610c4f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e6a57805167ffffffffffffffff8111610bf85761152881611523600e54611832565b611973565b6020601f8211600114611587579161157882610d97937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f91610d9c57505f198260011b9260031b1c19161790565b600e556040519182918261032c565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106116325750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216949260019282610d97961061161a575b5050811b01600e55610388565b8401515f1960f88460031b161c191690555f8061160d565b919260206001819286890151815501940192016115d3565b346102e55760406003193601126102e557611663610438565b6024359063ffffffff821682036102e5576103949173ffffffffffffffffffffffffffffffffffffffff6116bd926116996119c3565b506116a26119c3565b50165f52600960205260405f206116b76119c3565b50612828565b50604051906116cb82610bdc565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b346102e5575f6003193601126102e557602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b346102e5575f6003193601126102e55773ffffffffffffffffffffffffffffffffffffffff600b54163303610e6a57600f5460ff81166117dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611879575b602083101461184c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611841565b5f929181549161189283611832565b80835292600181169081156118e757506001146118ae57505050565b5f9081526020812093945091925b8383106118cd575060209250010190565b6001816020929493945483858701015201910191906118bc565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f811161192f575050565b600c5f5260205f20906020601f840160051c83019310611969575b601f0160051c01905b81811061195e575050565b5f8155600101611953565b909150819061194a565b601f811161197f575050565b600e5f5260205f20906020601f840160051c830193106119b9575b601f0160051c01905b8181106119ae575050565b5f81556001016119a3565b909150819061199a565b604051906119d082610bdc565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611a298360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198103611a39575b50505050565b818110611af8578215611acc5773ffffffffffffffffffffffffffffffffffffffff841615611aa057611a96925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611a33565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611cb35773ffffffffffffffffffffffffffffffffffffffff82168015611c8757611ba58273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611c3b5784610c4d969703611bdc8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611c048473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612a60565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480611ddf575b15611d47577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611dd960c082610bfd565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611d1e565b65ffffffffffff8111611e205765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b905f198201918211610b7c57565b9060018201809211610b7c57565b908154905f829160058411611eaa575b611e879350846123f5565b80611e925750505f90565b611e9b90611e50565b905f5260205f20015460301c90565b9192611eb581612280565b8103908111610b7c57611e8793855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14611eeb575091611e7c565b929150611ef790611e5e565b90611e7c565b73ffffffffffffffffffffffffffffffffffffffff8116908115611cb357611f428173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106120385790611f7a84610c4d959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612020575b611fcc611fc78361286a565b6129ff565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff9081169116612459565b61203161202c8361286a565b61299e565b5050611fbb565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610c4d9694169461212d9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b91612459565b8054806121405750505f90565b805f19810111610b7c575f19915f5260205f2001015460301c90565b604290612167611cdf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161033d939161116793612690565b73ffffffffffffffffffffffffffffffffffffffff16908115611acc5773ffffffffffffffffffffffffffffffffffffffff8116928315611aa0578061223c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b8115612253570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561033d578060017001000000000000000000000000000000008310156123b3575b61235961234f61234561233b6123316123276123166123609760048a680100000000000000006123659c10156123a6575b640100000000811015612399575b6201000081101561238c575b61010081101561237f575b6010811015612372575b101561236a575b60030260011c90565b612320818b612249565b0160011c90565b612320818a612249565b6123208189612249565b6123208188612249565b6123208187612249565b6123208186612249565b8093612249565b821190565b900390565b60011b61230d565b60041c9160021b91612306565b60081c9160041b916122fc565b60101c9160081b916122f1565b60201c9160101b916122e5565b60401c9160201b916122d7565b505061236561236061235961234f61234561233b6123316123276123166123da8a60801c90565b98506801000000000000000097506122a69650505050505050565b91905b8382106124055750505090565b9091928083169080841860011c8201809211610b7c57845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146124475750925b91906123f8565b93925061245390611e5e565b91612440565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff81169084821415806125d7575b6124a1575b5050505050565b81612554575b5050826124b6575b808061249a565b6125496125307fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361252a61252479ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b9161286a565b9061293e565b6040805192851683529316602082015291829190820190565b0390a25f80806124af565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff6125cd6125306125be7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b6125c78861286a565b906128da565b0390a25f806124a7565b50831515612495565b60ff811461263f5760ff811690601f82116126175760405191612604604084610bfd565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161033d81612652816005611883565b0382610bfd565b60ff811461267d5760ff811690601f82116126175760405191612604604084610bfd565b5060405161033d81612652816006611883565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161271f579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612714575f5173ffffffffffffffffffffffffffffffffffffffff81161561270a57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004111561273457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61276a8161272a565b80612773575050565b61277c8161272a565b600181036127ac577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6127b58161272a565b600281036127e957507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b806127f560039261272a565b146127fd5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805482101561283d575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff81116128aa5779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b906128e443611e08565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff8061290a85612133565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610b7c5761293a92612b92565b9091565b9061294843611e08565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff8061296e85612133565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610b7c5761293a92612b92565b6129a743611e08565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff806129ce600a612133565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610b7c5761293a91600a612b92565b612a0843611e08565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612a2f600a612133565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610b7c5761293a91600a612b92565b9073ffffffffffffffffffffffffffffffffffffffff80610c4d949316918215612aec575b16908115612ad9575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f20541690612459565b612ae5611fc78461286a565b5050612a8e565b612af861202c8561286a565b5050612a85565b805468010000000000000000811015610bf857612b2191600182018155612828565b612b665781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612c8857612ba9612bb491611e50565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612c6057879303612c195750612c1592509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612c1591612c39612c2b610c3e565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612aff565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612cc091612c99612c2b610c3e565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612aff565b5f919056fea2646970667358221220c39b0d1d64a7f8a1fb34f91aa06960cd7bf2c35daf906b5a1f622bc4f8190bf764736f6c634300081c0033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 2741;
        readonly type: "clanker_v3_1";
        readonly address: "0x043ac6264F5A45c7518DC480b348Da41bdabbac2";
        readonly related: {
            locker: "0xF5eBBd10d2faF7970dBdb9E960639ABCd612c48D";
            vault: "0x858eaD172d10b3E2Fc20F9C80726a2735c7B7a4B";
        };
    };
    readonly clanker_v4: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b6040516131f7908161107e823960805181612383015260a05181612440015260c05181612354015260e051816123d2015261010051816123f801526101205181610c4c01526101405181610c7501526101605181818161072d0152818161131d0152611a750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b6142b5803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f5160206142755f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f5160206142755f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461028457806306fdde031461027f578063095ea7b31461027a57806318160ddd1461027557806318bf5077146102705780631c7b2ff41461026b57806323b872dd146102665780632b8c49e314610261578063313ce5671461025c5780633644e51514610257578063392f37e9146102525780633a46b1a81461024d57806342966c68146102485780634bf5d7e914610243578063587cde1e1461023e5780635c19a95c146102395780636fcfff451461023457806370a082311461022f57806379cc67901461022a5780637ecebe001461022557806380007e831461022057806384b0196e1461021b5780638e539e8c14610216578063918b5be11461021157806391ddadf41461020c57806395d89b41146102075780639ab24eb014610202578063a9059cbb146101fd578063aba83150146101f8578063b974b0a3146101f3578063c3cda520146101ee578063d0496d6a146101e9578063d505accf146101e4578063dd62ed3e146101df578063e2f273bd146101da578063eb3d68e7146101d5578063f1127ed8146101d0578063f851a440146101cb5763fc735e99146101c6575f80fd5b611a4e565b611a1b565b611945565b6117d1565b611730565b6116bd565b611522565b6114ff565b611391565b61128e565b61126b565b611245565b6111dd565b611138565b61110d565b610f60565b610d6b565b610c34565b610c12565b610bcd565b610b9d565b610b5b565b610ad3565b610ab1565b610a56565b6109ad565b61098e565b61088a565b61084c565b61082a565b61080f565b610789565b610751565b610701565b61054d565b610530565b6104ff565b6103c1565b34610366576020600319360112610366576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610366577f3333199400000000000000000000000000000000000000000000000000000000811490811561033c575b8115610312575b8115610309575b506040519015158152602090f35b9050155f6102fb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102f4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102ed565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206103be92818152019061036a565b90565b34610366575f600319360112610366576040515f6003546103e181611b73565b80845290600181169081156104775750600114610419575b6104158361040981850382610e78565b604051918291826103ad565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061045d575090915081016020016104096103f9565b919260018160209254838588010152019101909291610445565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061040990506103f9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b346103665760406003193601126103665761052561051b6104b9565b602435903361260a565b602060405160018152f35b34610366575f600319360112610366576020600254604051908152f35b34610366576040600319360112610366576105666104b9565b6024359073420000000000000000000000000000000000002833036106d95773ffffffffffffffffffffffffffffffffffffffff81169081156106ad576105b76105b2846002546124d4565b600255565b6105de8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061061a88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161067f5750508261064f91612eff565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f60031936011261036657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103665760606003193601126103665761052561076d6104b9565b6107756104dc565b60443591610784833383611edf565b612044565b34610366576040600319360112610366576107a26104b9565b60243573420000000000000000000000000000000000002833036106d9576107ca81836121b7565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610366575f60031936011261036657602060405160128152f35b34610366575f60031936011261036657602061084461233d565b604051908152f35b34610366575f600319360112610366576104156040516108768161086f81611bc4565b0382610e78565b60405191829160208352602083019061036a565b34610366576040600319360112610366576108a36104b9565b73ffffffffffffffffffffffffffffffffffffffff60243591165f5260096020526108d160405f2091612466565b8154905f829160058411610936575b6108eb93508461289b565b908161091b57505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b6109266020926124b8565b905f52815f20015460301c6108f7565b919261094181612726565b8103908111610989576108eb93855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146109775750916108e0565b929150610983906124c6565b906108e0565b611b46565b34610366576020600319360112610366576109ab600435336121b7565b005b34610366575f600319360112610366576109c6436126a7565b65ffffffffffff806109d7436126a7565b16911603610a2e576104156040516109f0604082610e78565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061036a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610a846104b9565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610366576020600319360112610366576109ab610acd6104b9565b336124e1565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610b016104b9565b165f52600960205260405f205463ffffffff8111610b2b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b34610366576020600319360112610366576020610844610b796104b9565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b34610366576040600319360112610366576109ab610bb96104b9565b60243590610bc8823383611edf565b6121b7565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610bfb6104b9565b165f526007602052602060405f2054604051908152f35b34610366575f60031936011261036657602060ff600f54166040519015158152f35b34610366575f60031936011261036657610d12610c707f0000000000000000000000000000000000000000000000000000000000000000612a86565b610c997f0000000000000000000000000000000000000000000000000000000000000000612af8565b6020604051610ca88282610e78565b5f815281610d20818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061036a565b90878203604089015261036a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610d5457505050500390f35b835185528695509381019392810192600101610d45565b3461036657602060031936011261036657610d87600435612466565b600a54905f829160058411610dd6575b610da39350600a61289b565b80610db457506040515f8152602090f35b610dd1610dc26020926124b8565b600a5f52825f20015460301c90565b6108f7565b9192610de181612726565b810390811161098957610da393600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610e18575091610d97565b929150610e24906124c6565b90610d97565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e7357604052565b610e2a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e7357604052565b60405190610ec8604083610e78565b565b60206003198201126103665760043567ffffffffffffffff811161036657816023820112156103665780600401359067ffffffffffffffff8211610e735760405192610f3e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e78565b8284526024838301011161036657815f92602460209301838601378301015290565b3461036657610f6e36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e7357610fb281610fad600c54611b73565b611e27565b6020601f8211600114611022579161100382611012937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611017575b505f198260011b9260031b1c19161790565b600c55604051918291826103ad565b0390a1005b90508301515f610ff1565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110cd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261101296106110b5575b5050811b01600c55610409565b8401515f1960f88460031b161c191690555f806110a8565b9192602060018192868901518155019401920161106e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f600319360112610366576020611128436126a7565b65ffffffffffff60405191168152f35b34610366575f600319360112610366576040515f60045461115881611b73565b8084529060018116908115610477575060011461117f576104158361040981850382610e78565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111c3575090915081016020016104096103f9565b9192600181602092548385880101520191019092916111ab565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff61120b6104b9565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61123c60405f20612591565b16604051908152f35b34610366576040600319360112610366576105256112616104b9565b6024359033612044565b34610366575f600319360112610366576104156040516108768161086f81611c81565b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff600b5416604051906112cf826112c881611c81565b0383610e78565b6104156040516112e28161086f81611bc4565b611363604051916112fd836112f681611d04565b0384610e78565b61135560405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a087019061036a565b90858203606087015261036a565b90838203608085015261036a565b6064359060ff8216820361036657565b6084359060ff8216820361036657565b346103665760c0600319360112610366576113aa6104b9565b602435906044356113b9611371565b6084359060a435928042116114d4579161144c939161143e6114439460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261143660a082610e78565b5190206125ba565b612b2f565b90929192612c00565b61147d8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361148e576109ab92506124e1565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610366575f600319360112610366576104156040516108768161086f81611d04565b346103665760e06003193601126103665761153b6104b9565b6115436104dc565b6044359060643592611553611381565b60a43560c43590864211611691576116239261161e6115998673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261143660e082610e78565b6125fb565b9373ffffffffffffffffffffffffffffffffffffffff85160361164a576109ab935061260a565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103665760406003193601126103665760206117276116db6104b9565b73ffffffffffffffffffffffffffffffffffffffff6116f86104dc565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610366576020600319360112610366576117496104b9565b600b5473ffffffffffffffffffffffffffffffffffffffff8116908133036110e55773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b34610366576117df36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e73576118238161181e600e54611b73565b611e77565b6020601f8211600114611882579161187382611012937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161101757505f198260011b9260031b1c19161790565b600e55604051918291826103ad565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b81811061192d5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b555242169492600192826110129610611915575b5050811b01600e55610409565b8401515f1960f88460031b161c191690555f80611908565b919260206001819286890151815501940192016118ce565b346103665760406003193601126103665761195e6104b9565b6024359063ffffffff82168203610366576104159173ffffffffffffffffffffffffffffffffffffffff6119b892611994611ec7565b5061199d611ec7565b50165f52600960205260405f206119b2611ec7565b50612cc7565b50604051906119c682610e57565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610366575f60031936011261036657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303611b1e57600f5460ff8116611af6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611bba575b6020831014611b8d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611b82565b600c545f9291611bd382611b73565b8082529160018116908115611c475750600114611bee575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b838310611c2d575060209250010190565b600181602092949394548385870101520191019190611c1c565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611c9082611b73565b8082529160018116908115611c475750600114611cab575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611cea575060209250010190565b600181602092949394548385870101520191019190611cd9565b600d545f9291611d1382611b73565b8082529160018116908115611c475750600114611d2e575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611d6d575060209250010190565b600181602092949394548385870101520191019190611d5c565b5f9291815491611d9683611b73565b8083529260018116908115611deb5750600114611db257505050565b5f9081526020812093945091925b838310611dd1575060209250010190565b600181602092949394548385870101520191019190611dc0565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611e33575050565b600c5f5260205f20906020601f840160051c83019310611e6d575b601f0160051c01905b818110611e62575050565b5f8155600101611e57565b9091508190611e4e565b601f8111611e83575050565b600e5f5260205f20906020601f840160051c83019310611ebd575b601f0160051c01905b818110611eb2575050565b5f8155600101611ea7565b9091508190611e9e565b60405190611ed482610e57565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611f2d8360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611f3d575b50505050565b818110611ffc578215611fd05773ffffffffffffffffffffffffffffffffffffffff841615611fa457611f9a925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611f37565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff841693841561218b5773ffffffffffffffffffffffffffffffffffffffff821680156106ad576120a98273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b549584871061213f5784610ec89697036120e08473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b556121088473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612f92565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff811690811561218b576121fc8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106122f2579061223484610ec8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a380156122da575b61228661228183612d09565b612e9e565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b6122eb6122e683612d09565b612e3d565b5050612275565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061243d575b156123a5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261243760c082610e78565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461237c565b65ffffffffffff612476436126a7565b168082101561248957506103be906126a7565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f19820191821161098957565b906001820180921161098957565b9190820180921161098957565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ec89694169461258b9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916128ff565b80548061259e5750505f90565b805f19810111610989575f19915f5260205f2001015460301c90565b6042906125c561233d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916103be939161144393612b2f565b73ffffffffffffffffffffffffffffffffffffffff16908115611fd05773ffffffffffffffffffffffffffffffffffffffff8116928315611fa4578061269a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116126bf5765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b81156126f9570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60018111156103be57806001700100000000000000000000000000000000831015612859575b6127ff6127f56127eb6127e16127d76127cd6127bc6128069760048a6801000000000000000061280b9c101561284c575b64010000000081101561283f575b62010000811015612832575b610100811015612825575b6010811015612818575b1015612810575b60030260011c90565b6127c6818b6126ef565b0160011c90565b6127c6818a6126ef565b6127c681896126ef565b6127c681886126ef565b6127c681876126ef565b6127c681866126ef565b80936126ef565b821190565b900390565b60011b6127b3565b60041c9160021b916127ac565b60081c9160041b916127a2565b60101c9160081b91612797565b60201c9160101b9161278b565b60401c9160201b9161277d565b505061280b6128066127ff6127f56127eb6127e16127d76127cd6127bc6128808a60801c90565b985068010000000000000000975061274c9650505050505050565b91905b8382106128ab5750505090565b9091928083169080841860011c820180921161098957845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146128ed5750925b919061289e565b9392506128f9906124c6565b916128e6565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612a7d575b612947575b5050505050565b816129fa575b50508261295c575b8080612940565b6129ef6129d67fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936129d06129ca79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612d09565b90612ddd565b6040805192851683529316602082015291829190820190565b0390a25f8080612955565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff612a736129d6612a647fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b612a6d88612d09565b90612d79565b0390a25f8061294d565b5083151561293b565b60ff8114612ae55760ff811690601f8211612abd5760405191612aaa604084610e78565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040516103be8161086f816005611d87565b60ff8114612b1c5760ff811690601f8211612abd5760405191612aaa604084610e78565b506040516103be8161086f816006611d87565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bbe579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612bb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612ba957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60041115612bd357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612c0981612bc9565b80612c12575050565b612c1b81612bc9565b60018103612c4b577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c5481612bc9565b60028103612c8857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612c94600392612bc9565b14612c9c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612cdc575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612d495779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612d83436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612da985612591565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b9091565b90612de7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e0d85612591565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b612e46436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e6d600a612591565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b612ea7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ece600a612591565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b9073ffffffffffffffffffffffffffffffffffffffff610ec892612f256122e684612d09565b5050168015612f7f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b612f8b61228183612d09565b5050612f2f565b9073ffffffffffffffffffffffffffffffffffffffff80610ec894931691821561301e575b1690811561300b575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906128ff565b61301761228184612d09565b5050612fc0565b61302a6122e685612d09565b5050612fb7565b805468010000000000000000811015610e735761305391600182018155612cc7565b6130985781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805492939280156131ba576130db6130e6916124b8565b825f5260205f200190565b8054603081901c9365ffffffffffff918216929181168084116131925787930361314b575061314792509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b9150506131479161316b61315d610eb9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152613031565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b50906131f2916131cb61315d610eb9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152613031565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 8453;
        readonly type: "clanker_v4";
        readonly address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9";
        readonly related: {
            locker: "0x63D2DfEA64b3433F4071A98665bcD7Ca14d93496";
            vault: "0x8E845EAd15737bF71904A30BdDD3aEE76d6ADF6C";
            airdrop: "0xf652B3610D75D81871bf96DB50825d9af28391E0";
            devbuy: "0x1331f0788F9c08C8F38D52c7a1152250A9dE00be";
            mevModule: "0xFdc013ce003980889cFfd66b0c8329545ae1d1E8";
            mevModuleV2: "0xebB25BB797D82CB78E1bc70406b13233c0854413";
            feeLocker: "0xF3622742b1E446D92e45E22923Ef11C2fcD55D68";
            feeStaticHook: "0xDd5EeaFf7BD481AD55Db083062b13a3cdf0A68CC";
            feeStaticHookV2: "0xb429d62f8f3bFFb98CdB9569533eA23bF0Ba28CC";
            feeDynamicHook: "0x34a45c6B61876d739400Bd71228CbcbD4F53E8cC";
            feeDynamicHookV2: "0xd60D6B218116cFd801E28F78d011a203D2b068Cc";
            presale: "0xeeBbC567C3D612f50a67820f39CDD30dcCF7E6b8";
            presaleAllowlist: "0x789c2452353eee400868E7d3e5aDD6Be0Ef4185D";
        };
    };
    readonly clanker_v4_sepolia: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b6040516131f7908161107e823960805181612383015260a05181612440015260c05181612354015260e051816123d2015261010051816123f801526101205181610c4c01526101405181610c7501526101605181818161072d0152818161131d0152611a750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b6142b5803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f5160206142755f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f5160206142755f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461028457806306fdde031461027f578063095ea7b31461027a57806318160ddd1461027557806318bf5077146102705780631c7b2ff41461026b57806323b872dd146102665780632b8c49e314610261578063313ce5671461025c5780633644e51514610257578063392f37e9146102525780633a46b1a81461024d57806342966c68146102485780634bf5d7e914610243578063587cde1e1461023e5780635c19a95c146102395780636fcfff451461023457806370a082311461022f57806379cc67901461022a5780637ecebe001461022557806380007e831461022057806384b0196e1461021b5780638e539e8c14610216578063918b5be11461021157806391ddadf41461020c57806395d89b41146102075780639ab24eb014610202578063a9059cbb146101fd578063aba83150146101f8578063b974b0a3146101f3578063c3cda520146101ee578063d0496d6a146101e9578063d505accf146101e4578063dd62ed3e146101df578063e2f273bd146101da578063eb3d68e7146101d5578063f1127ed8146101d0578063f851a440146101cb5763fc735e99146101c6575f80fd5b611a4e565b611a1b565b611945565b6117d1565b611730565b6116bd565b611522565b6114ff565b611391565b61128e565b61126b565b611245565b6111dd565b611138565b61110d565b610f60565b610d6b565b610c34565b610c12565b610bcd565b610b9d565b610b5b565b610ad3565b610ab1565b610a56565b6109ad565b61098e565b61088a565b61084c565b61082a565b61080f565b610789565b610751565b610701565b61054d565b610530565b6104ff565b6103c1565b34610366576020600319360112610366576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610366577f3333199400000000000000000000000000000000000000000000000000000000811490811561033c575b8115610312575b8115610309575b506040519015158152602090f35b9050155f6102fb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102f4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102ed565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206103be92818152019061036a565b90565b34610366575f600319360112610366576040515f6003546103e181611b73565b80845290600181169081156104775750600114610419575b6104158361040981850382610e78565b604051918291826103ad565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061045d575090915081016020016104096103f9565b919260018160209254838588010152019101909291610445565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061040990506103f9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b346103665760406003193601126103665761052561051b6104b9565b602435903361260a565b602060405160018152f35b34610366575f600319360112610366576020600254604051908152f35b34610366576040600319360112610366576105666104b9565b6024359073420000000000000000000000000000000000002833036106d95773ffffffffffffffffffffffffffffffffffffffff81169081156106ad576105b76105b2846002546124d4565b600255565b6105de8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061061a88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161067f5750508261064f91612eff565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f60031936011261036657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103665760606003193601126103665761052561076d6104b9565b6107756104dc565b60443591610784833383611edf565b612044565b34610366576040600319360112610366576107a26104b9565b60243573420000000000000000000000000000000000002833036106d9576107ca81836121b7565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610366575f60031936011261036657602060405160128152f35b34610366575f60031936011261036657602061084461233d565b604051908152f35b34610366575f600319360112610366576104156040516108768161086f81611bc4565b0382610e78565b60405191829160208352602083019061036a565b34610366576040600319360112610366576108a36104b9565b73ffffffffffffffffffffffffffffffffffffffff60243591165f5260096020526108d160405f2091612466565b8154905f829160058411610936575b6108eb93508461289b565b908161091b57505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b6109266020926124b8565b905f52815f20015460301c6108f7565b919261094181612726565b8103908111610989576108eb93855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146109775750916108e0565b929150610983906124c6565b906108e0565b611b46565b34610366576020600319360112610366576109ab600435336121b7565b005b34610366575f600319360112610366576109c6436126a7565b65ffffffffffff806109d7436126a7565b16911603610a2e576104156040516109f0604082610e78565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061036a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610a846104b9565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610366576020600319360112610366576109ab610acd6104b9565b336124e1565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610b016104b9565b165f52600960205260405f205463ffffffff8111610b2b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b34610366576020600319360112610366576020610844610b796104b9565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b34610366576040600319360112610366576109ab610bb96104b9565b60243590610bc8823383611edf565b6121b7565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610bfb6104b9565b165f526007602052602060405f2054604051908152f35b34610366575f60031936011261036657602060ff600f54166040519015158152f35b34610366575f60031936011261036657610d12610c707f0000000000000000000000000000000000000000000000000000000000000000612a86565b610c997f0000000000000000000000000000000000000000000000000000000000000000612af8565b6020604051610ca88282610e78565b5f815281610d20818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061036a565b90878203604089015261036a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610d5457505050500390f35b835185528695509381019392810192600101610d45565b3461036657602060031936011261036657610d87600435612466565b600a54905f829160058411610dd6575b610da39350600a61289b565b80610db457506040515f8152602090f35b610dd1610dc26020926124b8565b600a5f52825f20015460301c90565b6108f7565b9192610de181612726565b810390811161098957610da393600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610e18575091610d97565b929150610e24906124c6565b90610d97565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e7357604052565b610e2a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e7357604052565b60405190610ec8604083610e78565b565b60206003198201126103665760043567ffffffffffffffff811161036657816023820112156103665780600401359067ffffffffffffffff8211610e735760405192610f3e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e78565b8284526024838301011161036657815f92602460209301838601378301015290565b3461036657610f6e36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e7357610fb281610fad600c54611b73565b611e27565b6020601f8211600114611022579161100382611012937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611017575b505f198260011b9260031b1c19161790565b600c55604051918291826103ad565b0390a1005b90508301515f610ff1565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110cd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261101296106110b5575b5050811b01600c55610409565b8401515f1960f88460031b161c191690555f806110a8565b9192602060018192868901518155019401920161106e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f600319360112610366576020611128436126a7565b65ffffffffffff60405191168152f35b34610366575f600319360112610366576040515f60045461115881611b73565b8084529060018116908115610477575060011461117f576104158361040981850382610e78565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111c3575090915081016020016104096103f9565b9192600181602092548385880101520191019092916111ab565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff61120b6104b9565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61123c60405f20612591565b16604051908152f35b34610366576040600319360112610366576105256112616104b9565b6024359033612044565b34610366575f600319360112610366576104156040516108768161086f81611c81565b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff600b5416604051906112cf826112c881611c81565b0383610e78565b6104156040516112e28161086f81611bc4565b611363604051916112fd836112f681611d04565b0384610e78565b61135560405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a087019061036a565b90858203606087015261036a565b90838203608085015261036a565b6064359060ff8216820361036657565b6084359060ff8216820361036657565b346103665760c0600319360112610366576113aa6104b9565b602435906044356113b9611371565b6084359060a435928042116114d4579161144c939161143e6114439460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261143660a082610e78565b5190206125ba565b612b2f565b90929192612c00565b61147d8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361148e576109ab92506124e1565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610366575f600319360112610366576104156040516108768161086f81611d04565b346103665760e06003193601126103665761153b6104b9565b6115436104dc565b6044359060643592611553611381565b60a43560c43590864211611691576116239261161e6115998673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261143660e082610e78565b6125fb565b9373ffffffffffffffffffffffffffffffffffffffff85160361164a576109ab935061260a565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103665760406003193601126103665760206117276116db6104b9565b73ffffffffffffffffffffffffffffffffffffffff6116f86104dc565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610366576020600319360112610366576117496104b9565b600b5473ffffffffffffffffffffffffffffffffffffffff8116908133036110e55773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b34610366576117df36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e73576118238161181e600e54611b73565b611e77565b6020601f8211600114611882579161187382611012937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161101757505f198260011b9260031b1c19161790565b600e55604051918291826103ad565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b81811061192d5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b555242169492600192826110129610611915575b5050811b01600e55610409565b8401515f1960f88460031b161c191690555f80611908565b919260206001819286890151815501940192016118ce565b346103665760406003193601126103665761195e6104b9565b6024359063ffffffff82168203610366576104159173ffffffffffffffffffffffffffffffffffffffff6119b892611994611ec7565b5061199d611ec7565b50165f52600960205260405f206119b2611ec7565b50612cc7565b50604051906119c682610e57565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610366575f60031936011261036657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303611b1e57600f5460ff8116611af6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611bba575b6020831014611b8d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611b82565b600c545f9291611bd382611b73565b8082529160018116908115611c475750600114611bee575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b838310611c2d575060209250010190565b600181602092949394548385870101520191019190611c1c565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611c9082611b73565b8082529160018116908115611c475750600114611cab575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611cea575060209250010190565b600181602092949394548385870101520191019190611cd9565b600d545f9291611d1382611b73565b8082529160018116908115611c475750600114611d2e575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611d6d575060209250010190565b600181602092949394548385870101520191019190611d5c565b5f9291815491611d9683611b73565b8083529260018116908115611deb5750600114611db257505050565b5f9081526020812093945091925b838310611dd1575060209250010190565b600181602092949394548385870101520191019190611dc0565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611e33575050565b600c5f5260205f20906020601f840160051c83019310611e6d575b601f0160051c01905b818110611e62575050565b5f8155600101611e57565b9091508190611e4e565b601f8111611e83575050565b600e5f5260205f20906020601f840160051c83019310611ebd575b601f0160051c01905b818110611eb2575050565b5f8155600101611ea7565b9091508190611e9e565b60405190611ed482610e57565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611f2d8360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611f3d575b50505050565b818110611ffc578215611fd05773ffffffffffffffffffffffffffffffffffffffff841615611fa457611f9a925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611f37565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff841693841561218b5773ffffffffffffffffffffffffffffffffffffffff821680156106ad576120a98273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b549584871061213f5784610ec89697036120e08473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b556121088473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612f92565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff811690811561218b576121fc8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106122f2579061223484610ec8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a380156122da575b61228661228183612d09565b612e9e565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b6122eb6122e683612d09565b612e3d565b5050612275565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061243d575b156123a5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261243760c082610e78565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461237c565b65ffffffffffff612476436126a7565b168082101561248957506103be906126a7565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f19820191821161098957565b906001820180921161098957565b9190820180921161098957565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ec89694169461258b9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916128ff565b80548061259e5750505f90565b805f19810111610989575f19915f5260205f2001015460301c90565b6042906125c561233d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916103be939161144393612b2f565b73ffffffffffffffffffffffffffffffffffffffff16908115611fd05773ffffffffffffffffffffffffffffffffffffffff8116928315611fa4578061269a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116126bf5765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b81156126f9570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60018111156103be57806001700100000000000000000000000000000000831015612859575b6127ff6127f56127eb6127e16127d76127cd6127bc6128069760048a6801000000000000000061280b9c101561284c575b64010000000081101561283f575b62010000811015612832575b610100811015612825575b6010811015612818575b1015612810575b60030260011c90565b6127c6818b6126ef565b0160011c90565b6127c6818a6126ef565b6127c681896126ef565b6127c681886126ef565b6127c681876126ef565b6127c681866126ef565b80936126ef565b821190565b900390565b60011b6127b3565b60041c9160021b916127ac565b60081c9160041b916127a2565b60101c9160081b91612797565b60201c9160101b9161278b565b60401c9160201b9161277d565b505061280b6128066127ff6127f56127eb6127e16127d76127cd6127bc6128808a60801c90565b985068010000000000000000975061274c9650505050505050565b91905b8382106128ab5750505090565b9091928083169080841860011c820180921161098957845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146128ed5750925b919061289e565b9392506128f9906124c6565b916128e6565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612a7d575b612947575b5050505050565b816129fa575b50508261295c575b8080612940565b6129ef6129d67fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936129d06129ca79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612d09565b90612ddd565b6040805192851683529316602082015291829190820190565b0390a25f8080612955565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff612a736129d6612a647fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b612a6d88612d09565b90612d79565b0390a25f8061294d565b5083151561293b565b60ff8114612ae55760ff811690601f8211612abd5760405191612aaa604084610e78565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040516103be8161086f816005611d87565b60ff8114612b1c5760ff811690601f8211612abd5760405191612aaa604084610e78565b506040516103be8161086f816006611d87565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bbe579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612bb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612ba957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60041115612bd357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612c0981612bc9565b80612c12575050565b612c1b81612bc9565b60018103612c4b577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c5481612bc9565b60028103612c8857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612c94600392612bc9565b14612c9c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612cdc575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612d495779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612d83436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612da985612591565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b9091565b90612de7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e0d85612591565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b612e46436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e6d600a612591565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b612ea7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ece600a612591565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b9073ffffffffffffffffffffffffffffffffffffffff610ec892612f256122e684612d09565b5050168015612f7f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b612f8b61228183612d09565b5050612f2f565b9073ffffffffffffffffffffffffffffffffffffffff80610ec894931691821561301e575b1690811561300b575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906128ff565b61301761228184612d09565b5050612fc0565b61302a6122e685612d09565b5050612fb7565b805468010000000000000000811015610e735761305391600182018155612cc7565b6130985781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805492939280156131ba576130db6130e6916124b8565b825f5260205f200190565b8054603081901c9365ffffffffffff918216929181168084116131925787930361314b575061314792509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b9150506131479161316b61315d610eb9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152613031565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b50906131f2916131cb61315d610eb9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152613031565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 84532;
        readonly type: "clanker_v4";
        readonly address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9";
        readonly related: {
            locker: "0x824bB048a5EC6e06a09aEd115E9eEA4618DC2c8f";
            vault: "0xcC80d1226F899a78fC2E459a1500A13C373CE0A5";
            airdrop: "0x5c68F1560a5913c176Fc5238038098970B567B19";
            devbuy: "0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c";
            mevModule: "0x261fE99C4D0D41EE8d0e594D11aec740E8354ab0";
            feeLocker: "0x42A95190B4088C88Dd904d930c79deC1158bF09D";
            feeStaticHook: "0xDFcCcfBeef7F3Fc8b16027Ce6feACb48024068cC";
            feeStaticHookV2: "0x11b51DBC2f7F683b81CeDa83DC0078D57bA328cc";
            feeDynamicHook: "0xE63b0A59100698f379F9B577441A561bAF9828cc";
            feeDynamicHookV2: "0xBF4983dC0f2F8FE78C5cf8Fc621f294A993728Cc";
        };
    };
    readonly clanker_v4_arbitrum: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b6040516131f7908161107e823960805181612383015260a05181612440015260c05181612354015260e051816123d2015261010051816123f801526101205181610c4c01526101405181610c7501526101605181818161072d0152818161131d0152611a750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b6142b5803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f5160206142755f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f5160206142755f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461028457806306fdde031461027f578063095ea7b31461027a57806318160ddd1461027557806318bf5077146102705780631c7b2ff41461026b57806323b872dd146102665780632b8c49e314610261578063313ce5671461025c5780633644e51514610257578063392f37e9146102525780633a46b1a81461024d57806342966c68146102485780634bf5d7e914610243578063587cde1e1461023e5780635c19a95c146102395780636fcfff451461023457806370a082311461022f57806379cc67901461022a5780637ecebe001461022557806380007e831461022057806384b0196e1461021b5780638e539e8c14610216578063918b5be11461021157806391ddadf41461020c57806395d89b41146102075780639ab24eb014610202578063a9059cbb146101fd578063aba83150146101f8578063b974b0a3146101f3578063c3cda520146101ee578063d0496d6a146101e9578063d505accf146101e4578063dd62ed3e146101df578063e2f273bd146101da578063eb3d68e7146101d5578063f1127ed8146101d0578063f851a440146101cb5763fc735e99146101c6575f80fd5b611a4e565b611a1b565b611945565b6117d1565b611730565b6116bd565b611522565b6114ff565b611391565b61128e565b61126b565b611245565b6111dd565b611138565b61110d565b610f60565b610d6b565b610c34565b610c12565b610bcd565b610b9d565b610b5b565b610ad3565b610ab1565b610a56565b6109ad565b61098e565b61088a565b61084c565b61082a565b61080f565b610789565b610751565b610701565b61054d565b610530565b6104ff565b6103c1565b34610366576020600319360112610366576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610366577f3333199400000000000000000000000000000000000000000000000000000000811490811561033c575b8115610312575b8115610309575b506040519015158152602090f35b9050155f6102fb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102f4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102ed565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206103be92818152019061036a565b90565b34610366575f600319360112610366576040515f6003546103e181611b73565b80845290600181169081156104775750600114610419575b6104158361040981850382610e78565b604051918291826103ad565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061045d575090915081016020016104096103f9565b919260018160209254838588010152019101909291610445565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061040990506103f9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b346103665760406003193601126103665761052561051b6104b9565b602435903361260a565b602060405160018152f35b34610366575f600319360112610366576020600254604051908152f35b34610366576040600319360112610366576105666104b9565b6024359073420000000000000000000000000000000000002833036106d95773ffffffffffffffffffffffffffffffffffffffff81169081156106ad576105b76105b2846002546124d4565b600255565b6105de8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061061a88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161067f5750508261064f91612eff565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f60031936011261036657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103665760606003193601126103665761052561076d6104b9565b6107756104dc565b60443591610784833383611edf565b612044565b34610366576040600319360112610366576107a26104b9565b60243573420000000000000000000000000000000000002833036106d9576107ca81836121b7565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610366575f60031936011261036657602060405160128152f35b34610366575f60031936011261036657602061084461233d565b604051908152f35b34610366575f600319360112610366576104156040516108768161086f81611bc4565b0382610e78565b60405191829160208352602083019061036a565b34610366576040600319360112610366576108a36104b9565b73ffffffffffffffffffffffffffffffffffffffff60243591165f5260096020526108d160405f2091612466565b8154905f829160058411610936575b6108eb93508461289b565b908161091b57505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b6109266020926124b8565b905f52815f20015460301c6108f7565b919261094181612726565b8103908111610989576108eb93855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146109775750916108e0565b929150610983906124c6565b906108e0565b611b46565b34610366576020600319360112610366576109ab600435336121b7565b005b34610366575f600319360112610366576109c6436126a7565b65ffffffffffff806109d7436126a7565b16911603610a2e576104156040516109f0604082610e78565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061036a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610a846104b9565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610366576020600319360112610366576109ab610acd6104b9565b336124e1565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610b016104b9565b165f52600960205260405f205463ffffffff8111610b2b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b34610366576020600319360112610366576020610844610b796104b9565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b34610366576040600319360112610366576109ab610bb96104b9565b60243590610bc8823383611edf565b6121b7565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610bfb6104b9565b165f526007602052602060405f2054604051908152f35b34610366575f60031936011261036657602060ff600f54166040519015158152f35b34610366575f60031936011261036657610d12610c707f0000000000000000000000000000000000000000000000000000000000000000612a86565b610c997f0000000000000000000000000000000000000000000000000000000000000000612af8565b6020604051610ca88282610e78565b5f815281610d20818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061036a565b90878203604089015261036a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610d5457505050500390f35b835185528695509381019392810192600101610d45565b3461036657602060031936011261036657610d87600435612466565b600a54905f829160058411610dd6575b610da39350600a61289b565b80610db457506040515f8152602090f35b610dd1610dc26020926124b8565b600a5f52825f20015460301c90565b6108f7565b9192610de181612726565b810390811161098957610da393600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610e18575091610d97565b929150610e24906124c6565b90610d97565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e7357604052565b610e2a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e7357604052565b60405190610ec8604083610e78565b565b60206003198201126103665760043567ffffffffffffffff811161036657816023820112156103665780600401359067ffffffffffffffff8211610e735760405192610f3e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e78565b8284526024838301011161036657815f92602460209301838601378301015290565b3461036657610f6e36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e7357610fb281610fad600c54611b73565b611e27565b6020601f8211600114611022579161100382611012937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611017575b505f198260011b9260031b1c19161790565b600c55604051918291826103ad565b0390a1005b90508301515f610ff1565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110cd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261101296106110b5575b5050811b01600c55610409565b8401515f1960f88460031b161c191690555f806110a8565b9192602060018192868901518155019401920161106e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f600319360112610366576020611128436126a7565b65ffffffffffff60405191168152f35b34610366575f600319360112610366576040515f60045461115881611b73565b8084529060018116908115610477575060011461117f576104158361040981850382610e78565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111c3575090915081016020016104096103f9565b9192600181602092548385880101520191019092916111ab565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff61120b6104b9565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61123c60405f20612591565b16604051908152f35b34610366576040600319360112610366576105256112616104b9565b6024359033612044565b34610366575f600319360112610366576104156040516108768161086f81611c81565b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff600b5416604051906112cf826112c881611c81565b0383610e78565b6104156040516112e28161086f81611bc4565b611363604051916112fd836112f681611d04565b0384610e78565b61135560405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a087019061036a565b90858203606087015261036a565b90838203608085015261036a565b6064359060ff8216820361036657565b6084359060ff8216820361036657565b346103665760c0600319360112610366576113aa6104b9565b602435906044356113b9611371565b6084359060a435928042116114d4579161144c939161143e6114439460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261143660a082610e78565b5190206125ba565b612b2f565b90929192612c00565b61147d8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361148e576109ab92506124e1565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610366575f600319360112610366576104156040516108768161086f81611d04565b346103665760e06003193601126103665761153b6104b9565b6115436104dc565b6044359060643592611553611381565b60a43560c43590864211611691576116239261161e6115998673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261143660e082610e78565b6125fb565b9373ffffffffffffffffffffffffffffffffffffffff85160361164a576109ab935061260a565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103665760406003193601126103665760206117276116db6104b9565b73ffffffffffffffffffffffffffffffffffffffff6116f86104dc565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610366576020600319360112610366576117496104b9565b600b5473ffffffffffffffffffffffffffffffffffffffff8116908133036110e55773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b34610366576117df36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e73576118238161181e600e54611b73565b611e77565b6020601f8211600114611882579161187382611012937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161101757505f198260011b9260031b1c19161790565b600e55604051918291826103ad565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b81811061192d5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b555242169492600192826110129610611915575b5050811b01600e55610409565b8401515f1960f88460031b161c191690555f80611908565b919260206001819286890151815501940192016118ce565b346103665760406003193601126103665761195e6104b9565b6024359063ffffffff82168203610366576104159173ffffffffffffffffffffffffffffffffffffffff6119b892611994611ec7565b5061199d611ec7565b50165f52600960205260405f206119b2611ec7565b50612cc7565b50604051906119c682610e57565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610366575f60031936011261036657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303611b1e57600f5460ff8116611af6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611bba575b6020831014611b8d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611b82565b600c545f9291611bd382611b73565b8082529160018116908115611c475750600114611bee575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b838310611c2d575060209250010190565b600181602092949394548385870101520191019190611c1c565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611c9082611b73565b8082529160018116908115611c475750600114611cab575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611cea575060209250010190565b600181602092949394548385870101520191019190611cd9565b600d545f9291611d1382611b73565b8082529160018116908115611c475750600114611d2e575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611d6d575060209250010190565b600181602092949394548385870101520191019190611d5c565b5f9291815491611d9683611b73565b8083529260018116908115611deb5750600114611db257505050565b5f9081526020812093945091925b838310611dd1575060209250010190565b600181602092949394548385870101520191019190611dc0565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611e33575050565b600c5f5260205f20906020601f840160051c83019310611e6d575b601f0160051c01905b818110611e62575050565b5f8155600101611e57565b9091508190611e4e565b601f8111611e83575050565b600e5f5260205f20906020601f840160051c83019310611ebd575b601f0160051c01905b818110611eb2575050565b5f8155600101611ea7565b9091508190611e9e565b60405190611ed482610e57565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611f2d8360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611f3d575b50505050565b818110611ffc578215611fd05773ffffffffffffffffffffffffffffffffffffffff841615611fa457611f9a925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611f37565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff841693841561218b5773ffffffffffffffffffffffffffffffffffffffff821680156106ad576120a98273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b549584871061213f5784610ec89697036120e08473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b556121088473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612f92565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff811690811561218b576121fc8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106122f2579061223484610ec8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a380156122da575b61228661228183612d09565b612e9e565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b6122eb6122e683612d09565b612e3d565b5050612275565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061243d575b156123a5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261243760c082610e78565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461237c565b65ffffffffffff612476436126a7565b168082101561248957506103be906126a7565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f19820191821161098957565b906001820180921161098957565b9190820180921161098957565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ec89694169461258b9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916128ff565b80548061259e5750505f90565b805f19810111610989575f19915f5260205f2001015460301c90565b6042906125c561233d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916103be939161144393612b2f565b73ffffffffffffffffffffffffffffffffffffffff16908115611fd05773ffffffffffffffffffffffffffffffffffffffff8116928315611fa4578061269a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116126bf5765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b81156126f9570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60018111156103be57806001700100000000000000000000000000000000831015612859575b6127ff6127f56127eb6127e16127d76127cd6127bc6128069760048a6801000000000000000061280b9c101561284c575b64010000000081101561283f575b62010000811015612832575b610100811015612825575b6010811015612818575b1015612810575b60030260011c90565b6127c6818b6126ef565b0160011c90565b6127c6818a6126ef565b6127c681896126ef565b6127c681886126ef565b6127c681876126ef565b6127c681866126ef565b80936126ef565b821190565b900390565b60011b6127b3565b60041c9160021b916127ac565b60081c9160041b916127a2565b60101c9160081b91612797565b60201c9160101b9161278b565b60401c9160201b9161277d565b505061280b6128066127ff6127f56127eb6127e16127d76127cd6127bc6128808a60801c90565b985068010000000000000000975061274c9650505050505050565b91905b8382106128ab5750505090565b9091928083169080841860011c820180921161098957845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146128ed5750925b919061289e565b9392506128f9906124c6565b916128e6565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612a7d575b612947575b5050505050565b816129fa575b50508261295c575b8080612940565b6129ef6129d67fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936129d06129ca79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612d09565b90612ddd565b6040805192851683529316602082015291829190820190565b0390a25f8080612955565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff612a736129d6612a647fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b612a6d88612d09565b90612d79565b0390a25f8061294d565b5083151561293b565b60ff8114612ae55760ff811690601f8211612abd5760405191612aaa604084610e78565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040516103be8161086f816005611d87565b60ff8114612b1c5760ff811690601f8211612abd5760405191612aaa604084610e78565b506040516103be8161086f816006611d87565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bbe579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612bb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612ba957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60041115612bd357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612c0981612bc9565b80612c12575050565b612c1b81612bc9565b60018103612c4b577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c5481612bc9565b60028103612c8857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612c94600392612bc9565b14612c9c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612cdc575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612d495779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612d83436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612da985612591565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b9091565b90612de7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e0d85612591565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b612e46436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e6d600a612591565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b612ea7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ece600a612591565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b9073ffffffffffffffffffffffffffffffffffffffff610ec892612f256122e684612d09565b5050168015612f7f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b612f8b61228183612d09565b5050612f2f565b9073ffffffffffffffffffffffffffffffffffffffff80610ec894931691821561301e575b1690811561300b575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906128ff565b61301761228184612d09565b5050612fc0565b61302a6122e685612d09565b5050612fb7565b805468010000000000000000811015610e735761305391600182018155612cc7565b6130985781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805492939280156131ba576130db6130e6916124b8565b825f5260205f200190565b8054603081901c9365ffffffffffff918216929181168084116131925787930361314b575061314792509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b9150506131479161316b61315d610eb9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152613031565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b50906131f2916131cb61315d610eb9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152613031565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 42161;
        readonly type: "clanker_v4";
        readonly address: "0xEb9D2A726Edffc887a574dC7f46b3a3638E8E44f";
        readonly related: {
            locker: "0xF3622742b1E446D92e45E22923Ef11C2fcD55D68";
            vault: "0xa1da0600Eb4A9F3D4a892feAa2c2caf80A4A2f14";
            airdrop: "0x8Cb6e0216e98A7ACF622DC2dD6a39F1b4FF37014";
            devbuy: "0x70aDdc06fE89a5cF9E533aea8D025dB06795e492";
            mevModule: "0x4E35277306a83D00E13e8C8A4307C672FA31FC99";
            feeLocker: "0x92C0DCbAba17b0F5f3a7537dA82c0F80520e4dF6";
            feeStaticHook: "0xf7aC669593d2D9D01026Fa5B756DD5B4f7aAa8Cc";
            feeDynamicHook: "0xFd213BE7883db36e1049dC42f5BD6A0ec66B68cC";
        };
    };
    readonly clanker_v4_mainnet: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b604051612ef8908161107e823960805181611f9e015260a0518161205b015260c05181611f6f015260e05181611fed01526101005181612013015261012051816109c1015261014051816109ea0152610160518181816105280152818161109201526117ea0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b613fb6803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f516020613f765f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f516020613f765f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f516020613f965f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f516020613f965f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461026457806306fdde031461025f578063095ea7b31461025a57806318160ddd146102555780631c7b2ff41461025057806323b872dd1461024b578063313ce567146102465780633644e51514610241578063392f37e91461023c5780633a46b1a81461023757806342966c68146102325780634bf5d7e91461022d578063587cde1e146102285780635c19a95c146102235780636fcfff451461021e57806370a082311461021957806379cc6790146102145780637ecebe001461020f57806380007e831461020a57806384b0196e146102055780638e539e8c14610200578063918b5be1146101fb57806391ddadf4146101f657806395d89b41146101f15780639ab24eb0146101ec578063a9059cbb146101e7578063aba83150146101e2578063b974b0a3146101dd578063c3cda520146101d8578063d0496d6a146101d3578063d505accf146101ce578063dd62ed3e146101c9578063e2f273bd146101c4578063eb3d68e7146101bf578063f1127ed8146101ba578063f851a440146101b55763fc735e99146101b0575f80fd5b6117c3565b611790565b6116ba565b611546565b6114a5565b611432565b611297565b611274565b611106565b611003565b610fe0565b610fba565b610f52565b610ead565b610e82565b610cd5565b610ae0565b6109a9565b610987565b610942565b610912565b6108d0565b610848565b610826565b6107cb565b610722565b610703565b6105ff565b6105c1565b61059f565b610584565b61054c565b6104fc565b6104df565b6104ae565b610370565b34610315576020600319360112610315576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361031557807f36372b0700000000000000000000000000000000000000000000000000000000602092149081156102eb575b81156102e2575b506040519015158152f35b9050155f6102d7565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102d0565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061036d928181520190610319565b90565b34610315575f600319360112610315576040515f600354610390816118e8565b808452906001811690811561042657506001146103c8575b6103c4836103b881850382610bed565b6040519182918261035c565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061040c575090915081016020016103b86103a8565b9192600181602092548385880101520191019092916103f4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103b890506103a8565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031557565b34610315576040600319360112610315576104d46104ca610468565b602435903361239e565b602060405160018152f35b34610315575f600319360112610315576020600254604051908152f35b34610315575f60031936011261031557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610315576060600319360112610315576104d4610568610468565b61057061048b565b6044359161057f833383611c54565b611db9565b34610315575f60031936011261031557602060405160128152f35b34610315575f6003193601126103155760206105b9611f58565b604051908152f35b34610315575f600319360112610315576103c46040516105eb816105e481611939565b0382610bed565b604051918291602083526020830190610319565b3461031557604060031936011261031557610618610468565b73ffffffffffffffffffffffffffffffffffffffff60243591165f52600960205261064660405f2091612081565b8154905f8291600584116106ab575b61066093508461262f565b908161069057505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b61069b6020926120d3565b905f52815f20015460301c61066c565b91926106b6816124ba565b81039081116106fe5761066093855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146106ec575091610655565b9291506106f8906120e1565b90610655565b6118bb565b3461031557602060031936011261031557610720600435336120ef565b005b34610315575f6003193601126103155761073b4361243b565b65ffffffffffff8061074c4361243b565b169116036107a3576103c4604051610765604082610bed565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291602083526020830190610319565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff6107f9610468565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461031557602060031936011261031557610720610842610468565b33612275565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610876610468565b165f52600960205260405f205463ffffffff81116108a05760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103155760206003193601126103155760206105b96108ee610468565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b346103155760406003193601126103155761072061092e610468565b6024359061093d823383611c54565b6120ef565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610970610468565b165f526007602052602060405f2054604051908152f35b34610315575f60031936011261031557602060ff600f54166040519015158152f35b34610315575f60031936011261031557610a876109e57f000000000000000000000000000000000000000000000000000000000000000061281a565b610a0e7f000000000000000000000000000000000000000000000000000000000000000061288c565b6020604051610a1d8282610bed565b5f815281610a95818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e0890190610319565b908782036040890152610319565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610ac957505050500390f35b835185528695509381019392810192600101610aba565b3461031557602060031936011261031557610afc600435612081565b600a54905f829160058411610b4b575b610b189350600a61262f565b80610b2957506040515f8152602090f35b610b46610b376020926120d3565b600a5f52825f20015460301c90565b61066c565b9192610b56816124ba565b81039081116106fe57610b1893600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610b8d575091610b0c565b929150610b99906120e1565b90610b0c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610be857604052565b610b9f565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610be857604052565b60405190610c3d604083610bed565b565b60206003198201126103155760043567ffffffffffffffff811161031557816023820112156103155780600401359067ffffffffffffffff8211610be85760405192610cb3601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610bed565b8284526024838301011161031557815f92602460209301838601378301015290565b3461031557610ce336610c3f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e5a57805167ffffffffffffffff8111610be857610d2781610d22600c546118e8565b611b9c565b6020601f8211600114610d975791610d7882610d87937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91610d8c575b505f198260011b9260031b1c19161790565b600c556040519182918261035c565b0390a1005b90508301515f610d66565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b818110610e425750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4949260019282610d879610610e2a575b5050811b01600c556103b8565b8401515f1960f88460031b161c191690555f80610e1d565b91926020600181928689015181550194019201610de3565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610315575f600319360112610315576020610e9d4361243b565b65ffffffffffff60405191168152f35b34610315575f600319360112610315576040515f600454610ecd816118e8565b80845290600181169081156104265750600114610ef4576103c4836103b881850382610bed565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210610f38575090915081016020016103b86103a8565b919260018160209254838588010152019101909291610f20565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610f80610468565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff610fb160405f20612325565b16604051908152f35b34610315576040600319360112610315576104d4610fd6610468565b6024359033611db9565b34610315575f600319360112610315576103c46040516105eb816105e4816119f6565b34610315575f6003193601126103155773ffffffffffffffffffffffffffffffffffffffff600b5416604051906110448261103d816119f6565b0383610bed565b6103c4604051611057816105e481611939565b6110d8604051916110728361106b81611a79565b0384610bed565b6110ca60405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a0870190610319565b908582036060870152610319565b908382036080850152610319565b6064359060ff8216820361031557565b6084359060ff8216820361031557565b346103155760c06003193601126103155761111f610468565b6024359060443561112e6110e6565b6084359060a4359280421161124957916111c193916111b36111b89460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a60608301526080820152608081526111ab60a082610bed565b51902061234e565b6128c3565b90929192612994565b6111f28173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b809303611203576107209250612275565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610315575f600319360112610315576103c46040516105eb816105e481611a79565b346103155760e0600319360112610315576112b0610468565b6112b861048b565b60443590606435926112c86110f6565b60a43560c43590864211611406576113989261139361130e8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c081526111ab60e082610bed565b61238f565b9373ffffffffffffffffffffffffffffffffffffffff8516036113bf57610720935061239e565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461031557604060031936011261031557602061149c611450610468565b73ffffffffffffffffffffffffffffffffffffffff61146d61048b565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610315576020600319360112610315576114be610468565b600b5473ffffffffffffffffffffffffffffffffffffffff811690813303610e5a5773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b346103155761155436610c3f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e5a57805167ffffffffffffffff8111610be85761159881611593600e546118e8565b611bec565b6020601f82116001146115f757916115e882610d87937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f91610d8c57505f198260011b9260031b1c19161790565b600e556040519182918261035c565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106116a25750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216949260019282610d87961061168a575b5050811b01600e556103b8565b8401515f1960f88460031b161c191690555f8061167d565b91926020600181928689015181550194019201611643565b34610315576040600319360112610315576116d3610468565b6024359063ffffffff82168203610315576103c49173ffffffffffffffffffffffffffffffffffffffff61172d92611709611c3c565b50611712611c3c565b50165f52600960205260405f20611727611c3c565b50612a5b565b506040519061173b82610bcc565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610315575f60031936011261031557602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610315575f6003193601126103155773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361189357600f5460ff811661186b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c9216801561192f575b602083101461190257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916118f7565b600c545f9291611948826118e8565b80825291600181169081156119bc5750600114611963575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8383106119a2575060209250010190565b600181602092949394548385870101520191019190611991565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611a05826118e8565b80825291600181169081156119bc5750600114611a20575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611a5f575060209250010190565b600181602092949394548385870101520191019190611a4e565b600d545f9291611a88826118e8565b80825291600181169081156119bc5750600114611aa3575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611ae2575060209250010190565b600181602092949394548385870101520191019190611ad1565b5f9291815491611b0b836118e8565b8083529260018116908115611b605750600114611b2757505050565b5f9081526020812093945091925b838310611b46575060209250010190565b600181602092949394548385870101520191019190611b35565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611ba8575050565b600c5f5260205f20906020601f840160051c83019310611be2575b601f0160051c01905b818110611bd7575050565b5f8155600101611bcc565b9091508190611bc3565b601f8111611bf8575050565b600e5f5260205f20906020601f840160051c83019310611c32575b601f0160051c01905b818110611c27575050565b5f8155600101611c1c565b9091508190611c13565b60405190611c4982610bcc565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611ca28360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611cb2575b50505050565b818110611d71578215611d455773ffffffffffffffffffffffffffffffffffffffff841615611d1957611d0f925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611cac565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611f2c5773ffffffffffffffffffffffffffffffffffffffff82168015611f0057611e1e8273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611eb45784610c3d969703611e558473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611e7d8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612c93565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480612058575b15611fc0577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261205260c082610bed565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611f97565b65ffffffffffff6120914361243b565b16808210156120a4575061036d9061243b565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f1982019182116106fe57565b90600182018092116106fe57565b73ffffffffffffffffffffffffffffffffffffffff8116908115611f2c576121348173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5483811061222a579061216c84610c3d959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612212575b6121be6121b983612a9d565b612c32565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff9081169116612693565b61222361221e83612a9d565b612bd1565b50506121ad565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610c3d9694169461231f9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b91612693565b8054806123325750505f90565b805f198101116106fe575f19915f5260205f2001015460301c90565b604290612359611f58565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161036d93916111b8936128c3565b73ffffffffffffffffffffffffffffffffffffffff16908115611d455773ffffffffffffffffffffffffffffffffffffffff8116928315611d19578061242e7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116124535765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b811561248d570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561036d578060017001000000000000000000000000000000008310156125ed575b61259361258961257f61257561256b61256161255061259a9760048a6801000000000000000061259f9c10156125e0575b6401000000008110156125d3575b620100008110156125c6575b6101008110156125b9575b60108110156125ac575b10156125a4575b60030260011c90565b61255a818b612483565b0160011c90565b61255a818a612483565b61255a8189612483565b61255a8188612483565b61255a8187612483565b61255a8186612483565b8093612483565b821190565b900390565b60011b612547565b60041c9160021b91612540565b60081c9160041b91612536565b60101c9160081b9161252b565b60201c9160101b9161251f565b60401c9160201b91612511565b505061259f61259a61259361258961257f61257561256b6125616125506126148a60801c90565b98506801000000000000000097506124e09650505050505050565b91905b83821061263f5750505090565b9091928083169080841860011c82018092116106fe57845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146126815750925b9190612632565b93925061268d906120e1565b9161267a565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612811575b6126db575b5050505050565b8161278e575b5050826126f0575b80806126d4565b61278361276a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361276461275e79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612a9d565b90612b71565b6040805192851683529316602082015291829190820190565b0390a25f80806126e9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff61280761276a6127f87fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b61280188612a9d565b90612b0d565b0390a25f806126e1565b508315156126cf565b60ff81146128795760ff811690601f8211612851576040519161283e604084610bed565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161036d816105e4816005611afc565b60ff81146128b05760ff811690601f8211612851576040519161283e604084610bed565b5060405161036d816105e4816006611afc565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612952579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612947575f5173ffffffffffffffffffffffffffffffffffffffff81161561293d57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004111561296757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61299d8161295d565b806129a6575050565b6129af8161295d565b600181036129df577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6129e88161295d565b60028103612a1c57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612a2860039261295d565b14612a305750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612a70575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612add5779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612b174361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612b3d85612325565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff82116106fe57612b6d92612dc5565b9091565b90612b7b4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ba185612325565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff82116106fe57612b6d92612dc5565b612bda4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c01600a612325565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff81116106fe57612b6d91600a612dc5565b612c3b4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c62600a612325565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff81116106fe57612b6d91600a612dc5565b9073ffffffffffffffffffffffffffffffffffffffff80610c3d949316918215612d1f575b16908115612d0c575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f20541690612693565b612d186121b984612a9d565b5050612cc1565b612d2b61221e85612a9d565b5050612cb8565b805468010000000000000000811015610be857612d5491600182018155612a5b565b612d995781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612ebb57612ddc612de7916120d3565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612e9357879303612e4c5750612e4892509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612e4891612e6c612e5e610c2e565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612d32565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612ef391612ecc612e5e610c2e565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612d32565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 1;
        readonly type: "clanker_v4";
        readonly address: "0x6C8599779B03B00AAaE63C6378830919Abb75473";
        readonly related: {
            locker: "0x00C4b21889145CF0D99f2e05919103e0c3991974";
            vault: "0xa1da0600Eb4A9F3D4a892feAa2c2caf80A4A2f14";
            airdrop: "0x303470b6b6a35B06A5A05763A7caD776fbf27B71";
            devbuy: "0x70aDdc06fE89a5cF9E533aea8D025dB06795e492";
            mevModule: "0x33e2Eda238edcF470309b8c6D228986A1204c8f9";
            mevModuleV2: "0x33e2Eda238edcF470309b8c6D228986A1204c8f9";
            feeLocker: "0xA9C0a423f0092176fC48d7B50a1fCae8cf5BB441";
            feeStaticHook: "0x6C24D0bCC264EF6A740754A11cA579b9d225e8Cc";
            feeStaticHookV2: "0x6C24D0bCC264EF6A740754A11cA579b9d225e8Cc";
            feeDynamicHook: "0x0000000000000000000000000000000000000000";
            feeDynamicHookV2: "0x0000000000000000000000000000000000000000";
            presale: "0xf7db81910444ab0f07bA264d7636d219A8c7769D";
            presaleAllowlist: "0xF6C7Ff92F71e2eDd19c421E4962949Df4cD6b6F3";
        };
    };
    readonly clanker_v4_unichain: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b6040516131f7908161107e823960805181612383015260a05181612440015260c05181612354015260e051816123d2015261010051816123f801526101205181610c4c01526101405181610c7501526101605181818161072d0152818161131d0152611a750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b6142b5803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f5160206142755f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f5160206142755f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461028457806306fdde031461027f578063095ea7b31461027a57806318160ddd1461027557806318bf5077146102705780631c7b2ff41461026b57806323b872dd146102665780632b8c49e314610261578063313ce5671461025c5780633644e51514610257578063392f37e9146102525780633a46b1a81461024d57806342966c68146102485780634bf5d7e914610243578063587cde1e1461023e5780635c19a95c146102395780636fcfff451461023457806370a082311461022f57806379cc67901461022a5780637ecebe001461022557806380007e831461022057806384b0196e1461021b5780638e539e8c14610216578063918b5be11461021157806391ddadf41461020c57806395d89b41146102075780639ab24eb014610202578063a9059cbb146101fd578063aba83150146101f8578063b974b0a3146101f3578063c3cda520146101ee578063d0496d6a146101e9578063d505accf146101e4578063dd62ed3e146101df578063e2f273bd146101da578063eb3d68e7146101d5578063f1127ed8146101d0578063f851a440146101cb5763fc735e99146101c6575f80fd5b611a4e565b611a1b565b611945565b6117d1565b611730565b6116bd565b611522565b6114ff565b611391565b61128e565b61126b565b611245565b6111dd565b611138565b61110d565b610f60565b610d6b565b610c34565b610c12565b610bcd565b610b9d565b610b5b565b610ad3565b610ab1565b610a56565b6109ad565b61098e565b61088a565b61084c565b61082a565b61080f565b610789565b610751565b610701565b61054d565b610530565b6104ff565b6103c1565b34610366576020600319360112610366576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610366577f3333199400000000000000000000000000000000000000000000000000000000811490811561033c575b8115610312575b8115610309575b506040519015158152602090f35b9050155f6102fb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102f4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102ed565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206103be92818152019061036a565b90565b34610366575f600319360112610366576040515f6003546103e181611b73565b80845290600181169081156104775750600114610419575b6104158361040981850382610e78565b604051918291826103ad565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061045d575090915081016020016104096103f9565b919260018160209254838588010152019101909291610445565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061040990506103f9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b346103665760406003193601126103665761052561051b6104b9565b602435903361260a565b602060405160018152f35b34610366575f600319360112610366576020600254604051908152f35b34610366576040600319360112610366576105666104b9565b6024359073420000000000000000000000000000000000002833036106d95773ffffffffffffffffffffffffffffffffffffffff81169081156106ad576105b76105b2846002546124d4565b600255565b6105de8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061061a88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161067f5750508261064f91612eff565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f60031936011261036657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103665760606003193601126103665761052561076d6104b9565b6107756104dc565b60443591610784833383611edf565b612044565b34610366576040600319360112610366576107a26104b9565b60243573420000000000000000000000000000000000002833036106d9576107ca81836121b7565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610366575f60031936011261036657602060405160128152f35b34610366575f60031936011261036657602061084461233d565b604051908152f35b34610366575f600319360112610366576104156040516108768161086f81611bc4565b0382610e78565b60405191829160208352602083019061036a565b34610366576040600319360112610366576108a36104b9565b73ffffffffffffffffffffffffffffffffffffffff60243591165f5260096020526108d160405f2091612466565b8154905f829160058411610936575b6108eb93508461289b565b908161091b57505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b6109266020926124b8565b905f52815f20015460301c6108f7565b919261094181612726565b8103908111610989576108eb93855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146109775750916108e0565b929150610983906124c6565b906108e0565b611b46565b34610366576020600319360112610366576109ab600435336121b7565b005b34610366575f600319360112610366576109c6436126a7565b65ffffffffffff806109d7436126a7565b16911603610a2e576104156040516109f0604082610e78565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061036a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610a846104b9565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610366576020600319360112610366576109ab610acd6104b9565b336124e1565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610b016104b9565b165f52600960205260405f205463ffffffff8111610b2b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b34610366576020600319360112610366576020610844610b796104b9565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b34610366576040600319360112610366576109ab610bb96104b9565b60243590610bc8823383611edf565b6121b7565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff610bfb6104b9565b165f526007602052602060405f2054604051908152f35b34610366575f60031936011261036657602060ff600f54166040519015158152f35b34610366575f60031936011261036657610d12610c707f0000000000000000000000000000000000000000000000000000000000000000612a86565b610c997f0000000000000000000000000000000000000000000000000000000000000000612af8565b6020604051610ca88282610e78565b5f815281610d20818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061036a565b90878203604089015261036a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610d5457505050500390f35b835185528695509381019392810192600101610d45565b3461036657602060031936011261036657610d87600435612466565b600a54905f829160058411610dd6575b610da39350600a61289b565b80610db457506040515f8152602090f35b610dd1610dc26020926124b8565b600a5f52825f20015460301c90565b6108f7565b9192610de181612726565b810390811161098957610da393600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610e18575091610d97565b929150610e24906124c6565b90610d97565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e7357604052565b610e2a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e7357604052565b60405190610ec8604083610e78565b565b60206003198201126103665760043567ffffffffffffffff811161036657816023820112156103665780600401359067ffffffffffffffff8211610e735760405192610f3e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e78565b8284526024838301011161036657815f92602460209301838601378301015290565b3461036657610f6e36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e7357610fb281610fad600c54611b73565b611e27565b6020601f8211600114611022579161100382611012937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611017575b505f198260011b9260031b1c19161790565b600c55604051918291826103ad565b0390a1005b90508301515f610ff1565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110cd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261101296106110b5575b5050811b01600c55610409565b8401515f1960f88460031b161c191690555f806110a8565b9192602060018192868901518155019401920161106e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610366575f600319360112610366576020611128436126a7565b65ffffffffffff60405191168152f35b34610366575f600319360112610366576040515f60045461115881611b73565b8084529060018116908115610477575060011461117f576104158361040981850382610e78565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111c3575090915081016020016104096103f9565b9192600181602092548385880101520191019092916111ab565b346103665760206003193601126103665773ffffffffffffffffffffffffffffffffffffffff61120b6104b9565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61123c60405f20612591565b16604051908152f35b34610366576040600319360112610366576105256112616104b9565b6024359033612044565b34610366575f600319360112610366576104156040516108768161086f81611c81565b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff600b5416604051906112cf826112c881611c81565b0383610e78565b6104156040516112e28161086f81611bc4565b611363604051916112fd836112f681611d04565b0384610e78565b61135560405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a087019061036a565b90858203606087015261036a565b90838203608085015261036a565b6064359060ff8216820361036657565b6084359060ff8216820361036657565b346103665760c0600319360112610366576113aa6104b9565b602435906044356113b9611371565b6084359060a435928042116114d4579161144c939161143e6114439460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261143660a082610e78565b5190206125ba565b612b2f565b90929192612c00565b61147d8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361148e576109ab92506124e1565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610366575f600319360112610366576104156040516108768161086f81611d04565b346103665760e06003193601126103665761153b6104b9565b6115436104dc565b6044359060643592611553611381565b60a43560c43590864211611691576116239261161e6115998673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261143660e082610e78565b6125fb565b9373ffffffffffffffffffffffffffffffffffffffff85160361164a576109ab935061260a565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103665760406003193601126103665760206117276116db6104b9565b73ffffffffffffffffffffffffffffffffffffffff6116f86104dc565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610366576020600319360112610366576117496104b9565b600b5473ffffffffffffffffffffffffffffffffffffffff8116908133036110e55773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b34610366576117df36610eca565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110e557805167ffffffffffffffff8111610e73576118238161181e600e54611b73565b611e77565b6020601f8211600114611882579161187382611012937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161101757505f198260011b9260031b1c19161790565b600e55604051918291826103ad565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b81811061192d5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b555242169492600192826110129610611915575b5050811b01600e55610409565b8401515f1960f88460031b161c191690555f80611908565b919260206001819286890151815501940192016118ce565b346103665760406003193601126103665761195e6104b9565b6024359063ffffffff82168203610366576104159173ffffffffffffffffffffffffffffffffffffffff6119b892611994611ec7565b5061199d611ec7565b50165f52600960205260405f206119b2611ec7565b50612cc7565b50604051906119c682610e57565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610366575f60031936011261036657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610366575f6003193601126103665773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303611b1e57600f5460ff8116611af6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611bba575b6020831014611b8d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611b82565b600c545f9291611bd382611b73565b8082529160018116908115611c475750600114611bee575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b838310611c2d575060209250010190565b600181602092949394548385870101520191019190611c1c565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611c9082611b73565b8082529160018116908115611c475750600114611cab575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611cea575060209250010190565b600181602092949394548385870101520191019190611cd9565b600d545f9291611d1382611b73565b8082529160018116908115611c475750600114611d2e575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611d6d575060209250010190565b600181602092949394548385870101520191019190611d5c565b5f9291815491611d9683611b73565b8083529260018116908115611deb5750600114611db257505050565b5f9081526020812093945091925b838310611dd1575060209250010190565b600181602092949394548385870101520191019190611dc0565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611e33575050565b600c5f5260205f20906020601f840160051c83019310611e6d575b601f0160051c01905b818110611e62575050565b5f8155600101611e57565b9091508190611e4e565b601f8111611e83575050565b600e5f5260205f20906020601f840160051c83019310611ebd575b601f0160051c01905b818110611eb2575050565b5f8155600101611ea7565b9091508190611e9e565b60405190611ed482610e57565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611f2d8360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611f3d575b50505050565b818110611ffc578215611fd05773ffffffffffffffffffffffffffffffffffffffff841615611fa457611f9a925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611f37565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff841693841561218b5773ffffffffffffffffffffffffffffffffffffffff821680156106ad576120a98273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b549584871061213f5784610ec89697036120e08473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b556121088473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612f92565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff811690811561218b576121fc8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106122f2579061223484610ec8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a380156122da575b61228661228183612d09565b612e9e565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b6122eb6122e683612d09565b612e3d565b5050612275565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061243d575b156123a5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261243760c082610e78565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461237c565b65ffffffffffff612476436126a7565b168082101561248957506103be906126a7565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f19820191821161098957565b906001820180921161098957565b9190820180921161098957565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ec89694169461258b9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916128ff565b80548061259e5750505f90565b805f19810111610989575f19915f5260205f2001015460301c90565b6042906125c561233d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916103be939161144393612b2f565b73ffffffffffffffffffffffffffffffffffffffff16908115611fd05773ffffffffffffffffffffffffffffffffffffffff8116928315611fa4578061269a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116126bf5765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b81156126f9570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60018111156103be57806001700100000000000000000000000000000000831015612859575b6127ff6127f56127eb6127e16127d76127cd6127bc6128069760048a6801000000000000000061280b9c101561284c575b64010000000081101561283f575b62010000811015612832575b610100811015612825575b6010811015612818575b1015612810575b60030260011c90565b6127c6818b6126ef565b0160011c90565b6127c6818a6126ef565b6127c681896126ef565b6127c681886126ef565b6127c681876126ef565b6127c681866126ef565b80936126ef565b821190565b900390565b60011b6127b3565b60041c9160021b916127ac565b60081c9160041b916127a2565b60101c9160081b91612797565b60201c9160101b9161278b565b60401c9160201b9161277d565b505061280b6128066127ff6127f56127eb6127e16127d76127cd6127bc6128808a60801c90565b985068010000000000000000975061274c9650505050505050565b91905b8382106128ab5750505090565b9091928083169080841860011c820180921161098957845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146128ed5750925b919061289e565b9392506128f9906124c6565b916128e6565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612a7d575b612947575b5050505050565b816129fa575b50508261295c575b8080612940565b6129ef6129d67fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936129d06129ca79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612d09565b90612ddd565b6040805192851683529316602082015291829190820190565b0390a25f8080612955565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff612a736129d6612a647fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b612a6d88612d09565b90612d79565b0390a25f8061294d565b5083151561293b565b60ff8114612ae55760ff811690601f8211612abd5760405191612aaa604084610e78565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040516103be8161086f816005611d87565b60ff8114612b1c5760ff811690601f8211612abd5760405191612aaa604084610e78565b506040516103be8161086f816006611d87565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bbe579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612bb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612ba957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60041115612bd357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612c0981612bc9565b80612c12575050565b612c1b81612bc9565b60018103612c4b577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c5481612bc9565b60028103612c8857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612c94600392612bc9565b14612c9c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612cdc575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612d495779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612d83436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612da985612591565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b9091565b90612de7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e0d85612591565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff821161098957612dd9926130c4565b612e46436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612e6d600a612591565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b612ea7436126a7565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ece600a612591565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff811161098957612dd991600a6130c4565b9073ffffffffffffffffffffffffffffffffffffffff610ec892612f256122e684612d09565b5050168015612f7f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166128ff565b612f8b61228183612d09565b5050612f2f565b9073ffffffffffffffffffffffffffffffffffffffff80610ec894931691821561301e575b1690811561300b575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906128ff565b61301761228184612d09565b5050612fc0565b61302a6122e685612d09565b5050612fb7565b805468010000000000000000811015610e735761305391600182018155612cc7565b6130985781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805492939280156131ba576130db6130e6916124b8565b825f5260205f200190565b8054603081901c9365ffffffffffff918216929181168084116131925787930361314b575061314792509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b9150506131479161316b61315d610eb9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152613031565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b50906131f2916131cb61315d610eb9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152613031565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 130;
        readonly type: "clanker_v4";
        readonly address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9";
        readonly related: {
            locker: "0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c";
            vault: "0xA9C0a423f0092176fC48d7B50a1fCae8cf5BB441";
            airdrop: "0xE143f9872A33c955F23cF442BB4B1EFB3A7402A2";
            devbuy: "0x267259e36914839Eb584e962558563760AE28862";
            mevModule: "0x42A95190B4088C88Dd904d930c79deC1158bF09D";
            feeLocker: "0x1d5A0F0BD3eA07F78FC14577f053de7A3FEc35B2";
            feeStaticHook: "0xBc6e5aBDa425309c2534Bc2bC92562F5419ce8Cc";
            feeDynamicHook: "0x9b37A43422D7bBD4C8B231be11E50AD1acE828CC";
        };
    };
    readonly clanker_v4_monad: {
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "Deprecated";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionMsgValueMismatch";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ExtensionNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "HookNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidExtension";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidHook";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidLocker";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidMevModule";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "LockerNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionBpsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MaxExtensionsExceeded";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "MevModuleNotEnabled";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NotFound";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyNonOriginatingChains";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "OnlyOriginatingChain";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTeamFees";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "msgValue";
                readonly type: "uint256";
            }];
            readonly name: "ExtensionTriggered";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetAdmin";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "deprecated";
                readonly type: "bool";
            }];
            readonly name: "SetDeprecated";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetExtension";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetHook";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetLocker";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "SetMevModule";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "oldTeamFeeRecipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "newTeamFeeRecipient";
                readonly type: "address";
            }];
            readonly name: "SetTeamFeeRecipient";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "msgSender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenImage";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenName";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenSymbol";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenMetadata";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "string";
                readonly name: "tokenContext";
                readonly type: "string";
            }, {
                readonly indexed: false;
                readonly internalType: "int24";
                readonly name: "startingTick";
                readonly type: "int24";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "poolHook";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "PoolId";
                readonly name: "poolId";
                readonly type: "bytes32";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "extensionsSupply";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly name: "TokenCreated";
            readonly type: "event";
        }, {
            readonly inputs: readonly [];
            readonly name: "BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSIONS";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "MAX_EXTENSION_BPS";
            readonly outputs: readonly [{
                readonly internalType: "uint16";
                readonly name: "";
                readonly type: "uint16";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "TOKEN_SUPPLY";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly name: "admins";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claimTeamFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                    }, {
                        readonly internalType: "string";
                        readonly name: "name";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "symbol";
                        readonly type: "string";
                    }, {
                        readonly internalType: "bytes32";
                        readonly name: "salt";
                        readonly type: "bytes32";
                    }, {
                        readonly internalType: "string";
                        readonly name: "image";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "metadata";
                        readonly type: "string";
                    }, {
                        readonly internalType: "string";
                        readonly name: "context";
                        readonly type: "string";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                    }];
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "hook";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address";
                        readonly name: "pairedToken";
                        readonly type: "address";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "int24";
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "poolData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "locker";
                        readonly type: "address";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "address[]";
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "int24[]";
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                    }, {
                        readonly internalType: "uint16[]";
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "lockerData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "mevModule";
                        readonly type: "address";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                }, {
                    readonly components: readonly [{
                        readonly internalType: "address";
                        readonly name: "extension";
                        readonly type: "address";
                    }, {
                        readonly internalType: "uint256";
                        readonly name: "msgValue";
                        readonly type: "uint256";
                    }, {
                        readonly internalType: "uint16";
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                    }, {
                        readonly internalType: "bytes";
                        readonly name: "extensionData";
                        readonly type: "bytes";
                    }];
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                }];
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly name: "deploymentConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "payable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }];
            readonly name: "deployTokenZeroSupply";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAddress";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "deploymentInfoForToken";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "deprecated";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }];
            readonly name: "enabledLockers";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "initialize";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setAdmin";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bool";
                readonly name: "deprecated_";
                readonly type: "bool";
            }];
            readonly name: "setDeprecated";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "extension";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setExtension";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setHook";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "pool";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setLocker";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "mevModule";
                readonly type: "address";
            }, {
                readonly internalType: "bool";
                readonly name: "enabled";
                readonly type: "bool";
            }];
            readonly name: "setMevModule";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "teamFeeRecipient_";
                readonly type: "address";
            }];
            readonly name: "setTeamFeeRecipient";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "teamFeeRecipient";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "tokenDeploymentInfo";
            readonly outputs: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "extensions";
                    readonly type: "address[]";
                }];
                readonly internalType: "struct IClanker.DeploymentInfo";
                readonly name: "";
                readonly type: "tuple";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly token: {
            readonly abi: readonly [{
                readonly type: "constructor";
                readonly inputs: readonly [{
                    readonly name: "name_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "symbol_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "maxSupply_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context_";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "initialSupplyChainId_";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "CLOCK_MODE";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "DOMAIN_SEPARATOR";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "admin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allData";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "originalAdmin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "admin";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "image";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "context";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "allowance";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "approve";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "balanceOf";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "burn";
                readonly inputs: readonly [{
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "burnFrom";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "checkpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pos";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "tuple";
                    readonly internalType: "struct Checkpoints.Checkpoint208";
                    readonly components: readonly [{
                        readonly name: "_key";
                        readonly type: "uint48";
                        readonly internalType: "uint48";
                    }, {
                        readonly name: "_value";
                        readonly type: "uint208";
                        readonly internalType: "uint208";
                    }];
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "clock";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "context";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "crosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "_from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "crosschainMint";
                readonly inputs: readonly [{
                    readonly name: "_to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "_amount";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "decimals";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "delegate";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegateBySig";
                readonly inputs: readonly [{
                    readonly name: "delegatee";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "nonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "delegates";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "eip712Domain";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "fields";
                    readonly type: "bytes1";
                    readonly internalType: "bytes1";
                }, {
                    readonly name: "name";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "version";
                    readonly type: "string";
                    readonly internalType: "string";
                }, {
                    readonly name: "chainId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "verifyingContract";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "salt";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "extensions";
                    readonly type: "uint256[]";
                    readonly internalType: "uint256[]";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastTotalSupply";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getPastVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "getVotes";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "imageUrl";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "isVerified";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "metadata";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "name";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "nonces";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "numCheckpoints";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint32";
                    readonly internalType: "uint32";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "originalAdmin";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "permit";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "v";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "r";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }, {
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "supportsInterface";
                readonly inputs: readonly [{
                    readonly name: "_interfaceId";
                    readonly type: "bytes4";
                    readonly internalType: "bytes4";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "pure";
            }, {
                readonly type: "function";
                readonly name: "symbol";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "totalSupply";
                readonly inputs: readonly [];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly stateMutability: "view";
            }, {
                readonly type: "function";
                readonly name: "transfer";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "transferFrom";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
                readonly outputs: readonly [{
                    readonly name: "";
                    readonly type: "bool";
                    readonly internalType: "bool";
                }];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateAdmin";
                readonly inputs: readonly [{
                    readonly name: "admin_";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateImage";
                readonly inputs: readonly [{
                    readonly name: "image_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "updateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata_";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "function";
                readonly name: "verify";
                readonly inputs: readonly [];
                readonly outputs: readonly [];
                readonly stateMutability: "nonpayable";
            }, {
                readonly type: "event";
                readonly name: "Approval";
                readonly inputs: readonly [{
                    readonly name: "owner";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "spender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainBurn";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "CrosschainMint";
                readonly inputs: readonly [{
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "amount";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "sender";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateChanged";
                readonly inputs: readonly [{
                    readonly name: "delegator";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "fromDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "toDelegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "DelegateVotesChanged";
                readonly inputs: readonly [{
                    readonly name: "delegate";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "previousVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }, {
                    readonly name: "newVotes";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "EIP712DomainChanged";
                readonly inputs: readonly [];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Transfer";
                readonly inputs: readonly [{
                    readonly name: "from";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "to";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly indexed: false;
                    readonly internalType: "uint256";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateAdmin";
                readonly inputs: readonly [{
                    readonly name: "oldAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "newAdmin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateImage";
                readonly inputs: readonly [{
                    readonly name: "image";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "UpdateMetadata";
                readonly inputs: readonly [{
                    readonly name: "metadata";
                    readonly type: "string";
                    readonly indexed: false;
                    readonly internalType: "string";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "event";
                readonly name: "Verified";
                readonly inputs: readonly [{
                    readonly name: "admin";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }, {
                    readonly name: "token";
                    readonly type: "address";
                    readonly indexed: true;
                    readonly internalType: "address";
                }];
                readonly anonymous: false;
            }, {
                readonly type: "error";
                readonly name: "AlreadyVerified";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "CheckpointUnorderedInsertion";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignature";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureLength";
                readonly inputs: readonly [{
                    readonly name: "length";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ECDSAInvalidSignatureS";
                readonly inputs: readonly [{
                    readonly name: "s";
                    readonly type: "bytes32";
                    readonly internalType: "bytes32";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20ExceededSafeSupply";
                readonly inputs: readonly [{
                    readonly name: "increasedSupply";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "cap";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientAllowance";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "allowance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InsufficientBalance";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "balance";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "needed";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidApprover";
                readonly inputs: readonly [{
                    readonly name: "approver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidReceiver";
                readonly inputs: readonly [{
                    readonly name: "receiver";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSender";
                readonly inputs: readonly [{
                    readonly name: "sender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC20InvalidSpender";
                readonly inputs: readonly [{
                    readonly name: "spender";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612ExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "deadline";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC2612InvalidSigner";
                readonly inputs: readonly [{
                    readonly name: "signer";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "owner";
                    readonly type: "address";
                    readonly internalType: "address";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC5805FutureLookup";
                readonly inputs: readonly [{
                    readonly name: "timepoint";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "clock";
                    readonly type: "uint48";
                    readonly internalType: "uint48";
                }];
            }, {
                readonly type: "error";
                readonly name: "ERC6372InconsistentClock";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "InvalidAccountNonce";
                readonly inputs: readonly [{
                    readonly name: "account";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "currentNonce";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "InvalidShortString";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "NotOriginalAdmin";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "SafeCastOverflowedUintDowncast";
                readonly inputs: readonly [{
                    readonly name: "bits";
                    readonly type: "uint8";
                    readonly internalType: "uint8";
                }, {
                    readonly name: "value";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }, {
                readonly type: "error";
                readonly name: "StringTooLong";
                readonly inputs: readonly [{
                    readonly name: "str";
                    readonly type: "string";
                    readonly internalType: "string";
                }];
            }, {
                readonly type: "error";
                readonly name: "Unauthorized";
                readonly inputs: readonly [];
            }, {
                readonly type: "error";
                readonly name: "VotesExpiredSignature";
                readonly inputs: readonly [{
                    readonly name: "expiry";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }];
            }];
            readonly bytecode: "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b604051612ef8908161107e823960805181611f9e015260a0518161205b015260c05181611f6f015260e05181611fed01526101005181612013015261012051816109c1015261014051816109ea0152610160518181816105280152818161109201526117ea0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b613fb6803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f516020613f765f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f516020613f765f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f516020613f965f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f516020613f965f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461026457806306fdde031461025f578063095ea7b31461025a57806318160ddd146102555780631c7b2ff41461025057806323b872dd1461024b578063313ce567146102465780633644e51514610241578063392f37e91461023c5780633a46b1a81461023757806342966c68146102325780634bf5d7e91461022d578063587cde1e146102285780635c19a95c146102235780636fcfff451461021e57806370a082311461021957806379cc6790146102145780637ecebe001461020f57806380007e831461020a57806384b0196e146102055780638e539e8c14610200578063918b5be1146101fb57806391ddadf4146101f657806395d89b41146101f15780639ab24eb0146101ec578063a9059cbb146101e7578063aba83150146101e2578063b974b0a3146101dd578063c3cda520146101d8578063d0496d6a146101d3578063d505accf146101ce578063dd62ed3e146101c9578063e2f273bd146101c4578063eb3d68e7146101bf578063f1127ed8146101ba578063f851a440146101b55763fc735e99146101b0575f80fd5b6117c3565b611790565b6116ba565b611546565b6114a5565b611432565b611297565b611274565b611106565b611003565b610fe0565b610fba565b610f52565b610ead565b610e82565b610cd5565b610ae0565b6109a9565b610987565b610942565b610912565b6108d0565b610848565b610826565b6107cb565b610722565b610703565b6105ff565b6105c1565b61059f565b610584565b61054c565b6104fc565b6104df565b6104ae565b610370565b34610315576020600319360112610315576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361031557807f36372b0700000000000000000000000000000000000000000000000000000000602092149081156102eb575b81156102e2575b506040519015158152f35b9050155f6102d7565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102d0565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061036d928181520190610319565b90565b34610315575f600319360112610315576040515f600354610390816118e8565b808452906001811690811561042657506001146103c8575b6103c4836103b881850382610bed565b6040519182918261035c565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061040c575090915081016020016103b86103a8565b9192600181602092548385880101520191019092916103f4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103b890506103a8565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031557565b34610315576040600319360112610315576104d46104ca610468565b602435903361239e565b602060405160018152f35b34610315575f600319360112610315576020600254604051908152f35b34610315575f60031936011261031557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610315576060600319360112610315576104d4610568610468565b61057061048b565b6044359161057f833383611c54565b611db9565b34610315575f60031936011261031557602060405160128152f35b34610315575f6003193601126103155760206105b9611f58565b604051908152f35b34610315575f600319360112610315576103c46040516105eb816105e481611939565b0382610bed565b604051918291602083526020830190610319565b3461031557604060031936011261031557610618610468565b73ffffffffffffffffffffffffffffffffffffffff60243591165f52600960205261064660405f2091612081565b8154905f8291600584116106ab575b61066093508461262f565b908161069057505060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b61069b6020926120d3565b905f52815f20015460301c61066c565b91926106b6816124ba565b81039081116106fe5761066093855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146106ec575091610655565b9291506106f8906120e1565b90610655565b6118bb565b3461031557602060031936011261031557610720600435336120ef565b005b34610315575f6003193601126103155761073b4361243b565b65ffffffffffff8061074c4361243b565b169116036107a3576103c4604051610765604082610bed565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291602083526020830190610319565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff6107f9610468565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461031557602060031936011261031557610720610842610468565b33612275565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610876610468565b165f52600960205260405f205463ffffffff81116108a05760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103155760206003193601126103155760206105b96108ee610468565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b346103155760406003193601126103155761072061092e610468565b6024359061093d823383611c54565b6120ef565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610970610468565b165f526007602052602060405f2054604051908152f35b34610315575f60031936011261031557602060ff600f54166040519015158152f35b34610315575f60031936011261031557610a876109e57f000000000000000000000000000000000000000000000000000000000000000061281a565b610a0e7f000000000000000000000000000000000000000000000000000000000000000061288c565b6020604051610a1d8282610bed565b5f815281610a95818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e0890190610319565b908782036040890152610319565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610ac957505050500390f35b835185528695509381019392810192600101610aba565b3461031557602060031936011261031557610afc600435612081565b600a54905f829160058411610b4b575b610b189350600a61262f565b80610b2957506040515f8152602090f35b610b46610b376020926120d3565b600a5f52825f20015460301c90565b61066c565b9192610b56816124ba565b81039081116106fe57610b1893600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610b8d575091610b0c565b929150610b99906120e1565b90610b0c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610be857604052565b610b9f565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610be857604052565b60405190610c3d604083610bed565b565b60206003198201126103155760043567ffffffffffffffff811161031557816023820112156103155780600401359067ffffffffffffffff8211610be85760405192610cb3601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610bed565b8284526024838301011161031557815f92602460209301838601378301015290565b3461031557610ce336610c3f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e5a57805167ffffffffffffffff8111610be857610d2781610d22600c546118e8565b611b9c565b6020601f8211600114610d975791610d7882610d87937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91610d8c575b505f198260011b9260031b1c19161790565b600c556040519182918261035c565b0390a1005b90508301515f610d66565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b818110610e425750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4949260019282610d879610610e2a575b5050811b01600c556103b8565b8401515f1960f88460031b161c191690555f80610e1d565b91926020600181928689015181550194019201610de3565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610315575f600319360112610315576020610e9d4361243b565b65ffffffffffff60405191168152f35b34610315575f600319360112610315576040515f600454610ecd816118e8565b80845290600181169081156104265750600114610ef4576103c4836103b881850382610bed565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210610f38575090915081016020016103b86103a8565b919260018160209254838588010152019101909291610f20565b346103155760206003193601126103155773ffffffffffffffffffffffffffffffffffffffff610f80610468565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff610fb160405f20612325565b16604051908152f35b34610315576040600319360112610315576104d4610fd6610468565b6024359033611db9565b34610315575f600319360112610315576103c46040516105eb816105e4816119f6565b34610315575f6003193601126103155773ffffffffffffffffffffffffffffffffffffffff600b5416604051906110448261103d816119f6565b0383610bed565b6103c4604051611057816105e481611939565b6110d8604051916110728361106b81611a79565b0384610bed565b6110ca60405196879673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168852602088015260a0604088015260a0870190610319565b908582036060870152610319565b908382036080850152610319565b6064359060ff8216820361031557565b6084359060ff8216820361031557565b346103155760c06003193601126103155761111f610468565b6024359060443561112e6110e6565b6084359060a4359280421161124957916111c193916111b36111b89460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a60608301526080820152608081526111ab60a082610bed565b51902061234e565b6128c3565b90929192612994565b6111f28173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b809303611203576107209250612275565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610315575f600319360112610315576103c46040516105eb816105e481611a79565b346103155760e0600319360112610315576112b0610468565b6112b861048b565b60443590606435926112c86110f6565b60a43560c43590864211611406576113989261139361130e8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c081526111ab60e082610bed565b61238f565b9373ffffffffffffffffffffffffffffffffffffffff8516036113bf57610720935061239e565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461031557604060031936011261031557602061149c611450610468565b73ffffffffffffffffffffffffffffffffffffffff61146d61048b565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610315576020600319360112610315576114be610468565b600b5473ffffffffffffffffffffffffffffffffffffffff811690813303610e5a5773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff000000000000000000000000000000000000000093169283911617600b557fcd6ba6b7da89e039d53b5d981527a893755342bb9d8e5c2f61f6638f1fb5192b5f80a3005b346103155761155436610c3f565b73ffffffffffffffffffffffffffffffffffffffff600b54163303610e5a57805167ffffffffffffffff8111610be85761159881611593600e546118e8565b611bec565b6020601f82116001146115f757916115e882610d87937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f91610d8c57505f198260011b9260031b1c19161790565b600e556040519182918261035c565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106116a25750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216949260019282610d87961061168a575b5050811b01600e556103b8565b8401515f1960f88460031b161c191690555f8061167d565b91926020600181928689015181550194019201611643565b34610315576040600319360112610315576116d3610468565b6024359063ffffffff82168203610315576103c49173ffffffffffffffffffffffffffffffffffffffff61172d92611709611c3c565b50611712611c3c565b50165f52600960205260405f20611727611c3c565b50612a5b565b506040519061173b82610bcc565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610315575f60031936011261031557602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610315575f6003193601126103155773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361189357600f5460ff811661186b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fce7123f5000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c9216801561192f575b602083101461190257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916118f7565b600c545f9291611948826118e8565b80825291600181169081156119bc5750600114611963575050565b600c5f9081529293509091907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8383106119a2575060209250010190565b600181602092949394548385870101520191019190611991565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b600e545f9291611a05826118e8565b80825291600181169081156119bc5750600114611a20575050565b600e5f9081529293509091907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b838310611a5f575060209250010190565b600181602092949394548385870101520191019190611a4e565b600d545f9291611a88826118e8565b80825291600181169081156119bc5750600114611aa3575050565b600d5f9081529293509091907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b838310611ae2575060209250010190565b600181602092949394548385870101520191019190611ad1565b5f9291815491611b0b836118e8565b8083529260018116908115611b605750600114611b2757505050565b5f9081526020812093945091925b838310611b46575060209250010190565b600181602092949394548385870101520191019190611b35565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611ba8575050565b600c5f5260205f20906020601f840160051c83019310611be2575b601f0160051c01905b818110611bd7575050565b5f8155600101611bcc565b9091508190611bc3565b601f8111611bf8575050565b600e5f5260205f20906020601f840160051c83019310611c32575b601f0160051c01905b818110611c27575050565b5f8155600101611c1c565b9091508190611c13565b60405190611c4982610bcc565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611ca28360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198110611cb2575b50505050565b818110611d71578215611d455773ffffffffffffffffffffffffffffffffffffffff841615611d1957611d0f925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611cac565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611f2c5773ffffffffffffffffffffffffffffffffffffffff82168015611f0057611e1e8273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611eb45784610c3d969703611e558473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611e7d8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612c93565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480612058575b15611fc0577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261205260c082610bed565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611f97565b65ffffffffffff6120914361243b565b16808210156120a4575061036d9061243b565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f1982019182116106fe57565b90600182018092116106fe57565b73ffffffffffffffffffffffffffffffffffffffff8116908115611f2c576121348173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5483811061222a579061216c84610c3d959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612212575b6121be6121b983612a9d565b612c32565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff9081169116612693565b61222361221e83612a9d565b612bd1565b50506121ad565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610c3d9694169461231f9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b91612693565b8054806123325750505f90565b805f198101116106fe575f19915f5260205f2001015460301c90565b604290612359611f58565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161036d93916111b8936128c3565b73ffffffffffffffffffffffffffffffffffffffff16908115611d455773ffffffffffffffffffffffffffffffffffffffff8116928315611d19578061242e7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b65ffffffffffff81116124535765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b811561248d570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561036d578060017001000000000000000000000000000000008310156125ed575b61259361258961257f61257561256b61256161255061259a9760048a6801000000000000000061259f9c10156125e0575b6401000000008110156125d3575b620100008110156125c6575b6101008110156125b9575b60108110156125ac575b10156125a4575b60030260011c90565b61255a818b612483565b0160011c90565b61255a818a612483565b61255a8189612483565b61255a8188612483565b61255a8187612483565b61255a8186612483565b8093612483565b821190565b900390565b60011b612547565b60041c9160021b91612540565b60081c9160041b91612536565b60101c9160081b9161252b565b60201c9160101b9161251f565b60401c9160201b91612511565b505061259f61259a61259361258961257f61257561256b6125616125506126148a60801c90565b98506801000000000000000097506124e09650505050505050565b91905b83821061263f5750505090565b9091928083169080841860011c82018092116106fe57845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146126815750925b9190612632565b93925061268d906120e1565b9161267a565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612811575b6126db575b5050505050565b8161278e575b5050826126f0575b80806126d4565b61278361276a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361276461275e79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612a9d565b90612b71565b6040805192851683529316602082015291829190820190565b0390a25f80806126e9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff61280761276a6127f87fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b61280188612a9d565b90612b0d565b0390a25f806126e1565b508315156126cf565b60ff81146128795760ff811690601f8211612851576040519161283e604084610bed565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161036d816105e4816005611afc565b60ff81146128b05760ff811690601f8211612851576040519161283e604084610bed565b5060405161036d816105e4816006611afc565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612952579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612947575f5173ffffffffffffffffffffffffffffffffffffffff81161561293d57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004111561296757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61299d8161295d565b806129a6575050565b6129af8161295d565b600181036129df577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6129e88161295d565b60028103612a1c57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612a2860039261295d565b14612a305750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612a70575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612add5779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612b174361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612b3d85612325565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff82116106fe57612b6d92612dc5565b9091565b90612b7b4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612ba185612325565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff82116106fe57612b6d92612dc5565b612bda4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c01600a612325565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff81116106fe57612b6d91600a612dc5565b612c3b4361243b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c62600a612325565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff81116106fe57612b6d91600a612dc5565b9073ffffffffffffffffffffffffffffffffffffffff80610c3d949316918215612d1f575b16908115612d0c575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f20541690612693565b612d186121b984612a9d565b5050612cc1565b612d2b61221e85612a9d565b5050612cb8565b805468010000000000000000811015610be857612d5491600182018155612a5b565b612d995781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612ebb57612ddc612de7916120d3565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612e9357879303612e4c5750612e4892509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612e4891612e6c612e5e610c2e565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612d32565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612ef391612ecc612e5e610c2e565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612d32565b5f919056c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
        };
        readonly chainId: 143;
        readonly type: "clanker_v4";
        readonly address: "0xF9a0C289Eab6B571c6247094a853810987E5B26D";
        readonly related: {
            locker: "0xDe51a86D3b6EC9ac4756115D3744335Aa2c30144";
            vault: "0xe7D402A5BEd94E5c49Ac0639E80f784D06E2D397";
            airdrop: "0x654E7221fa51d4359ded21D524E3AfF18e93A507";
            devbuy: "0x8790d79283eB941c719b616CfD0Ef116D13C7683";
            mevModule: "0x0000000000000000000000000000000000000000";
            mevModuleV2: "0x3231D1ddfdC4Ad585cF1939FfEcd9c88b338Dbf2";
            feeLocker: "0x46B77BaCFd712D79131F1AD7611794869483C353";
            feeStaticHook: "0x0000000000000000000000000000000000000000";
            feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc";
            feeDynamicHook: "0x0000000000000000000000000000000000000000";
        };
    };
};
type Clankers = typeof CLANKERS;
type Type = Clankers[keyof Clankers]['type'];
type Chain = Clankers[keyof Clankers]['chainId'];
declare const Chains: (1 | 143 | 8453 | 10143 | 2741 | 84532 | 42161 | 130)[];
/** All deployments of Clanker */
declare const ClankerDeployments: Record<1 | 143 | 8453 | 10143 | 2741 | 84532 | 42161 | 130, Partial<Record<"clanker" | "proxy" | "clanker_v2" | "clanker_v3" | "clanker_v3_1" | "clanker_v4", ClankerDeployment<RelatedAddresses>>>>;
/**
 * Get a specific clanker deployment.
 *
 * @param chainId Chain id of the deployment.
 * @param type Version of the deployment.
 * @returns The deployment if it exists.
 */
declare const clankerConfigFor: <T extends ClankerDeployment = ClankerDeployment>(chainId: Chain, type: Type) => T | undefined;

/** Clanker v4 token definition. */
declare const clankerTokenV4: z.ZodObject<{
    /** Name of the token. Example: "My Token". */
    name: z.ZodString;
    /** Symbol for the token. Example: "MTK". */
    symbol: z.ZodString;
    /** Image for the token. This should be a normal or ipfs url. */
    image: z.ZodDefault<z.ZodString>;
    /** Id of the chain that the token will be deployed to. Defaults to base (8453). */
    chainId: z.ZodDefault<z.ZodLiteral<1 | 143 | 8453 | 10143 | 2741 | 84532 | 42161 | 130>>;
    /** Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. */
    salt: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
    /** Admin for the token. They will be able to change fields like image, metadata, etc. */
    tokenAdmin: z.ZodCustom<`0x${string}`, `0x${string}`>;
    /** Metadata for the token. */
    metadata: z.ZodOptional<z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        socialMediaUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            platform: z.ZodString;
            url: z.ZodString;
        }, z.core.$strip>>>;
        auditUrls: z.ZodOptional<z.ZodArray<z.ZodURL>>;
    }, z.core.$strict>>;
    /** Social provenance for the token. Interface defaults to "SDK" if not set. */
    context: z.ZodDefault<z.ZodObject<{
        interface: z.ZodDefault<z.ZodString>;
        platform: z.ZodOptional<z.ZodString>;
        messageId: z.ZodOptional<z.ZodString>;
        id: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    /** [v4.1+ only] Custom developer extension */
    poolExtension: z.ZodPrefault<z.ZodObject<{
        address: z.ZodCustom<`0x${string}`, `0x${string}`>;
        initData: z.ZodCustom<`0x${string}`, `0x${string}`>;
    }, z.core.$strip>>;
    /** Pool information */
    pool: z.ZodPrefault<z.ZodObject<{
        pairedToken: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"WETH">, z.ZodCustom<`0x${string}`, `0x${string}`>]>>;
        tickIfToken0IsClanker: z.ZodDefault<z.ZodNumber>;
        tickSpacing: z.ZodDefault<z.ZodNumber>;
        positions: z.ZodArray<z.ZodObject<{
            tickLower: z.ZodNumber;
            tickUpper: z.ZodNumber;
            positionBps: z.ZodNumber;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    /** Token locker */
    locker: z.ZodPrefault<z.ZodObject<{
        locker: z.ZodUnion<readonly [z.ZodLiteral<"Locker">, z.ZodCustom<`0x${string}`, `0x${string}`>]>;
        lockerData: z.ZodDefault<z.ZodCustom<`0x${string}`, `0x${string}`>>;
    }, z.core.$strip>>;
    /** Token vault. Tokens are locked for some duration with possible vesting. */
    vault: z.ZodOptional<z.ZodObject<{
        percentage: z.ZodNumber;
        lockupDuration: z.ZodNumber;
        vestingDuration: z.ZodDefault<z.ZodNumber>;
        recipient: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
    }, z.core.$strip>>;
    /** Token airdrop. Tokens are locked for some duration with possible vesting. */
    airdrop: z.ZodOptional<z.ZodObject<{
        admin: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
        merkleRoot: z.ZodCustom<`0x${string}`, `0x${string}`>;
        lockupDuration: z.ZodNumber;
        vestingDuration: z.ZodDefault<z.ZodNumber>;
        amount: z.ZodNumber;
    }, z.core.$strip>>;
    /** Token dev buy. Tokens are bought in the token creation transaction. */
    devBuy: z.ZodOptional<z.ZodObject<{
        ethAmount: z.ZodNumber;
        poolKey: z.ZodDefault<z.ZodObject<{
            currency0: z.ZodCustom<`0x${string}`, `0x${string}`>;
            currency1: z.ZodCustom<`0x${string}`, `0x${string}`>;
            fee: z.ZodNumber;
            tickSpacing: z.ZodNumber;
            hooks: z.ZodCustom<`0x${string}`, `0x${string}`>;
        }, z.core.$strip>>;
        amountOutMin: z.ZodDefault<z.ZodNumber>;
        recipient: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
    }, z.core.$strip>>;
    /** Fee structure for the token. */
    fees: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodDefault<z.ZodLiteral<"static">>;
        clankerFee: z.ZodNumber;
        pairedFee: z.ZodNumber;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodDefault<z.ZodLiteral<"dynamic">>;
        baseFee: z.ZodNumber;
        maxFee: z.ZodNumber;
        referenceTickFilterPeriod: z.ZodNumber;
        resetPeriod: z.ZodNumber;
        resetTickFilter: z.ZodNumber;
        feeControlNumerator: z.ZodNumber;
        decayFilterBps: z.ZodNumber;
    }, z.core.$strip>], "type">>;
    /** [v4.1+ only] Sniper fees */
    sniperFees: z.ZodPrefault<z.ZodObject<{
        startingFee: z.ZodNumber;
        endingFee: z.ZodNumber;
        secondsToDecay: z.ZodNumber;
    }, z.core.$strip>>;
    /** Rewards & recipients for rewards generated by the token. */
    rewards: z.ZodOptional<z.ZodObject<{
        recipients: z.ZodArray<z.ZodObject<{
            admin: z.ZodCustom<`0x${string}`, `0x${string}`>;
            recipient: z.ZodCustom<`0x${string}`, `0x${string}`>;
            bps: z.ZodNumber;
            token: z.ZodLiteral<"Both" | "Paired" | "Clanker">;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    /** Presale configuration for the token. Must be deployed via the presale contract. */
    presale: z.ZodOptional<z.ZodObject<{
        bps: z.ZodNumber;
    }, z.core.$strip>>;
    /** Whether or not to enable the "0xb07" address suffix. */
    vanity: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strict>;
type ClankerTokenV4 = z.input<typeof clankerTokenV4>;
/**
 * Encode a fee configuration for Clanker v4.
 *
 * @param config The fee configuration
 * @param clankerConfig A clanker configuration
 * @returns A correctly formatted fee configuration
 */
declare function encodeFeeConfig(tokenConfig: z.infer<typeof clankerTokenV4>, clankerConfig: ClankerDeployment<RelatedV4>): {
    hook: Address;
    poolData: `0x${string}`;
};

type DeployTokenOptions = {
    /** Data to append to the end of the transaction calldata (e.g., Base builder codes) */
    dataSuffix?: `0x${string}`;
};

export { type ClankerTokenV4 as C, type DeployTokenOptions as D, type RelatedV3_1 as R, type Type as T, type Chain as a, type ClankerDeployment as b, type RelatedV4 as c, CLANKERS as d, encodeFeeConfig as e, type Clankers as f, Chains as g, ClankerDeployments as h, clankerConfigFor as i };
