import { Signer, ContractFactory, Overrides } from "ethers"; import type { Provider, TransactionRequest } from "@ethersproject/providers"; import type { PromiseOrValue } from "../common"; import type { TokensTestSuite, TokensTestSuiteInterface } from "../TokensTestSuite"; declare type TokensTestSuiteConstructorParams = [signer?: Signer] | ConstructorParameters; export declare class TokensTestSuite__factory extends ContractFactory { constructor(...args: TokensTestSuiteConstructorParams); deploy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getDeployTransaction(overrides?: Overrides & { from?: PromiseOrValue; }): TransactionRequest; attach(address: string): TokensTestSuite; connect(signer: Signer): TokensTestSuite__factory; static readonly contractName: "TokensTestSuite"; readonly contractName: "TokensTestSuite"; static readonly bytecode = "0x60806040526000805460ff19166001179055600880546001600160a01b031916737109709ecfa91a80626ff3989d68f67f5b1dd12d1790553480156200004457600080fd5b50600062000051620000a6565b8051600e81905590915060005b818110156200009d576200009483828151811062000080576200008062000a49565b60200260200101516200052a60201b60201c565b6001016200005e565b50505062000c32565b604080516101e081019091526060906000908061014081018060018152604080518082018252600381526244414960e81b6020828101919091528301526012908201526305f5e1006060820152608001600081525081526020016040518060a001604052806002600a81111562000121576200012162000a5f565b815260408051808201825260048152635553444360e01b6020828101919091528301526006908201526305f5e1006060820152608001600081525081526020016040518060a001604052806003600a81111562000182576200018262000a5f565b815260408051808201825260048152630ae8aa8960e31b602082810191909152830152601290820152606001620001c06103e86305f5e10062000a8b565b8152602001600081525081526020016040518060a001604052806004600a811115620001f057620001f062000a5f565b815260408051808201825260048152634c494e4b60e01b6020828101919091528301526012908201526359682f006060820152608001600081525081526020016040518060a001604052806005600a81111562000251576200025162000a5f565b815260408051808201825260048152631554d11560e21b602082810191909152830152601290820152633b0233806060820152608001600081525081526020016040518060a001604052806006600a811115620002b257620002b262000a5f565b815260408051808201825260058152640e6e88aa8960db1b602082810191909152830152601290820152644cd58864006060820152608001600081525081526020016040518060a001604052806007600a81111562000315576200031562000a5f565b8152604080518082018252600381526221a92b60e91b6020828101919091528301526012908201526308583b006060820152608001600081525081526020016040518060a001604052806008600a81111562000375576200037562000a5f565b81526040805180820182526003815262086acb60eb1b6020828101919091528301526012908201526329b927006060820152608001600081525081526020016040518060a001604052806009600a811115620003d557620003d562000a5f565b815260408051808201825260048152634c554e4160e01b60208281019190915283015260129082015260016060820152608001600081525081526020016040518060a00160405280600a8081111562000432576200043262000a5f565b815260408051808201825260068152650eee6e88aa8960d31b602080830191909152830152601281830152644cd58864006060830152600060809092019190915291528051600a80825261016082019092529192509081816020015b620004bf6040805160a081018252600080825260606020830181905292820181905291810182905290608082015290565b8152602001906001900390816200048e57905050925060005b8181101562000524578281600a8110620004f657620004f662000a49565b602002015184828151811062000510576200051062000a49565b6020908102919091010152600101620004d8565b50505090565b600060038251600a81111562000544576200054462000a5f565b14156200059a5760405162000559906200096b565b604051809103906000f08015801562000576573d6000803e3d6000fd5b50600980546001600160a01b0319166001600160a01b038316179055905062000656565b60028251600a811115620005b257620005b262000a5f565b14156200060a57816020015182602001518360400151604051620005d69062000979565b620005e49392919062000b6c565b604051809103906000f08015801562000601573d6000803e3d6000fd5b50905062000656565b816020015182602001518360400151604051620006279062000987565b620006359392919062000b6c565b604051809103906000f08015801562000652573d6000803e3d6000fd5b5090505b60085460208301516040516318caf8e360e31b81526001600160a01b039092169163c657c718916200068e9185919060040162000ba9565b600060405180830381600087803b158015620006a957600080fd5b505af1158015620006be573d6000803e3d6000fd5b50505050600082606001516008604051620006d99062000995565b91825260ff166020820152604001604051809103906000f08015801562000704573d6000803e3d6000fd5b50905081600a60008560000151600a81111562000725576200072562000a5f565b600a81111562000739576200073962000a5f565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260600151600c60008560000151600a8111156200078d576200078d62000a5f565b600a811115620007a157620007a162000a5f565b8152602080820192909252604090810160009081209390935585516001600160a01b03861684526010909252909120805460ff1916600183600a811115620007ed57620007ed62000a5f565b0217905550604080518082019091526001600160a01b0380841682528281166020808401918252600f80546001810182556000918252945160029095027f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802810180549686166001600160a01b031997881617905592517f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac803909301805493909416929094169190911790915584015184519091600b91600a811115620008b657620008b662000a5f565b600a811115620008ca57620008ca62000a5f565b81526020019081526020016000209080519060200190620008ed929190620009a3565b5080600d60008560000151600a8111156200090c576200090c62000a5f565b600a81111562000920576200092062000a5f565b81526020810191909152604001600090812080546001600160a01b0319166001600160a01b039390931692909217909155600e805491620009618362000bd7565b9190505550505050565b610ab180620021ef83390190565b61159d8062002ca083390190565b611682806200423d83390190565b61070380620058bf83390190565b828054620009b19062000bf5565b90600052602060002090601f016020900481019282620009d5576000855562000a20565b82601f10620009f057805160ff191683800117855562000a20565b8280016001018555821562000a20579182015b8281111562000a2057825182559160200191906001019062000a03565b5062000a2e92915062000a32565b5090565b5b8082111562000a2e576000815560010162000a33565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160ff1b038184138284138082168684048611161562000ab45762000ab462000a75565b600160ff1b600087128281168783058912161562000ad65762000ad662000a75565b6000871292508782058712848416161562000af55762000af562000a75565b8785058712818416161562000b0e5762000b0e62000a75565b505050929093029392505050565b6000815180845260005b8181101562000b445760208185018101518683018201520162000b26565b8181111562000b57576000602083870101525b50601f01601f19169290920160200192915050565b60608152600062000b81606083018662000b1c565b828103602084015262000b95818662000b1c565b91505060ff83166040830152949350505050565b6001600160a01b038316815260406020820181905260009062000bcf9083018462000b1c565b949350505050565b600060001982141562000bee5762000bee62000a75565b5060010190565b600181811c9082168062000c0a57607f821691505b6020821081141562000c2c57634e487b7160e01b600052602260045260246000fd5b50919050565b6115ad8062000c426000396000f3fe60806040526004361061018f5760003560e01c806398cdaadf116100d6578063d051a6221161007f578063f7888aec11610059578063f7888aec14610515578063f8ebe1b814610535578063fa7626d41461055557600080fd5b8063d051a622146104b5578063eebab8ef146104d5578063f6b911bc146104f557600080fd5b8063b36ba208116100b0578063b36ba20814610468578063ba414fa614610470578063c6c3bbe61461049557600080fd5b806398cdaadf146103ef5780639b140a85146104325780639f181b5e1461045257600080fd5b80636a72bde71161013857806388f776a21161011257806388f776a2146103825780638a3177a3146103a25780638eb86e8b146103cf57600080fd5b80636a72bde7146103125780636ca42ae314610332578063883278631461035457600080fd5b80634b57b0be116101695780634b57b0be1461025b57806359eba454146102ad57806367b42645146102cf57600080fd5b806304bc3b1c1461019b57806310c7f0b9146101e1578063440864fa1461022e57600080fd5b3661019657005b600080fd5b3480156101a757600080fd5b506101cb6101b6366004611132565b60106020526000908152604090205460ff1681565b6040516101d8919061117c565b60405180910390f35b3480156101ed57600080fd5b506102016101fc3660046111bd565b61056f565b6040805173ffffffffffffffffffffffffffffffffffffffff9384168152929091166020830152016101d8565b34801561023a57600080fd5b5061024e6102493660046111e5565b6105b5565b6040516101d8919061122c565b34801561026757600080fd5b506009546102889073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d8565b3480156102b957600080fd5b506102cd6102c836600461127d565b61064f565b005b3480156102db57600080fd5b506102886102ea3660046111e5565b600a6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561031e57600080fd5b506102cd61032d3660046112c8565b610774565b34801561033e57600080fd5b506103476107d3565b6040516101d891906112e7565b34801561036057600080fd5b5061037461036f366004611350565b610858565b6040519081526020016101d8565b34801561038e57600080fd5b506102cd61039d366004611383565b6108b8565b3480156103ae57600080fd5b506103746103bd3660046111e5565b600c6020526000908152604090205481565b3480156103db57600080fd5b506102cd6103ea3660046113c6565b610915565b3480156103fb57600080fd5b5061028861040a3660046111e5565b600d6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561043e57600080fd5b506102cd61044d366004611402565b61096d565b34801561045e57600080fd5b50610374600e5481565b6102cd610999565b34801561047c57600080fd5b50610485610a17565b60405190151581526020016101d8565b3480156104a157600080fd5b506102cd6104b0366004611420565b610b77565b3480156104c157600080fd5b506103746104d0366004611383565b610ddf565b3480156104e157600080fd5b506102cd6104f03660046113c6565b610ebb565b34801561050157600080fd5b506102cd610510366004611420565b610f13565b34801561052157600080fd5b5061037461053036600461143e565b610f6e565b34801561054157600080fd5b506102cd61055036600461145a565b611002565b34801561056157600080fd5b506000546104859060ff1681565b600f818154811061057f57600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff91821692501682565b600b60205260009081526040902080546105ce90611484565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa90611484565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b505050505081565b6008546040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529091169063ca669fa790602401600060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528716925063095ea7b391506044016020604051808303816000875af1158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d91906114d8565b5050505050565b6107cd600a600086600a81111561078d5761078d61114d565b600a81111561079e5761079e61114d565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1684848461064f565b50505050565b6060600f805480602002602001604051908101604052809291908181526020016000905b8282101561084f5760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff9081168352600191820154168284015290835290920191016107f7565b50505050905090565b60006108b1600a600085600a8111156108735761087361114d565b600a8111156108845761088461114d565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1683610f6e565b9392505050565b610910600a600085600a8111156108d1576108d161114d565b600a8111156108e2576108e261114d565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16838361096d565b505050565b610910600a600085600a81111561092e5761092e61114d565b600a81111561093f5761093f61114d565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff168383610f13565b6109108383837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61064f565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a0357600080fd5b505af115801561076d573d6000803e3d6000fd5b60008054610100900460ff1615610a375750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610b725760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091610adc917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016114fa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610b1491611542565b6000604051808303816000865af19150503d8060008114610b51576040519150601f19603f3d011682016040523d82523d6000602084013e610b56565b606091505b5091505080806020019051810190610b6e91906114d8565b9150505b919050565b60095473ffffffffffffffffffffffffffffffffffffffff84811691161415610cac576008546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063c88a5e6d90604401600060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610c8e57600080fd5b505af1158015610ca2573d6000803e3d6000fd5b5050505050610d45565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810182905273ffffffffffffffffffffffffffffffffffffffff8416906340c10f19906044016020604051808303816000875af1158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4391906114d8565b505b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd91906114d8565b6000600a600085600a811115610df757610df761114d565b600a811115610e0857610e0861114d565b8152602081019190915260409081016000205490517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015284811660248301529091169063dd62ed3e90604401602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb3919061155e565b949350505050565b610910600a600085600a811115610ed457610ed461114d565b600a811115610ee557610ee561114d565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff168383610b77565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260248201839052841690639dc29fac90604401610d9c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152600091908416906370a0823190602401602060405180830381865afa158015610fde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b1919061155e565b6008546040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529091169063ca669fa790602401600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b7257600080fd5b60006020828403121561114457600080fd5b6108b18261110e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600b83106111b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000602082840312156111cf57600080fd5b5035919050565b8035600b8110610b7257600080fd5b6000602082840312156111f757600080fd5b6108b1826111d6565b60005b8381101561121b578181015183820152602001611203565b838111156107cd5750506000910152565b602081526000825180602084015261124b816040850160208701611200565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000806000806080858703121561129357600080fd5b61129c8561110e565b93506112aa6020860161110e565b92506112b86040860161110e565b9396929550929360600135925050565b600080600080608085870312156112de57600080fd5b61129c856111d6565b602080825282518282018190526000919060409081850190868401855b82811015611343578151805173ffffffffffffffffffffffffffffffffffffffff90811686529087015116868501529284019290850190600101611304565b5091979650505050505050565b6000806040838503121561136357600080fd5b61136c836111d6565b915061137a6020840161110e565b90509250929050565b60008060006060848603121561139857600080fd5b6113a1846111d6565b92506113af6020850161110e565b91506113bd6040850161110e565b90509250925092565b6000806000606084860312156113db57600080fd5b6113e4846111d6565b92506113f26020850161110e565b9150604084013590509250925092565b60008060006060848603121561141757600080fd5b6113a18461110e565b60008060006060848603121561143557600080fd5b6113e48461110e565b6000806040838503121561145157600080fd5b61136c8361110e565b6000806040838503121561146d57600080fd5b6114768361110e565b946020939093013593505050565b600181811c9082168061149857607f821691505b602082108114156114d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156114ea57600080fd5b815180151581146108b157600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008316815260008251611534816004850160208701611200565b919091016004019392505050565b60008251611554818460208701611200565b9190910192915050565b60006020828403121561157057600080fd5b505191905056fea2646970667358221220724e8b24ee890e90367cfb70f06603fa63cae2e2a4d7f53617b90b4b0b2dead364736f6c634300080a003360c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b5061014e565b82805461008690610113565b90600052602060002090601f0160209004810192826100a857600085556100ee565b82601f106100c157805160ff19168380011785556100ee565b828001600101855582156100ee579182015b828111156100ee5782518255916020019190600101906100d3565b506100fa9291506100fe565b5090565b5b808211156100fa57600081556001016100ff565b600181811c9082168061012757607f821691505b6020821081141561014857634e487b7160e01b600052602260045260246000fd5b50919050565b6109548061015d6000396000f3fe6080604052600436106100cb5760003560e01c806340c10f1911610074578063a9059cbb1161004e578063a9059cbb14610225578063d0e30db014610245578063dd62ed3e1461024d57600080fd5b806340c10f19146101c357806370a08231146101e357806395d89b411461021057600080fd5b806323b872dd116100a557806323b872dd146101575780632e1a7d4d14610177578063313ce5671461019757600080fd5b806306fdde03146100df578063095ea7b31461010a57806318160ddd1461013a57600080fd5b366100da576100d8610285565b005b600080fd5b3480156100eb57600080fd5b506100f46102e0565b6040516101019190610703565b60405180910390f35b34801561011657600080fd5b5061012a61012536600461079f565b61036e565b6040519015158152602001610101565b34801561014657600080fd5b50475b604051908152602001610101565b34801561016357600080fd5b5061012a6101723660046107c9565b6103e7565b34801561018357600080fd5b506100d8610192366004610805565b6105fe565b3480156101a357600080fd5b506002546101b19060ff1681565b60405160ff9091168152602001610101565b3480156101cf57600080fd5b506100d86101de36600461079f565b6106a4565b3480156101ef57600080fd5b506101496101fe36600461081e565b60036020526000908152604090205481565b34801561021c57600080fd5b506100f46106e2565b34801561023157600080fd5b5061012a61024036600461079f565b6106ef565b6100d8610285565b34801561025957600080fd5b50610149610268366004610839565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102a490849061089b565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102ed906108b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610319906108b3565b80156103665780601f1061033b57610100808354040283529160200191610366565b820191906000526020600020905b81548152906001019060200180831161034957829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d69086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561041957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416331480159061048f575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105175773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156104d157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915281208054849290610511908490610907565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061054c908490610907565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805484929061058690849061089b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105ec91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561061a57600080fd5b3360009081526003602052604081208054839290610639908490610907565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561066b573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080548392906106d990849061089b565b90915550505050565b600180546102ed906108b3565b60006106fc3384846103e7565b9392505050565b600060208083528351808285015260005b8181101561073057858101830151858201604001528201610714565b81811115610742576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461079a57600080fd5b919050565b600080604083850312156107b257600080fd5b6107bb83610776565b946020939093013593505050565b6000806000606084860312156107de57600080fd5b6107e784610776565b92506107f560208501610776565b9150604084013590509250925092565b60006020828403121561081757600080fd5b5035919050565b60006020828403121561083057600080fd5b6106fc82610776565b6000806040838503121561084c57600080fd5b61085583610776565b915061086360208401610776565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156108ae576108ae61086c565b500190565b600181811c908216806108c757607f821691505b60208210811415610901577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000828210156109195761091961086c565b50039056fea264697066735822122049c697010c354f39e8d1eca31f0c9a94bf41a2dbb99c867e61d5b9fa0dac9f3164736f6c634300080a003360a06040523480156200001157600080fd5b506040516200159d3803806200159d833981016040819052620000349162000258565b8251839083906200004d906003906020850190620000e5565b50805162000063906004906020840190620000e5565b505050620000806200007a6200008f60201b60201c565b62000093565b60ff16608052506200031a9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000f390620002dd565b90600052602060002090601f01602090048101928262000117576000855562000162565b82601f106200013257805160ff191683800117855562000162565b8280016001018555821562000162579182015b828111156200016257825182559160200191906001019062000145565b506200017092915062000174565b5090565b5b8082111562000170576000815560010162000175565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001b357600080fd5b81516001600160401b0380821115620001d057620001d06200018b565b604051601f8301601f19908116603f01168101908282118183101715620001fb57620001fb6200018b565b816040528381526020925086838588010111156200021857600080fd5b600091505b838210156200023c57858201830151818301840152908201906200021d565b838211156200024e5760008385830101525b9695505050505050565b6000806000606084860312156200026e57600080fd5b83516001600160401b03808211156200028657600080fd5b6200029487838801620001a1565b94506020860151915080821115620002ab57600080fd5b50620002ba86828701620001a1565b925050604084015160ff81168114620002d257600080fd5b809150509250925092565b600181811c90821680620002f257607f821691505b602082108114156200031457634e487b7160e01b600052602260045260246000fd5b50919050565b6080516112676200033660003960006101c301526112676000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c8063715018a6116100cd578063d01dd6d211610081578063e47d606011610066578063e47d6060146103b7578063f2fde38b146103da578063fe575a87146103ed57600080fd5b8063d01dd6d21461030d578063dd62ed3e1461037157600080fd5b806395d89b41116100b257806395d89b41146102df578063a457c2d7146102e7578063a9059cbb146102fa57600080fd5b8063715018a6146102af5780638da5cb5b146102b757600080fd5b8063313ce5671161012457806340c10f191161010957806340c10f19146102005780635cd8c0721461021357806370a082311461027957600080fd5b8063313ce567146101bc57806339509351146101ed57600080fd5b806306fdde0314610156578063095ea7b31461017457806318160ddd1461019757806323b872dd146101a9575b600080fd5b61015e610410565b60405161016b919061100b565b60405180910390f35b6101876101823660046110a7565b6104a2565b604051901515815260200161016b565b6002545b60405190815260200161016b565b6101876101b73660046110d1565b6104ba565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161016b565b6101876101fb3660046110a7565b6105c7565b61018761020e3660046110a7565b610613565b61027761022136600461110d565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b61019b610287366004611149565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610277610630565b60055460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016b565b61015e610644565b6101876102f53660046110a7565b610653565b6101876103083660046110a7565b610724565b61027761031b36600461110d565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b61019b61037f36600461116b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101876103c5366004611149565b60076020526000908152604090205460ff1681565b6102776103e8366004611149565b6107ff565b6101876103fb366004611149565b60066020526000908152604090205460ff1681565b60606003805461041f9061119e565b80601f016020809104026020016040519081016040528092919081815260200182805461044b9061119e565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b5050505050905090565b6000336104b08185856108b6565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604081205460ff1680610513575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205460ff165b156105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f546f6b656e207472616e73616374696f6e207769746820626c61636b6c69737460448201527f656420616464726573730000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336105b1858285610a69565b6105bc858585610b40565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104b0908290869061060e9087906111f2565b6108b6565b600061061d610df3565b6106278383610e74565b50600192915050565b610638610df3565b6106426000610f94565b565b60606004805461041f9061119e565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161059c565b6105bc82868684036108b6565b3360009081526006602052604081205460ff1680610767575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205460ff165b156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f546f6b656e207472616e73616374696f6e207769746820626c61636b6c69737460448201527f6564206164647265737300000000000000000000000000000000000000000000606482015260840161059c565b610627338484610b40565b610807610df3565b73ffffffffffffffffffffffffffffffffffffffff81166108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161059c565b6108b381610f94565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610958576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161059c565b73ffffffffffffffffffffffffffffffffffffffff82166109fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161059c565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b3a5781811015610b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161059c565b610b3a84848484036108b6565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161059c565b73ffffffffffffffffffffffffffffffffffffffff8216610c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161059c565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610d3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161059c565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610d809084906111f2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610de691815260200190565b60405180910390a3610b3a565b60055473ffffffffffffffffffffffffffffffffffffffff163314610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059c565b73ffffffffffffffffffffffffffffffffffffffff8216610ef1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161059c565b8060026000828254610f0391906111f2565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f3d9084906111f2565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b818110156110385785810183015185820160400152820161101c565b8181111561104a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146110a257600080fd5b919050565b600080604083850312156110ba57600080fd5b6110c38361107e565b946020939093013593505050565b6000806000606084860312156110e657600080fd5b6110ef8461107e565b92506110fd6020850161107e565b9150604084013590509250925092565b6000806040838503121561112057600080fd5b6111298361107e565b91506020830135801515811461113e57600080fd5b809150509250929050565b60006020828403121561115b57600080fd5b6111648261107e565b9392505050565b6000806040838503121561117e57600080fd5b6111878361107e565b91506111956020840161107e565b90509250929050565b600181811c908216806111b257607f821691505b602082108114156111ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000821982111561122c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea2646970667358221220076b884fd20e7be96cd1fd6a52fd1384f7548c559547c026640d7fe31caaff3f64736f6c634300080a003360a06040523480156200001157600080fd5b506040516200168238038062001682833981016040819052620000349162000269565b8251839083906200004d906003906020850190620000f6565b50805162000063906004906020840190620000f6565b505050620000806200007a620000a060201b60201c565b620000a4565b60ff166080525050600680546001600160a01b031916331790556200032b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200010490620002ee565b90600052602060002090601f01602090048101928262000128576000855562000173565b82601f106200014357805160ff191683800117855562000173565b8280016001018555821562000173579182015b828111156200017357825182559160200191906001019062000156565b506200018192915062000185565b5090565b5b8082111562000181576000815560010162000186565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c457600080fd5b81516001600160401b0380821115620001e157620001e16200019c565b604051601f8301601f19908116603f011681019082821181831017156200020c576200020c6200019c565b816040528381526020925086838588010111156200022957600080fd5b600091505b838210156200024d57858201830151818301840152908201906200022e565b838211156200025f5760008385830101525b9695505050505050565b6000806000606084860312156200027f57600080fd5b83516001600160401b03808211156200029757600080fd5b620002a587838801620001b2565b94506020860151915080821115620002bc57600080fd5b50620002cb86828701620001b2565b925050604084015160ff81168114620002e357600080fd5b809150509250925092565b600181811c908216806200030357607f821691505b602082108114156200032557634e487b7160e01b600052602260045260246000fd5b50919050565b60805161133b62000347600039600061025f015261133b6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd5780639dc29fac11610081578063a9059cbb11610066578063a9059cbb1461034c578063dd62ed3e1461035f578063f2fde38b146103a557600080fd5b80639dc29fac14610326578063a457c2d71461033957600080fd5b806379cc6790116100b257806379cc6790146102ed5780638da5cb5b1461030057806395d89b411461031e57600080fd5b806370a08231146102af578063715018a6146102e557600080fd5b806318160ddd11610124578063313ce56711610109578063313ce56714610258578063395093511461028957806340c10f191461029c57600080fd5b806318160ddd1461023357806323b872dd1461024557600080fd5b806306fdde03146101565780630754617214610174578063095ea7b3146101b95780631652e9fc146101dc575b600080fd5b61015e6103b8565b60405161016b91906110fc565b60405180910390f35b6006546101949073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016b565b6101cc6101c7366004611198565b61044a565b604051901515815260200161016b565b6102316101ea3660046111c2565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6002545b60405190815260200161016b565b6101cc6102533660046111e4565b610462565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161016b565b6101cc610297366004611198565b610486565b6101cc6102aa366004611198565b6104d2565b6102376102bd3660046111c2565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61023161056e565b6101cc6102fb366004611198565b610582565b60055473ffffffffffffffffffffffffffffffffffffffff16610194565b61015e610610565b6101cc610334366004611198565b61061f565b6101cc610347366004611198565b61062b565b6101cc61035a366004611198565b6106fc565b61023761036d366004611220565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102316103b33660046111c2565b61070a565b6060600380546103c790611253565b80601f01602080910402602001604051908101604052809291908181526020018280546103f390611253565b80156104405780601f1061041557610100808354040283529160200191610440565b820191906000526020600020905b81548152906001019060200180831161042357829003601f168201915b5050505050905090565b6000336104588185856107c1565b5060019392505050565b600033610470858285610975565b61047b858585610a4c565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045890829086906104cd9087906112d6565b6107c1565b60065460009073ffffffffffffffffffffffffffffffffffffffff16331461055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d696e7465722063616c6c73206f6e6c7900000000000000000000000000000060448201526064015b60405180910390fd5b6105658383610cff565b50600192915050565b610576610e1f565b6105806000610ea0565b565b60065460009073ffffffffffffffffffffffffffffffffffffffff163314610606576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d696e7465722063616c6c73206f6e6c790000000000000000000000000000006044820152606401610552565b6105658383610f17565b6060600480546103c790611253565b60006105658383610f17565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610552565b61047b82868684036107c1565b600033610458818585610a4c565b610712610e1f565b73ffffffffffffffffffffffffffffffffffffffff81166107b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610552565b6107be81610ea0565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610863576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff8216610906576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a465781811015610a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610552565b610a4684848484036107c1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610aef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff8216610b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610c48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610c8c9084906112d6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cf291815260200190565b60405180910390a3610a46565b73ffffffffffffffffffffffffffffffffffffffff8216610d7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610552565b8060026000828254610d8e91906112d6565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610dc89084906112d6565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60055473ffffffffffffffffffffffffffffffffffffffff163314610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610552565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610552565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208383039055600280548492906110ac9084906112ee565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610968565b600060208083528351808285015260005b818110156111295785810183015185820160400152820161110d565b8181111561113b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461119357600080fd5b919050565b600080604083850312156111ab57600080fd5b6111b48361116f565b946020939093013593505050565b6000602082840312156111d457600080fd5b6111dd8261116f565b9392505050565b6000806000606084860312156111f957600080fd5b6112028461116f565b92506112106020850161116f565b9150604084013590509250925092565b6000806040838503121561123357600080fd5b61123c8361116f565b915061124a6020840161116f565b90509250929050565b600181811c9082168061126757607f821691505b602082108114156112a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156112e9576112e96112a7565b500190565b600082821015611300576113006112a7565b50039056fea264697066735822122065d92df35fca21fc377a59466c4981e96d95b1f8fb4be24aed174727aedd7edb64736f6c634300080a003360a060405234801561001057600080fd5b5060405161070338038061070383398101604081905261002f9161007f565b600082905560ff81166080526001805460506001600160501b031991821681178355600480549092161790556100669042906100b5565b6002556100744260016100b5565b600355506100db9050565b6000806040838503121561009257600080fd5b82519150602083015160ff811681146100aa57600080fd5b809150509250929050565b600082198211156100d657634e487b7160e01b600052601160045260246000fd5b500190565b60805161060e6100f5600039600060d3015261060e6000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80639a6fc8f511610081578063d62ada111161005b578063d62ada11146102dc578063f7a30806146102f4578063feaf968c1461030757600080fd5b80639a6fc8f5146101cd578063bd18ad531461023a578063cd653afc1461024d57600080fd5b806354fd4d50116100b257806354fd4d501461012d57806367e8d83d1461013c5780637284e4161461018e57600080fd5b8063313ce567146100ce5780633fd0875f1461010c575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020015b60405180910390f35b6004546a0100000000000000000000900460ff166040516101039190610441565b60405160018152602001610103565b61018c61014a366004610482565b600480549115156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff909216919091179055565b005b604080518082018252600c81527f7072696365206f7261636c6500000000000000000000000000000000000000006020820152905161010391906104ab565b6102036101db36600461053d565b60015460005460025460035460045469ffffffffffffffffffff948516941691939590929450565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610103565b61018c610248366004610558565b61030f565b61018c61025b366004610579565b6001805469ffffffffffffffffffff9586167fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090911617905560029290925560035560048054919092167fffffffffffffffffffffffffffffffffffffffff00ff00000000000000000000909116176b020000000000000000000000179055565b6102e461035f565b6040519015158152602001610103565b61018c6103023660046105bf565b600055565b610203610385565b600480548291907fffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff166b01000000000000000000000083600281111561035757610357610412565b021790555050565b600454600090610380906b010000000000000000000000900460ff166103d6565b905090565b60008060008060006004600c9054906101000a900460ff16156103a757600080fd5b505060015460005460025460035460045469ffffffffffffffffffff9485169893975091955093509190911690565b600060028260028111156103ec576103ec610412565b14156103f757600080fd5b600182600281111561040b5761040b610412565b1492915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600e831061047c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006020828403121561049457600080fd5b813580151581146104a457600080fd5b9392505050565b600060208083528351808285015260005b818110156104d8578581018301518582016040015282016104bc565b818111156104ea576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803569ffffffffffffffffffff8116811461053857600080fd5b919050565b60006020828403121561054f57600080fd5b6104a48261051e565b60006020828403121561056a57600080fd5b8135600381106104a457600080fd5b6000806000806080858703121561058f57600080fd5b6105988561051e565b935060208501359250604085013591506105b46060860161051e565b905092959194509250565b6000602082840312156105d157600080fd5b503591905056fea2646970667358221220f12933806ee2e94d46be2849521431ef739dbbfe8efb6fe26a22ef0a2d6b7c9f64736f6c634300080a0033"; static readonly abi: readonly [{ readonly inputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly name: "log"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "log_address"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes"; readonly name: ""; readonly type: "bytes"; }]; readonly name: "log_bytes"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly name: "log_bytes32"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly name: "log_int"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "val"; readonly type: "address"; }]; readonly name: "log_named_address"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bytes"; readonly name: "val"; readonly type: "bytes"; }]; readonly name: "log_named_bytes"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "val"; readonly type: "bytes32"; }]; readonly name: "log_named_bytes32"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "val"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }]; readonly name: "log_named_decimal_int"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "val"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }]; readonly name: "log_named_decimal_uint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "val"; readonly type: "int256"; }]; readonly name: "log_named_int"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "string"; readonly name: "val"; readonly type: "string"; }]; readonly name: "log_named_string"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "key"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "val"; readonly type: "uint256"; }]; readonly name: "log_named_uint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly name: "log_string"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "log_uint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes"; readonly name: ""; readonly type: "bytes"; }]; readonly name: "logs"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "IS_TEST"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: ""; readonly type: "uint8"; }]; readonly name: "addressOf"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "targetContract"; readonly type: "address"; }]; readonly name: "allowance"; 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: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "targetContract"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "targetContract"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "targetContract"; readonly type: "address"; }]; readonly name: "approve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "targetContract"; readonly type: "address"; }]; readonly name: "approve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }]; readonly name: "balanceOf"; 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: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "balance"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "burn"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "burn"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "failed"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceFeeds"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly internalType: "struct PriceFeedConfig[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: "t"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "priceFeeds"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: ""; readonly type: "uint8"; }]; readonly name: "priceFeedsMap"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: ""; readonly type: "uint8"; }]; readonly name: "prices"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: ""; readonly type: "uint8"; }]; readonly name: "symbols"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "tokenCount"; 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: "tokenIndexes"; readonly outputs: readonly [{ readonly internalType: "enum Tokens"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "topUpWETH"; readonly outputs: readonly []; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "topUpWETH"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "wethToken"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; static createInterface(): TokensTestSuiteInterface; static connect(address: string, signerOrProvider: Signer | Provider): TokensTestSuite; } export {};