0 txs
1 call
constructor
constructor(address _eventEmitter, address _dataStore, address _oracleStore, address _roleStore, address _timelockController)
functions
dataStore
viewfunction dataStore() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
getHash
viewfunction getHash(address target, bytes payload, bytes32 predecessor, bytes32 salt) view returns (bytes32)
getHashBatch
viewfunction getHashBatch(address[] targets, bytes[] payloads, uint256[] values, bytes32 predecessor, bytes32 salt) view returns (bytes32)
MAX_TIMELOCK_DELAY
viewfunction MAX_TIMELOCK_DELAY() view returns (uint256)
oracleStore
viewfunction oracleStore() view returns (address)
roleStore
viewfunction roleStore() view returns (address)
timelockController
viewfunction timelockController() view returns (address)
cancelAction
nonpayablefunction cancelAction(bytes32 id)
execute
nonpayablefunction execute(address target, bytes payload, bytes32 predecessor, bytes32 salt)
executeBatch
nonpayablefunction executeBatch(address[] targets, uint256[] values, bytes[] payloads, bytes32 predecessor, bytes32 salt)
executeWithOraclePrice
nonpayablefunction executeWithOraclePrice(address target, bytes payload, bytes32 predecessor, bytes32 salt, tuple oracleParams)
increaseTimelockDelay
nonpayablefunction increaseTimelockDelay(uint256 _timelockDelay, bytes32 predecessor, bytes32 salt)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
revokeRole
nonpayablefunction revokeRole(address account, bytes32 roleKey)
signalAddOracleSigner
nonpayablefunction signalAddOracleSigner(address account, bytes32 predecessor, bytes32 salt)
signalGrantRole
nonpayablefunction signalGrantRole(address account, bytes32 roleKey, bytes32 predecessor, bytes32 salt)
signalReduceLentAmount
nonpayablefunction signalReduceLentAmount(address market, address fundingAccount, uint256 reductionAmount, bytes32 predecessor, bytes32 salt)
signalRemoveOracleSigner
nonpayablefunction signalRemoveOracleSigner(address account, bytes32 predecessor, bytes32 salt)
signalRevokeRole
nonpayablefunction signalRevokeRole(address account, bytes32 roleKey, bytes32 predecessor, bytes32 salt)
signalSetAtomicOracleProvider
nonpayablefunction signalSetAtomicOracleProvider(address provider, bool value, bytes32 predecessor, bytes32 salt)
signalSetDataStream
nonpayablefunction signalSetDataStream(address token, bytes32 feedId, uint256 dataStreamMultiplier, uint256 dataStreamSpreadReductionFactor, bytes32 predecessor, bytes32 salt)
signalSetEdgeDataStream
nonpayablefunction signalSetEdgeDataStream(address token, bytes32 edgeDataStreamId, uint256 edgeDataStreamTokenDecimals, bytes32 predecessor, bytes32 salt)
signalSetFeeReceiver
nonpayablefunction signalSetFeeReceiver(address account, bytes32 predecessor, bytes32 salt)
signalSetHoldingAddress
nonpayablefunction signalSetHoldingAddress(address account, bytes32 predecessor, bytes32 salt)
signalSetOracleProviderEnabled
nonpayablefunction signalSetOracleProviderEnabled(address provider, bool value, bytes32 predecessor, bytes32 salt)
signalSetOracleProviderForToken
nonpayablefunction signalSetOracleProviderForToken(address oracle, address token, address provider, bytes32 predecessor, bytes32 salt)
signalSetPriceFeed
nonpayablefunction signalSetPriceFeed(address token, address priceFeed, uint256 priceFeedMultiplier, uint256 priceFeedHeartbeatDuration, uint256 stablePrice, bytes32 predecessor, bytes32 salt)
signalWithdrawFromPositionImpactPool
nonpayablefunction signalWithdrawFromPositionImpactPool(address market, address receiver, uint256 amount, bytes32 predecessor, bytes32 salt)
signalWithdrawTokens
nonpayablefunction signalWithdrawTokens(address target, address token, address receiver, uint256 amount, bytes32 predecessor, bytes32 salt)
events
No events.
errors
ConfigValueExceedsAllowedRange
error ConfigValueExceedsAllowedRange(bytes32 baseKey, uint256 value)
EmptyDataStreamFeedId
error EmptyDataStreamFeedId(address token)
EmptyFundingAccount
error EmptyFundingAccount()
EmptyMarket
error EmptyMarket()
EmptyPositionImpactWithdrawalAmount
error EmptyPositionImpactWithdrawalAmount()
EmptyReceiver
error EmptyReceiver()
EmptyReduceLentAmount
error EmptyReduceLentAmount()
EmptyTarget
error EmptyTarget()
EmptyToken
error EmptyToken()
EmptyWithdrawalAmount
error EmptyWithdrawalAmount()
InvalidFeeReceiver
error InvalidFeeReceiver(address receiver)
InvalidHoldingAddress
error InvalidHoldingAddress(address account)
InvalidOracleSigner
error InvalidOracleSigner(address signer)
InvalidTimelockDelay
error InvalidTimelockDelay(uint256 timelockDelay)
MaxTimelockDelayExceeded
error MaxTimelockDelayExceeded(uint256 timelockDelay)
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x61012060405234801561001157600080fd5b50604051615cea380380615cea83398101604081905261003091610071565b6001600160a01b0391821660805293811660a05291821660e0528116610100521660c0526100e6565b6001600160a01b038116811461006e57600080fd5b50565b600080600080600060a0868803121561008957600080fd5b855161009481610059565b60208701519095506100a581610059565b60408701519094506100b681610059565b60608701519093506100c781610059565b60808701519092506100d881610059565b809150509295509295909350565b60805160a05160c05160e05161010051615a006102ea600039600081816101df015281816120e4015261305a015260008181610260015281816107d20152818161099f015281816109f3015281816111de015281816112320152818161128601528181611a5f01528181611ab301528181611b0701528181611b5b0152818161293601528181612b8c015281816132d101526135900152600081816103fe0152818161064e015281816107a3015281816107f801528181610b5c01528181610b9001528181610dad01528181610f2601528181610f5b0152818161145401528181611488015281816116e001528181611754015281816118700152818161189f015281816118c501528181611d8e01528181611dc2015281816120b50152818161210a015281816122be0152818161231301528181612577015281816125a6015281816125cc015281816129070152818161295c01528181612b5d01528181612bb201528181612dc301528181612e180152818161302b01528181613080015281816132a2015281816132f70152818161345f01528181613561015281816135b60152818161381f0152818161384e0152818161387401528181613a760152613b0f0152600081816102f901528181613e3a0152613eb8015260008181610213015281816104c7015281816122ed01528181612df20152613bb00152615a006000f3fe608060405234801561001057600080fd5b506004361061016a5760003560e01c8063208dd1ff1461016f5780632a083ca3146101845780632ab148dd146101a1578063314907c1146101b457806331847c96146101c7578063392bf7f6146101da5780634a4a7b041461020e5780635588ec5a14610235578063569936a414610248578063660d0d671461025b5780636d00753e14610282578063781cc3d31461029557806378b79025146102a85780637ed67107146102bb578063881be502146102ce578063990200cb146102e15780639ff78c30146102f4578063a6a58fab1461031b578063ac9650d81461032e578063ad4e4ab21461034e578063b5256f3814610361578063b971779414610374578063cd63bfa514610387578063cdb07a4f1461039a578063d0b91b01146103ad578063d597d570146103c0578063db477adc146103d3578063e38335e5146103e6578063f3388e75146103f9578063feca03a514610420575b600080fd5b61018261017d36600461453d565b610433565b005b61018e6206978081565b6040519081526020015b60405180910390f35b6101826101af3660046145af565b6105e3565b6101826101c2366004614613565b6106c7565b6101826101d5366004614646565b61094a565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b6040516101989190614688565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b61018261024336600461469c565b610d84565b610182610256366004614732565b610e29565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b610182610290366004614791565b611152565b6101826102a33660046147db565b6116b8565b6101826102b63660046147f4565b611740565b6101826102c9366004614820565b611a28565b6101826102dc366004614613565b612029565b6101826102ef36600461487e565b612259565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b6101826103293660046148b7565b6124a1565b61034161033c366004614948565b612783565b6040516101989190614a35565b61018261035c366004614a60565b612896565b61018261036f366004614aa4565b612aef565b61018261038236600461487e565b612d5e565b610182610395366004614613565b612f9f565b6101826103a8366004614613565b6131cc565b61018e6103bb366004614af9565b613445565b6101826103ce366004614a60565b6134f0565b6101826103e13660046148b7565b613749565b6101826103f4366004614af9565b613a4d565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b61018e61042e3660046145af565b613af5565b6104b060405160200161046b9060208082526011908201527054494d454c4f434b5f4d554c544953494760781b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280601181526020017054494d454c4f434b5f4d554c544953494760781b815250613b99565b60405163208dd1ff60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063208dd1ff906104fe9085908590600401614bab565b600060405180830381600087803b15801561051857600080fd5b505af115801561052c573d6000803e3d6000fd5b50505050610538614430565b8051610545906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516105729160009086613cb2565b6080810151610582906001613c4d565b604080518082019091526007815266726f6c654b657960c81b602082015260808201516105b29160009085613d0f565b6105de6040518060400160405280600a8152602001695265766f6b65526f6c6560b01b81525082613d62565b505050565b6106376040516020016105f590614bc4565b604051602081830303815290604052805190602001206040518060400160405280600e81526020016d2a24a6a2a627a1a5afa0a226a4a760911b815250613b99565b60405163134008d360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063134008d39061068e9088906000908990899089908990600401614c15565b600060405180830381600087803b1580156106a857600080fd5b505af11580156106bc573d6000803e3d6000fd5b505050505050505050565b6106d96040516020016105f590614bc4565b6001600160a01b03831661070b578260405163cb9339d560e01b81526004016107029190614688565b60405180910390fd5b600060405160200161073d906020808252600c908201526b2322a2afa922a1a2a4ab22a960a11b604082015260600190565b6040516020818303038152906040528051906020012084604051602401610765929190614c52565b60405160208183030381529060405263ca446dd960e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108789190614c69565b6040518763ffffffff1660e01b815260040161089996959493929190614c82565b600060405180830381600087803b1580156108b357600080fd5b505af11580156108c7573d6000803e3d6000fd5b505050506108d3614430565b80516108e0906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b6020820152815161090d9160009088613cb2565b6109436040518060400160405280601481526020017329b4b3b730b629b2ba2332b2a932b1b2b4bb32b960611b81525082613d62565b5050505050565b61095c6040516020016105f590614bc4565b8361097c57846040516318b900b360e21b81526004016107029190614688565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106109d1576109d1614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610a2557610a25614cdd565b6001600160a01b03929092166020928302919091019091015260408051600280825260608201909252600091816020015b6060815260200190600190039081610a56579050509050610a7687613f1f565b86604051602401610a88929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b03166309d23b6160e31b17905281518290600090610ac557610ac5614cdd565b6020026020010181905250610ad987613f9d565b85604051602401610aeb929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b179052815182906001908110610b2a57610b2a614cdd565b6020908102919091010152604080516002808252606082019092526000918160200160208202803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638f2a0bb084838589897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190614c69565b6040518763ffffffff1660e01b8152600401610c3196959493929190614d78565b600060405180830381600087803b158015610c4b57600080fd5b505af1158015610c5f573d6000803e3d6000fd5b50505050610c6b614430565b8051610c78906001613c4d565b6040805180820190915260058152643a37b5b2b760d91b60208201528151610ca3916000908c613cb2565b6080810151610cb3906001613c4d565b60408051808201909152601081526f195919d951185d1854dd1c99585b525960821b60208201526080820151610cec916000908b613d0f565b6020810151610cfc906001613c4d565b610d4b60006040518060400160405280601b81526020017a656467654461746153747265616d546f6b656e446563696d616c7360281b815250898460200151613d0f909392919063ffffffff16565b6106bc604051806040016040528060178152602001765369676e616c536574456467654461746153747265616d60481b81525082613d62565b610d966040516020016105f590614bc4565b60405163d0663e6160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d0663e6190610def9089906000908a908a908a908a908a90600401614ee8565b600060405180830381600087803b158015610e0957600080fd5b505af1158015610e1d573d6000803e3d6000fd5b50505050505050505050565b610e3b6040516020016105f590614bc4565b6001600160a01b038616610e6257604051634e6e36d560e11b815260040160405180910390fd5b6001600160a01b038516610e895760405163066f53b160e01b815260040160405180910390fd5b6001600160a01b038416610eb05760405163d551823d60e01b815260040160405180910390fd5b82600003610ed1576040516301d6f7b160e01b815260040160405180910390fd5b6000858585604051602401610ee893929190614f98565b604051602081830303815290604052632f1a9acf60e11b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a8860008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdb9190614c69565b6040518763ffffffff1660e01b8152600401610ffc96959493929190614c82565b600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b50505050611036614430565b8051611043906003613c4d565b6040805180820190915260068152651d185c99d95d60d21b6020820152815161106f916000908b613cb2565b6040805180820190915260058152643a37b5b2b760d91b6020820152815161109a916001908a613cb2565b6040805180820190915260088152673932b1b2b4bb32b960c11b602082015281516110c89160019089613cb2565b60208101516110d8906001613c4d565b611112600060405180604001604052806006815260200165185b5bdd5b9d60d21b815250878460200151613d0f909392919063ffffffff16565b611148604051806040016040528060148152602001735369676e616c5769746864726177546f6b656e7360601b81525082613d62565b5050505050505050565b6111646040516020016105f590614bc4565b68327cb2734119d3b7a9601e1b8311156111b95760405160200161118790614fbc565b6040516020818303038152906040528051906020012083604051635ebb87c960e01b8152600401610702929190614cf3565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061121057611210614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061126457611264614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106112b8576112b8614cdd565b6001600160a01b03929092166020928302919091019091015260408051600380825260808201909252600091816020015b60608152602001906001900390816112e957905050905061130988613fe0565b8760405160240161131b929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b03166309d23b6160e31b1790528151829060009061135857611358614cdd565b602002602001018190525061136c88614014565b8660405160240161137e929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b1790528151829060019081106113bd576113bd614cdd565b60200260200101819052506113d188614050565b856040516024016113e3929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600290811061142257611422614cdd565b6020908102919091010152604080516003808252608082019092526000918160200160208202803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638f2a0bb084838589897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115089190614c69565b6040518763ffffffff1660e01b815260040161152996959493929190614d78565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b50505050611563614430565b8051611570906001613c4d565b6040805180820190915260058152643a37b5b2b760d91b6020820152815161159b916000908d613cb2565b60808101516115ab906001613c4d565b60408051808201909152600681526519995959125960d21b602082015260808201516115da916000908c613d0f565b60208101516115ea906002613c4d565b6116326000604051806040016040528060148152602001733230ba30a9ba3932b0b6a6bab63a34b83634b2b960611b8152508a8460200151613d0f909392919063ffffffff16565b61168360016040518060400160405280601f81526020017f6461746153747265616d537072656164526564756374696f6e466163746f7200815250898460200151613d0f909392919063ffffffff16565b610e1d604051806040016040528060138152602001725369676e616c5365744461746153747265616d60681b81525082613d62565b6116ca6040516020016105f590614bc4565b60405163c4d252f560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4d252f590602401600060405180830381600087803b15801561172c57600080fd5b505af1158015610943573d6000803e3d6000fd5b6117526040516020016105f590614bc4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d49190614c69565b83116117f6576040516373586edb60e11b815260048101849052602401610702565b6206978083111561181d57604051633ebd9bc360e21b815260048101849052602401610702565b60008360405160240161183291815260200190565b6040516020818303038152906040526364d6235360e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119459190614c69565b6040518763ffffffff1660e01b815260040161196696959493929190614c82565b600060405180830381600087803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b505050506119a0614430565b60208101516119b0906001613c4d565b6119f160006040518060400160405280600d81526020016c74696d656c6f636b44656c617960981b815250878460200151613d0f909392919063ffffffff16565b61094360405180604001604052806015815260200174496e63726561736554696d656c6f636b44656c617960581b81525082613d62565b611a3a6040516020016105f590614bc4565b60408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611a9157611a91614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611ae557611ae5614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611b3957611b39614cdd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110611b8d57611b8d614cdd565b6001600160a01b03929092166020928302919091019091015260408051600480825260a08201909252600091816020015b6060815260200190600190039081611bbe579050509050611bde89614061565b88604051602401611bf0929190614c52565b60408051601f198184030181529190526020810180516001600160e01b031663ca446dd960e01b17905281518290600090611c2d57611c2d614cdd565b6020026020010181905250611c4189614091565b87604051602401611c53929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b179052815182906001908110611c9257611c92614cdd565b6020026020010181905250611ca6896140cc565b86604051602401611cb8929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b179052815182906002908110611cf757611cf7614cdd565b6020026020010181905250611d0b8961410f565b85604051602401611d1d929190614cf3565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b179052815182906003908110611d5c57611d5c614cdd565b602090810291909101015260408051600480825260a082019092526000918160200160208202803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638f2a0bb084838589897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e429190614c69565b6040518763ffffffff1660e01b8152600401611e6396959493929190614d78565b600060405180830381600087803b158015611e7d57600080fd5b505af1158015611e91573d6000803e3d6000fd5b50505050611e9d614430565b8051611eaa906002613c4d565b6040805180820190915260058152643a37b5b2b760d91b60208201528151611ed5916000908e613cb2565b6040805180820190915260098152681c1c9a58d95199595960ba1b60208201528151611f04916001908d613cb2565b6020810151611f14906003613c4d565b611f5b600060405180604001604052806013815260200172383934b1b2a332b2b226bab63a34b83634b2b960691b8152508b8460200151613d0f909392919063ffffffff16565b611fa960016040518060400160405280601a815260200179383934b1b2a332b2b22432b0b93a3132b0ba223ab930ba34b7b760311b8152508a8460200151613d0f909392919063ffffffff16565b611fe860026040518060400160405280600b81526020016a737461626c65507269636560a81b815250898460200151613d0f909392919063ffffffff16565b61201c6040518060400160405280601281526020017114da59db985b14d95d141c9a58d95199595960721b81525082613d62565b5050505050505050505050565b61203b6040516020016105f590614bc4565b6001600160a01b038316612064578260405163c1b14c9160e01b81526004016107029190614688565b6000836040516024016120779190614688565b604051602081830303815290604052630e316ab760e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218a9190614c69565b6040518763ffffffff1660e01b81526004016121ab96959493929190614c82565b600060405180830381600087803b1580156121c557600080fd5b505af11580156121d9573d6000803e3d6000fd5b505050506121e5614430565b80516121f2906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b6020820152815161221f9160009088613cb2565b6109436040518060400160405280601881526020017729b4b3b730b62932b6b7bb32a7b930b1b632a9b4b3b732b960411b81525082613d62565b61226b6040516020016105f590614bc4565b60008484604051602401612280929190614bab565b604051602081830303815290604052632ac9d0b760e21b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123939190614c69565b6040518763ffffffff1660e01b81526004016123b496959493929190614c82565b600060405180830381600087803b1580156123ce57600080fd5b505af11580156123e2573d6000803e3d6000fd5b505050506123ee614430565b80516123fb906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516124289160009089613cb2565b6080810151612438906001613c4d565b604080518082019091526007815266726f6c654b657960c81b602082015260808201516124689160009088613d0f565b6124996040518060400160405280600f81526020016e5369676e616c4772616e74526f6c6560881b81525082613d62565b505050505050565b6124b36040516020016105f590614bc4565b6001600160a01b0385166124da576040516302fde0d760e11b815260040160405180910390fd5b6001600160a01b0384166125015760405163d551823d60e01b815260040160405180910390fd5b8260000361252257604051630d1bbc9560e01b815260040160405180910390fd5b600085858560405160240161253993929190614f98565b604051602081830303815290604052632bae9a3560e11b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264c9190614c69565b6040518763ffffffff1660e01b815260040161266d96959493929190614c82565b600060405180830381600087803b15801561268757600080fd5b505af115801561269b573d6000803e3d6000fd5b505050506126a7614430565b80516126b4906002613c4d565b6040805180820190915260068152651b585c9ad95d60d21b602082015281516126e0916000908a613cb2565b6040805180820190915260088152673932b1b2b4bb32b960c11b6020820152815161270e9160019089613cb2565b602081015161271e906001613c4d565b612758600060405180604001604052806006815260200165185b5bdd5b9d60d21b815250878460200151613d0f909392919063ffffffff16565b61277a6040518060600160405280602481526020016159a76024913982613d62565b50505050505050565b6060816001600160401b0381111561279d5761279d614cc7565b6040519080825280602002602001820160405280156127d057816020015b60608152602001906001900390816127bb5790505b50905060005b8281101561288f57600080308686858181106127f4576127f4614cdd565b90506020028101906128069190614fff565b604051612814929190615045565b600060405180830381855af49150503d806000811461284f576040519150601f19603f3d011682016040523d82523d6000602084013e612854565b606091505b5091509150816128675761286781614141565b8084848151811061287a5761287a614cdd565b602090810291909101015250506001016127d6565b5092915050565b6128a86040516020016105f590614bc4565b60006128b38561417a565b6040516024810191909152841515604482015260640160405160208183030381529060405263abfdcced60e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129dc9190614c69565b6040518763ffffffff1660e01b81526004016129fd96959493929190614c82565b600060405180830381600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b50505050612a37614430565b8051612a44906001613c4d565b604080518082019091526008815267383937bb34b232b960c11b60208201528151612a729160009089613cb2565b6060810151612a82906001613c4d565b60408051808201909152600581526476616c756560d81b60208201526060820151612ab091600090886141b9565b6124996040518060400160405280601d81526020017f5369676e616c53657441746f6d69634f7261636c6550726f766964657200000081525082613d62565b612b016040516020016105f590614bc4565b6000612b0d868661420e565b84604051602401612b1f929190614c52565b60405160208183030381529060405263ca446dd960e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190614c69565b6040518763ffffffff1660e01b8152600401612c5396959493929190614c82565b600060405180830381600087803b158015612c6d57600080fd5b505af1158015612c81573d6000803e3d6000fd5b50505050612c8d614430565b8051612c9a906003613c4d565b6040805180820190915260068152656f7261636c6560d01b60208201528151612cc6916000908a613cb2565b6040805180820190915260058152643a37b5b2b760d91b60208201528151612cf19160019089613cb2565b604080518082019091526008815267383937bb34b232b960c11b60208201528151612d1f9160029088613cb2565b61277a6040518060400160405280601f81526020017f5369676e616c5365744f7261636c6550726f7669646572466f72546f6b656e0081525082613d62565b612d706040516020016105f590614bc4565b60008484604051602401612d85929190614bab565b60405160208183030381529060405263208dd1ff60e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e989190614c69565b6040518763ffffffff1660e01b8152600401612eb996959493929190614c82565b600060405180830381600087803b158015612ed357600080fd5b505af1158015612ee7573d6000803e3d6000fd5b50505050612ef3614430565b8051612f00906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b60208201528151612f2d9160009089613cb2565b6080810151612f3d906001613c4d565b604080518082019091526007815266726f6c654b657960c81b60208201526080820151612f6d9160009088613d0f565b6124996040518060400160405280601081526020016f5369676e616c5265766f6b65526f6c6560801b81525082613d62565b612fb16040516020016105f590614bc4565b6001600160a01b038316612fda578260405163c1b14c9160e01b81526004016107029190614688565b600083604051602401612fed9190614688565b6040516020818303038152906040526375896b0f60e11b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131009190614c69565b6040518763ffffffff1660e01b815260040161312196959493929190614c82565b600060405180830381600087803b15801561313b57600080fd5b505af115801561314f573d6000803e3d6000fd5b5050505061315b614430565b8051613168906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516131959160009088613cb2565b6109436040518060400160405280601581526020017429b4b3b730b620b23227b930b1b632a9b4b3b732b960591b81525082613d62565b6131de6040516020016105f590614bc4565b6001600160a01b0383166132075782604051630f773b1f60e31b81526004016107029190614688565b600060405160200161323c906020808252600f908201526e484f4c44494e475f4144445245535360881b604082015260600190565b6040516020818303038152906040528051906020012084604051602401613264929190614c52565b60405160208183030381529060405263ca446dd960e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015613353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133779190614c69565b6040518763ffffffff1660e01b815260040161339896959493929190614c82565b600060405180830381600087803b1580156133b257600080fd5b505af11580156133c6573d6000803e3d6000fd5b505050506133d2614430565b80516133df906001613c4d565b6040805180820190915260078152661858d8dbdd5b9d60ca1b6020820152815161340c9160009088613cb2565b610943604051806040016040528060178152602001765369676e616c536574486f6c64696e674164647265737360481b81525082613d62565b60405163b1c5f42760e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b1c5f427906134a2908c908c908a908a908e908e908c908c90600401615055565b602060405180830381865afa1580156134bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e39190614c69565b9998505050505050505050565b6135026040516020016105f590614bc4565b600061350d856142a3565b6040516024810191909152841515604482015260640160405160208183030381529060405263abfdcced60e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015613612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136369190614c69565b6040518763ffffffff1660e01b815260040161365796959493929190614c82565b600060405180830381600087803b15801561367157600080fd5b505af1158015613685573d6000803e3d6000fd5b50505050613691614430565b805161369e906001613c4d565b604080518082019091526008815267383937bb34b232b960c11b602082015281516136cc9160009089613cb2565b60608101516136dc906001613c4d565b60408051808201909152600581526476616c756560d81b6020820152606082015161370a91600090886141b9565b6124996040518060400160405280601e81526020017f5369676e616c5365744f7261636c6550726f7669646572456e61626c6564000081525082613d62565b61375b6040516020016105f590614bc4565b6001600160a01b038516613782576040516302fde0d760e11b815260040160405180910390fd5b6001600160a01b0384166137a957604051639ab5d12760e01b815260040160405180910390fd5b826000036137ca5760405163b3d3553960e01b815260040160405180910390fd5b60008585856040516024016137e193929190614f98565b60405160208183030381529060405263f128024b60e01b6001600160e01b0319166020820180516001600160e01b03838183161783525050505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a7f000000000000000000000000000000000000000000000000000000000000000060008487877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f49190614c69565b6040518763ffffffff1660e01b815260040161391596959493929190614c82565b600060405180830381600087803b15801561392f57600080fd5b505af1158015613943573d6000803e3d6000fd5b5050505061394f614430565b805161395c906002613c4d565b6040805180820190915260068152651b585c9ad95d60d21b60208201528151613988916000908a613cb2565b60408051808201909152600e81526d199d5b991a5b99d058d8dbdd5b9d60921b602082015281516139bc9160019089613cb2565b60208101516139cc906001613c4d565b613a0f60006040518060400160405280600f81526020016e1c99591d58dd1a5bdb905b5bdd5b9d608a1b815250878460200151613d0f909392919063ffffffff16565b61277a6040518060400160405280601c81526020017b14da59db985b1499591d58d953195b9d125b5c1858dd105b5bdd5b9d60221b81525082613d62565b613a5f6040516020016105f590614bc4565b60405163e38335e560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e38335e590613ab9908b908b908b908b908b908b908b908b90600401615055565b600060405180830381600087803b158015613ad357600080fd5b505af1158015613ae7573d6000803e3d6000fd5b505050505050505050505050565b604051638065657f60e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638065657f90613b4e90899085908a908a908a908a90600401614c15565b602060405180830381865afa158015613b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8f9190614c69565b9695505050505050565b60405163ac4ab3fb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ac4ab3fb90613be79033908690600401614bab565b602060405180830381865afa158015613c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2891906150c6565b613c4957338160405163a35b150b60e01b81526004016107029291906150e3565b5050565b806001600160401b03811115613c6557613c65614cc7565b604051908082528060200260200182016040528015613cab57816020015b604080518082019091526060815260006020820152815260200190600190039081613c835790505b5090915250565b8184600001518481518110613cc957613cc9614cdd565b6020026020010151600001819052508084600001518481518110613cef57613cef614cdd565b6020908102919091018101516001600160a01b0390921691015250505050565b8184600001518481518110613d2657613d26614cdd565b6020026020010151600001819052508084600001518481518110613d4c57613d4c614cdd565b6020026020010151602001818152505050505050565b613d6a614430565b600083604051602001613d7d919061510f565b604051602081830303815290604052805190602001209050613dad60018360800151613c4d90919063ffffffff16565b604080518082019091526009815268616374696f6e4b657960b81b60208201526080830151613ddf9160009084613d0f565b60c0820151613def9060016142e3565b60408051808201909152600b81526a1858dd1a5bdb931858995b60aa1b602082015260c0830151613e239160009087614345565b604051630937807960e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906324de01e490613e719084908690600401615895565b600060405180830381600087803b158015613e8b57600080fd5b505af1158015613e9f573d6000803e3d6000fd5b505060405163483624fb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063906c49f69150613ef190879087906004016158d8565b600060405180830381600087803b158015613f0b57600080fd5b505af1158015611148573d6000803e3d6000fd5b6000604051602001613f5890602080825260139082015272115111d157d110551057d4d51491505357d251606a1b604082015260600190565b6040516020818303038152906040528051906020012082604051602001613f80929190614c52565b604051602081830303815290604052805190602001209050919050565b6000604051602001613f58906020808252601f908201527f454447455f444154415f53545245414d5f544f4b454e5f444543494d414c5300604082015260600190565b6000604051602001613f58906020808252600e908201526d1110551057d4d51491505357d25160921b604082015260600190565b6000604051602001613f58906020808252601690820152752220aa20afa9aa2922a0a6afa6aaa62a24a82624a2a960511b604082015260600190565b6000604051602001613f5890614fbc565b6000604051602001613f58906020808252600a908201526914149250d157d191515160b21b604082015260600190565b6000604051602001613f5890602080825260159082015274282924a1a2afa322a2a22fa6aaa62a24a82624a2a960591b604082015260600190565b6000604051602001613f58906020808252601d908201527f50524943455f464545445f4845415254424541545f4455524154494f4e000000604082015260600190565b6000604051602001613f58906020808252600c908201526b535441424c455f505249434560a01b604082015260600190565b60008061414d83614397565b915091508015614171578160405162461bcd60e51b8152600401610702919061510f565b6105de83614427565b6000604051602001613f589060208082526019908201527824a9afa0aa27a6a4a1afa7a920a1a622afa82927ab24a222a960391b604082015260600190565b81846000015184815181106141d0576141d0614cdd565b60200260200101516000018190525080846000015184815181106141f6576141f6614cdd565b60209081029190910181015191151591015250505050565b600060405160200161424d9060208082526019908201527827a920a1a622afa82927ab24a222a92fa327a92faa27a5a2a760391b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808616918301919091528316606082015260800160405160208183030381529060405280519060200120905092915050565b6000604051602001613f58906020808252601a90820152791254d7d3d49050d31157d41493d59251115497d153905093115160321b604082015260600190565b806001600160401b038111156142fb576142fb614cc7565b604051908082528060200260200182016040528015613cab57816020015b604080518082019091526060808252602082015281526020019060019003908161431957505090915250565b818460000151848151811061435c5761435c614cdd565b602002602001015160000181905250808460000151848151811061438257614382614cdd565b60200260200101516020018190525050505050565b606060006044835110156143be575050604080516020810190915260008082529092909150565b60006143cb846020015190565b90506307b9e43360e51b6001600160e01b031982160161440a57600484019350838060200190518101906143ff91906158fd565b946001945092505050565b600060405180602001604052806000815250909250925050915091565b80518060208301fd5b604080516101208101909152606060e0820181815261010083019190915281908152602001614472604051806040016040528060608152602001606081525090565b8152602001614494604051806040016040528060608152602001606081525090565b81526020016144b6604051806040016040528060608152602001606081525090565b81526020016144d8604051806040016040528060608152602001606081525090565b81526020016144fa604051806040016040528060608152602001606081525090565b815260200161451c604051806040016040528060608152602001606081525090565b905290565b80356001600160a01b038116811461453857600080fd5b919050565b6000806040838503121561455057600080fd5b61455983614521565b946020939093013593505050565b60008083601f84011261457957600080fd5b5081356001600160401b0381111561459057600080fd5b6020830191508360208285010111156145a857600080fd5b9250929050565b6000806000806000608086880312156145c757600080fd5b6145d086614521565b945060208601356001600160401b038111156145eb57600080fd5b6145f788828901614567565b9699909850959660408101359660609091013595509350505050565b60008060006060848603121561462857600080fd5b61463184614521565b95602085013595506040909401359392505050565b600080600080600060a0868803121561465e57600080fd5b61466786614521565b97602087013597506040870135966060810135965060800135945092505050565b6001600160a01b0391909116815260200190565b60008060008060008060a087890312156146b557600080fd5b6146be87614521565b955060208701356001600160401b038111156146d957600080fd5b6146e589828a01614567565b909650945050604087013592506060870135915060808701356001600160401b0381111561471257600080fd5b87016060818a03121561472457600080fd5b809150509295509295509295565b60008060008060008060c0878903121561474b57600080fd5b61475487614521565b955061476260208801614521565b945061477060408801614521565b959894975094956060810135955060808101359460a0909101359350915050565b60008060008060008060c087890312156147aa57600080fd5b6147b387614521565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b6000602082840312156147ed57600080fd5b5035919050565b60008060006060848603121561480957600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561483b57600080fd5b61484488614521565b965061485260208901614521565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b6000806000806080858703121561489457600080fd5b61489d85614521565b966020860135965060408601359560600135945092505050565b600080600080600060a086880312156148cf57600080fd5b6148d886614521565b94506148e660208701614521565b94979496505050506040830135926060810135926080909101359150565b60008083601f84011261491657600080fd5b5081356001600160401b0381111561492d57600080fd5b6020830191508360208260051b85010111156145a857600080fd5b6000806020838503121561495b57600080fd5b82356001600160401b0381111561497157600080fd5b61497d85828601614904565b90969095509350505050565b60005b838110156149a457818101518382015260200161498c565b50506000910152565b600081518084526149c5816020860160208601614989565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f19858403018852614a138383516149ad565b60209889019890935091909101906001016149f7565b50909695505050505050565b602081526000614a4860208301846149d9565b9392505050565b8015158114614a5d57600080fd5b50565b60008060008060808587031215614a7657600080fd5b614a7f85614521565b93506020850135614a8f81614a4f565b93969395505050506040820135916060013590565b600080600080600060a08688031215614abc57600080fd5b614ac586614521565b9450614ad360208701614521565b9350614ae160408701614521565b94979396509394606081013594506080013592915050565b60008060008060008060008060a0898b031215614b1557600080fd5b88356001600160401b03811115614b2b57600080fd5b614b378b828c01614904565b90995097505060208901356001600160401b03811115614b5657600080fd5b614b628b828c01614904565b90975095505060408901356001600160401b03811115614b8157600080fd5b614b8d8b828c01614904565b999c989b509699959896976060870135966080013595509350505050565b6001600160a01b03929092168252602082015260400190565b6020808252600e908201526d2a24a6a2a627a1a5afa0a226a4a760911b604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000614c3d60a083018688614bec565b60608301949094525060800152949350505050565b9182526001600160a01b0316602082015260400190565b600060208284031215614c7b57600080fd5b5051919050565b60018060a01b038716815285602082015260c060408201526000614ca960c08301876149ad565b606083019590955250608081019290925260a0909101529392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b918252602082015260400190565b600081518084526020840193506020830160005b82811015614d3c5781516001600160a01b0316865260209586019590910190600101614d15565b5093949350505050565b600081518084526020840193506020830160005b82811015614d3c578151865260209586019590910190600101614d5a565b60c081526000614d8b60c0830189614d01565b8281036020840152614d9d8189614d46565b90508281036040840152614db181886149d9565b60608401969096525050608081019290925260a0909101529392505050565b6000808335601e19843603018112614de757600080fd5b83016020810192503590506001600160401b03811115614e0657600080fd5b8060051b36038213156145a857600080fd5b81835260208301925060008160005b84811015614d3c576001600160a01b03614e4083614521565b1686526020958601959190910190600101614e27565b60008383855260208501945060208460051b8201018360005b86811015614a2957838303601f19018852600080833536899003601e19018112614e97578283fd5b88016020810192503590506001600160401b03811115614eb657600080fd5b803603821315614ec557600080fd5b614ed0858284614bec565b60209a8b019a90955093909301925050600101614e6f565b60018060a01b038816815286602082015260c060408201526000614f1060c083018789614bec565b85606084015284608084015282810360a0840152614f2e8485614dd0565b60608352614f40606084018284614e18565b915050614f506020860186614dd0565b8383036020850152614f63838284614e18565b92505050614f746040860186614dd0565b8383036040850152614f87838284614e56565b9d9c50505050505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526023908201527f444154415f53545245414d5f5350524541445f524544554354494f4e5f4641436040820152622a27a960e91b606082015260800190565b6000808335601e1984360301811261501657600080fd5b8301803591506001600160401b0382111561503057600080fd5b6020019150368190038213156145a857600080fd5b8183823760009101908152919050565b60a08152600061506960a083018a8c614e18565b82810360208401528781526001600160fb1b0388111561508857600080fd5b8760051b808a602084013701828103602090810160408501526150ae9082018789614e56565b60608401959095525050608001529695505050505050565b6000602082840312156150d857600080fd5b8151614a4881614a4f565b6001600160a01b0383168152604060208201819052600090615107908301846149ad565b949350505050565b602081526000614a4860208301846149ad565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f19858403018852815180516040855261516660408601826149ad565b90506020820151915084810360208601526151818183614d01565b60209a8b019a90955093909301925050600101615140565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561521357605f1988860301835283518051604087526151eb60408801826149ad565b6020928301516001600160a01b031697830197909752509384019392909201916001016151c5565b505050506020830151848203602086015261522e8282615122565b95945050505050565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f19858403018852815180516040855261527b60408601826149ad565b90506020820151915084810360208601526152968183614d46565b60209a8b019a90955093909301925050600101615255565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561531f57605f19888603018352835180516040875261530060408801826149ad565b60209283015197830197909752509384019392909201916001016152da565b505050506020830151848203602086015261522e8282615237565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f19858403018852815180516040855261537e60408601826149ad565b6020928301518682038785015280518083529084019360009350909101905b808310156153c0578351825260208201915060208401935060018301925061539d565b5060209a8b019a90955093909301925050600101615358565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561544a57605f19888603018352835180516040875261542b60408801826149ad565b6020928301519783019790975250938401939290920191600101615405565b505050506020830151848203602086015261522e828261533a565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f1985840301885281518051604085526154a960408601826149ad565b6020928301518682038785015280518083529084019360009350909101905b808310156154ed578351151582526020820191506020840193506001830192506154c8565b5060209a8b019a90955093909301925050600101615483565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561557957605f19888603018352835180516040875261555860408801826149ad565b60209283015115159783019790975250938401939290920191600101615532565b505050506020830151848203602086015261522e8282615465565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561544a57605f1988860301835283518051604087526155e660408801826149ad565b60209283015197830197909752509384019392909201916001016155c0565b600082825180855260208501945060208160051b8301016020850160005b83811015614a2957601f19858403018852815180516040855261564960408601826149ad565b6020928301518682038785015280518083529084019391925081830191600582901b84010160005b828110156156a257601f1985830301845261568d8287516149ad565b60209687019694909401939150600101615671565b508097505050505050602082019150602088019750600181019050615623565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561574657605f19888603018352835180516040875261571460408801826149ad565b905060208201519150868103602088015261572f81836149ad565b9650505060209384019392909201916001016156ee565b505050506020830151848203602086015261522e8282615605565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561574657605f1988860301835283518051604087526157b360408801826149ad565b90506020820151915086810360208801526157ce81836149ad565b96505050602093840193929092019160010161578d565b6000815160e084526157fa60e0850182615199565b90506020830151848203602086015261581382826152ae565b9150506040830151848203604086015261582d82826153d9565b915050606083015184820360608601526158478282615506565b915050608083015184820360808601526158618282615594565b91505060a083015184820360a086015261587b82826156c2565b91505060c083015184820360c086015261522e8282615761565b60608152601360608201527229b4b3b730b62832b73234b733a0b1ba34b7b760691b608082015282602082015260a06040820152600061510760a08301846157e5565b6040815260006158eb60408301856149ad565b828103602084015261522e81856157e5565b60006020828403121561590f57600080fd5b81516001600160401b0381111561592557600080fd5b8201601f8101841361593657600080fd5b80516001600160401b0381111561594f5761594f614cc7565b604051601f8201601f19908116603f011681016001600160401b038111828210171561597d5761597d614cc7565b60405281815282820160200186101561599557600080fd5b61522e82602083016020860161498956fe5369676e616c576974686472617746726f6d506f736974696f6e496d70616374506f6f6ca2646970667358221220615b657aca30a2816eeb58336162b607633a4a615004e2203a5f52e71e996e6564736f6c634300081d0033000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000a8af9b86fc47deade1bc66b12673706615e2b0110000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000ef7463039e1116f875ad72fa567e91511d6a8f5e