3.5k txs
3.6k calls
constructor
constructor(address[] allowedSigners, address usdt, address aggregationRouterV5, address starkex, address fact, uint256 assetType)
functions
AGGREGATION_ROUTER_V5_ADDRESS
viewfunction AGGREGATION_ROUTER_V5_ADDRESS() view returns (address)
ASSET_TYPE
viewfunction ASSET_TYPE() view returns (uint256)
calcSigHash
viewfunction calcSigHash(address to, uint256 amount, address token, uint256 expireTime, uint256 orderId, bool isFact, uint256 salt, uint256 chainId) view returns (bytes32)
FACT_ADDRESS
viewfunction FACT_ADDRESS() view returns (address)
isAllowedSigner
viewfunction isAllowedSigner(address signer) view returns (bool)
signers
viewfunction signers(uint256) view returns (address)
STARKEX_ADDRESS
viewfunction STARKEX_ADDRESS() view returns (address)
USDT_ADDRESS
viewfunction USDT_ADDRESS() view returns (address)
deposit
payablefunction deposit(address token, uint256 amount, uint256 starkKey, uint256 positionId, bytes exchangeData) payable returns (uint256)
depositWithPermit
nonpayablefunction depositWithPermit(address token, uint256 amount, uint256 starkKey, uint256 positionId, address owner, uint256 deadline, uint8 v, bytes32 r, bytes32 s, bytes mpcSignature) returns (uint256)
factTransferErc20
nonpayablefunction factTransferErc20(address to, address token, uint256 amount, uint256 salt, uint256 expireTime, uint256 orderId, address[] allSigners, bytes[] signatures)
withdrawErc20
nonpayablefunction withdrawErc20(address to, uint256 amount, address token, uint256 expireTime, uint256 orderId, address[] allSigners, bytes[] signatures)
withdrawErc20ForMPC
nonpayablefunction withdrawErc20ForMPC(address to, uint256 amount, address token, uint256 expireTime, uint256 orderId, address[] allSigners, bytes[] signatures, address fromUser, bytes fromUserSignature, uint256 userSignTime)
withdrawETH
nonpayablefunction withdrawETH(address to, uint256 amount, uint256 expireTime, uint256 orderId, address[] allSigners, bytes[] signatures)
events
Deposit
event Deposit(address from, address token, uint256 spentAmount, uint256 swapReturnAmount, uint256 starkKey, uint256 positionId)
WithdrawERC20
event WithdrawERC20(uint256 orderId, address token, address to, uint256 amount)
WithdrawERC20ForMPC
event WithdrawERC20ForMPC(uint256 orderId, address from, address token, address to, uint256 amount)
WithdrawETH
event WithdrawETH(uint256 orderId, address to, uint256 amount)
errors
No errors.
creation bytecode
0x6101006040523480156200001257600080fd5b5060405162003807380380620038078339810160408190526200003591620003e6565b60016000558551600314620000915760405162461bcd60e51b815260206004820152601960248201527f696e76616c696420616c6c5369676e657273206c656e6774680000000000000060448201526064015b60405180910390fd5b85600181518110620000a757620000a76200050c565b60200260200101516001600160a01b031686600081518110620000ce57620000ce6200050c565b60200260200101516001600160a01b031614156200011e5760405162461bcd60e51b81526020600482015260196024820152600080516020620037e7833981519152604482015260640162000088565b856002815181106200013457620001346200050c565b60200260200101516001600160a01b0316866000815181106200015b576200015b6200050c565b60200260200101516001600160a01b03161415620001ab5760405162461bcd60e51b81526020600482015260196024820152600080516020620037e7833981519152604482015260640162000088565b85600281518110620001c157620001c16200050c565b60200260200101516001600160a01b031686600181518110620001e857620001e86200050c565b60200260200101516001600160a01b03161415620002385760405162461bcd60e51b81526020600482015260196024820152600080516020620037e7833981519152604482015260640162000088565b6001600160a01b038516620002905760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420757364742061646472657373000000000000000000000000604482015260640162000088565b6001600160a01b038416620002e85760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642031696e636820616464726573730000000000000000000000604482015260640162000088565b8551620002fd90600190602089019062000332565b506001600160601b0319606095861b811660805293851b841660e05291841b831660a05290921b1660c0526003555062000522565b8280548282559060005260206000209081019282156200038a579160200282015b828111156200038a57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000353565b50620003989291506200039c565b5090565b5b808211156200039857600081556001016200039d565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620003e157600080fd5b919050565b60008060008060008060c087890312156200040057600080fd5b86516001600160401b03808211156200041857600080fd5b818901915089601f8301126200042d57600080fd5b8151602082821115620004445762000444620003b3565b8160051b604051601f19603f830116810181811086821117156200046c576200046c620003b3565b60405292835281830193508481018201928d8411156200048b57600080fd5b948201945b83861015620004b457620004a486620003c9565b8552948201949382019362000490565b9a50620004c590508b8201620003c9565b985050505050620004d960408801620003c9565b9350620004e960608801620003c9565b9250620004f960808801620003c9565b915060a087015190509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60805160601c60a05160601c60c05160601c60e05160601c6131d0620006176000396000818161024a0152818161146f015281816114ae01526114d80152600081816101c001528181611b8701528181611c5e0152611c9301526000818161018c01528181610c7201528181610cc701528181610d23015281816117ab01528181611800015261185401526000818161029e015281816109af01528181610b0f01528181610b7801528181610bb501528181610c5001528181610ca50152818161119a01528181611218015281816113030152818161163001528181611789015281816117de01526118ea01526131d06000f3fe6080604052600436106100e15760003560e01c80638815eb391161007f578063c189205811610059578063c18920581461028c578063cabb9e7a146102c0578063cfe96c84146102f0578063f13b49751461030357600080fd5b80638815eb39146102225780639fdd761d14610238578063a227f4311461026c57600080fd5b8063391cdc08116100bb578063391cdc081461017a578063496eff7b146101ae5780636b1430d6146101e257806387e158331461020257600080fd5b80631025e095146100ed57806312a5a0961461010f5780632079fb9a1461014257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d6101083660046127e6565b610323565b005b34801561011b57600080fd5b5061012f61012a36600461289a565b610582565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b5061016261015d366004612914565b610633565b6040516001600160a01b039091168152602001610139565b34801561018657600080fd5b506101627f000000000000000000000000000000000000000000000000000000000000000081565b3480156101ba57600080fd5b506101627f000000000000000000000000000000000000000000000000000000000000000081565b3480156101ee57600080fd5b5061010d6101fd36600461292d565b61065d565b34801561020e57600080fd5b5061012f61021d3660046129bf565b6109a3565b34801561022e57600080fd5b5061012f60035481565b34801561024457600080fd5b506101627f000000000000000000000000000000000000000000000000000000000000000081565b34801561027857600080fd5b5061010d610287366004612a76565b610da2565b34801561029857600080fd5b506101627f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cc57600080fd5b506102e06102db366004612b59565b611104565b6040519015158152602001610139565b61012f6102fe366004612b76565b61116e565b34801561030f57600080fd5b5061010d61031e366004612c17565b6118e0565b61032b611d91565b6002825110156103565760405162461bcd60e51b815260040161034d90612cc7565b60405180910390fd5b80518251146103775760405162461bcd60e51b815260040161034d90612cfe565b8160018151811061038a5761038a612d35565b60200260200101516001600160a01b0316826000815181106103ae576103ae612d35565b60200260200101516001600160a01b031614156103dd5760405162461bcd60e51b815260040161034d90612d4b565b428410156103fd5760405162461bcd60e51b815260040161034d90612d7b565b60008787878787304660405160200161041c9796959493929190612da8565b60405160208183030381529060405280519060200120905061043d81611deb565b905060005b83518160ff1610156104fd57600061047683858460ff168151811061046957610469612d35565b6020026020010151611e1e565b9050848260ff168151811061048d5761048d612d35565b60200260200101516001600160a01b0316816001600160a01b0316146104c55760405162461bcd60e51b815260040161034d90612e03565b6104ce81611104565b6104ea5760405162461bcd60e51b815260040161034d90612e2b565b50806104f581612e6d565b915050610442565b5061050a84898989611e42565b61051e6001600160a01b0387168989611ef5565b604080518581526001600160a01b0388811660208301528a16818301526060810189905290517ff8eff9ed148da048feccebca2617170aec98bea5840b0b0be8a289ec03c375fd9181900360800190a1506105796001600055565b50505050505050565b60008084156105c75789898989878a30896040516020016105aa989796959493929190612e8d565b604051602081830303815290604052805190602001209050610626565b6001600160a01b0388166105f0578989888830876040516020016105aa96959493929190612eec565b8989898989308860405160200161060d9796959493929190612da8565b6040516020818303038152906040528051906020012090505b9998505050505050505050565b6001818154811061064357600080fd5b6000918252602090912001546001600160a01b0316905081565b610665611d91565b6002825110156106875760405162461bcd60e51b815260040161034d90612cc7565b80518251146106a85760405162461bcd60e51b815260040161034d90612cfe565b816001815181106106bb576106bb612d35565b60200260200101516001600160a01b0316826000815181106106df576106df612d35565b60200260200101516001600160a01b0316141561070e5760405162461bcd60e51b815260040161034d90612d4b565b4284101561072e5760405162461bcd60e51b815260040161034d90612d7b565b600086868686304660405160200161074b96959493929190612eec565b60405160208183030381529060405280519060200120905061076c81611deb565b905060005b83518160ff16101561081f57600061079883858460ff168151811061046957610469612d35565b9050848260ff16815181106107af576107af612d35565b60200260200101516001600160a01b0316816001600160a01b0316146107e75760405162461bcd60e51b815260040161034d90612e03565b6107f081611104565b61080c5760405162461bcd60e51b815260040161034d90612e2b565b508061081781612e6d565b915050610771565b5061082d8488886000611e42565b8547101561087d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161034d565b6000876001600160a01b03168760405160006040518083038185875af1925050503d80600081146108ca576040519150601f19603f3d011682016040523d82523d6000602084013e6108cf565b606091505b50509050806109465760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161034d565b604080518681526001600160a01b038a1660208201529081018890527f4d7574efc376e1ee5e6eacc9b23ed30ae9f40acfddb028be515fb99a14e2290c9060600160405180910390a1505061099b6001600055565b505050505050565b60006109ad611d91565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b031614610a225760405162461bcd60e51b81526020600482015260116024820152703737ba1039bab83837b93a103a37b5b2b760791b604482015260640161034d565b60408051602081018c90529081018a9052606081018990524660808201526001600160a01b03881690610a7790610a719060a00160405160208183030381529060405280519060200120611deb565b84611e1e565b6001600160a01b031614610ac55760405162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d7063207369676e617475726560581b604482015260640161034d565b60405163d505accf60e01b81526001600160a01b038881166004830152306024830152604482018c90526064820188905260ff8716608483015260a4820186905260c482018590527f0000000000000000000000000000000000000000000000000000000000000000169063d505accf9060e401600060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b50610ba29250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905088308d611f5d565b604080516001600160a01b03808a1682527f00000000000000000000000000000000000000000000000000000000000000001660208201529081018b9052606081018b9052608081018a905260a081018990527f5f971bd00bf3ffbca8a6d72cdd4fd92cfd4f62636161921d1e5a64f0b64ccb6d9060c00160405180910390a14660011480610c315750466005145b80610c3e57504662aa36a7145b15610d8757610c986001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000006000611f9b565b610cec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008c611f9b565b6003546040516327b45c2160e21b8152600481018b9052602481019190915260448101899052606481018b90526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639ed1708490608401600060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b50505050899050610d8a565b50885b610d946001600055565b9a9950505050505050505050565b610daa611d91565b600285511015610dcc5760405162461bcd60e51b815260040161034d90612cc7565b8351855114610ded5760405162461bcd60e51b815260040161034d90612cfe565b84600181518110610e0057610e00612d35565b60200260200101516001600160a01b031685600081518110610e2457610e24612d35565b60200260200101516001600160a01b03161415610e535760405162461bcd60e51b815260040161034d90612d4b565b42871015610e735760405162461bcd60e51b815260040161034d90612d7b565b6040516001600160601b031960608c811b82166020840152603483018c90528a901b1660548201526068810182905246608882015260009060a801604051602081830303815290604052805190602001209050610ecf81611deb565b9050836001600160a01b0316610ee58285611e1e565b6001600160a01b031614610f3b5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c69642066726f6d2075736572207369676e61747572650000000000604482015260640161034d565b60405164045524332360dc1b60208201526001600160601b031960608d811b82166025840152603983018d90528b811b82166059840152606d83018b9052608d83018a905230811b821660ad8401524660c184015286901b1660e182015260009060f501604051602081830303815290604052805190602001209050610fc081611deb565b905060005b87518160ff161015611073576000610fec83898460ff168151811061046957610469612d35565b9050888260ff168151811061100357611003612d35565b60200260200101516001600160a01b0316816001600160a01b03161461103b5760405162461bcd60e51b815260040161034d90612e03565b61104481611104565b6110605760405162461bcd60e51b815260040161034d90612e2b565b508061106b81612e6d565b915050610fc5565b50611080888d8d8d611e42565b6110946001600160a01b038b168d8d611ef5565b604080518981526001600160a01b0387811660208301528c8116828401528e166060820152608081018d905290517f6729afecbb48aa8be77ee1a554ad5f8ecb60c1c3095116762ccc9c0c660e7d409181900360a00190a150506110f86001600055565b50505050505050505050565b6000805b60015481101561116557826001600160a01b03166001828154811061112f5761112f612d35565b6000918252602090912001546001600160a01b031614156111535750600192915050565b8061115d81612f3d565b915050611108565b50600092915050565b6000611178611d91565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156111dc57600080fd5b505afa1580156111f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112149190612f58565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316141561126d576112656001600160a01b038a1633308b611f5d565b879150611618565b600061127c8560048189612f71565b8101906112899190612f9b565b505091505080600001516001600160a01b03168a6001600160a01b0316146112f35760405162461bcd60e51b815260206004820181905260248201527f6d69736d6174636820746f6b656e20616e6420646573632e737263546f6b656e604482015260640161034d565b80602001516001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146113705760405162461bcd60e51b815260206004820152601560248201527434b73b30b634b2103232b9b1973239ba2a37b5b2b760591b604482015260640161034d565b806080015189146113c35760405162461bcd60e51b815260206004820152601f60248201527f6d69736d6174636820616d6f756e7420616e6420646573632e616d6f756e7400604482015260640161034d565b80606001516001600160a01b0316306001600160a01b0316146114285760405162461bcd60e51b815260206004820152601860248201527f696e76616c696420646573632e64737452656365697665720000000000000000604482015260640161034d565b600061143782600001516120bf565b9050806114d3576080820151825161145e916001600160a01b039091169033903090611f5d565b8151611495906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006000611f9b565b608082015182516114d3916001600160a01b03909116907f000000000000000000000000000000000000000000000000000000000000000090611f9b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316348a8a6040516115119291906130a0565b60006040518083038185875af1925050503d806000811461154e576040519150601f19603f3d011682016040523d82523d6000602084013e611553565b606091505b5091509150816115975760405162461bcd60e51b815260206004820152600f60248201526e195e18da185b99d94819985a5b1959608a1b604482015260640161034d565b808060200190518101906115ab91906130b0565b5060a08501519096508610156116135760405162461bcd60e51b815260206004820152602760248201527f72656365697665642055534454206c657373207468616e206d696e52657475726044820152661b905b5bdd5b9d60ca1b606482015260840161034d565b505050505b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561167a57600080fd5b505afa15801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b29190612f58565b90506116be82846120f9565b81146116fd5760405162461bcd60e51b815260206004820152600e60248201526d1cddd85c081a5b98dbdc9c9958dd60921b604482015260640161034d565b604080513381526001600160a01b038c1660208201529081018a9052606081018490526080810189905260a081018890527f5f971bd00bf3ffbca8a6d72cdd4fd92cfd4f62636161921d1e5a64f0b64ccb6d9060c00160405180910390a1466001148061176a5750466005145b8061177757504662aa36a7145b156118c6576117d16001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000006000611f9b565b6118256001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000085611f9b565b6003546040516327b45c2160e21b8152600481018a9052602481019190915260448101889052606481018490527f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03821690639ed1708490608401600060405180830381600087803b1580156118a257600080fd5b505af11580156118b6573d6000803e3d6000fd5b50505050839450505050506118cc565b50909150505b6118d66001600055565b9695505050505050565b6118e8611d91565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316146119595760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b604482015260640161034d565b60028251101561197b5760405162461bcd60e51b815260040161034d90612cc7565b805182511461199c5760405162461bcd60e51b815260040161034d90612cfe565b816001815181106119af576119af612d35565b60200260200101516001600160a01b0316826000815181106119d3576119d3612d35565b60200260200101516001600160a01b03161415611a025760405162461bcd60e51b815260040161034d90612d4b565b42841015611a225760405162461bcd60e51b815260040161034d90612d7b565b60008887898789883046604051602001611a43989796959493929190612e8d565b604051602081830303815290604052805190602001209050611a6481611deb565b905060005b83518160ff161015611b17576000611a9083858460ff168151811061046957610469612d35565b9050848260ff1681518110611aa757611aa7612d35565b60200260200101516001600160a01b0316816001600160a01b031614611adf5760405162461bcd60e51b815260040161034d90612e03565b611ae881611104565b611b045760405162461bcd60e51b815260040161034d90612e2b565b5080611b0f81612e6d565b915050611a69565b50611b24848a898b611e42565b6040516001600160601b031960608b811b82166020840152603483018a90528a901b1660548201526068810187905260009060880160408051808303601f19018152908290528051602090910120636a93856760e01b82526004820181905291507f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03821690636a9385679060240160206040518083038186803b158015611bd357600080fd5b505afa158015611be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0b91906130d4565b15611c4f5760405162461bcd60e51b8152602060048201526014602482015273199858dd08185b1c9958591e481a5cd5985b1a5960621b604482015260640161034d565b611c846001600160a01b038b167f00000000000000000000000000000000000000000000000000000000000000006000611f9b565b611cb86001600160a01b038b167f00000000000000000000000000000000000000000000000000000000000000008b611f9b565b604051630ab4574d60e31b81526001600160a01b038c811660048301528b81166024830152604482018b9052606482018a90528216906355a2ba6890608401600060405180830381600087803b158015611d1157600080fd5b505af1158015611d25573d6000803e3d6000fd5b5050604080518981526001600160a01b038e811660208301528f1681830152606081018d905290517ff8eff9ed148da048feccebca2617170aec98bea5840b0b0be8a289ec03c375fd9350908190036080019150a1505050611d876001600055565b5050505050505050565b60026000541415611de45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161034d565b6002600055565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b6000806000611e2d858561210c565b91509150611e3a81612152565b509392505050565b60008481526002602081905260409091200154600160a01b900460ff1615611e9d5760405162461bcd60e51b815260206004820152600e60248201526d3932b832b0ba32b21037b93232b960911b604482015260640161034d565b6000938452600260208190526040909420938401805485546001600160a01b0319166001600160a01b03958616178655600190950192909255600160a01b6001600160a81b0319909416921691909117919091179055565b6040516001600160a01b038316602482015260448101829052611f5890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526122a3565b505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611f959085906323b872dd60e01b90608401611f21565b50505050565b8015806120245750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190612f58565b155b61208f5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161034d565b6040516001600160a01b038316602482015260448101829052611f5890849063095ea7b360e01b90606401611f21565b60006001600160a01b03821615806120f357506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b92915050565b600061210582846130f1565b9392505050565b6000808251604114156121435760208301516040840151606085015160001a61213787828585612378565b9450945050505061214b565b506000905060025b9250929050565b600081600481111561216657612166613109565b141561216f5750565b600181600481111561218357612183613109565b14156121d15760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161034d565b60028160048111156121e5576121e5613109565b14156122335760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161034d565b600381600481111561224757612247613109565b14156122a05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161034d565b50565b60006122f8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661243c9092919063ffffffff16565b905080516000148061231957508080602001905181019061231991906130d4565b611f585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161034d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156123af5750600090506003612433565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612403573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661242c57600060019250925050612433565b9150600090505b94509492505050565b606061244b8484600085612453565b949350505050565b6060824710156124b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161034d565b600080866001600160a01b031685876040516124d0919061314b565b60006040518083038185875af1925050503d806000811461250d576040519150601f19603f3d011682016040523d82523d6000602084013e612512565b606091505b50915091506125238783838761252e565b979650505050505050565b6060831561259a578251612593576001600160a01b0385163b6125935760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161034d565b508161244b565b61244b83838151156125af5781518083602001fd5b8060405162461bcd60e51b815260040161034d9190613167565b6001600160a01b03811681146122a057600080fd5b80356125e9816125c9565b919050565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715612627576126276125ee565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612656576126566125ee565b604052919050565b600067ffffffffffffffff821115612678576126786125ee565b5060051b60200190565b600082601f83011261269357600080fd5b813560206126a86126a38361265e565b61262d565b82815260059290921b840181019181810190868411156126c757600080fd5b8286015b848110156126eb5780356126de816125c9565b83529183019183016126cb565b509695505050505050565b600082601f83011261270757600080fd5b813567ffffffffffffffff811115612721576127216125ee565b612734601f8201601f191660200161262d565b81815284602083860101111561274957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261277757600080fd5b813560206127876126a38361265e565b82815260059290921b840181019181810190868411156127a657600080fd5b8286015b848110156126eb57803567ffffffffffffffff8111156127ca5760008081fd5b6127d88986838b01016126f6565b8452509183019183016127aa565b600080600080600080600060e0888a03121561280157600080fd5b873561280c816125c9565b9650602088013595506040880135612823816125c9565b9450606088013593506080880135925060a088013567ffffffffffffffff8082111561284e57600080fd5b61285a8b838c01612682565b935060c08a013591508082111561287057600080fd5b5061287d8a828b01612766565b91505092959891949750929550565b80151581146122a057600080fd5b600080600080600080600080610100898b0312156128b757600080fd5b88356128c2816125c9565b97506020890135965060408901356128d9816125c9565b9550606089013594506080890135935060a08901356128f78161288c565b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561292657600080fd5b5035919050565b60008060008060008060c0878903121561294657600080fd5b8635612951816125c9565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff8082111561298357600080fd5b61298f8a838b01612682565b935060a08901359150808211156129a557600080fd5b506129b289828a01612766565b9150509295509295509295565b6000806000806000806000806000806101408b8d0312156129df57600080fd5b8a356129ea816125c9565b995060208b0135985060408b0135975060608b0135965060808b0135612a0f816125c9565b955060a08b0135945060c08b013560ff81168114612a2c57600080fd5b935060e08b013592506101008b013591506101208b013567ffffffffffffffff811115612a5857600080fd5b612a648d828e016126f6565b9150509295989b9194979a5092959850565b6000806000806000806000806000806101408b8d031215612a9657600080fd5b612a9f8b6125de565b995060208b01359850612ab460408c016125de565b975060608b0135965060808b0135955060a08b013567ffffffffffffffff80821115612adf57600080fd5b612aeb8e838f01612682565b965060c08d0135915080821115612b0157600080fd5b612b0d8e838f01612766565b9550612b1b60e08e016125de565b94506101008d0135915080821115612b3257600080fd5b50612b3f8d828e016126f6565b9250506101208b013590509295989b9194979a5092959850565b600060208284031215612b6b57600080fd5b8135612105816125c9565b60008060008060008060a08789031215612b8f57600080fd5b8635612b9a816125c9565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff80821115612bcc57600080fd5b818901915089601f830112612be057600080fd5b813581811115612bef57600080fd5b8a6020828501011115612c0157600080fd5b6020830194508093505050509295509295509295565b600080600080600080600080610100898b031215612c3457600080fd5b8835612c3f816125c9565b97506020890135612c4f816125c9565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff80821115612c8857600080fd5b612c948c838d01612682565b935060e08b0135915080821115612caa57600080fd5b50612cb78b828c01612766565b9150509295985092959890939650565b60208082526019908201527f696e76616c696420616c6c5369676e657273206c656e67746800000000000000604082015260600190565b60208082526019908201527f696e76616c6964207369676e617475726573206c656e67746800000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526016908201527531b0b7103737ba1031329039b0b6b29039b4b3b732b960511b604082015260600190565b60208082526013908201527232bc3834b932b2103a3930b739b0b1ba34b7b760691b604082015260600190565b64045524332360dc1b81526001600160601b0319606098891b81166005830152601982019790975294871b86166039860152604d850193909352606d84019190915290931b909116608d82015260a181019190915260c10190565b6020808252600e908201526d34b73b30b634b21039b4b3b732b960911b604082015260600190565b6020808252601290820152713737ba1030b63637bbb2b21039b4b3b732b960711b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff811415612e8457612e84612e57565b60010192915050565b63119054d560e21b81526001600160601b03196060998a1b81166004830152601882019890985295881b87166038870152604c860194909452606c850192909252608c84015290931b90911660ac82015260c081019190915260e00190565b6422aa2422a960d91b81526001600160601b0319606097881b8116600583015260198201969096526039810194909452605984019290925290931b9091166079820152608d81019190915260ad0190565b6000600019821415612f5157612f51612e57565b5060010190565b600060208284031215612f6a57600080fd5b5051919050565b60008085851115612f8157600080fd5b83861115612f8e57600080fd5b5050820193919092039150565b600080600080848603610140811215612fb357600080fd5b8535612fbe816125c9565b945060e0601f1982011215612fd257600080fd5b50612fdb612604565b6020860135612fe9816125c9565b81526040860135612ff9816125c9565b6020820152606086013561300c816125c9565b6040820152608086013561301f816125c9565b8060608301525060a0860135608082015260c086013560a082015260e086013560c08201528093505061010085013567ffffffffffffffff8082111561306457600080fd5b613070888389016126f6565b935061012087013591508082111561308757600080fd5b50613094878288016126f6565b91505092959194509250565b8183823760009101908152919050565b600080604083850312156130c357600080fd5b505080516020909101519092909150565b6000602082840312156130e657600080fd5b81516121058161288c565b6000821982111561310457613104612e57565b500190565b634e487b7160e01b600052602160045260246000fd5b60005b8381101561313a578181015183820152602001613122565b83811115611f955750506000910152565b6000825161315d81846020870161311f565b9190910192915050565b602081526000825180602084015261318681604085016020870161311f565b601f01601f1916919091016040019291505056fea2646970667358221220aaad7b945e11e9085344c0ea6556911af5d03bf1192165f9219918ce5b574f0b64736f6c634300080800336d75737420626520646966666572656e74207369676e6572730000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000001111111254eeb25477b68fb85ed929f73a960582000000000000000000000000faae2946e846133af314d1df13684c89fa7d83dd000000000000000000000000ceeed84620e5eb9ab1d6dfc316867d2cda332e4102ce625e94458d39dd0bf3b45a843544dd4a14b8169045a3a3d15aa564b936c50000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d1a193270b2124e1699a9dec23bc794a6f83b43300000000000000000000000070fa3f3a1d432932a829baa921a3afc5c711d47d0000000000000000000000005c37d9fcd71f8d0d9e11a58b73d49148cf3a0323