0 txs
0 calls
constructor
constructor()
functions
addressList
viewfunction addressList(uint256) view returns (address)
FEE_DENOM
viewfunction FEE_DENOM() view returns (uint256)
owner
viewfunction owner() view returns (address)
swapMultiFee
viewfunction swapMultiFee() view returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setSwapMultiFee
nonpayablefunction setSwapMultiFee(uint256 _swapMultiFee)
swap
payablefunction swap(tuple tokenInfo, bytes pathDefinition, address executor) payable returns (uint256 amountOut)
swapCompact
payablefunction swapCompact() payable returns (uint256)
swapMulti
payablefunction swapMulti(tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) payable returns (uint256[] amountsOut)
swapMultiCompact
payablefunction swapMultiCompact() payable returns (uint256[] amountsOut)
swapMultiPermit2
payablefunction swapMultiPermit2(tuple permit2, tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) payable returns (uint256[] amountsOut)
swapPermit2
nonpayablefunction swapPermit2(tuple permit2, tuple tokenInfo, bytes pathDefinition, address executor) returns (uint256 amountOut)
swapRouterFunds
nonpayablefunction swapRouterFunds(tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) returns (uint256[] amountsOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRouterFunds
nonpayablefunction transferRouterFunds(address[] tokens, uint256[] amounts, address dest)
writeAddressList
nonpayablefunction writeAddressList(address[] addresses)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address sender, uint256 inputAmount, address inputToken, uint256 amountOut, address outputToken, int256 slippage)
SwapMulti
event SwapMulti(address sender, uint256[] amountsIn, address[] tokensIn, uint256[] amountsOut, address[] tokensOut)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5062000032620000266200004060201b60201c565b6200004860201b60201c565b60006002819055506200010c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b614db6806200011c6000396000f3fe6080604052600436106100f75760003560e01c806384a7f3dd1161008a578063a2814d7d11610059578063a2814d7d146102f4578063b810fb4314610331578063e7d3fc601461036e578063f2fde38b14610399576100fe565b806384a7f3dd146102525780638da5cb5b146102705780639286b93d1461029b57806396f20647146102c4576100fe565b80634fb90a97116100c65780634fb90a97146101bd5780635c8f00fc146101ed578063715018a61461021d57806383bd37f914610234576100fe565b8063174da6211461010357806328be42f41461012c5780633596f9a2146101695780634886c67514610192576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190613199565b6103c2565b005b34801561013857600080fd5b50610153600480360381019061014e919061359e565b6104dd565b604051610160919061372e565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190613750565b610aee565b005b34801561019e57600080fd5b506101a7610ba6565b6040516101b491906137ac565b60405180910390f35b6101d760048036038101906101d2919061359e565b610bb2565b6040516101e4919061372e565b60405180910390f35b61020760048036038101906102029190613910565b610bce565b604051610214919061372e565b60405180910390f35b34801561022957600080fd5b50610232611108565b005b61023c61111c565b60405161024991906137ac565b60405180910390f35b61025a6112c9565b604051610267919061372e565b60405180910390f35b34801561027c57600080fd5b5061028561157d565b6040516102929190613a22565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190613a3d565b6115a6565b005b6102de60048036038101906102d99190613b1e565b61160f565b6040516102eb91906137ac565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190613b94565b611627565b60405161032891906137ac565b60405180910390f35b34801561033d57600080fd5b5061035860048036038101906103539190613a3d565b61173f565b6040516103659190613a22565b60405180910390f35b34801561037a57600080fd5b5061038361177e565b60405161039091906137ac565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb9190613c3b565b611784565b005b6103ca611808565b828290508585905014610412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040990613cc5565b60405180910390fd5b60005b858590508110156104d5576104c286868381811061043657610435613ce5565b5b905060200201602081019061044b9190613c3b565b83600087878681811061046157610460613ce5565b5b905060200201351461048c578686858181106104805761047f613ce5565b5b905060200201356104bd565b6104bc8989868181106104a2576104a1613ce5565b5b90506020020160208101906104b79190613c3b565b611886565b5b611955565b80806104cd90613d43565b915050610415565b505050505050565b60606104e7611808565b6000875167ffffffffffffffff8111156105045761050361323f565b5b6040519080825280602002602001820160405280156105325781602001602082028036833780820191505090505b5090506000885167ffffffffffffffff8111156105525761055161323f565b5b6040519080825280602002602001820160405280156105805781602001602082028036833780820191505090505b50905060005b89518110156106f8578981815181106105a2576105a1613ce5565b5b6020026020010151600001518282815181106105c1576105c0613ce5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008a82815181106106105761060f613ce5565b5b602002602001015160200151146106455789818151811061063457610633613ce5565b5b602002602001015160200151610669565b61066882828151811061065b5761065a613ce5565b5b6020026020010151611886565b5b83828151811061067c5761067b613ce5565b5b6020026020010181815250506106e582828151811061069e5761069d613ce5565b5b60200260200101518b83815181106106b9576106b8613ce5565b5b6020026020010151604001518584815181106106d8576106d7613ce5565b5b6020026020010151611955565b80806106f090613d43565b915050610586565b506000885167ffffffffffffffff8111156107165761071561323f565b5b6040519080825280602002602001820160405280156107445781602001602082028036833780820191505090505b5090506000895167ffffffffffffffff8111156107645761076361323f565b5b6040519080825280602002602001820160405280156107925781602001602082028036833780820191505090505b50905060005b8a51811015610862578a81815181106107b4576107b3613ce5565b5b6020026020010151600001518282815181106107d3576107d2613ce5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061083082828151811061082357610822613ce5565b5b6020026020010151611886565b83828151811061084357610842613ce5565b5b602002602001018181525050808061085a90613d43565b915050610798565b508573ffffffffffffffffffffffffffffffffffffffff1663cb70e27360008a8a88336040518663ffffffff1660e01b81526004016108a49493929190613dca565b6000604051808303818588803b1580156108bd57600080fd5b505af11580156108d1573d6000803e3d6000fd5b505050505060008a5167ffffffffffffffff8111156108f3576108f261323f565b5b6040519080825280602002602001820160405280156109215781602001602082028036833780820191505090505b50955060005b8b51811015610a5c5783818151811061094357610942613ce5565b5b602002602001015161096e84838151811061096157610960613ce5565b5b6020026020010151611886565b6109789190613e11565b87828151811061098b5761098a613ce5565b5b6020026020010181815250506109f88c82815181106109ad576109ac613ce5565b5b6020026020010151600001518d83815181106109cc576109cb613ce5565b5b6020026020010151604001518984815181106109eb576109ea613ce5565b5b6020026020010151611955565b8b8181518110610a0b57610a0a613ce5565b5b602002602001015160200151878281518110610a2a57610a29613ce5565b5b6020026020010151610a3c9190613e45565b82610a479190613e9f565b91508080610a5490613d43565b915050610927565b5089811015610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9790613f41565b60405180910390fd5b7f6c7bada887c71a173e09f2aff5726684d397ccd09b66f973f3787b499aceaf013386868986604051610ad795949392919061401f565b60405180910390a150505050509695505050505050565b610af6611808565b60005b82829050811015610ba1576001838383818110610b1957610b18613ce5565b5b9050602002016020810190610b2e9190613c3b565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610b9990613d43565b915050610af9565b505050565b670de0b6b3a764000081565b6060610bc2878787878787611a6d565b90509695505050505050565b6060610bd8612ebc565b60606000803411610bea578951610bf9565b60018a51610bf89190613e11565b5b905060405180606001604052808267ffffffffffffffff811115610c2057610c1f61323f565b5b604051908082528060200260200182016040528015610c5957816020015b610c46612edd565b815260200190600190039081610c3e5790505b5081526020018c6020015181526020018c6040015181525092508067ffffffffffffffff811115610c8d57610c8c61323f565b5b604051908082528060200260200182016040528015610cc657816020015b610cb3612f0d565b815260200190600190039081610cab5790505b509150506000805b8a5181101561102e57600073ffffffffffffffffffffffffffffffffffffffff168b8281518110610d0257610d01613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415610d9c5760008b8281518110610d3f57610d3e613ce5565b5b6020026020010151602001511415610d7657348b8281518110610d6557610d64613ce5565b5b602002602001015160200181815250505b8a8181518110610d8957610d88613ce5565b5b602002602001015160200151915061101b565b60008b8281518110610db157610db0613ce5565b5b6020026020010151602001511415610e8e578a8181518110610dd657610dd5613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610e1a9190613a22565b60206040518083038186803b158015610e3257600080fd5b505afa158015610e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6a91906140a3565b8b8281518110610e7d57610e7c613ce5565b5b602002602001015160200181815250505b6000808314610ea957600182610ea49190613e11565b610eab565b815b90508b8281518110610ec057610ebf613ce5565b5b60200260200101516000015185600001518281518110610ee357610ee2613ce5565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508b8281518110610f3457610f33613ce5565b5b60200260200101516020015185600001518281518110610f5757610f56613ce5565b5b602002602001015160200181815250508b8281518110610f7a57610f79613ce5565b5b602002602001015160400151848281518110610f9957610f98613ce5565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508b8281518110610fea57610fe9613ce5565b5b60200260200101516020015184828151811061100957611008613ce5565b5b60200260200101516020018181525050505b808061102690613d43565b915050610cce565b50803414611071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110689061411c565b60405180910390fd5b50896000015173ffffffffffffffffffffffffffffffffffffffff1663edd9444b8383338e606001516040518563ffffffff1660e01b81526004016110b994939291906143bf565b600060405180830381600087803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b505050506110f9898989898989611d2c565b92505050979650505050505050565b611110611808565b61111a60006125c4565b565b6000611126612f3d565b600080366000803390506111b8565b600080823560f01c8060008114611182576001811461118d57600282037fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015493506002850192506111b1565b6002850192506111b1565b73ffffffffffffffffffffffffffffffffffffffff853560501c1693506016850192505b5050915091565b600060046111c581611135565b915091508188526111d581611135565b91509150816060890152803560f81c6001820191508015611205578135600882602003021c60208a015280820191505b813560f81c6001830192508235600882602003021c8060808c01528184019350833560e81c62ffffff8162ffffff0383020460a08d01525060038401935061124c84611135565b9450995061125984611135565b94509450600085141561126a578994505b8460408c015261127984611135565b94509450600085141561128a578594505b8460c08c0152833560e01c98506004840193506020843560f81c0296506001840197505050505050506112bf85838387612688565b9550505050505090565b6060600080606080600060069050600033905060008060043560f81c915060053560f81c90508167ffffffffffffffff8111156113095761130861323f565b5b60405190808252806020026020018201604052801561134257816020015b61132f612fd2565b8152602001906001900390816113275790505b5095508067ffffffffffffffff81111561135f5761135e61323f565b5b60405190808252806020026020018201604052801561139857816020015b61138561301f565b81526020019060019003908161137d5790505b509450611423565b600080823560f01c80600081146113ed57600181146113f857600282037fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60154935060028501925061141c565b60028501925061141c565b73ffffffffffffffffffffffffffffffffffffffff853560501c1693506016850192505b5050915091565b61142c846113a0565b94509750833560f81c6001850194508435600882602003021c9750808501945060008060005b858110156114c7576020808202018a0151915061146e886113a0565b98509250828252873560f81c600189019850801561149b578835600882602003021c602084015280890198505b6114a4896113a0565b9950935060008414156114b5578c93505b83604084015250600181019050611452565b5060005b848110156115395760208082020189015191506114e7886113a0565b98509250828252873560f81c6001890198508835600882602003021c60208401528089019850611516896113a0565b995093506000841415611527578793505b836040840152506001810190506114cb565b505050505050506000366000833560e01c92506004840193506020843560f81c02905060018401915061157086868985858d611a6d565b9850505050505050505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ae611808565b60c8670de0b6b3a76400006115c39190614448565b811115611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc906144c5565b60405180910390fd5b8060028190555050565b600061161d85858585612688565b9050949350505050565b6000856000015173ffffffffffffffffffffffffffffffffffffffff166330f28b7a604051806060016040528060405180604001604052808a6000015173ffffffffffffffffffffffffffffffffffffffff1681526020018a6020015181525081526020018960200151815260200189604001518152506040518060400160405280896040015173ffffffffffffffffffffffffffffffffffffffff1681526020018960200151815250338a606001516040518563ffffffff1660e01b81526004016116f69493929190614556565b600060405180830381600087803b15801561171057600080fd5b505af1158015611724573d6000803e3d6000fd5b505050506117348585858561281e565b905095945050505050565b6001818154811061174f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b61178c611808565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390614615565b60405180910390fd5b611805816125c4565b50565b611810612b10565b73ffffffffffffffffffffffffffffffffffffffff1661182e61157d565b73ffffffffffffffffffffffffffffffffffffffff1614611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90614681565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118c457479050611950565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118fd9190613a22565b60206040518083038186803b15801561191557600080fd5b505afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d91906140a3565b90505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a3c5760008273ffffffffffffffffffffffffffffffffffffffff16826040516119b0906146d2565b60006040518083038185875af1925050503d80600081146119ed576040519150601f19603f3d011682016040523d82523d6000602084013e6119f2565b606091505b5050905080611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d90614733565b60405180910390fd5b50611a68565b611a6782828573ffffffffffffffffffffffffffffffffffffffff16612b189092919063ffffffff16565b5b505050565b60606000805b8851811015611cce57600073ffffffffffffffffffffffffffffffffffffffff16898281518110611aa757611aa6613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415611b41576000898281518110611ae457611ae3613ce5565b5b6020026020010151602001511415611b1b5734898281518110611b0a57611b09613ce5565b5b602002602001015160200181815250505b888181518110611b2e57611b2d613ce5565b5b6020026020010151602001519150611cbb565b6000898281518110611b5657611b55613ce5565b5b6020026020010151602001511415611c3357888181518110611b7b57611b7a613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611bbf9190613a22565b60206040518083038186803b158015611bd757600080fd5b505afa158015611beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0f91906140a3565b898281518110611c2257611c21613ce5565b5b602002602001015160200181815250505b611cba338a8381518110611c4a57611c49613ce5565b5b6020026020010151604001518b8481518110611c6957611c68613ce5565b5b6020026020010151602001518c8581518110611c8857611c87613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16612b9e909392919063ffffffff16565b5b8080611cc690613d43565b915050611a73565b50803414611d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d089061411c565b60405180910390fd5b611d1f888888888888611d2c565b9150509695505050505050565b606060008511611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d689061479f565b60405180910390fd5b6000875167ffffffffffffffff811115611d8e57611d8d61323f565b5b604051908082528060200260200182016040528015611dbc5781602001602082028036833780820191505090505b5090506000885167ffffffffffffffff811115611ddc57611ddb61323f565b5b604051908082528060200260200182016040528015611e0a5781602001602082028036833780820191505090505b50905060005b895181101561206b57898181518110611e2c57611e2b613ce5565b5b602002602001015160200151838281518110611e4b57611e4a613ce5565b5b602002602001018181525050898181518110611e6a57611e69613ce5565b5b602002602001015160000151828281518110611e8957611e88613ce5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060005b81811015611f8c578a8181518110611ee157611ee0613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b8381518110611f1657611f15613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415611f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f709061480b565b60405180910390fd5b8080611f8490613d43565b915050611ec6565b5060005b895181101561205757898181518110611fac57611fab613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b8381518110611fe157611fe0613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b90614877565b60405180910390fd5b808061204f90613d43565b915050611f90565b50808061206390613d43565b915050611e10565b506000885167ffffffffffffffff8111156120895761208861323f565b5b6040519080825280602002602001820160405280156120b75781602001602082028036833780820191505090505b50905060005b89518110156121e95760005b8181101561218f578a81815181106120e4576120e3613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b838151811061211957612118613ce5565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16141561217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906148e3565b60405180910390fd5b808061218790613d43565b9150506120c9565b506121b78a82815181106121a6576121a5613ce5565b5b602002602001015160000151611886565b8282815181106121ca576121c9613ce5565b5b60200260200101818152505080806121e190613d43565b9150506120bd565b508473ffffffffffffffffffffffffffffffffffffffff1663cb70e27334898987336040518663ffffffff1660e01b815260040161222a9493929190613dca565b6000604051808303818588803b15801561224357600080fd5b505af1158015612257573d6000803e3d6000fd5b505050505060008060025490508a5167ffffffffffffffff81111561227f5761227e61323f565b5b6040519080825280602002602001820160405280156122ad5781602001602082028036833780820191505090505b50955060005b8b51811015612457578381815181106122cf576122ce613ce5565b5b60200260200101516122fe8d83815181106122ed576122ec613ce5565b5b602002602001015160000151611886565b6123089190613e11565b87828151811061231b5761231a613ce5565b5b602002602001018181525050670de0b6b3a764000082670de0b6b3a76400006123449190613e11565b88838151811061235757612356613ce5565b5b60200260200101516123699190613e45565b6123739190614448565b87828151811061238657612385613ce5565b5b6020026020010181815250506123f38c82815181106123a8576123a7613ce5565b5b6020026020010151600001518d83815181106123c7576123c6613ce5565b5b6020026020010151604001518984815181106123e6576123e5613ce5565b5b6020026020010151611955565b8b818151811061240657612405613ce5565b5b60200260200101516020015187828151811061242557612424613ce5565b5b60200260200101516124379190613e45565b836124429190613e9f565b9250808061244f90613d43565b9150506122b3565b508982101561249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249290613f41565b60405180910390fd5b50506000895167ffffffffffffffff8111156124ba576124b961323f565b5b6040519080825280602002602001820160405280156124e85781602001602082028036833780820191505090505b50905060005b8a51811015612576578a818151811061250a57612509613ce5565b5b60200260200101516000015182828151811061252957612528613ce5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061256e90613d43565b9150506124ee565b507f6c7bada887c71a173e09f2aff5726684d397ccd09b66f973f3787b499aceaf0133858588856040516125ae95949392919061401f565b60405180910390a1505050509695505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff16141561272a576000856020015114156126de5734856020018181525050612725565b84602001513414612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b9061411c565b60405180910390fd5b5b612808565b6000856020015114156127ce57846000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016127749190613a22565b60206040518083038186803b15801561278c57600080fd5b505afa1580156127a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c491906140a3565b8560200181815250505b6128073386604001518760200151886000015173ffffffffffffffffffffffffffffffffffffffff16612b9e909392919063ffffffff16565b5b6128148585858561281e565b9050949350505050565b600084608001518560a00151111561286b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128629061494f565b60405180910390fd5b60008560a00151116128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99061479f565b60405180910390fd5b846060015173ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff161415612929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292090614877565b60405180910390fd5b60006129388660600151611886565b90506000600167ffffffffffffffff8111156129575761295661323f565b5b6040519080825280602002602001820160405280156129855781602001602082028036833780820191505090505b5090508660200151816000815181106129a1576129a0613ce5565b5b6020026020010181815250508373ffffffffffffffffffffffffffffffffffffffff1663cb70e27334888885336040518663ffffffff1660e01b81526004016129ed9493929190613dca565b6000604051808303818588803b158015612a0657600080fd5b505af1158015612a1a573d6000803e3d6000fd5b505050505081612a2d8860600151611886565b612a379190613e11565b92506000876080015184612a4b9190614979565b90506000811315612a5e57876080015193505b8760a00151841015612aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9c90613f41565b60405180910390fd5b612ab888606001518960c0015186611955565b7f72c24367077ee479595babb965051fc188b59b5dda2a64df2fc6e3f1dbc113113389602001518a60000151878c6060015186604051612afd96959493929190614a1c565b60405180910390a1505050949350505050565b600033905090565b612b998363a9059cbb60e01b8484604051602401612b37929190614a7d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612c27565b505050565b612c21846323b872dd60e01b858585604051602401612bbf93929190614aa6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612c27565b50505050565b6000612c89826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612cee9092919063ffffffff16565b9050600081511115612ce95780806020019051810190612ca99190614b15565b612ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdf90614bb4565b60405180910390fd5b5b505050565b6060612cfd8484600085612d06565b90509392505050565b606082471015612d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4290614c46565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612d749190614c97565b60006040518083038185875af1925050503d8060008114612db1576040519150601f19603f3d011682016040523d82523d6000602084013e612db6565b606091505b5091509150612dc787838387612dd3565b92505050949350505050565b60608315612e3657600083511415612e2e57612dee85612e49565b612e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2490614cfa565b60405180910390fd5b5b829050612e41565b612e408383612e6c565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612e7f5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb39190614d5e565b60405180910390fd5b60405180606001604052806060815260200160008152602001600081525090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126130a5576130a4613080565b5b8235905067ffffffffffffffff8111156130c2576130c1613085565b5b6020830191508360208202830111156130de576130dd61308a565b5b9250929050565b60008083601f8401126130fb576130fa613080565b5b8235905067ffffffffffffffff81111561311857613117613085565b5b6020830191508360208202830111156131345761313361308a565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131668261313b565b9050919050565b6131768161315b565b811461318157600080fd5b50565b6000813590506131938161316d565b92915050565b6000806000806000606086880312156131b5576131b4613076565b5b600086013567ffffffffffffffff8111156131d3576131d261307b565b5b6131df8882890161308f565b9550955050602086013567ffffffffffffffff8111156132025761320161307b565b5b61320e888289016130e5565b9350935050604061322188828901613184565b9150509295509295909350565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132778261322e565b810181811067ffffffffffffffff821117156132965761329561323f565b5b80604052505050565b60006132a961306c565b90506132b5828261326e565b919050565b600067ffffffffffffffff8211156132d5576132d461323f565b5b602082029050602081019050919050565b600080fd5b600080fd5b6000819050919050565b613303816132f0565b811461330e57600080fd5b50565b600081359050613320816132fa565b92915050565b60006060828403121561333c5761333b6132e6565b5b613346606061329f565b9050600061335684828501613184565b600083015250602061336a84828501613311565b602083015250604061337e84828501613184565b60408301525092915050565b600061339d613398846132ba565b61329f565b905080838252602082019050606084028301858111156133c0576133bf61308a565b5b835b818110156133e957806133d58882613326565b8452602084019350506060810190506133c2565b5050509392505050565b600082601f83011261340857613407613080565b5b813561341884826020860161338a565b91505092915050565b600067ffffffffffffffff82111561343c5761343b61323f565b5b602082029050602081019050919050565b600060608284031215613463576134626132e6565b5b61346d606061329f565b9050600061347d84828501613184565b600083015250602061349184828501613311565b60208301525060406134a584828501613184565b60408301525092915050565b60006134c46134bf84613421565b61329f565b905080838252602082019050606084028301858111156134e7576134e661308a565b5b835b8181101561351057806134fc888261344d565b8452602084019350506060810190506134e9565b5050509392505050565b600082601f83011261352f5761352e613080565b5b813561353f8482602086016134b1565b91505092915050565b60008083601f84011261355e5761355d613080565b5b8235905067ffffffffffffffff81111561357b5761357a613085565b5b6020830191508360018202830111156135975761359661308a565b5b9250929050565b60008060008060008060a087890312156135bb576135ba613076565b5b600087013567ffffffffffffffff8111156135d9576135d861307b565b5b6135e589828a016133f3565b965050602087013567ffffffffffffffff8111156136065761360561307b565b5b61361289828a0161351a565b955050604061362389828a01613311565b945050606087013567ffffffffffffffff8111156136445761364361307b565b5b61365089828a01613548565b9350935050608061366389828a01613184565b9150509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136a5816132f0565b82525050565b60006136b7838361369c565b60208301905092915050565b6000602082019050919050565b60006136db82613670565b6136e5818561367b565b93506136f08361368c565b8060005b8381101561372157815161370888826136ab565b9750613713836136c3565b9250506001810190506136f4565b5085935050505092915050565b6000602082019050818103600083015261374881846136d0565b905092915050565b6000806020838503121561376757613766613076565b5b600083013567ffffffffffffffff8111156137855761378461307b565b5b6137918582860161308f565b92509250509250929050565b6137a6816132f0565b82525050565b60006020820190506137c1600083018461379d565b92915050565b600080fd5b600067ffffffffffffffff8211156137e7576137e661323f565b5b6137f08261322e565b9050602081019050919050565b82818337600083830152505050565b600061381f61381a846137cc565b61329f565b90508281526020810184848401111561383b5761383a6137c7565b5b6138468482856137fd565b509392505050565b600082601f83011261386357613862613080565b5b813561387384826020860161380c565b91505092915050565b600060808284031215613892576138916132e6565b5b61389c608061329f565b905060006138ac84828501613184565b60008301525060206138c084828501613311565b60208301525060406138d484828501613311565b604083015250606082013567ffffffffffffffff8111156138f8576138f76132eb565b5b6139048482850161384e565b60608301525092915050565b600080600080600080600060c0888a03121561392f5761392e613076565b5b600088013567ffffffffffffffff81111561394d5761394c61307b565b5b6139598a828b0161387c565b975050602088013567ffffffffffffffff81111561397a5761397961307b565b5b6139868a828b016133f3565b965050604088013567ffffffffffffffff8111156139a7576139a661307b565b5b6139b38a828b0161351a565b95505060606139c48a828b01613311565b945050608088013567ffffffffffffffff8111156139e5576139e461307b565b5b6139f18a828b01613548565b935093505060a0613a048a828b01613184565b91505092959891949750929550565b613a1c8161315b565b82525050565b6000602082019050613a376000830184613a13565b92915050565b600060208284031215613a5357613a52613076565b5b6000613a6184828501613311565b91505092915050565b600060e08284031215613a8057613a7f6132e6565b5b613a8a60e061329f565b90506000613a9a84828501613184565b6000830152506020613aae84828501613311565b6020830152506040613ac284828501613184565b6040830152506060613ad684828501613184565b6060830152506080613aea84828501613311565b60808301525060a0613afe84828501613311565b60a08301525060c0613b1284828501613184565b60c08301525092915050565b6000806000806101208587031215613b3957613b38613076565b5b6000613b4787828801613a6a565b94505060e085013567ffffffffffffffff811115613b6857613b6761307b565b5b613b7487828801613548565b9350935050610100613b8887828801613184565b91505092959194509250565b60008060008060006101408688031215613bb157613bb0613076565b5b600086013567ffffffffffffffff811115613bcf57613bce61307b565b5b613bdb8882890161387c565b9550506020613bec88828901613a6a565b94505061010086013567ffffffffffffffff811115613c0e57613c0d61307b565b5b613c1a88828901613548565b9350935050610120613c2e88828901613184565b9150509295509295909350565b600060208284031215613c5157613c50613076565b5b6000613c5f84828501613184565b91505092915050565b600082825260208201905092915050565b7f496e76616c69642066756e6473207472616e7366657200000000000000000000600082015250565b6000613caf601683613c68565b9150613cba82613c79565b602082019050919050565b60006020820190508181036000830152613cde81613ca2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d4e826132f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d8157613d80613d14565b5b600182019050919050565b600082825260208201905092915050565b6000613da98385613d8c565b9350613db68385846137fd565b613dbf8361322e565b840190509392505050565b60006060820190508181036000830152613de5818688613d9d565b90508181036020830152613df981856136d0565b9050613e086040830184613a13565b95945050505050565b6000613e1c826132f0565b9150613e27836132f0565b925082821015613e3a57613e39613d14565b5b828203905092915050565b6000613e50826132f0565b9150613e5b836132f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e9457613e93613d14565b5b828202905092915050565b6000613eaa826132f0565b9150613eb5836132f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613eea57613ee9613d14565b5b828201905092915050565b7f536c697070616765204c696d6974204578636565646564000000000000000000600082015250565b6000613f2b601783613c68565b9150613f3682613ef5565b602082019050919050565b60006020820190508181036000830152613f5a81613f1e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f968161315b565b82525050565b6000613fa88383613f8d565b60208301905092915050565b6000602082019050919050565b6000613fcc82613f61565b613fd68185613f6c565b9350613fe183613f7d565b8060005b83811015614012578151613ff98882613f9c565b975061400483613fb4565b925050600181019050613fe5565b5085935050505092915050565b600060a0820190506140346000830188613a13565b818103602083015261404681876136d0565b9050818103604083015261405a8186613fc1565b9050818103606083015261406e81856136d0565b905081810360808301526140828184613fc1565b90509695505050505050565b60008151905061409d816132fa565b92915050565b6000602082840312156140b9576140b8613076565b5b60006140c78482850161408e565b91505092915050565b7f57726f6e67206d73672e76616c75650000000000000000000000000000000000600082015250565b6000614106600f83613c68565b9150614111826140d0565b602082019050919050565b60006020820190508181036000830152614135816140f9565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60408201600082015161417e6000850182613f8d565b506020820151614191602085018261369c565b50505050565b60006141a38383614168565b60408301905092915050565b6000602082019050919050565b60006141c78261413c565b6141d18185614147565b93506141dc83614158565b8060005b8381101561420d5781516141f48882614197565b97506141ff836141af565b9250506001810190506141e0565b5085935050505092915050565b6000606083016000830151848203600086015261423782826141bc565b915050602083015161424c602086018261369c565b50604083015161425f604086018261369c565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6040820160008201516142ac6000850182613f8d565b5060208201516142bf602085018261369c565b50505050565b60006142d18383614296565b60408301905092915050565b6000602082019050919050565b60006142f58261426a565b6142ff8185614275565b935061430a83614286565b8060005b8381101561433b57815161432288826142c5565b975061432d836142dd565b92505060018101905061430e565b5085935050505092915050565b600081519050919050565b60005b83811015614371578082015181840152602081019050614356565b83811115614380576000848401525b50505050565b600061439182614348565b61439b8185613d8c565b93506143ab818560208601614353565b6143b48161322e565b840191505092915050565b600060808201905081810360008301526143d9818761421a565b905081810360208301526143ed81866142ea565b90506143fc6040830185613a13565b818103606083015261440e8184614386565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614453826132f0565b915061445e836132f0565b92508261446e5761446d614419565b5b828204905092915050565b7f46656520746f6f20686967680000000000000000000000000000000000000000600082015250565b60006144af600c83613c68565b91506144ba82614479565b602082019050919050565b600060208201905081810360008301526144de816144a2565b9050919050565b6080820160008201516144fb6000850182614168565b50602082015161450e604085018261369c565b506040820151614521606085018261369c565b50505050565b60408201600082015161453d6000850182613f8d565b506020820151614550602085018261369c565b50505050565b60006101008201905061456c60008301876144e5565b6145796080830186614527565b61458660c0830185613a13565b81810360e08301526145988184614386565b905095945050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145ff602683613c68565b915061460a826145a3565b604082019050919050565b6000602082019050818103600083015261462e816145f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061466b602083613c68565b915061467682614635565b602082019050919050565b6000602082019050818103600083015261469a8161465e565b9050919050565b600081905092915050565b50565b60006146bc6000836146a1565b91506146c7826146ac565b600082019050919050565b60006146dd826146af565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061471d601383613c68565b9150614728826146e7565b602082019050919050565b6000602082019050818103600083015261474c81614710565b9050919050565b7f536c697070616765206c696d697420746f6f206c6f7700000000000000000000600082015250565b6000614789601683613c68565b915061479482614753565b602082019050919050565b600060208201905081810360008301526147b88161477c565b9050919050565b7f4475706c696361746520736f7572636520746f6b656e73000000000000000000600082015250565b60006147f5601783613c68565b9150614800826147bf565b602082019050919050565b60006020820190508181036000830152614824816147e8565b9050919050565b7f417262697472616765206e6f7420737570706f72746564000000000000000000600082015250565b6000614861601783613c68565b915061486c8261482b565b602082019050919050565b6000602082019050818103600083015261489081614854565b9050919050565b7f4475706c69636174652064657374696e6174696f6e20746f6b656e7300000000600082015250565b60006148cd601c83613c68565b91506148d882614897565b602082019050919050565b600060208201905081810360008301526148fc816148c0565b9050919050565b7f4d696e696d756d2067726561746572207468616e2071756f7465000000000000600082015250565b6000614939601a83613c68565b915061494482614903565b602082019050919050565b600060208201905081810360008301526149688161492c565b9050919050565b6000819050919050565b60006149848261496f565b915061498f8361496f565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156149ca576149c9613d14565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018213600084121615614a0257614a01613d14565b5b828203905092915050565b614a168161496f565b82525050565b600060c082019050614a316000830189613a13565b614a3e602083018861379d565b614a4b6040830187613a13565b614a58606083018661379d565b614a656080830185613a13565b614a7260a0830184614a0d565b979650505050505050565b6000604082019050614a926000830185613a13565b614a9f602083018461379d565b9392505050565b6000606082019050614abb6000830186613a13565b614ac86020830185613a13565b614ad5604083018461379d565b949350505050565b60008115159050919050565b614af281614add565b8114614afd57600080fd5b50565b600081519050614b0f81614ae9565b92915050565b600060208284031215614b2b57614b2a613076565b5b6000614b3984828501614b00565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000614b9e602a83613c68565b9150614ba982614b42565b604082019050919050565b60006020820190508181036000830152614bcd81614b91565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614c30602683613c68565b9150614c3b82614bd4565b604082019050919050565b60006020820190508181036000830152614c5f81614c23565b9050919050565b6000614c7182614348565b614c7b81856146a1565b9350614c8b818560208601614353565b80840191505092915050565b6000614ca38284614c66565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614ce4601d83613c68565b9150614cef82614cae565b602082019050919050565b60006020820190508181036000830152614d1381614cd7565b9050919050565b600081519050919050565b6000614d3082614d1a565b614d3a8185613c68565b9350614d4a818560208601614353565b614d538161322e565b840191505092915050565b60006020820190508181036000830152614d788184614d25565b90509291505056fea26469706673582212205d6c097fe49e6d42d976e1689e8f63130fecd09618b693b612f48d03f78d645f64736f6c63430008080033