10.3k txs
36.5k calls
constructor
constructor(address _WETH)
functions
owner
viewfunction owner() view returns (address)
WETH
viewfunction WETH() view returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueFunds
nonpayablefunction rescueFunds(address token, uint256 amount)
setupGovernor
nonpayablefunction setupGovernor(address governor)
swap
payablefunction swap(tuple execution) payable returns (uint256 returnAmount, uint256 gasUsed)
swapSimpleMode
nonpayablefunction swapSimpleMode(address caller, tuple desc, bytes executorData, bytes clientData) returns (uint256 returnAmount, uint256 gasUsed)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ClientData
event ClientData(bytes clientData)
Error
event Error(string reason)
Exchange
event Exchange(address pair, uint256 amountOut, address output)
Fee
event Fee(address token, uint256 totalAmount, uint256 totalFee, address[] recipients, uint256[] amounts, bool isBps)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Swapped
event Swapped(address sender, address srcToken, address dstToken, address dstReceiver, uint256 spentAmount, uint256 returnAmount)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620037c4380380620037c483398101604081905262000034916200010a565b6200003f33620000ba565b7343000000000000000000000000000000000000026001600160a01b0316634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200008f57600080fd5b505af1158015620000a4573d6000803e3d6000fd5b505050506001600160a01b03166080526200013c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200011d57600080fd5b81516001600160a01b03811681146200013557600080fd5b9392505050565b60805161365e620001666000396000818161017a015281816106b50152610dab015261365e6000f3fe60806040526004361061007f5760003560e01c80638da5cb5b1161004e5780638da5cb5b1461011c578063ad5c464814610168578063e21fd0e91461019c578063f2fde38b146101af57600080fd5b806352c916d51461008b578063715018a6146100ad57806378e3214f146100c25780638af033fb146100e257600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004612a40565b6101cf565b005b3480156100b957600080fd5b506100ab61026d565b3480156100ce57600080fd5b506100ab6100dd366004612a64565b610281565b3480156100ee57600080fd5b506101026100fd366004612e4e565b6102d3565b604080519283526020830191909152015b60405180910390f35b34801561012857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610113565b34801561017457600080fd5b506101437f000000000000000000000000000000000000000000000000000000000000000081565b6101026101aa366004612ef5565b61075a565b3480156101bb57600080fd5b506100ab6101ca366004612a40565b610e55565b6101d7610f0c565b6040517feb86469800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201527343000000000000000000000000000000000000029063eb86469890602401600060405180830381600087803b15801561025257600080fd5b505af1158015610266573d6000803e3d6000fd5b5050505050565b610275610f0c565b61027f6000610f8d565b565b610289610f0c565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8316036102c8576102c43382611002565b5050565b6102c482338361111d565b60008060005a9050610312886000015173ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f737263206973206574682c2073686f756c6420757365206e6f726d616c20737760448201527f617000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103bc88600001518960e001518a6101400151611293565b60c088015160009073ffffffffffffffffffffffffffffffffffffffff16156103e9578860c001516103eb565b335b905060006103ff8a610120015160806114a8565b90506104118a610120015160406114a8565b61043d576104338a60000151338c608001518d60a001518e60e00151866114b4565b60e08b0152610441565b3091505b5060006104528a602001518361168f565b905060006104648b600001513361168f565b90506104818c8c600001518d60e001518e60200151878f8f611777565b816104908c602001518561168f565b61049a9190612f5f565b95506104ac8b610120015160406114a8565b156105485760006104c38c610120015160806114a8565b90506104df8c60200151308e608001518f60a001518b866114b4565b60208d015160c08e0151919850915073ffffffffffffffffffffffffffffffffffffffff1615610513578b60c00151610515565b335b9350610521818561168f565b925061052f8130868a611c74565b8261053a828661168f565b6105449190612f5f565b9650505b60006105588c600001513361168f565b6105629083612f5f565b90508b61010001518710156105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f52657475726e20616d6f756e74206973206e6f7420656e6f7567680000000000604482015260640161039b565b8b516020808e01516040805133815273ffffffffffffffffffffffffffffffffffffffff948516938101939093529083169082015290851660608201526080810182905260a081018890527fd6d4f5681c246c9f42c203e287975af1601f8df8035a9251f79aab5c8f09e2f89060c00160405180910390a17fddac40937f35385a34f721af292e5a83fc5b840f722bff57c2fc71adba708c488d886106a58f6020015173ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b6106b3578e602001516106d5565b7f00000000000000000000000000000000000000000000000000000000000000005b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152602081019390935292168183015290519081900360600190a17f095e66fa4dd6a6f7b43fb8444a7bd0edb870508c7abf639bc216efb0bcff9779898960405161073d929190612f72565b60405180910390a15a850395505050505050965096945050505050565b60008060005a905060006107716060860186612fbf565b61077a90612ffd565b90506000816101000151116107eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d696e2072657475726e2073686f756c64206e6f742062652030000000000000604482015260640161039b565b60006107fa6040870187613009565b905011610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6578656375746f72446174612073686f756c64206265206e6f74207a65726f00604482015260640161039b565b61087381610120015160206114a8565b156108ae576108a36108886020870187612a40565b826108966040890189613009565b6100fd60808b018b613009565b935093505050915091565b6108b781611da6565b6108cf81600001518260e00151836101400151611293565b60006108e182610120015160806114a8565b9050600080600073ffffffffffffffffffffffffffffffffffffffff168460c0015173ffffffffffffffffffffffffffffffffffffffff1614610928578360c0015161092a565b335b905061093c84610120015160406114a8565b610ac8578351608085015160a08601516109969291339173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff85161461098e578860e00151610990565b345b886114b4565b60e08501526109a53385611eea565b610abf6109b560208a018a612a40565b7fd9c45357000000000000000000000000000000000000000000000000000000006109e360408c018c613009565b6040516024016109f4929190612f72565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915286518790610aa89073ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b610ab3576000610ab9565b8760e001515b85612055565b97509150610c4e565b6000610ad885602001518361168f565b9050610ae43386611eea565b610bfa610af460208b018b612a40565b7fd9c4535700000000000000000000000000000000000000000000000000000000610b2260408d018d613009565b604051602401610b33929190612f72565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915287518890610be79073ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b610bf2576000610bf4565b345b30612055565b80995081945050506000610c1e86602001513088608001518960a001518d8a6114b4565b9050610c308660200151308584611c74565b5080610c4086602001518461168f565b610c4a9190612f5f565b9750505b836101000151871015610cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f52657475726e20616d6f756e74206973206e6f7420656e6f7567680000000000604482015260640161039b565b83516020808601516040805133815273ffffffffffffffffffffffffffffffffffffffff948516938101939093529083169082015290821660608201526080810183905260a081018890527fd6d4f5681c246c9f42c203e287975af1601f8df8035a9251f79aab5c8f09e2f89060c00160405180910390a17fddac40937f35385a34f721af292e5a83fc5b840f722bff57c2fc71adba708c48610d6360208a018a612a40565b88610d9b876020015173ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b610da9578660200151610dcb565b7f00000000000000000000000000000000000000000000000000000000000000005b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152602081019390935292168183015290519081900360600190a17f095e66fa4dd6a6f7b43fb8444a7bd0edb870508c7abf639bc216efb0bcff9779610e3060808a018a613009565b604051610e3e929190612f72565b60405180910390a15a850395505050505050915091565b610e5d610f0c565b73ffffffffffffffffffffffffffffffffffffffff8116610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161039b565b610f0981610f8d565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461027f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8060000361100e575050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040516110459190613092565b60006040518083038185875af1925050503d8060008114611082576040519150601f19603f3d011682016040523d82523d6000602084013e611087565b606091505b5050905080611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201527f4c45440000000000000000000000000000000000000000000000000000000000606482015260840161039b565b505050565b8060000361112a57505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916111c19190613092565b6000604051808303816000865af19150503d80600081146111fe576040519150601f19603f3d011682016040523d82523d6000602084013e611203565b606091505b509150915081801561122d57508051158061122d57508080602001905181019061122d91906130a4565b610266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015260640161039b565b805160e003611118576000808473ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b846040516020016112d09291906130c6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261130891613092565b6000604051808303816000865af19150503d8060008114611345576040519150601f19603f3d011682016040523d82523d6000602084013e61134a565b606091505b509150915081610266576000611395826040518060400160405280601481526020017f5065726d69742063616c6c206661696c65643a2000000000000000000000000081525061216d565b6040517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152909150859073ffffffffffffffffffffffffffffffffffffffff88169063dd62ed3e90604401602060405180830381865afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e919061310e565b101561146857806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b9190613171565b7f08c379a0afcc32b1a39302f7cb8073359698411ab5fd6e3edb2c02c0b5fba8aa816040516114979190613171565b60405180910390a15b505050505050565b81811615155b92915050565b8351829080156116845773ffffffffffffffffffffffffffffffffffffffff881673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1460006115028a836114fc578a61168f565b3061168f565b90508287511461156e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c6964206c656e677468000000000000000000000000000000000000604482015260640161039b565b60005b838110156116155760008661159f5788828151811061159257611592613184565b60200260200101516115d1565b6127108983815181106115b4576115b4613184565b6020026020010151896115c791906131b3565b6115d191906131ca565b90506116048c856115e2578c6115e4565b305b8c85815181106115f6576115f6613184565b602002602001015184611c74565b5061160e81613205565b9050611571565b5060006116278b846114fc578b61168f565b6116319083612f5f565b905061163d8188612f5f565b94507f4c39b7ce5f4f514f45cb6f82b171b8b0b7f2cbf488ad28e4eff451588e2f014b8b88838c8c8b6040516116789695949392919061323d565b60405180910390a15050505b509695505050505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8416036116e0575073ffffffffffffffffffffffffffffffffffffffff8116316114ae565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906370a0823190602401602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611770919061310e565b90506114ae565b600061178582840184613374565b905042816060015110156117f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f524f555445523a20457870697265640000000000000000000000000000000000604482015260640161039b565b6020810151518151511480156118115750604081015151815151145b611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c696420737761702064617461206c656e6774680000000000000000604482015260640161039b565b80515160005b81811015611b325760006118918a3361168f565b90506118d98a33866000015185815181106118ae576118ae613184565b6020026020010151876020015186815181106118cc576118cc613184565b6020026020010151611c74565b88846020015183815181106118f0576118f0613184565b60200260200101511115611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c6964207377617020616d6f756e7400000000000000000000000000604482015260640161039b565b600061196c8b3361168f565b6119769083612f5f565b9050611982818b612f5f565b995050506000808b73ffffffffffffffffffffffffffffffffffffffff16638b674f5d60e01b866040015185815181106119be576119be613184565b60200260200101516040516024016119d69190613171565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a5f9190613092565b6000604051808303816000865af19150503d8060008114611a9c576040519150601f19603f3d011682016040523d82523d6000602084013e611aa1565b606091505b509150915081611b1d57611aea816040518060400160405280601b81526020017f7377617053696e676c6553657175656e6365206661696c65643a20000000000081525061216d565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b9190613171565b50508080611b2a90613205565b91505061187d565b506000808a73ffffffffffffffffffffffffffffffffffffffff1663774b6b7e60e01b8b8a8a8860800151604051602401611b709493929190613457565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611bf99190613092565b6000604051808303816000865af19150503d8060008114611c36576040519150601f19603f3d011682016040523d82523d6000602084013e611c3b565b606091505b509150915081611c6757611aea816040518060600160405280602381526020016136066023913961216d565b5050505050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f73656e64657220213d20726563697069656e7400000000000000000000000000604482015260640161039b565b8015611da05773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff851603611d6c573073ffffffffffffffffffffffffffffffffffffffff841603611d6757611d678282611002565b611da0565b3073ffffffffffffffffffffffffffffffffffffffff841603611d9457611d6784838361111d565b611da0848484846125a5565b50505050565b6000611ddf826000015173ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b9050611df182610120015160026114a8565b15611e705780611e02576000611e08565b8160e001515b34116102c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964206d73672e76616c7565000000000000000000000000000000604482015260640161039b565b80611e7c576000611e82565b8160e001515b34146102c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964206d73672e76616c7565000000000000000000000000000000604482015260640161039b565b80606001515181604001515114611f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c696420737263526563656976657273206c656e6774680000000000604482015260640161039b565b6000805b826040015151811015611fe65782606001518181518110611f8457611f84613184565b602002602001015182611f9791906134a2565b9150611fd683600001518585604001518481518110611fb857611fb8613184565b6020026020010151866060015185815181106118cc576118cc613184565b611fdf81613205565b9050611f61565b508160e00151811115611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f457863656564656420646573632e616d6f756e74000000000000000000000000604482015260640161039b565b600080600061206886602001518561168f565b905060008873ffffffffffffffffffffffffffffffffffffffff1686896040516120929190613092565b60006040518083038185875af1925050503d80600081146120cf576040519150601f19603f3d011682016040523d82523d6000602084013e6120d4565b606091505b505090508061213f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f43616c6c206661696c6564000000000000000000000000000000000000000000604482015260640161039b565b508061214f87602001518661168f565b6121599190612f5f565b91508560e001519250509550959350505050565b606060448351101580156121da57508260008151811061218f5761218f613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f0800000000000000000000000000000000000000000000000000000000000000145b801561223f5750826001815181106121f4576121f4613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fc300000000000000000000000000000000000000000000000000000000000000145b80156122a457508260028151811061225957612259613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7900000000000000000000000000000000000000000000000000000000000000145b80156123095750826003815181106122be576122be613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fa000000000000000000000000000000000000000000000000000000000000000145b156123b55760448381018051909161232191906134a2565b8451101561238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c69642072657665727420726561736f6e0000000000000000000000604482015260640161039b565b828160405160200161239e9291906134b5565b6040516020818303038152906040529150506114ae565b8251602414801561241f5750826000815181106123d4576123d4613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4e00000000000000000000000000000000000000000000000000000000000000145b801561248457508260018151811061243957612439613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4800000000000000000000000000000000000000000000000000000000000000145b80156124e957508260028151811061249e5761249e613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7b00000000000000000000000000000000000000000000000000000000000000145b801561254e57508260038151811061250357612503613184565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7100000000000000000000000000000000000000000000000000000000000000145b156125735760248301518261256282612741565b60405160200161239e929190613537565b8161257d84612769565b60405160200161258e929190613583565b604051602081830303815290604052905092915050565b8015611da0576040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052915160009283929088169161264a9190613092565b6000604051808303816000865af19150503d8060008114612687576040519150601f19603f3d011682016040523d82523d6000602084013e61268c565b606091505b50915091508180156126b65750805115806126b65750808060200190518101906126b691906130a4565b6114a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c454400000000000000000000000000000000000000000000000000000000606482015260840161039b565b60606114ae8260405160200161275991815260200190565b6040516020818303038152906040525b80516060907f30313233343536373839616263646566000000000000000000000000000000009060009061279e9060026131b3565b6127a99060026134a2565b67ffffffffffffffff8111156127c1576127c1612a90565b6040519080825280601f01601f1916602001820160405280156127eb576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061282257612822613184565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061288557612885613184565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b8451811015612a06578260048683815181106128d5576128d5613184565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c60f81c6010811061291157612911613184565b1a60f81b826129218360026131b3565b61292c9060026134a2565b8151811061293c5761293c613184565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508285828151811061297e5761297e613184565b60209101015160f81c600f166010811061299a5761299a613184565b1a60f81b826129aa8360026131b3565b6129b59060036134a2565b815181106129c5576129c5613184565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806129fe81613205565b9150506128b7565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f0957600080fd5b8035612a3b81612a0e565b919050565b600060208284031215612a5257600080fd5b8135612a5d81612a0e565b9392505050565b60008060408385031215612a7757600080fd5b8235612a8281612a0e565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715612ae357612ae3612a90565b60405290565b60405160a0810167ffffffffffffffff81118282101715612ae357612ae3612a90565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612b5357612b53612a90565b604052919050565b600067ffffffffffffffff821115612b7557612b75612a90565b5060051b60200190565b600082601f830112612b9057600080fd5b81356020612ba5612ba083612b5b565b612b0c565b82815260059290921b84018101918181019086841115612bc457600080fd5b8286015b84811015611684578035612bdb81612a0e565b8352918301918301612bc8565b600082601f830112612bf957600080fd5b81356020612c09612ba083612b5b565b82815260059290921b84018101918181019086841115612c2857600080fd5b8286015b848110156116845780358352918301918301612c2c565b600082601f830112612c5457600080fd5b813567ffffffffffffffff811115612c6e57612c6e612a90565b612c9f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612b0c565b818152846020838601011115612cb457600080fd5b816020850160208301376000918101602001919091529392505050565b60006101608284031215612ce457600080fd5b612cec612abf565b9050612cf782612a30565b8152612d0560208301612a30565b6020820152604082013567ffffffffffffffff80821115612d2557600080fd5b612d3185838601612b7f565b60408401526060840135915080821115612d4a57600080fd5b612d5685838601612be8565b60608401526080840135915080821115612d6f57600080fd5b612d7b85838601612b7f565b608084015260a0840135915080821115612d9457600080fd5b612da085838601612be8565b60a0840152612db160c08501612a30565b60c084015260e084810135908401526101008085013590840152610120808501359084015261014091508184013581811115612dec57600080fd5b612df886828701612c43565b8385015250505092915050565b60008083601f840112612e1757600080fd5b50813567ffffffffffffffff811115612e2f57600080fd5b602083019150836020828501011115612e4757600080fd5b9250929050565b60008060008060008060808789031215612e6757600080fd5b8635612e7281612a0e565b9550602087013567ffffffffffffffff80821115612e8f57600080fd5b612e9b8a838b01612cd1565b96506040890135915080821115612eb157600080fd5b612ebd8a838b01612e05565b90965094506060890135915080821115612ed657600080fd5b50612ee389828a01612e05565b979a9699509497509295939492505050565b600060208284031215612f0757600080fd5b813567ffffffffffffffff811115612f1e57600080fd5b820160a08185031215612a5d57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156114ae576114ae612f30565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112612ff357600080fd5b9190910192915050565b60006114ae3683612cd1565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261303e57600080fd5b83018035915067ffffffffffffffff82111561305957600080fd5b602001915036819003821315612e4757600080fd5b60005b83811015613089578181015183820152602001613071565b50506000910152565b60008251612ff381846020870161306e565b6000602082840312156130b657600080fd5b81518015158114612a5d57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825161310081600485016020870161306e565b919091016004019392505050565b60006020828403121561312057600080fd5b5051919050565b6000815180845261313f81602086016020860161306e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612a5d6020830184613127565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820281158282048414176114ae576114ae612f30565b600082613200577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361323657613236612f30565b5060010190565b600060c0820173ffffffffffffffffffffffffffffffffffffffff808a1684526020898186015288604086015260c0606086015282885180855260e087019150828a01945060005b818110156132a3578551851683529483019491830191600101613285565b5050858103608087015287518082529082019350915080870160005b838110156132db578151855293820193908201906001016132bf565b5050505083151560a08401529050979650505050505050565b600082601f83011261330557600080fd5b81356020613315612ba083612b5b565b82815260059290921b8401810191818101908684111561333457600080fd5b8286015b8481101561168457803567ffffffffffffffff8111156133585760008081fd5b6133668986838b0101612c43565b845250918301918301613338565b60006020828403121561338657600080fd5b813567ffffffffffffffff8082111561339e57600080fd5b9083019060a082860312156133b257600080fd5b6133ba612ae9565b8235828111156133c957600080fd5b6133d587828601612b7f565b8252506020830135828111156133ea57600080fd5b6133f687828601612be8565b60208301525060408301358281111561340e57600080fd5b61341a878286016132f4565b6040830152506060830135606082015260808301358281111561343c57600080fd5b61344887828601612c43565b60808301525095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152808516604084015250608060608301526134986080830184613127565b9695505050505050565b808201808211156114ae576114ae612f30565b600083516134c781846020880161306e565b7f4572726f72280000000000000000000000000000000000000000000000000000908301908152835161350181600684016020880161306e565b7f290000000000000000000000000000000000000000000000000000000000000060069290910191820152600701949350505050565b6000835161354981846020880161306e565b7f50616e6963280000000000000000000000000000000000000000000000000000908301908152835161350181600684016020880161306e565b6000835161359581846020880161306e565b7f556e6b6e6f776e2800000000000000000000000000000000000000000000000090830190815283516135cf81600884016020880161306e565b7f29000000000000000000000000000000000000000000000000000000000000006008929091019182015260090194935050505056fe66696e616c5472616e73616374696f6e50726f63657373696e67206661696c65643a20a26469706673582212209c4b12a9d256675ebe09c3b3908107afd3cec208e4d9f214d9915c40a9c59cdd64736f6c634300081100330000000000000000000000004300000000000000000000000000000000000004