0 txs
1 call
constructor
constructor((address orderBook, ((address interpreter, address store, bytes bytecode) evaluable, (address signer, uint256[] context, bytes signature)[] signedContext) task, bytes implementationData) config)
functions
iTaskHash
viewfunction iTaskHash() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
arb3
payablefunction arb3(address orderBook, tuple takeOrders, bytes exchangeData, tuple task) payable
onFlashLoan
nonpayablefunction onFlashLoan(address initiator, address, uint256, uint256, bytes data) returns (bytes32)
events
Construct
event Construct(address sender, (address orderBook, ((address interpreter, address store, bytes bytecode) evaluable, (address signer, uint256[] context, bytes signature)[] signedContext) task, bytes implementationData) config)
errors
BadInitiator
error BadInitiator(address badInitiator)
FlashLoanFailed
error FlashLoanFailed()
InvalidSignature
error InvalidSignature(uint256 i)
NoOrders
error NoOrders()
WrongTask
error WrongTask()
creation bytecode
0x60a0604052600060805234801561001557600080fd5b50604051613aa8380380613aa88339810160408190526100349161036e565b808060016000819055507f584f220334313e589a42a75ac60d4fa6ed5b02329a7255af822a0e4ac9cd5f1d338260405161006f9291906105e7565b60405180910390a16020810151516040015151156100b65760208082015160405161009a9201610647565b60408051601f1981840301815291905280516020909101206080525b505050610661565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156100f6576100f66100be565b60405290565b604080519081016001600160401b03811182821017156100f6576100f66100be565b604051601f8201601f191681016001600160401b0381118282101715610146576101466100be565b604052919050565b6001600160a01b038116811461016357600080fd5b50565b60005b83811015610181578181015183820152602001610169565b50506000910152565b600082601f83011261019b57600080fd5b81516001600160401b038111156101b4576101b46100be565b6101c7601f8201601f191660200161011e565b8181528460208386010111156101dc57600080fd5b6101ed826020830160208701610166565b949350505050565b60006001600160401b0382111561020e5761020e6100be565b5060051b60200190565b600082601f83011261022957600080fd5b8151602061023e610239836101f5565b61011e565b82815260059290921b8401810191818101908684111561025d57600080fd5b8286015b848110156103635780516001600160401b038082111561028057600080fd5b908801906060828b03601f190112156102995760008081fd5b6102a16100d4565b868301516102ae8161014e565b8152604083810151838111156102c45760008081fd5b8401603f81018d136102d65760008081fd5b888101516102e6610239826101f5565b81815260059190911b82018301908a8101908f8311156103065760008081fd5b928401925b828410156103245783518252928b0192908b019061030b565b858c015250505060608401518381111561033e5760008081fd5b61034c8d8a8388010161018a565b918301919091525085525050918301918301610261565b509695505050505050565b6000602080838503121561038157600080fd5b82516001600160401b038082111561039857600080fd5b90840190606082870312156103ac57600080fd5b6103b46100d4565b82516103bf8161014e565b815282840151828111156103d257600080fd5b8301604081890312156103e457600080fd5b6103ec6100fc565b8151848111156103fb57600080fd5b82016060818b03121561040d57600080fd5b6104156100d4565b81516104208161014e565b81528188015161042f8161014e565b8189015260408201518681111561044557600080fd5b6104518c82850161018a565b604083015250825250818601518481111561046b57600080fd5b6104778a828501610218565b878301525080868401525050604083015193508184111561049757600080fd5b6104a38785850161018a565b60408201529695505050505050565b600081518084526104ca816020860160208601610166565b601f01601f19169290920160200192915050565b6000604082516040855260018060a01b03808251166040870152602080830151606083821660608a015260408501519450606060808a015261052360a08a01866104b2565b888401518a82038b86015280518083529196508401925083860190600581901b870185016000805b838110156105d557898303601f19018552865180518a168452888101518985018890528051888601819052908a0190849060808701905b808310156105a25783518252928c019260019290920191908c0190610582565b508e84015193508681038f8801526105ba81856104b2565b9650505050508787019650878501945060018101905061054b565b50909c9b505050505050505050505050565b6001600160a01b0383811682526040602080840182905284519092169083015282015160608083015260009061062060a08401826104de565b90506040840151603f1984830301608085015261063d82826104b2565b9695505050505050565b60208152600061065a60208301846104de565b9392505050565b60805161341f6106896000396000818160c2015281816102e30152610334015261341f6000f3fe60806040526004361061003f5760003560e01c806301ffc9a71461004d57806323e30c8b1461008257806393be095e146100b0578063fe38f9a7146100e4575b34801561004b57600080fd5b005b34801561005957600080fd5b5061006d610068366004611c51565b6100f7565b60405190151581526020015b60405180910390f35b34801561008e57600080fd5b506100a261009d366004611d0a565b610190565b604051908152602001610079565b3480156100bc57600080fd5b506100a27f000000000000000000000000000000000000000000000000000000000000000081565b61004b6100f2366004611d86565b6102d0565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f23e30c8b00000000000000000000000000000000000000000000000000000000148061018a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600073ffffffffffffffffffffffffffffffffffffffff871630146101fe576040517f8b1f7c6400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024015b60405180910390fd5b60008061020d8486018661221c565b9150915061021b82826106ab565b6040517f0997c4a000000000000000000000000000000000000000000000000000000000815260009081903390630997c4a09061025c908790600401612660565b60408051808303816000875af115801561027a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029e91906127fb565b507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99c9b505050505050505050505050565b6102d86107c9565b6102e18161281f565b7f00000000000000000000000000000000000000000000000000000000000000001580159061035657508060405160200161031c91906128a5565b604051602081830303815290604052805190602001207f000000000000000000000000000000000000000000000000000000000000000014155b1561038d576040517f8812562900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61039a60608601866128e7565b90506000036103d5576040517f9c95219f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008585856040516020016103ec93929190612bd3565b60408051601f198184030181529190529050600061040d60608801886128e7565b600081811061041e5761041e612e6a565b90506020028101906104309190612e99565b61043a9080612ed7565b610448906060810190612f0b565b61045560608a018a6128e7565b600081811061046657610466612e6a565b90506020028101906104789190612e99565b6040013581811061048b5761048b612e6a565b6104a19260206060909202019081019150612f54565b905060006104b260608901896128e7565b60008181106104c3576104c3612e6a565b90506020028101906104d59190612e99565b6104df9080612ed7565b6104ed906040810190612f0b565b6104fa60608b018b6128e7565b600081811061050b5761050b612e6a565b905060200281019061051d9190612e99565b6020013581811061053057610530612e6a565b6105469260206060909202019081019150612f54565b9050873561056c73ffffffffffffffffffffffffffffffffffffffff83168b600061083c565b61058f73ffffffffffffffffffffffffffffffffffffffff83168b60001961083c565b6040517f5cffe9de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b1690635cffe9de906105e7903090879086908a90600401612f71565b6020604051808303816000875af1158015610606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190612fb0565b610660576040517f92111eb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068273ffffffffffffffffffffffffffffffffffffffff83168b600061083c565b61069561068e8761281f565b8385610a23565b50505050506106a46001600055565b5050505050565b6000806000838060200190518101906106c49190612fd2565b925092509250600085606001516000815181106106e3576106e3612e6a565b60200260200101516000015160600151866060015160008151811061070a5761070a612e6a565b6020026020010151604001518151811061072657610726612e6a565b602090810291909101015151905061075673ffffffffffffffffffffffffffffffffffffffff821685600061083c565b61077973ffffffffffffffffffffffffffffffffffffffff82168560001961083c565b600061079c73ffffffffffffffffffffffffffffffffffffffff85168447610e03565b90506107c073ffffffffffffffffffffffffffffffffffffffff831686600061083c565b50505050505050565b600260005403610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101f5565b6002600055565b8015806108dc57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da9190613072565b155b610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016101f5565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610a1e9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610e33565b505050565b604080516001808252818301909252600091816020015b6060815260200190600190039081610a3a575050604080516003808252608082019092529192506000919060208201606080368337019050506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190613072565b90508015610b3057610b3073ffffffffffffffffffffffffffffffffffffffff86163383610f42565b60008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba1919061308b565b60ff169050610bb282826000610f98565b83600081518110610bc557610bc5612e6a565b602090810291909101015250506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c639190613072565b90508015610c8c57610c8c73ffffffffffffffffffffffffffffffffffffffff85163383610f42565b60008473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd919061308b565b60ff169050610d0e82826000610f98565b83600181518110610d2157610d21612e6a565b602090810291909101015250479050610d3a338261101d565b8082600281518110610d4e57610d4e612e6a565b602002602001018181525050508082600081518110610d6f57610d6f612e6a565b6020908102919091010152604080516001808252818301909252600091816020015b6040805160a08101825260009181018281526060808301939093526080820183905281526020810191909152815260200190600190039081610d915790505090508581600081518110610de657610de6612e6a565b6020026020010181905250610dfb8382611177565b505050505050565b6060610e298484846040518060600160405280602981526020016133f660299139611369565b90505b9392505050565b6000610e95826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166114849092919063ffffffff16565b9050805160001480610eb6575080806020019051810190610eb69190612fb0565b610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101f5565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610a1e9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016109ba565b60008260121115610fcd5760128390036002831615610fc357610fbb8582611493565b915050610e2c565b610fbb85826114e4565b6012831115611016577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee8301600183161561100c57610fbb858261151c565b610fbb858261156a565b5082610e2c565b80471015611087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016101f5565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146110e1576040519150601f19603f3d011682016040523d82523d6000602084013e6110e6565b606091505b5050905080610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016101f5565b336111aa6040805160a0810182526000918101828152606080830193909352608082018390528152602081019190915290565b60005b83518110156106a4578381815181106111c8576111c8612e6a565b602002602001015191506000826000015160400151511115611361578151805160209182015160008681523090935260408320839273ffffffffffffffffffffffffffffffffffffffff169163d6e3357a9187600001516040015160006112338d8b6020015161158d565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1690915261127f959493929190602481016130a8565b600060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112c491908101906131a6565b805191935091501561135e578351602001516040517f946aadc600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063946aadc69061132b908890859060040161320a565b600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050505b50505b6001016111ad565b6060824710156113fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101f5565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114249190613223565b60006040518083038185875af1925050503d8060008114611461576040519150601f19603f3d011682016040523d82523d6000602084013e611466565b606091505b50915091506114778783838761189d565b925050505b949350505050565b6060610e298484600085611369565b6000604e82106114b55782156114ab576000196114ae565b60005b905061018a565b50600a81900a82810290838183816114cf576114cf613235565b04146114dd5760001961147c565b5092915050565b600a81900a6114f38184613293565b9050604e821061018a5782156115135761150e82600a61338e565b610e2c565b60009392505050565b6000604e8210611540578215611533576001611536565b60005b60ff16905061018a565b600a82900a80848161155457611554613235565b04915080820284146114dd575060010192915050565b6000604e8210156115135781600a0a838161158757611587613235565b04610e2c565b60606000825167ffffffffffffffff8111156115ab576115ab611e36565b6040519080825280602002602001820160405280156115d4578160200160208202803683370190505b5090506000808451116115e85760006115ee565b83516001015b855160010101905060008167ffffffffffffffff81111561161157611611611e36565b60405190808252806020026020018201604052801561164457816020015b606081526020019060019003908161162f5790505b5090506000611669604080516002815233602082015230818301526060810190915290565b82828151811061167b5761167b612e6a565b602002602001018190525060005b87518110156116d95781806001019250508781815181106116ac576116ac612e6a565b60200260200101518383815181106116c6576116c6612e6a565b6020908102919091010152600101611689565b50855115611893578080600101915050838282815181106116fc576116fc612e6a565b602002602001018190525060005b8651811015611891576117bb87828151811061172857611728612e6a565b6020026020010151600001516117986117658a858151811061174c5761174c612e6a565b6020026020010151602001518051602090810291012090565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b8984815181106117aa576117aa612e6a565b60200260200101516040015161193d565b6117f4576040517f52bf9848000000000000000000000000000000000000000000000000000000008152600481018290526024016101f5565b86818151811061180657611806612e6a565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685828151811061183a5761183a612e6a565b602002602001018181525050818060010192505086818151811061186057611860612e6a565b60200260200101516020015183838151811061187e5761187e612e6a565b602090810291909101015260010161170a565b505b5095945050505050565b6060831561193357825160000361192c5773ffffffffffffffffffffffffffffffffffffffff85163b61192c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f5565b508161147c565b61147c83836119b8565b600080600061194c85856119fc565b909250905060008160048111156119655761196561339a565b14801561199d57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119ae57506119ae868686611a41565b9695505050505050565b8151156119c85781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f591906133c9565b6000808251604103611a325760208301516040840151606085015160001a611a2687828585611b80565b94509450505050611a3a565b506000905060025b9250929050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b8686604051602401611a789291906133dc565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611ae39190613223565b600060405180830381855afa9150503d8060008114611b1e576040519150601f19603f3d011682016040523d82523d6000602084013e611b23565b606091505b5091509150818015611b3757506020815110155b80156119ae575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611b759083016020908101908401613072565b149695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611bb75750600090506003611c48565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611c0b573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116611c4157600060019250925050611c48565b9150600090505b94509492505050565b600060208284031215611c6357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e2c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611cb557600080fd5b50565b8035611cc381611c93565b919050565b60008083601f840112611cda57600080fd5b50813567ffffffffffffffff811115611cf257600080fd5b602083019150836020828501011115611a3a57600080fd5b60008060008060008060a08789031215611d2357600080fd5b8635611d2e81611c93565b95506020870135611d3e81611c93565b94506040870135935060608701359250608087013567ffffffffffffffff811115611d6857600080fd5b611d7489828a01611cc8565b979a9699509497509295939492505050565b600080600080600060808688031215611d9e57600080fd5b8535611da981611c93565b9450602086013567ffffffffffffffff80821115611dc657600080fd5b9087019060a0828a031215611dda57600080fd5b90945060408701359080821115611df057600080fd5b611dfc89838a01611cc8565b90955093506060880135915080821115611e1557600080fd5b50860160408189031215611e2857600080fd5b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611e8857611e88611e36565b60405290565b60405160a0810167ffffffffffffffff81118282101715611e8857611e88611e36565b6040516080810167ffffffffffffffff81118282101715611e8857611e88611e36565b604051601f8201601f1916810167ffffffffffffffff81118282101715611efd57611efd611e36565b604052919050565b600067ffffffffffffffff821115611f1f57611f1f611e36565b5060051b60200190565b600067ffffffffffffffff821115611f4357611f43611e36565b50601f01601f191660200190565b600082601f830112611f6257600080fd5b8135611f75611f7082611f29565b611ed4565b818152846020838601011115611f8a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215611fb957600080fd5b611fc1611e65565b90508135611fce81611c93565b81526020820135611fde81611c93565b6020820152604082013567ffffffffffffffff811115611ffd57600080fd5b61200984828501611f51565b60408301525092915050565b60ff81168114611cb557600080fd5b600082601f83011261203557600080fd5b81356020612045611f7083611f05565b8281526060928302850182019282820191908785111561206457600080fd5b8387015b858110156120bd5781818a0312156120805760008081fd5b612088611e65565b813561209381611c93565b8152818601356120a281612015565b81870152604082810135908201528452928401928101612068565b5090979650505050505050565b600082601f8301126120db57600080fd5b813560206120eb611f7083611f05565b82815260059290921b8401810191818101908684111561210a57600080fd5b8286015b8481101561221157803567ffffffffffffffff8082111561212e57600080fd5b908801906060828b03601f190112156121475760008081fd5b61214f611e65565b8683013561215c81611c93565b8152604083810135838111156121725760008081fd5b8401603f81018d136121845760008081fd5b88810135612194611f7082611f05565b81815260059190911b82018301908a8101908f8311156121b45760008081fd5b928401925b828410156121d25783358252928b0192908b01906121b9565b858c01525050506060840135838111156121ec5760008081fd5b6121fa8d8a83880101611f51565b91830191909152508552505091830191830161210e565b509695505050505050565b6000806040838503121561222f57600080fd5b67ffffffffffffffff808435111561224657600080fd5b60a0843585018603121561225957600080fd5b612261611e8e565b843585018035825260208082013590830152604080820135908301526060013582101561228d57600080fd5b84358501606081013501601f810187136122a657600080fd5b6122b3611f708235611f05565b81358082526020808301929160051b8401018910156122d157600080fd5b602083015b6020843560051b85010181101561243e5785813511156122f557600080fd5b601f19608081833587018d0301121561230d57600080fd5b612315611eb1565b876020843588010135111561232957600080fd5b8235860160208101350160a0818e038401121561234557600080fd5b61234d611e8e565b925061235b60208201611cb8565b8352886040820135111561236e57600080fd5b6123818d60206040840135840101611fa7565b6020840152886060820135111561239757600080fd5b6123aa8d60206060840135840101612024565b604084015288608082013511156123c057600080fd5b6123d38d60206080840135840101612024565b606084015260a08101356080840152508181526040833587010135602082015260608335870101356040820152876080843588010135111561241457600080fd5b61242a8c843588016080810135016020016120ca565b6060820152845250602092830192016122d6565b5060608401525050843585016080013582101561245a57600080fd5b61246d8686358701608081013501611f51565b60808201529250602084013581101561248557600080fd5b506124968460208501358501611f51565b90509250929050565b60005b838110156124ba5781810151838201526020016124a2565b50506000910152565b600081518084526124db81602086016020860161249f565b601f01601f19169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff8083511684528060208401511660208501525060408201516060604085015261147c60608501826124c3565b60008151808452602080850194506020840160005b83811015612592578151805173ffffffffffffffffffffffffffffffffffffffff1688528381015160ff16848901526040908101519088015260609096019590820190600101612547565b509495945050505050565b60008151808452602080850194506020840160005b83811015612592578151875295820195908201906001016125b2565b600082825180855260208086019550808260051b84010181860160005b848110156120bd57601f198684030189528151606073ffffffffffffffffffffffffffffffffffffffff825116855285820151818787015261262f8287018261259d565b9150506040808301519250858203818701525061264c81836124c3565b9a86019a94505050908301906001016125eb565b6000602080835260c083018451828501528185015160408160408701526040870151915060608260608801526060880151925060a0608060a060808a015285855180885260e0975060e08b01915060e08160051b8c0101898801975060005b828110156127cc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff208d83030184528851805186845273ffffffffffffffffffffffffffffffffffffffff815116878501528c81015188898601526127286101208601826124ef565b90508a8201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80808784030160c08801526127638383612532565b92508b840151915080878403018f8801525061277f8282612532565b915050878201516101008601528d8301518e8601528a8301518b8601528983015192508481038a8601526127b381846125ce565b9b8e019b968e01969450505060019190910190506126bf565b5060808d01519950601f198c82030160a08d01526127ea818b6124c3565b9d9c50505050505050505050505050565b6000806040838503121561280e57600080fd5b505080516020909101519092909150565b60006040823603121561283157600080fd5b6040516040810167ffffffffffffffff828210818311171561285557612855611e36565b81604052843591508082111561286a57600080fd5b61287636838701611fa7565b8352602085013591508082111561288c57600080fd5b50612899368286016120ca565b60208301525092915050565b6020815260008251604060208401526128c160608401826124ef565b90506020840151601f198483030160408501526128de82826125ce565b95945050505050565b6000808335601e198436030181126128fe57600080fd5b83018035915067ffffffffffffffff82111561291957600080fd5b6020019150600581901b3603821315611a3a57600080fd5b6000808335601e1984360301811261294857600080fd5b830160208101925035905067ffffffffffffffff81111561296857600080fd5b8060051b3603821315611a3a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126129ae57600080fd5b90910192915050565b6000808335601e198436030181126129ce57600080fd5b830160208101925035905067ffffffffffffffff8111156129ee57600080fd5b803603821315611a3a57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6000808335601e19843603018112612a3f57600080fd5b830160208101925035905067ffffffffffffffff811115612a5f57600080fd5b606081023603821315611a3a57600080fd5b8183526000602080850194508260005b85811015612592578135612a9481611c93565b73ffffffffffffffffffffffffffffffffffffffff16875281830135612ab981612015565b60ff16878401526040828101359088015260609687019690910190600101612a81565b818352602080840193600091600585811b830182018585805b89811015612bc457601f19878503018b52612b10838a61297a565b60608135612b1d81611c93565b73ffffffffffffffffffffffffffffffffffffffff168652612b4182890183612931565b828a8901528083890152608092507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115612b7b578586fd5b881b808289850137870190506040612b95848201856129b7565b94508389840301828a0152612bad84840186836129fd565b9f8b019f9850505094880194505050600101612af5565b50919998505050505050505050565b6000604080835260e08301863582850152602060608189013581870152838901356080870152612c05818a018a612931565b60a0888101529384905261010093848801600582901b890186018360005b84811015612e07577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008c840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81873603018112612c8457600080fd5b86018035368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61018112612cb957600080fd5b6080855281018035612cca81611c93565b73ffffffffffffffffffffffffffffffffffffffff8082166080880152612cf38c84018461297a565b915060a0808801528135612d0681611c93565b8116610120880152818c0135612d1b81611c93565b16610140870152612d2e818e01826129b7565b91508a610160880152612d46610180880183836129fd565b915050612d558d830183612a28565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80808985030160c08a0152612d8b848385612a71565b9350612d998d860186612a28565b93509150808985030160e08a015250612db3838383612a71565b9250505060808201358c8701528a8301358b8701528c8301358d870152612ddc8a840184612931565b935091508581038a870152612df2818484612adc565b968b0196955050509188019150600101612c23565b5050612e1660808e018e6129b7565b985096507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a82030160c08b0152612e4f8189896129fd565b975050505050508483038186015250506119ae8185876129fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112612ecd57600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112612ecd57600080fd5b6000808335601e19843603018112612f2257600080fd5b83018035915067ffffffffffffffff821115612f3d57600080fd5b6020019150606081023603821315611a3a57600080fd5b600060208284031215612f6657600080fd5b8135610e2c81611c93565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526119ae60808301846124c3565b600060208284031215612fc257600080fd5b81518015158114610e2c57600080fd5b600080600060608486031215612fe757600080fd5b8351612ff281611c93565b602085015190935061300381611c93565b604085015190925067ffffffffffffffff81111561302057600080fd5b8401601f8101861361303157600080fd5b805161303f611f7082611f29565b81815287602083850101111561305457600080fd5b61306582602083016020860161249f565b8093505050509250925092565b60006020828403121561308457600080fd5b5051919050565b60006020828403121561309d57600080fd5b8151610e2c81612015565b73ffffffffffffffffffffffffffffffffffffffff8716815260006020878184015260c060408401526130de60c08401886124c3565b86606085015283810360808501528086518083528383019150838160051b84010184890160005b8381101561313357601f1986840301855261312183835161259d565b94870194925090860190600101613105565b505086810360a08801526127ea818961259d565b600082601f83011261315857600080fd5b81516020613168611f7083611f05565b8083825260208201915060208460051b87010193508684111561318a57600080fd5b602086015b84811015612211578051835291830191830161318f565b600080604083850312156131b957600080fd5b825167ffffffffffffffff808211156131d157600080fd5b6131dd86838701613147565b935060208501519150808211156131f357600080fd5b5061320085828601613147565b9150509250929050565b828152604060208201526000610e29604083018461259d565b60008251612ecd81846020870161249f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761018a5761018a613264565b600181815b808511156132e55781600019048211156132cb576132cb613264565b808516156132d857918102915b93841c93908002906132af565b509250929050565b6000826132fc5750600161018a565b816133095750600061018a565b816001811461331f576002811461332957613345565b600191505061018a565b60ff84111561333a5761333a613264565b50506001821b61018a565b5060208310610133831016604e8410600b8410161715613368575081810a61018a565b61337283836132aa565b806000190482111561338657613386613264565b029392505050565b6000610e2c83836132ed565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081526000610e2c60208301846124c3565b828152604060208201526000610e2960408301846124c356fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000254aa4443189a6393f77a17f299edee2a5b4958300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000