0 txs
0 calls
constructor
No constructor.
functions
No functions.
events
No events.
errors
EmptyOrder
error EmptyOrder()
InsufficientGasForCancellation
error InsufficientGasForCancellation(uint256 gas, uint256 minHandleExecutionErrorGas)
InsufficientGasLeftForCallback
error InsufficientGasLeftForCallback(uint256 gasToBeForwarded, uint256 callbackGasLimit)
InvalidOrderPrices
error InvalidOrderPrices(uint256 primaryPriceMin, uint256 primaryPriceMax, uint256 triggerPrice, uint256 orderType)
MaxAutoCancelOrdersExceeded
error MaxAutoCancelOrdersExceeded(uint256 count, uint256 maxAutoCancelOrders)
OrderValidFromTimeNotReached
error OrderValidFromTimeNotReached(uint256 validFromTime, uint256 currentTimestamp)
UnsupportedOrderType
error UnsupportedOrderType(uint256 orderType)
creation bytecode
0x6144db61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063893a94f01461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004612118565b61005c565b005b603f5a6100699190612238565b816101000181815161007b919061225a565b9052508051516020820151604080840151515190516374b6fe1360e01b815273421e51d2e417a883cf7511ef60109e28b99e75af936374b6fe13936100c793919290919060040161227a565b60006040518083038186803b1580156100df57600080fd5b505af41580156100f3573d6000803e3d6000fd5b505050506101048160400151610650565b6101418160000151606001518260c00151602001516101298460400151602001515190565b604085810151602081015160800151910151516106bf565b6101676101548260400151602001515190565b604083015160200151610140015161090f565b600061017f8260000151606001518360c00151610947565b8251805160209091015160c08501515160405163c468d13560e01b81526001600160a01b039384166004820152918316602483015291909116604482015290915073091821658bc02784e90c700e34382d1657242cb79063c468d1359060640160006040518083038186803b1580156101f757600080fd5b505af415801561020b573d6000803e3d6000fd5b50508351805160209091015160c0860151604051631ce5b4e360e21b815273c4bb9a78e82aa1cd437db1bed9285bab3e3c85119550637396d38c94506102589392919087906004016122d0565b60006040518083038186803b15801561027057600080fd5b505af4158015610284573d6000803e3d6000fd5b50505050600061029383610abf565b60c0840151519091506001600160a01b0316156103185782515160c08401516040516339b1348f60e01b815273091821658bc02784e90c700e34382d1657242cb7926339b1348f926102e792600401612341565b60006040518083038186803b1580156102ff57600080fd5b505af4158015610313573d6000803e3d6000fd5b505050505b8251516060840151604051633db3964d60e11b815273091821658bc02784e90c700e34382d1657242cb792637b672c9a9261035592600401612365565b60006040518083038186803b15801561036d57600080fd5b505af4158015610381573d6000803e3d6000fd5b505050506103a2836000015160000151846020015185604001516000610c1f565b7385e9b3910e291325fd870fa13422d83f1ebccfc96368ace9b084600001516020015185602001516103d78760400151515190565b8761012001516040518563ffffffff1660e01b81526004016103fc94939291906123ef565b60006040518083038186803b15801561041457600080fd5b505af4158015610428573d6000803e3d6000fd5b5050505061043f8360200151846040015183610c95565b82518051602080830151604093840151918701519387015151606001517309c53652b4e65a68496988f6cdd637bc34a44ab19463e4aff94594939160408a01516020015160c001518a61010001516104a66104a08d604001515160e0015190565b51610d7b565b60e08d015160408e015151602001516040518b63ffffffff1660e01b81526004016104da9a9998979695949392919061241b565b60006040518083038186803b1580156104f257600080fd5b505af4158015610506573d6000803e3d6000fd5b5050505061052261051d8460400151602001515190565b610d88565b1561064b5760006105368460400151610dfa565b905060008460000151600001516001600160a01b031663bd02d0f583604051602001610581906020808252600b908201526a14d2569157d25397d554d160aa1b604082015260600190565b604051602081830303815290604052805190602001206040516020016105a8929190612472565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016105dc91815260200190565b602060405180830381865afa1580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190612480565b9050806000036106485784518051602082015160409092015160e08801516106489391908690610e86565b50505b505050565b600061065b82515190565b6001600160a01b03160361068257604051631630779760e01b815260040160405180910390fd5b60208101516040015115801561069e5750602081015160600151155b156106bc57604051631630779760e01b815260040160405180910390fd5b50565b6106c883610f6b565b806106d757506106d783610f8e565b806106e657506106e683610fcd565b61064857604051631773dc6560e21b81526000906001600160a01b03871690635dcf719490610719908890600401612499565b6040805180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075991906124ad565b9050600384600881111561076f5761076f6123c5565b036107ea5760008261078557815184111561078e565b83826020015111155b9050806107e35781516020830151858760088111156107af576107af6123c5565b604051630240d0ad60e11b815260048101949094526024840192909252604483015260648201526084015b60405180910390fd5b5050610648565b60088460088111156107fe576107fe6123c5565b0361083d5760008261081457815184101561078e565b83826020015110159050806107e35781516020830151858760088111156107af576107af6123c5565b6005846008811115610851576108516123c5565b0361088f5760008261086a57838260200151111561078e565b508051831115806107e35781516020830151858760088111156107af576107af6123c5565b60068460088111156108a3576108a36123c5565b036108e1576000826108bc57838260200151101561078e565b508051831015806107e35781516020830151858760088111156107af576107af6123c5565b8360088111156108f3576108f36123c5565b604051630de13e0d60e21b81526004016107da91815260200190565b61091882610f8e565b15610921575050565b428082111561064b5781816040516367c98ceb60e11b81526004016107da929190612472565b61094f611a0e565b6040518060600160405280846001600160a01b0316635dcf719485602001516040518263ffffffff1660e01b815260040161098a9190612499565b6040805180830381865afa1580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca91906124ad565b8152602001846001600160a01b0316635dcf719485604001516040518263ffffffff1660e01b81526004016109ff9190612499565b6040805180830381865afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f91906124ad565b8152602001846001600160a01b0316635dcf719485606001516040518263ffffffff1660e01b8152600401610a749190612499565b6040805180830381865afa158015610a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab491906124ad565b905290505b92915050565b610ac7611a40565b610adf610ada8360400151602001515190565b610fd6565b15610b605760405163da6fe44f60e01b81527385444d1c263d7d824b689437a66c149754e44ef29063da6fe44f90610b1b908590600401612701565b600060405180830381865af4158015610b38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ab99190810190613700565b610b7361051d8360400151602001515190565b15610baf5760405163da6fe44f60e01b815273b0aa475bbfeef6062ea3b6b5c50104acf6edbc569063da6fe44f90610b1b908590600401612701565b610bc7610bc28360400151602001515190565b610f6b565b15610c035760405163da6fe44f60e01b81527347298eae2a47f9d183dca0a0ccf159c1e73352bb9063da6fe44f90610b1b908590600401612701565b604082015160200151515b60088111156108f3576108f36123c5565b60056020830151516008811115610c3857610c386123c5565b14158015610c5d575060066020830151516008811115610c5a57610c5a6123c5565b14155b610c8f576000610c6c83610dfa565b90508115610c8457610c7f858286611016565b610648565b61064885828661112d565b50505050565b610ca9610ca483516060015190565b6111a1565b610cb257505050565b610cc9610cc4836020015160e0015190565b6111d8565b8151606001516001600160a01b0316638b9e55dc610cec846020015160e0015190565b8585856040518563ffffffff1660e01b8152600401610d0d93929190614097565b600060405180830381600088803b158015610d2757600080fd5b5087f193505050508015610d39575060015b61064b577f4983bf129aaa6a185e8acca6a06f3a3a7624fe5717e66b92c14f398edab6a1d48383604051610d6e929190614172565b60405180910390a1505050565b6000610ab982600361418b565b60006004826008811115610d9e57610d9e6123c5565b1480610dbc575060055b826008811115610dba57610dba6123c5565b145b80610dd857506006826008811115610dd657610dd66123c5565b145b80610ab9575060075b826008811115610df357610df36123c5565b1492915050565b6000610e0b61051d83602001515190565b15610e7b57610ab9610e1c83515190565b835160a00151845160c00151604086015151604080516001600160a01b039586166020808301919091529486168183015292909416606083015215156080808301919091528351808303909101815260a0909101909252815191012090565b602082015151610c0e565b6000610e92868461121d565b905060005b8151811015610f6257610f50604051806101200160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b03168152602001848481518110610eee57610eee61419e565b60200260200101518152602001856001600160a01b031681526020015a815260006020808301829052604080518082018252600b81526a10555513d7d0d05390d15360aa1b8184015281850152805191820190529081526060909101526112be565b80610f5a816141b4565b915050610e97565b50505050505050565b600080826008811115610f8057610f806123c5565b1480610ab957506001610de1565b600080826008811115610fa357610fa36123c5565b1480610fc057506002826008811115610fbe57610fbe6123c5565b145b80610ab957506004610de1565b60006007610de1565b60006002826008811115610fec57610fec6123c5565b148061100957506003826008811115611007576110076123c5565b145b80610ab957506008610de1565b6000611021836116fd565b604051636407a63160e11b81529091506001600160a01b0385169063c80f4c62906110529084908690600401612472565b600060405180830381600087803b15801561106c57600080fd5b505af1158015611080573d6000803e3d6000fd5b50505050600061108f8561177e565b60405163f3903b9f60e01b8152600481018490529091506000906001600160a01b0387169063f3903b9f90602401602060405180830381865afa1580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190612480565b905081811115611125578082604051630783ca5360e51b81526004016107da929190612472565b505050505050565b6000611138836116fd565b60405163264870f360e21b81529091506001600160a01b03851690639921c3cc906111699084908690600401612472565b600060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b5050505050505050565b60006001600160a01b0382166111b957506000919050565b6001600160a01b0382163b6111d057506000919050565b506001919050565b600060405a6111e79190612238565b6111f290603f6141cd565b9050818110156112195780826040516379a2abad60e01b81526004016107da929190612472565b5050565b6060600061122a836116fd565b905060006112378561177e565b604051637834829560e11b81526004810184905260006024820152604481018290529091506001600160a01b0386169063f069052a90606401600060405180830381865afa15801561128d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b591908101906141e4565b95945050505050565b8060c00151156112ea57603f5a6112d59190612238565b8160a0018181516112e6919061225a565b9052505b60005a905060006112fe836000015161183e565b9050808210156113255781816040516334f6b2ab60e21b81526004016107da929190612472565b8251606084015160405163fdfc26f360e01b81526001600160a01b039092166004830152602482015260009073421e51d2e417a883cf7511ef60109e28b99e75af9063fdfc26f390604401600060405180830381865af415801561138d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b5919081019061432a565b90506113c081610650565b6113d46113cf82602001515190565b611890565b6113e357602081015151610c0e565b73421e51d2e417a883cf7511ef60109e28b99e75af6374b6fe138560000151866060015161141085515190565b6040518463ffffffff1660e01b815260040161142e9392919061227a565b60006040518083038186803b15801561144657600080fd5b505af415801561145a573d6000803e3d6000fd5b5050505061146d610ada82602001515190565b806114825750611482610bc282602001515190565b1561156957600061149882602001516060015190565b11156115695760006114ac82516040015190565b90506001600160a01b0381166114c157508051515b84604001516001600160a01b0316632fb126056114e0845160c0015190565b836114f086602001516060015190565b6040870151602001516040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015215156064820152608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b50505050505b61157e84600001518560600151836000610c1f565b7385e9b3910e291325fd870fa13422d83f1ebccfc963b4723923856020015186606001516115ab85515190565b8860e001518961010001516040518663ffffffff1660e01b81526004016115d6959493929190614460565b60006040518083038186803b1580156115ee57600080fd5b505af4158015611602573d6000803e3d6000fd5b50505050600061161482516040015190565b90506001600160a01b03811661162c57508051602001515b611634611a40565b6116438660600151848361193f565b7309c53652b4e65a68496988f6cdd637bc34a44ab163e4aff9458760000151886020015189604001518a6060015161167d89516060015190565b60208a015160c001518d60a0015161169a6104a08d5160e0015190565b8f608001518c6040518b63ffffffff1660e01b81526004016116c59a9998979695949392919061241b565b60006040518083038186803b1580156116dd57600080fd5b505af41580156116f1573d6000803e3d6000fd5b50505050505050505050565b60006040516020016117399060208082526016908201527510555513d7d0d05390d15317d3d491115497d31254d560521b604082015260600190565b6040516020818303038152906040528051906020012082604051602001611761929190612472565b604051602081830303815290604052805190602001209050919050565b6000816001600160a01b031663bd02d0f56040516020016117c9906020808252601690820152754d41585f4155544f5f43414e43454c5f4f524445525360501b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016117fd91815260200190565b602060405180830381865afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190612480565b6000816001600160a01b031663bd02d0f56040516020016117c9906020808252601e908201527f4d494e5f48414e444c455f455845435554494f4e5f4552524f525f4741530000604082015260600190565b6000808260088111156118a5576118a56123c5565b14806118c2575060018260088111156118c0576118c06123c5565b145b806118de575060028260088111156118dc576118dc6123c5565b145b806118fa575060048260088111156118f8576118f86123c5565b145b8061191657506003826008811115611914576119146123c5565b145b8061193257506005826008811115611930576119306123c5565b145b80610dbc57506008610da8565b61194e610ca483516060015190565b61195757505050565b611969610cc4836020015160e0015190565b8151606001516001600160a01b031663f0c0897561198c846020015160e0015190565b8585856040518563ffffffff1660e01b81526004016119ad93929190614097565b600060405180830381600088803b1580156119c757600080fd5b5087f1935050505080156119d9575060015b61064b577fdeb7d95fb1b8918d6f2f0d1454f8b390fe7fc653793ca1e1bac7b832bb008cf78383604051610d6e929190614172565b6040518060600160405280611a21611b2c565b8152602001611a2e611b2c565b8152602001611a3b611b2c565b905290565b604080516101208101909152606060e0820181815261010083019190915281908152602001611a82604051806040016040528060608152602001606081525090565b8152602001611aa4604051806040016040528060608152602001606081525090565b8152602001611ac6604051806040016040528060608152602001606081525090565b8152602001611ae8604051806040016040528060608152602001606081525090565b8152602001611b0a604051806040016040528060608152602001606081525090565b8152602001611a3b604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715611b7f57611b7f611b46565b60405290565b604051608081016001600160401b0381118282101715611b7f57611b7f611b46565b604051606081016001600160401b0381118282101715611b7f57611b7f611b46565b60405161010081016001600160401b0381118282101715611b7f57611b7f611b46565b60405161014081016001600160401b0381118282101715611b7f57611b7f611b46565b604080519081016001600160401b0381118282101715611b7f57611b7f611b46565b60405160e081016001600160401b0381118282101715611b7f57611b7f611b46565b604051601f8201601f191681016001600160401b0381118282101715611c7b57611c7b611b46565b604052919050565b6001600160a01b03811681146106bc57600080fd5b600060c08284031215611caa57600080fd5b60405160c081016001600160401b0381118282101715611ccc57611ccc611b46565b6040529050808235611cdd81611c83565b81526020830135611ced81611c83565b60208201526040830135611d0081611c83565b60408201526060830135611d1381611c83565b60608201526080830135611d2681611c83565b608082015260a0830135611d3981611c83565b60a0919091015292915050565b8035611d5181611c83565b919050565b60006001600160401b03821115611d6f57611d6f611b46565b5060051b60200190565b600082601f830112611d8a57600080fd5b81356020611d9f611d9a83611d56565b611c53565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611de2578035611dd581611c83565b8352918301918301611dc2565b509695505050505050565b600981106106bc57600080fd5b8035611d5181611ded565b600381106106bc57600080fd5b8035611d5181611e05565b60006101608284031215611e3057600080fd5b611e38611b5c565b9050611e4382611dfa565b8152611e5160208301611e12565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525061012080830135818301525061014080830135818301525092915050565b80151581146106bc57600080fd5b600060808284031215611edc57600080fd5b611ee4611b85565b90508135611ef181611ebc565b81526020820135611f0181611ebc565b60208201526040820135611f1481611ebc565b60408201526060820135611f2781611ebc565b606082015292915050565b60006102008284031215611f4557600080fd5b611f4d611ba7565b905081356001600160401b0380821115611f6657600080fd5b908301906101008286031215611f7b57600080fd5b611f83611bc9565b611f8c83611d46565b8152611f9a60208401611d46565b6020820152611fab60408401611d46565b6040820152611fbc60608401611d46565b6060820152611fcd60808401611d46565b6080820152611fde60a08401611d46565b60a0820152611fef60c08401611d46565b60c082015260e08301358281111561200657600080fd5b61201287828601611d79565b60e08301525083525061202a90508360208401611e1d565b602082015261203d836101808401611eca565b604082015292915050565b60006080828403121561205a57600080fd5b612062611b85565b9050813561206f81611c83565b8152602082013561207f81611c83565b6020820152604082013561209281611c83565b60408201526060820135611f2781611c83565b600082601f8301126120b657600080fd5b813560206120c6611d9a83611d56565b82815260079290921b840181019181810190868411156120e557600080fd5b8286015b84811015611de2576120fb8882612048565b8352918301916080016120e9565b803560028110611d5157600080fd5b60006020828403121561212a57600080fd5b81356001600160401b038082111561214157600080fd5b90830190610240828603121561215657600080fd5b61215e611bec565b6121688684611c98565b815260c0830135602082015260e08301358281111561218657600080fd5b61219287828601611f32565b60408301525061010080840135838111156121ac57600080fd5b6121b8888287016120a5565b606084015250610120925082840135608083015261014084013560a08301526121e5876101608601612048565b60c08301526121f76101e08501611d46565b60e0830152610200840135908201526122136102208401612109565b91810191909152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008261225557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610ab957610ab9612222565b6001600160a01b03169052565b6001600160a01b0393841681526020810192909252909116604082015260600190565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b6001600160a01b0385811682528416602082015261018081016122f6604083018561229d565b8251805160c084015260209081015160e084015280840151805161010085015281015161012084015260408401518051610140850152908101516101608401525b5095945050505050565b6001600160a01b038316815260a0810161235e602083018461229d565b9392505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b818110156123b8576123a583865161229d565b9383019360809290920191600101612392565b5090979650505050505050565b634e487b7160e01b600052602160045260246000fd5b600281106123eb576123eb6123c5565b9052565b6001600160a01b0385811682526020820185905283166040820152608081016112b560608301846123db565b6001600160a01b039a8b168152988a1660208a015296891660408901526060880195909552928716608087015260a086019190915260c085015260e084015283166101008301529091166101208201526101400190565b918252602082015260400190565b60006020828403121561249257600080fd5b5051919050565b6001600160a01b0391909116815260200190565b6000604082840312156124bf57600080fd5b6124c7611c0f565b82518152602083015160208201528091505092915050565b600081518084526020808501945080840160005b838110156125185781516001600160a01b0316875295820195908201906001016124f3565b509495945050505050565b600981106123eb576123eb6123c5565b600381106123eb576123eb6123c5565b61254e828251612523565b60208101516125606020840182612533565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152506101408082015181840152505050565b805161020080845281516001600160a01b0390811691850191909152602082015116610220840152604081015160009161260361024086018361226d565b6060810151915061261861026086018361226d565b6080810151915061262d61028086018361226d565b60a081015191506126426102a086018361226d565b60c081015191506126576102c086018361226d565b60e001516101006102e086015290506126746103008501826124df565b905060208301516126886020860182612543565b5060408381015180511515610180870152602081015115156101a08701529081015115156101c0860152606081015115156101e0860152509392505050565b600081518084526020808501945080840160005b83811015612518576126ee87835161229d565b60809690960195908201906001016126db565b6020815261275960208201835180516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260808083015182169084015260a09182015116910152565b602082015160e08201526000604083015161024061010081818601526127836102608601846125c5565b92506060860151610120601f1987860301818801526127a285836126c7565b9450608088015161014088015260a088015161016088015260c088015191506127cf61018088018361229d565b60e088015191506127e461020088018361226d565b91870151610220870152508501516127fe828601826123db565b5090949350505050565b60005b8381101561282357818101518382015260200161280b565b50506000910152565b600082601f83011261283d57600080fd5b81516001600160401b0381111561285657612856611b46565b612869601f8201601f1916602001611c53565b81815284602083860101111561287e57600080fd5b61288f826020830160208701612808565b949350505050565b8051611d5181611c83565b600082601f8301126128b357600080fd5b815160206128c3611d9a83611d56565b82815260059290921b840181019181810190868411156128e257600080fd5b8286015b84811015611de25780516128f981611c83565b83529183019183016128e6565b600082601f83011261291757600080fd5b81516020612927611d9a83611d56565b82815260059290921b8401810191818101908684111561294657600080fd5b8286015b84811015611de25780516001600160401b038082111561296a5760008081fd5b908801906040828b03601f19018113156129845760008081fd5b61298c611c0f565b878401518381111561299e5760008081fd5b6129ac8d8a8388010161282c565b8252509083015190828211156129c25760008081fd5b6129d08c89848701016128a2565b81890152865250505091830191830161294a565b600060408083850312156129f757600080fd5b6129ff611c0f565b83519092506001600160401b0380821115612a1957600080fd5b818501915085601f830112612a2d57600080fd5b81516020612a3d611d9a83611d56565b82815260059290921b84018101918181019089841115612a5c57600080fd5b8286015b84811015612adb57805186811115612a785760008081fd5b8701808c03601f1901891315612a8e5760008081fd5b612a96611c0f565b8582015188811115612aa85760008081fd5b612ab68e888386010161282c565b8252509089015190612ac782611c83565b808601919091528352918301918301612a60565b5087525086810151945082851115612af257600080fd5b612afe88868901612906565b81870152505050505092915050565b600082601f830112612b1e57600080fd5b81516020612b2e611d9a83611d56565b828152600592831b8501820192828201919087851115612b4d57600080fd5b8387015b858110156123b85780516001600160401b0380821115612b715760008081fd5b908901906040828c03601f1901811315612b8b5760008081fd5b612b93611c0f565b8884015183811115612ba55760008081fd5b612bb38e8b8388010161282c565b8252508184015183811115612bc85760008081fd5b8085019450508c603f850112612be057600092508283fd5b888401519250612bf2611d9a84611d56565b83815292861b8401820192898101908e851115612c0f5760008081fd5b948301945b84861015612c2d5785518252948a0194908a0190612c14565b828b0152508752505050928401928401612b51565b60006040808385031215612c5557600080fd5b612c5d611c0f565b83519092506001600160401b0380821115612c7757600080fd5b818501915085601f830112612c8b57600080fd5b81516020612c9b611d9a83611d56565b82815260059290921b84018101918181019089841115612cba57600080fd5b8286015b84811015612d2c57805186811115612cd65760008081fd5b8701808c03601f1901891315612cec5760008081fd5b612cf4611c0f565b8582015188811115612d065760008081fd5b612d148e888386010161282c565b82525090890151858201528352918301918301612cbe565b5087525086810151945082851115612d4357600080fd5b612afe88868901612b0d565b600082601f830112612d6057600080fd5b81516020612d70611d9a83611d56565b828152600592831b8501820192828201919087851115612d8f57600080fd5b8387015b858110156123b85780516001600160401b0380821115612db35760008081fd5b908901906040828c03601f1901811315612dcd5760008081fd5b612dd5611c0f565b8884015183811115612de75760008081fd5b612df58e8b8388010161282c565b8252508184015183811115612e0a5760008081fd5b8085019450508c603f850112612e2257600092508283fd5b888401519250612e34611d9a84611d56565b83815292861b8401820192898101908e851115612e515760008081fd5b948301945b84861015612e7b5785519350612e6b84611ebc565b838252948a0194908a0190612e56565b828b0152508752505050928401928401612d93565b60006040808385031215612ea357600080fd5b612eab611c0f565b83519092506001600160401b0380821115612ec557600080fd5b818501915085601f830112612ed957600080fd5b81516020612ee9611d9a83611d56565b82815260059290921b84018101918181019089841115612f0857600080fd5b8286015b84811015612f8757805186811115612f245760008081fd5b8701808c03601f1901891315612f3a5760008081fd5b612f42611c0f565b8582015188811115612f545760008081fd5b612f628e888386010161282c565b8252509089015190612f7382611ebc565b808601919091528352918301918301612f0c565b5087525086810151945082851115612f9e57600080fd5b612afe88868901612d4f565b600082601f830112612fbb57600080fd5b81516020612fcb611d9a83611d56565b82815260059290921b84018101918181019086841115612fea57600080fd5b8286015b84811015611de25780518352918301918301612fee565b600082601f83011261301657600080fd5b81516020613026611d9a83611d56565b82815260059290921b8401810191818101908684111561304557600080fd5b8286015b84811015611de25780516001600160401b03808211156130695760008081fd5b908801906040828b03601f19018113156130835760008081fd5b61308b611c0f565b878401518381111561309d5760008081fd5b6130ab8d8a8388010161282c565b8252509083015190828211156130c15760008081fd5b6130cf8c8984870101612faa565b818901528652505050918301918301613049565b600060408083850312156130f657600080fd5b6130fe611c0f565b83519092506001600160401b038082111561311857600080fd5b818501915085601f83011261312c57600080fd5b8151602061313c611d9a83611d56565b82815260059290921b8401810191818101908984111561315b57600080fd5b8286015b848110156131cd578051868111156131775760008081fd5b8701808c03601f190189131561318d5760008081fd5b613195611c0f565b85820151888111156131a75760008081fd5b6131b58e888386010161282c565b8252509089015185820152835291830191830161315f565b50875250868101519450828511156131e457600080fd5b612afe88868901613005565b600082601f83011261320157600080fd5b815161320f611d9a82611d56565b8082825260208201915060208360051b86010192508583111561323157600080fd5b602085015b838110156123375780516001600160401b038082111561325557600080fd5b908701906040828a03601f1901121561326d57600080fd5b613275611c0f565b60208301518281111561328757600080fd5b6132968b60208387010161282c565b8252506040830151828111156132ab57600080fd5b80840193505089603f8401126132c057600080fd5b60208301516132d1611d9a82611d56565b81815260059190911b84016040019060208101908c8311156132f257600080fd5b604086015b8381101561332c5780518681111561330e57600080fd5b61331d8f6040838b010161282c565b845250602092830192016132f7565b50806020850152505050808652505050602083019250602081019050613236565b6000604080838503121561336057600080fd5b613368611c0f565b83519092506001600160401b038082111561338257600080fd5b818501915085601f83011261339657600080fd5b815160206133a6611d9a83611d56565b82815260059290921b840181019181810190898411156133c557600080fd5b8286015b84811015613455578051868111156133e15760008081fd5b8701808c03601f19018913156133f75760008081fd5b6133ff611c0f565b85820151888111156134115760008081fd5b61341f8e888386010161282c565b82525089820151888111156134345760008081fd5b6134428e888386010161282c565b82880152508452509183019183016133c9565b508752508681015194508285111561346c57600080fd5b612afe888689016131f0565b600082601f83011261348957600080fd5b8151613497611d9a82611d56565b8082825260208201915060208360051b8601019250858311156134b957600080fd5b602085015b838110156123375780516001600160401b03808211156134dd57600080fd5b908701906040828a03601f190112156134f557600080fd5b6134fd611c0f565b60208301518281111561350f57600080fd5b61351e8b60208387010161282c565b82525060408301518281111561353357600080fd5b80840193505089603f84011261354857600080fd5b6020830151613559611d9a82611d56565b81815260059190911b84016040019060208101908c83111561357a57600080fd5b604086015b838110156135b45780518681111561359657600080fd5b6135a58f6040838b010161282c565b8452506020928301920161357f565b508060208501525050508086525050506020830192506020810190506134be565b600060408083850312156135e857600080fd5b6135f0611c0f565b83519092506001600160401b038082111561360a57600080fd5b818501915085601f83011261361e57600080fd5b8151602061362e611d9a83611d56565b82815260059290921b8401810191818101908984111561364d57600080fd5b8286015b848110156136dd578051868111156136695760008081fd5b8701808c03601f190189131561367f5760008081fd5b613687611c0f565b85820151888111156136995760008081fd5b6136a78e888386010161282c565b82525089820151888111156136bc5760008081fd5b6136ca8e888386010161282c565b8288015250845250918301918301613651565b50875250868101519450828511156136f457600080fd5b612afe88868901613478565b60006020828403121561371257600080fd5b81516001600160401b038082111561372957600080fd5b9083019060e0828603121561373d57600080fd5b613745611c31565b82518281111561375457600080fd5b613760878286016129e4565b82525060208301518281111561377557600080fd5b61378187828601612c42565b60208301525060408301518281111561379957600080fd5b6137a587828601612c42565b6040830152506060830151828111156137bd57600080fd5b6137c987828601612e90565b6060830152506080830151828111156137e157600080fd5b6137ed878286016130e3565b60808301525060a08301518281111561380557600080fd5b6138118782860161334d565b60a08301525060c08301518281111561382957600080fd5b613835878286016135d5565b60c08301525095945050505050565b6000815180845261385c816020860160208601612808565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156138de5782840389528151604081518187526138b082880182613844565b915050868201519150858103878701526138ca81836124df565b9a87019a955050509084019060010161388e565b5091979650505050505050565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b8281101561396257898603605f190184528451805188885261393c89890182613844565b918401516001600160a01b03169784019790975295509381019392810192600101613918565b50808801519550888503818a0152505050506112b58183613870565b600081518084526020808501808196508360051b810191508286016000805b86811015613a10578385038a528251604081518188526139bf82890182613844565b92890151888403898b01528051808552908a01938693508a0191505b808310156139fb57835182529289019260019290920191908901906139db565b509b88019b965050509185019160010161399d565b509298975050505050505050565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015613a8c57898603605f1901845284518051888852613a6f89890182613844565b918401519784019790975295509381019392810192600101613a4b565b50808801519550888503818a0152505050506112b5818361397e565b600081518084526020808501808196508360051b810191508286016000805b86811015613a10578385038a52825160408151818852613ae982890182613844565b92890151888403898b01528051808552908a01938693508a0191505b80831015613b255783518252928901926001929092019190890190613b05565b509b88019b9650505091850191600101613ac7565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015613ba857898603605f1901845284518051888852613b8b89890182613844565b918401519784019790975295509381019392810192600101613b67565b50808801519550888503818a0152505050506112b58183613aa8565b600081518084526020808501808196508360051b810191508286016000805b86811015613a10578385038a52825160408151818852613c0582890182613844565b92890151888403898b01528051808552908a01938693508a0191505b80831015613c4357835115158252928901926001929092019190890190613c21565b509b88019b9650505091850191600101613be3565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015613cc857898603605f1901845284518051888852613ca989890182613844565b9184015115159784019790975295509381019392810192600101613c85565b50808801519550888503818a0152505050506112b58183613bc4565b600081518084526020808501808196508360051b810191508286016000805b86811015613a10578385038a52825160408151818852613d2582890182613844565b92890151888403898b01528051808552908a01938693508a0191505b80831015613d615783518252928901926001929092019190890190613d41565b509b88019b9650505091850191600101613d03565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015613de457898603605f1901845284518051888852613dc789890182613844565b918401519784019790975295509381019392810192600101613da3565b50808801519550888503818a0152505050506112b58183613ce4565b600081518084526020808501808196506005915083821b81018387016000805b87811015613eab578484038b52825160408151818752613e4282880182613844565b928a0151878403888c01528051808552908b019392508a83019150808a1b83018b01865b82811015613e9457601f19858303018452613e82828751613844565b958d0195938d01939150600101613e66565b509e8b019e97505050938801935050600101613e20565b50919998505050505050505050565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015613f3757898603605f1901845284518051888852613f0b89890182613844565b9184015188830389860152919050613f238183613844565b975050509381019392810192600101613ee7565b50808801519550888503818a0152505050506112b58183613e00565b600081518084526020808501808196506005915083821b81018387016000805b87811015613eab578484038b52825160408151818752613f9582880182613844565b928a0151878403888c01528051808552908b019392508a83019150808a1b83018b01865b82811015613fe757601f19858303018452613fd5828751613844565b958d0195938d01939150600101613fb9565b509e8b019e97505050938801935050600101613f73565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b8281101561407b57898603605f190184528451805188885261404f89890182613844565b91840151888303898601529190506140678183613844565b97505050938101939281019260010161402b565b50808801519550888503818a0152505050506112b58183613f53565b8381526060602082015260006140b060608301856125c5565b8281036040840152835160e082526140cb60e08301826138eb565b9050602085015182820360208401526140e48282613a1e565b915050604085015182820360408401526140fe8282613b3a565b915050606085015182820360608401526141188282613c58565b915050608085015182820360808401526141328282613d76565b91505060a085015182820360a084015261414c8282613eba565b91505060c085015182820360c08401526141668282613ffe565b98975050505050505050565b82815260406020820152600061288f60408301846125c5565b80820180821115610ab957610ab9612222565b634e487b7160e01b600052603260045260246000fd5b6000600182016141c6576141c6612222565b5060010190565b8082028115828204841417610ab957610ab9612222565b6000602082840312156141f657600080fd5b81516001600160401b0381111561420c57600080fd5b61288f84828501612faa565b8051611d5181611ded565b8051611d5181611e05565b6000610160828403121561424157600080fd5b614249611b5c565b905061425482614218565b815261426260208301614223565b602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e082015261010080830151818301525061012080830151818301525061014080830151818301525092915050565b6000608082840312156142df57600080fd5b6142e7611b85565b905081516142f481611ebc565b8152602082015161430481611ebc565b6020820152604082015161431781611ebc565b60408201526060820151611f2781611ebc565b60006020828403121561433c57600080fd5b81516001600160401b038082111561435357600080fd5b90830190610200828603121561436857600080fd5b614370611ba7565b82518281111561437f57600080fd5b8301610100818803121561439257600080fd5b61439a611bc9565b6143a382612897565b81526143b160208301612897565b60208201526143c260408301612897565b60408201526143d360608301612897565b60608201526143e460808301612897565b60808201526143f560a08301612897565b60a082015261440660c08301612897565b60c082015260e08201518481111561441d57600080fd5b614429898285016128a2565b60e08301525082525061443f866020850161422e565b60208201526144528661018085016142cd565b604082015295945050505050565b6001600160a01b038681168252602082018690528416604082015260a06060820181905260009061449390830185613844565b8281036080840152614166818561384456fea2646970667358221220a9f779cdb2fd49dc07aedff871422e8e61df6754aee1ace49fa3af39d9672ff864736f6c63430008120033