0 txs
16.6k calls
constructor
constructor(address _weth)
functions
actionsLength
purefunction actionsLength() pure returns (uint256)
callbackGasLimit
viewfunction callbackGasLimit() view returns (uint256)
createActionsForWrapping
viewfunction createActionsForWrapping(tuple _params) view returns (tuple[])
DOLOMITE_MARGIN_OWNER
viewfunction DOLOMITE_MARGIN_OWNER() view returns (address)
DOLOMITE_MARGIN
viewfunction DOLOMITE_MARGIN() view returns (address)
getDepositInfo
viewfunction getDepositInfo(bytes32 _key) view returns (tuple)
getExchangeCost
viewfunction getExchangeCost(address _inputToken, address _outputToken, uint256 _desiredInputAmount, bytes _orderData) view returns (uint256)
GMX_REGISTRY_V2
viewfunction GMX_REGISTRY_V2() view returns (address)
HANDLER_REGISTRY
viewfunction HANDLER_REGISTRY() view returns (address)
isHandler
viewfunction isHandler(address _handler) view returns (bool)
isValidInputToken
viewfunction isValidInputToken(address _inputToken) view returns (bool)
skipLongToken
viewfunction skipLongToken() view returns (bool)
token
viewfunction token() view returns (address)
VAULT_FACTORY
viewfunction VAULT_FACTORY() view returns (address)
WETH
viewfunction WETH() view returns (address)
afterDepositCancellation
nonpayablefunction afterDepositCancellation(bytes32 _key, tuple, tuple)
afterDepositExecution
nonpayablefunction afterDepositExecution(bytes32 _key, tuple _deposit, tuple _eventData)
emitDepositCancelled
nonpayablefunction emitDepositCancelled(bytes32 _key)
exchange
nonpayablefunction exchange(address _tradeOriginator, address _receiver, address _outputToken, address _inputToken, uint256 _inputAmount, bytes _orderData) returns (uint256)
executeDepositCancellationForRetry
nonpayablefunction executeDepositCancellationForRetry(bytes32 _key)
initialize
nonpayablefunction initialize(address _dGM, address _dolomiteMargin, address _gmxV2Registry, bool _skipLongToken)
initiateCancelDeposit
nonpayablefunction initiateCancelDeposit(bytes32 _key)
ownerWithdrawETH
nonpayablefunction ownerWithdrawETH(address _receiver)
setDepositInfoAndReducePendingAmountFromUnwrapper
nonpayablefunction setDepositInfoAndReducePendingAmountFromUnwrapper(bytes32 _key, uint256 _outputAmountDeltaWei, tuple _depositInfo)
events
Initialized
event Initialized(uint8 version)
OwnerWithdrawETH
event OwnerWithdrawETH(address _receiver, uint256 _bal)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162005f4438038062005f44833981016040819052620000349162000080565b6001600160a01b0316608052620000ad565b60006001600160a01b0382165b92915050565b620000648162000046565b81146200007057600080fd5b50565b8051620000538162000059565b600060208284031215620000975762000097600080fd5b6000620000a5848462000073565b949350505050565b608051615e66620000de60003960008181610357015281816108820152818161090001526124dd0152615e666000f3fe60806040526004361061014f5760003560e01c80637d98ebac116100b6578063c4b2b9801161006f578063c4b2b980146103ad578063cbffd921146103cd578063fc0c546a146103ef578063fd77d17514610404578063fecf973414610424578063fee5e2671461044457600080fd5b80637d98ebac146102e557806387b3745a146103055780639f4a129714610325578063ad5c464814610345578063b189111a14610379578063b5f602391461038d57600080fd5b80633d0f49b5116101085780633d0f49b5146102075780633ec4713d1461022957806345bd28751461024b57806346ea87af146102785780634e2e55801461029857806372622e22146102c557600080fd5b80630ba3c6311461015b578063103f29071461018657806315c14a4a1461019b57806324f74697146101b05780632fc59557146101d25780633a8fdd7d146101e757600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610464565b60405161017d9190612fad565b60405180910390f35b34801561019257600080fd5b50610170610482565b3480156101a757600080fd5b506101706104a0565b3480156101bc57600080fd5b506101c56104d9565b60405161017d9190612fc1565b3480156101de57600080fd5b50610170610553565b3480156101f357600080fd5b506101c5610202366004613101565b61055d565b34801561021357600080fd5b5061022761022236600461317f565b610636565b005b34801561023557600080fd5b5061023e610668565b60405161017d91906131a8565b34801561025757600080fd5b5061026b61026636600461317f565b6106a0565b60405161017d9190613242565b34801561028457600080fd5b5061023e610293366004613250565b610756565b3480156102a457600080fd5b506102b86102b336600461328d565b6107e1565b60405161017d9190613500565b3480156102d157600080fd5b506102276102e0366004613250565b610871565b3480156102f157600080fd5b506101c5610300366004613562565b610969565b34801561031157600080fd5b5061022761032036600461317f565b610bbc565b34801561033157600080fd5b5061023e610340366004613250565b610d18565b34801561035157600080fd5b506101707f000000000000000000000000000000000000000000000000000000000000000081565b34801561038557600080fd5b5060016101c5565b34801561039957600080fd5b506102276103a8366004613621565b610d8f565b3480156103b957600080fd5b506102276103c8366004614d7d565b610f53565b3480156103d957600080fd5b506103e2610ff3565b60405161017d9190614df7565b3480156103fb57600080fd5b506103e261106d565b34801561041057600080fd5b5061022761041f366004614d7d565b611077565b34801561043057600080fd5b5061022761043f366004614e05565b611156565b34801561045057600080fd5b5061022761045f36600461317f565b611278565b60008061046f6112dd565b600201546001600160a01b031692915050565b60008061048d6112dd565b600101546001600160a01b031692915050565b60006104d46104d060017f01095cd170b13c49f67c675e3bc004094df00c531fa118e86b230655aba7aa17614e73565b5490565b905090565b60006104e3610464565b6001600160a01b03166324f746976040518163ffffffff1660e01b815260040160206040518083038186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190614e95565b60006104d4610464565b600061059761056b86610d18565b600080516020615e118339815191527224b73b30b634b21034b7383aba103a37b5b2b760691b8861130b565b6105e36105a2610482565b6001600160a01b0316856001600160a01b031614600080516020615e118339815191527324b73b30b634b21037baba383aba103a37b5b2b760611b8761130b565b61061f60008411600080516020615e118339815191527f496e76616c6964206465736972656420696e70757420616d6f756e740000000061137d565b61062b858585856113ac565b90505b949350505050565b33610640816113e7565b600061064b836106a0565b905061065a8160c00151611436565b61066381611481565b505050565b60006106986104d060017fd998147c73461a8061b7f80d034286767b50a61a5ca7116b07622929f273c78b614e73565b600114905090565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052906106e16112dd565b60009384526020908152604093849020845160e0810186528154815260018201546001600160a01b03908116938201939093526002820154958101959095526003810154909116606085015260048101546080850152600581015460a08501526006015460ff16151560c08401525090919050565b6000610760610464565b6001600160a01b03166346ea87af836040518263ffffffff1660e01b815260040161078b9190614df7565b60206040518083038186803b1580156107a357600080fd5b505afa1580156107b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107db9190614ec1565b92915050565b60405163a58aa67560e01b81526060907351fbd497b53b4ffe144399a3029479af2707f2ec9063a58aa6759061081d90309086906004016150b1565b60006040518083038186803b15801561083557600080fd5b505af4158015610849573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107db9190810190615348565b3361087b8161164c565b60004790507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108db57600080fd5b505af11580156108ef573d6000803e3d6000fd5b5061092b9350506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150859050836116a8565b7fa545303f80a3184f3f1f7769fe503039703c5ae631a1263c4c29ef14606a4724838260405161095c929190615382565b60405180910390a1505050565b600033610975816116fe565b610a3e6000610982610482565b6001600160a01b031663bc0837328c6040518263ffffffff1660e01b81526004016109ad9190614df7565b60206040518083038186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd919061539d565b6001600160a01b03161415600080516020615e118339815191527f496e76616c6964207472616465206f726967696e61746f7200000000000000008c61130b565b610a76610a4a87610d18565b600080516020615e118339815191527224b73b30b634b21034b7383aba103a37b5b2b760691b8961130b565b610ac2610a81610482565b6001600160a01b0316886001600160a01b031614600080516020615e118339815191527324b73b30b634b21037baba383aba103a37b5b2b760611b8a61130b565b610af560008611600080516020615e1183398151915273125b9d985b1a59081a5b9c1d5d08185b5bdd5b9d60621b61137d565b600080610b04858701876153be565b915091506000610b908c8c610b17610482565b6001600160a01b03166329db1be66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b87919061539d565b868d8d8861175a565b905082811015610ba257610ba2615415565b610bad8c8c836119e8565b9b9a5050505050505050505050565b33610bc6816113e7565b610bce610464565b6001600160a01b031663bd12584f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e919061544a565b6001600160a01b0316639ff78c306040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae919061544a565b6001600160a01b031663eb02def283610cc5610482565b6040518363ffffffff1660e01b8152600401610ce292919061546b565b600060405180830381600087803b158015610cfc57600080fd5b505af1158015610d10573d6000803e3d6000fd5b505050505050565b600073d7b6b9e73f3f0ee8062942772afa877a2cb3a374637e9e47a4610d3c610482565b84610d45610668565b6040518463ffffffff1660e01b8152600401610d6393929190615486565b60206040518083038186803b158015610d7b57600080fd5b505af41580156107b7573d6000803e3d6000fd5b610e66610d9a610464565b6001600160a01b031663f8c6e51d610db0610482565b6040518263ffffffff1660e01b8152600401610dcc9190612fad565b60206040518083038186803b158015610de457600080fd5b505afa158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c919061544a565b6001600160a01b0316336001600160a01b031614600080516020615e118339815191527f4f6e6c7920756e777261707065722063616e2063616c6c0000000000000000003361130b565b610e96610e796040830160208401613250565b6040830135846000610e916080870160608801613250565b611a5c565b60008160800135610ea6856106a0565b60800151610eb49190614e73565b9050610edb3382610ecb6080860160608701613250565b6001600160a01b03169190611ae7565b7351fbd497b53b4ffe144399a3029479af2707f2ec6315893b7a610efd6112dd565b86856040518463ffffffff1660e01b8152600401610f1d93929190615577565b60006040518083038186803b158015610f3557600080fd5b505af4158015610f49573d6000803e3d6000fd5b5050505050505050565b33610f5d816113e7565b6000610f68856106a0565b600160c082015290507351fbd497b53b4ffe144399a3029479af2707f2ec6315893b7a610f936112dd565b87846040518463ffffffff1660e01b8152600401610fb393929190615599565b60006040518083038186803b158015610fcb57600080fd5b505af4158015610fdf573d6000803e3d6000fd5b50505050610fec81611481565b5050505050565b6000610ffd6104a0565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561103557600080fd5b505afa158015611049573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d4919061539d565b60006104d4610482565b33611081816113e7565b600082602001516000015160008151811061109e5761109e6155bb565b6020026020010151905061113f6040516020016110ba906155d1565b60408051601f19818403018152908290528051602091820120845190926110e19201615618565b60405160208183030381529060405280519060200120147f476d78563249736f6c6174696f6e4d6f646557726170706572563200000000007f556e65787065637465642072656365697665644d61726b6574546f6b656e730061137d565b610fec858260200151866020015160400151611baa565b600054610100900460ff16158080156111765750600054600160ff909116105b806111905750303b158015611190575060005460ff166001145b6111b55760405162461bcd60e51b81526004016111ac90615672565b60405180910390fd5b6000805460ff1916600117905580156111d8576000805461ff0019166101001790555b6111e3858486611f59565b61122761121160017fd998147c73461a8061b7f80d034286767b50a61a5ca7116b07622929f273c78b614e73565b8361121d576000611220565b60015b60ff169055565b8015610fec576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061126990600190615696565b60405180910390a15050505050565b60405163246b806760e01b815273d7b6b9e73f3f0ee8062942772afa877a2cb3a3749063246b8067906112b190309085906004016156a4565b60006040518083038186803b1580156112c957600080fd5b505af4158015610fec573d6000803e3d6000fd5b6000806107db60017f10b76a13a785f1a1b761b9e64b9c4dce43fa0a0d15fc6880b0c68d99b45d477a614e73565b8361137757611319836120ad565b6101d160f51b611328846120ad565b61080f60f21b61133785612148565b604051611351959493929190601f60f91b906020016156d2565b60408051601f198184030181529082905262461bcd60e51b82526111ac91600401615730565b50505050565b826106635761138b826120ad565b6101d160f51b61139a836120ad565b60405160200161135193929190615741565b60006113d77f476d78563249736f6c6174696f6e4d6f646557726170706572563200000000006120ad565b6040516020016113519190615769565b6114336113f382610756565b7f4173796e6349736f6c6174696f6e4d6f646554726164657242617365000000007413db9b1e481a185b991b195c8818d85b8818d85b1b605a1b8461130b565b50565b611433817f4173796e6349736f6c6174696f6e4d6f646554726164657242617365000000007f436f6e76657273696f6e206973206e6f7420726574727961626c65000000000061137d565b61148a8161228e565b604051630ca5b01960e11b81527351fbd497b53b4ffe144399a3029479af2707f2ec9063194b6032906114c390309085906004016157b0565b60006040518083038186803b1580156114db57600080fd5b505af49250505080156114ec575060015b6115de576114f86157cc565b806308c379a01415611563575061150d6157e7565b806115185750611565565b611521826122cd565b61152961231c565b6001600160a01b031663a5697d338360000151611544610482565b846040518463ffffffff1660e01b8152600401610ce29392919061586c565b505b3d80801561158f576040519150601f19603f3d011682016040523d82523d6000602084013e611594565b606091505b5061159e826122cd565b6115a661231c565b6001600160a01b031663a5697d3383600001516115c1610482565b6040518363ffffffff1660e01b8152600401610ce2929190615899565b6115e661231c565b6001600160a01b031663eb02def28260000151611601610482565b6040518363ffffffff1660e01b815260040161161e92919061546b565b600060405180830381600087803b15801561163857600080fd5b505af1158015610fec573d6000803e3d6000fd5b611433611657610ff3565b6001600160a01b0316826001600160a01b0316147127b7363ca237b637b6b4ba32a6b0b933b4b760711b7f43616c6c6572206973206e6f74206f776e6572206f6620446f6c6f6d697465008461130b565b6106638363a9059cbb60e01b84846040516024016116c7929190615382565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612406565b6114336117096104a0565b6001600160a01b0316826001600160a01b0316147127b7363ca237b637b6b4ba32a6b0b933b4b760711b7f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461130b565b60008060008380602001905181019061177391906158c9565b915091506000611781610482565b905061182b816001600160a01b0316638c160fb38d6040518263ffffffff1660e01b81526004016117b29190614df7565b60206040518083038186803b1580156117ca57600080fd5b505afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118029190614ec1565b15600080516020615e118339815191526e2b30bab63a1034b990333937bd32b760891b8e61130b565b600061183b8c8b8b8b8b88612498565b905060006040518060e001604052808381526020018e6001600160a01b031681526020018681526020018a6001600160a01b031681526020018981526020018b81526020016000151581525090507351fbd497b53b4ffe144399a3029479af2707f2ec6315893b7a6118ab6112dd565b84846040518463ffffffff1660e01b81526004016118cb93929190615599565b60006040518083038186803b1580156118e357600080fd5b505af41580156118f7573d6000803e3d6000fd5b5050505061190d8d868c60018560600151611a5c565b61191561231c565b6001600160a01b031663717d80888385846040518463ffffffff1660e01b815260040161194493929190615916565b600060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b50505050826001600160a01b031663de87cac68e60016040518363ffffffff1660e01b81526004016119a5929190615932565b600060405180830381600087803b1580156119bf57600080fd5b505af11580156119d3573d6000803e3d6000fd5b509b9f9e505050505050505050505050505050565b6119f0610482565b6001600160a01b0316635b74905484836040518363ffffffff1660e01b8152600401611a1d929190615382565b600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b505050506106638282610ecb610482565b611a64610482565b6001600160a01b031663bc010899868660006040518060400160405280881515815260200189815250866040518663ffffffff1660e01b8152600401611aae959493929190615971565b600060405180830381600087803b158015611ac857600080fd5b505af1158015611adc573d6000803e3d6000fd5b505050505050505050565b801580611b6f5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90611b1d90309086906004016159b3565b60206040518083038186803b158015611b3557600080fd5b505afa158015611b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6d9190614e95565b155b611b8b5760405162461bcd60e51b81526004016111ac90615a14565b6106638363095ea7b360e01b84846040516024016116c7929190615382565b6000611bb5846106a0565b9050611bc08161228e565b6000611bca610482565b90506000816001600160a01b03166329db1be66040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0757600080fd5b505afa158015611c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3f919061539d565b6020840151909150611c5c906001600160a01b03831690866116a8565b83851115611ee1576000611c708587614e73565b6020850151909150611c8d906001600160a01b0384169083611ae7565b6020840151604051636f43e56360e11b81526001600160a01b0385169163de87cac691611cc09190600090600401615932565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b5050505060208401516040808601519051625ff0bb60e51b81526001600160a01b03861692630bfe176092611d27928690600401615a24565b600060405180830381600087803b158015611d4157600080fd5b505af1925050508015611d52575060015b611e6a57611d5e6157cc565b806308c379a01415611df85750611d736157e7565b80611d7e5750611dfa565b611d89848684612584565b611d9161231c565b6001600160a01b031663bacf3bac8986846040518463ffffffff1660e01b8152600401611dc09392919061586c565b600060405180830381600087803b158015611dda57600080fd5b505af1158015611dee573d6000803e3d6000fd5b5050505050611edb565b505b3d808015611e24576040519150601f19603f3d011682016040523d82523d6000602084013e611e29565b606091505b50611e35848684612584565b611e3d61231c565b6001600160a01b031663bacf3bac89866040518363ffffffff1660e01b8152600401611dc0929190615899565b611e7384612a50565b611e7b61231c565b6001600160a01b03166304732a8388856040518363ffffffff1660e01b8152600401611ea892919061546b565b600060405180830381600087803b158015611ec257600080fd5b505af1158015611ed6573d6000803e3d6000fd5b505050505b50610d10565b611eea83612a50565b611ef261231c565b6001600160a01b03166304732a8387846040518363ffffffff1660e01b8152600401611f1f92919061546b565b600060405180830381600087803b158015611f3957600080fd5b505af1158015611f4d573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015611f795750600054600160ff909116105b80611f935750303b158015611f93575060005460ff166001145b611faf5760405162461bcd60e51b81526004016111ac90615672565b6000805460ff191660011790558015611fd2576000805461ff0019166101001790555b611fdb84612a97565b6000611fe56112dd565b604051636010b9f360e01b81529091507351fbd497b53b4ffe144399a3029479af2707f2ec90636010b9f39061202390849089908990600401615a4c565b60006040518083038186803b15801561203b57600080fd5b505af415801561204f573d6000803e3d6000fd5b5050505061205c83612ac6565b508015611377576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061209f90600190615696565b60405180910390a150505050565b60606000826040516020016120c29190615a6d565b60408051601f19818403018152919052905060205b801561212d57806120e781615a82565b9150508181815181106120fc576120fc6155bb565b01602001516001600160f81b0319161561212857600061211d826001615a99565b835250909392505050565b6120d7565b5060408051600080825260208201909252905b509392505050565b60408051602a80825260608281019093526001600160a01b03841691600091602082018180368337019050509050603060f81b8160008151811061218e5761218e6155bb565b60200101906001600160f81b031916908160001a905350607860f81b816001815181106121bd576121bd6155bb565b60200101906001600160f81b031916908160001a90535060005b60148110156121405760006121ed826002615ab1565b90506121fb600f8516612af9565b83612207836029614e73565b81518110612217576122176155bb565b60200101906001600160f81b031916908160001a905350600484901c9350612241600f8516612af9565b8361224d836028614e73565b8151811061225d5761225d6155bb565b60200101906001600160f81b031916908160001a9053505060049290921c918061228681615ad0565b9150506121d7565b6020810151611433906001600160a01b03161515600080516020615e1183398151915272496e76616c6964206465706f736974206b657960681b61137d565b600160c08201527351fbd497b53b4ffe144399a3029479af2707f2ec6315893b7a6122f66112dd565b83516040516001600160e01b031960e085901b1681526112b19291908690600401615599565b6000612326610464565b6001600160a01b031663bd12584f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561235e57600080fd5b505afa158015612372573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612396919061544a565b6001600160a01b0316639ff78c306040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ce57600080fd5b505afa1580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d4919061544a565b600061245b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b239092919063ffffffff16565b905080516000148061247c57508080602001905181019061247c9190614ec1565b6106635760405162461bcd60e51b81526004016111ac90615b32565b600080828060200190518101906124af9190614e95565b905073d7b6b9e73f3f0ee8062942772afa877a2cb3a37463029f41e86124d3610482565b6124db610553565b7f00000000000000000000000000000000000000000000000000000000000000008c868d8d8d8d6040518a63ffffffff1660e01b815260040161252699989796959493929190615b42565b60206040518083038186803b15801561253e57600080fd5b505af4158015612552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125769190614e95565b9150505b9695505050505050565b6000836001600160a01b0316636ed71ede6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125bf57600080fd5b505afa1580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f79190614e95565b905060006126036104a0565b6001600160a01b031663d93c9591836040518263ffffffff1660e01b815260040161262e9190612fc1565b604080518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267d9190615c06565b602001519050600060405180604001604052806001151581526020016126a16104a0565b6001600160a01b031663cb04a34c866040518263ffffffff1660e01b81526004016126cc9190612fc1565b604080518083038186803b1580156126e357600080fd5b505afa1580156126f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271b9190615c7f565b602001516001600160801b03169052905060008061274c858461273c6104a0565b6001600160a01b03169190612b3c565b6020015190506000886001600160a01b03166329db1be66040518163ffffffff1660e01b815260040160206040518083038186803b15801561278d57600080fd5b505afa1580156127a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c5919061539d565b905084158015906127d65750848210155b15612893576020880151604051635e041b9960e11b815261286f916001600160a01b038c169163bc0837329161280e91600401614df7565b60206040518083038186803b15801561282657600080fd5b505afa15801561283a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285e919061539d565b6001600160a01b03831690896116a8565b602088015161288a906001600160a01b038316906000611ae7565b611adc88612a50565b84158015906128aa5750846128a88884615a99565b115b1561295e576128b98286614e73565b9250612959896001600160a01b031663bc0837328a602001516040518263ffffffff1660e01b81526004016128ee9190614df7565b60206040518083038186803b15801561290657600080fd5b505afa15801561291a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293e919061539d565b612948858a614e73565b6001600160a01b03841691906116a8565b612962565b8692505b6020880151604051636f43e56360e11b81526001600160a01b038b169163de87cac6916129959190600090600401615932565b600060405180830381600087803b1580156129af57600080fd5b505af11580156129c3573d6000803e3d6000fd5b5050506020890151604051625ff0bb60e51b81526001600160a01b038c169250630bfe1760916129fa916000908890600401615a24565b600060405180830381600087803b158015612a1457600080fd5b505af1158015612a28573d6000803e3d6000fd5b50505050612a3588612a50565b6020880151611adc906001600160a01b038316906000611ae7565b612a6e816020015182604001518360a0015160008560600151611a5c565b600060a08201527351fbd497b53b4ffe144399a3029479af2707f2ec6315893b7a6122f66112dd565b6000612aa16112dd565b60010180546001600160a01b0319166001600160a01b03939093169290921790915550565b611433612af460017f01095cd170b13c49f67c675e3bc004094df00c531fa118e86b230655aba7aa17614e73565b829055565b6000600a821015612b1857612b0f603083615a99565b60f81b92915050565b612b0f605783615a99565b6060612b328484600085612c96565b90505b9392505050565b6040805180820190915260008082526020820152604051632b75425960e11b81526000906001600160a01b038616906356ea84b290612b7f908790600401612fc1565b60606040518083038186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bcf9190615d23565b835190915015612c2f576040518060400160405280600115158152602001612c2483602001516001600160601b0316670de0b6b3a764000087602001516001600160801b0316612d329092919063ffffffff16565b815250915050612b35565b6040518060400160405280600015158152602001612c82612c7d84600001516001600160601b0316670de0b6b3a764000088602001516001600160801b0316612d329092919063ffffffff16565b612d76565b6001600160801b0316815250915050612b35565b606082471015612cb85760405162461bcd60e51b81526004016111ac90615d87565b600080866001600160a01b03168587604051612cd49190615618565b60006040518083038185875af1925050503d8060008114612d11576040519150601f19603f3d011682016040523d82523d6000602084013e612d16565b606091505b5091509150612d2787838387612dbe565b979650505050505050565b6000831580612d3f575082155b15612d4c57506000612b35565b81612d58600282615dad565b612d628587615ab1565b612d6c9190615a99565b612b329190615dad565b6000816107db6001600160801b038216821471088ded8dedad2e8ca9ac2e4ced2dc9ac2e8d60731b750aadce6c2ccca40c6c2e6e840e8de40ead2dce86264760531b84612e04565b60608315612dfa578251612df3576001600160a01b0385163b612df35760405162461bcd60e51b81526004016111ac90615dc1565b508161062e565b61062e8383612e30565b8361137757612e12836120ad565b6101d160f51b612e21846120ad565b61080f60f21b61133785612e5a565b815115612e405781518083602001fd5b8060405162461bcd60e51b81526004016111ac9190615730565b606081612e7e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612ea85780612e9281615ad0565b9150612ea19050600a83615dad565b9150612e82565b6000816001600160401b03811115612ec257612ec2613010565b6040519080825280601f01601f191660200182016040528015612eec576020820181803683370190505b508593509050815b8015612f5c5780612f0481615a82565b9150612f139050600a85615dfc565b612f1e906030615a99565b60f81b828281518110612f3357612f336155bb565b60200101906001600160f81b031916908160001a905350612f55600a85615dad565b9350612ef4565b50949350505050565b60006107db6001600160a01b038316612f7c565b90565b6001600160a01b031690565b60006107db82612f65565b60006107db82612f88565b612fa781612f93565b82525050565b602081016107db8284612f9e565b80612fa7565b602081016107db8284612fbb565b60006001600160a01b0382166107db565b612fe981612fcf565b811461143357600080fd5b80356107db81612fe0565b80612fe9565b80356107db81612fff565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171561304b5761304b613010565b6040525050565b600061305d60405190565b90506130698282613026565b919050565b60006001600160401b0382111561308757613087613010565b601f19601f83011660200192915050565b82818337506000910152565b60006130b76130b28461306e565b613052565b9050828152602081018484840111156130d2576130d2600080fd5b612140848285613098565b600082601f8301126130f1576130f1600080fd5b813561062e8482602086016130a4565b6000806000806080858703121561311a5761311a600080fd5b60006131268787612ff4565b945050602061313787828801612ff4565b935050604061314887828801613005565b92505060608501356001600160401b0381111561316757613167600080fd5b613173878288016130dd565b91505092959194509250565b60006020828403121561319457613194600080fd5b600061062e8484613005565b801515612fa7565b602081016107db82846131a0565b612fa781612fcf565b805160e08301906131d08482612fbb565b5060208201516131e360208501826131b6565b5060408201516131f66040850182612fbb565b50606082015161320960608501826131b6565b50608082015161321c6080850182612fbb565b5060a082015161322f60a0850182612fbb565b5060c082015161137760c08501826131a0565b60e081016107db82846131bf565b60006020828403121561326557613265600080fd5b600061062e8484612ff4565b6000610160828403121561328757613287600080fd5b50919050565b6000602082840312156132a2576132a2600080fd5b81356001600160401b038111156132bb576132bb600080fd5b61062e84828501613271565b634e487b7160e01b600052602160045260246000fd5b60098110611433576114336132c7565b80613069816132dd565b60006107db826132ed565b612fa7816132f7565b60028110611433576114336132c7565b806130698161330b565b60006107db8261331b565b612fa781613325565b8051608083019061334a84826131a0565b50602082015161335d6020850182613330565b5060408201516133706040850182613330565b5060608201516113776060850182612fbb565b60005b8381101561339e578181015183820152602001613386565b838111156113775750506000910152565b60006133b9825190565b8084526020840193506133d0818560208601613383565b601f19601f8201165b9093019392505050565b80516000906101608401906133f88582613302565b50602083015161340b6020860182612fbb565b50604083015161341e6040860182613339565b50606083015161343160c0860182612fbb565b50608083015161344460e0860182612fbb565b5060a08301516134586101008601826131b6565b5060c083015161346c610120860182612fbb565b5060e083015184820361014086015261348582826133af565b95945050505050565b6000612b3583836133e3565b60006134a4825190565b808452602084019350836020820285016134be8560200190565b8060005b858110156134f357848403895281516134db858261348e565b94506020830160209a909a01999250506001016134c2565b5091979650505050505050565b60208082528101612b35818461349a565b60008083601f84011261352657613526600080fd5b5081356001600160401b0381111561354057613540600080fd5b60208301915083600182028301111561355b5761355b600080fd5b9250929050565b600080600080600080600060c0888a03121561358057613580600080fd5b600061358c8a8a612ff4565b975050602061359d8a828b01612ff4565b96505060406135ae8a828b01612ff4565b95505060606135bf8a828b01612ff4565b94505060806135d08a828b01613005565b93505060a08801356001600160401b038111156135ef576135ef600080fd5b6135fb8a828b01613511565b925092505092959891949750929550565b600060e0828403121561328757613287600080fd5b6000806000610120848603121561363a5761363a600080fd5b60006136468686613005565b935050602061365786828701613005565b92505060406136688682870161360c565b9150509250925092565b60006001600160401b0382111561368b5761368b613010565b5060209081020190565b60006136a36130b284613672565b838152905060208082019084028301858111156136c2576136c2600080fd5b835b818110156136e657806136d78882612ff4565b845250602092830192016136c4565b5050509392505050565b600082601f83011261370457613704600080fd5b813561062e848260208601613695565b6000610120828403121561372a5761372a600080fd5b613735610120613052565b905060006137438484612ff4565b825250602061375484848301612ff4565b602083015250604061376884828501612ff4565b604083015250606061377c84828501612ff4565b606083015250608061379084828501612ff4565b60808301525060a06137a484828501612ff4565b60a08301525060c06137b884828501612ff4565b60c08301525060e08201356001600160401b038111156137da576137da600080fd5b6137e6848285016136f0565b60e0830152506101008201356001600160401b0381111561380957613809600080fd5b613815848285016136f0565b6101008301525092915050565b600060e0828403121561383757613837600080fd5b61384160e0613052565b9050600061384f8484613005565b825250602061386084848301613005565b602083015250604061387484828501613005565b604083015250606061388884828501613005565b606083015250608061389c84828501613005565b60808301525060a06138b084828501613005565b60a08301525060c06138c484828501613005565b60c08301525092915050565b801515612fe9565b80356107db816138d0565b6000602082840312156138f8576138f8600080fd5b6139026020613052565b9050600061391084846138d8565b82525092915050565b6000610120828403121561392f5761392f600080fd5b6139396060613052565b905081356001600160401b0381111561395457613954600080fd5b61396084828501613714565b825250602061397184848301613822565b602083015250610100613986848285016138e3565b60408301525092915050565b6000604082840312156139a7576139a7600080fd5b6139b16040613052565b905081356001600160401b038111156139cc576139cc600080fd5b6139d8848285016130dd565b82525060206139e984848301612ff4565b60208301525092915050565b6000613a036130b284613672565b83815290506020808201908402830185811115613a2257613a22600080fd5b835b818110156136e65780356001600160401b03811115613a4557613a45600080fd5b808601613a528982613992565b8552505060209283019201613a24565b600082601f830112613a7657613a76600080fd5b813561062e8482602086016139f5565b600060408284031215613a9b57613a9b600080fd5b613aa56040613052565b905081356001600160401b03811115613ac057613ac0600080fd5b613acc848285016130dd565b82525060208201356001600160401b03811115613aeb57613aeb600080fd5b6139e9848285016136f0565b6000613b056130b284613672565b83815290506020808201908402830185811115613b2457613b24600080fd5b835b818110156136e65780356001600160401b03811115613b4757613b47600080fd5b808601613b548982613a86565b8552505060209283019201613b26565b600082601f830112613b7857613b78600080fd5b813561062e848260208601613af7565b600060408284031215613b9d57613b9d600080fd5b613ba76040613052565b905081356001600160401b03811115613bc257613bc2600080fd5b613bce84828501613a62565b82525060208201356001600160401b03811115613bed57613bed600080fd5b6139e984828501613b64565b600060408284031215613c0e57613c0e600080fd5b613c186040613052565b905081356001600160401b03811115613c3357613c33600080fd5b613c3f848285016130dd565b82525060206139e984848301613005565b6000613c5e6130b284613672565b83815290506020808201908402830185811115613c7d57613c7d600080fd5b835b818110156136e65780356001600160401b03811115613ca057613ca0600080fd5b808601613cad8982613bf9565b8552505060209283019201613c7f565b600082601f830112613cd157613cd1600080fd5b813561062e848260208601613c50565b6000613cef6130b284613672565b83815290506020808201908402830185811115613d0e57613d0e600080fd5b835b818110156136e65780613d238882613005565b84525060209283019201613d10565b600082601f830112613d4657613d46600080fd5b813561062e848260208601613ce1565b600060408284031215613d6b57613d6b600080fd5b613d756040613052565b905081356001600160401b03811115613d9057613d90600080fd5b613d9c848285016130dd565b82525060208201356001600160401b03811115613dbb57613dbb600080fd5b6139e984828501613d32565b6000613dd56130b284613672565b83815290506020808201908402830185811115613df457613df4600080fd5b835b818110156136e65780356001600160401b03811115613e1757613e17600080fd5b808601613e248982613d56565b8552505060209283019201613df6565b600082601f830112613e4857613e48600080fd5b813561062e848260208601613dc7565b600060408284031215613e6d57613e6d600080fd5b613e776040613052565b905081356001600160401b03811115613e9257613e92600080fd5b613e9e84828501613cbd565b82525060208201356001600160401b03811115613ebd57613ebd600080fd5b6139e984828501613e34565b6000613ed76130b284613672565b83815290506020808201908402830185811115613ef657613ef6600080fd5b835b818110156136e65780356001600160401b03811115613f1957613f19600080fd5b808601613f268982613bf9565b8552505060209283019201613ef8565b600082601f830112613f4a57613f4a600080fd5b813561062e848260208601613ec9565b6000613f686130b284613672565b83815290506020808201908402830185811115613f8757613f87600080fd5b835b818110156136e65780613f9c8882613005565b84525060209283019201613f89565b600082601f830112613fbf57613fbf600080fd5b813561062e848260208601613f5a565b600060408284031215613fe457613fe4600080fd5b613fee6040613052565b905081356001600160401b0381111561400957614009600080fd5b614015848285016130dd565b82525060208201356001600160401b0381111561403457614034600080fd5b6139e984828501613fab565b600061404e6130b284613672565b8381529050602080820190840283018581111561406d5761406d600080fd5b835b818110156136e65780356001600160401b0381111561409057614090600080fd5b80860161409d8982613fcf565b855250506020928301920161406f565b600082601f8301126140c1576140c1600080fd5b813561062e848260208601614040565b6000604082840312156140e6576140e6600080fd5b6140f06040613052565b905081356001600160401b0381111561410b5761410b600080fd5b61411784828501613f36565b82525060208201356001600160401b0381111561413657614136600080fd5b6139e9848285016140ad565b60006040828403121561415757614157600080fd5b6141616040613052565b905081356001600160401b0381111561417c5761417c600080fd5b614188848285016130dd565b82525060206139e9848483016138d8565b60006141a76130b284613672565b838152905060208082019084028301858111156141c6576141c6600080fd5b835b818110156136e65780356001600160401b038111156141e9576141e9600080fd5b8086016141f68982614142565b85525050602092830192016141c8565b600082601f83011261421a5761421a600080fd5b813561062e848260208601614199565b60006142386130b284613672565b8381529050602080820190840283018581111561425757614257600080fd5b835b818110156136e6578061426c88826138d8565b84525060209283019201614259565b600082601f83011261428f5761428f600080fd5b813561062e84826020860161422a565b6000604082840312156142b4576142b4600080fd5b6142be6040613052565b905081356001600160401b038111156142d9576142d9600080fd5b6142e5848285016130dd565b82525060208201356001600160401b0381111561430457614304600080fd5b6139e98482850161427b565b600061431e6130b284613672565b8381529050602080820190840283018581111561433d5761433d600080fd5b835b818110156136e65780356001600160401b0381111561436057614360600080fd5b80860161436d898261429f565b855250506020928301920161433f565b600082601f83011261439157614391600080fd5b813561062e848260208601614310565b6000604082840312156143b6576143b6600080fd5b6143c06040613052565b905081356001600160401b038111156143db576143db600080fd5b6143e784828501614206565b82525060208201356001600160401b0381111561440657614406600080fd5b6139e98482850161437d565b60006144206130b284613672565b8381529050602080820190840283018581111561443f5761443f600080fd5b835b818110156136e65780356001600160401b0381111561446257614462600080fd5b80860161446f8982613bf9565b8552505060209283019201614441565b600082601f83011261449357614493600080fd5b813561062e848260208601614412565b60006144b16130b284613672565b838152905060208082019084028301858111156144d0576144d0600080fd5b835b818110156136e657806144e58882613005565b845250602092830192016144d2565b600082601f83011261450857614508600080fd5b813561062e8482602086016144a3565b60006040828403121561452d5761452d600080fd5b6145376040613052565b905081356001600160401b0381111561455257614552600080fd5b61455e848285016130dd565b82525060208201356001600160401b0381111561457d5761457d600080fd5b6139e9848285016144f4565b60006145976130b284613672565b838152905060208082019084028301858111156145b6576145b6600080fd5b835b818110156136e65780356001600160401b038111156145d9576145d9600080fd5b8086016145e68982614518565b85525050602092830192016145b8565b600082601f83011261460a5761460a600080fd5b813561062e848260208601614589565b60006040828403121561462f5761462f600080fd5b6146396040613052565b905081356001600160401b0381111561465457614654600080fd5b6146608482850161447f565b82525060208201356001600160401b0381111561467f5761467f600080fd5b6139e9848285016145f6565b6000604082840312156146a0576146a0600080fd5b6146aa6040613052565b905081356001600160401b038111156146c5576146c5600080fd5b6146d1848285016130dd565b82525060208201356001600160401b038111156146f0576146f0600080fd5b6139e9848285016130dd565b600061470a6130b284613672565b8381529050602080820190840283018581111561472957614729600080fd5b835b818110156136e65780356001600160401b0381111561474c5761474c600080fd5b808601614759898261468b565b855250506020928301920161472b565b600082601f83011261477d5761477d600080fd5b813561062e8482602086016146fc565b600061479b6130b284613672565b838152905060208082019084028301858111156147ba576147ba600080fd5b835b818110156136e65780356001600160401b038111156147dd576147dd600080fd5b8086016147ea89826130dd565b85525050602092830192016147bc565b600082601f83011261480e5761480e600080fd5b813561062e84826020860161478d565b60006040828403121561483357614833600080fd5b61483d6040613052565b905081356001600160401b0381111561485857614858600080fd5b614864848285016130dd565b82525060208201356001600160401b0381111561488357614883600080fd5b6139e9848285016147fa565b600061489d6130b284613672565b838152905060208082019084028301858111156148bc576148bc600080fd5b835b818110156136e65780356001600160401b038111156148df576148df600080fd5b8086016148ec898261481e565b85525050602092830192016148be565b600082601f83011261491057614910600080fd5b813561062e84826020860161488f565b60006040828403121561493557614935600080fd5b61493f6040613052565b905081356001600160401b0381111561495a5761495a600080fd5b61496684828501614769565b82525060208201356001600160401b0381111561498557614985600080fd5b6139e9848285016148fc565b600061499f6130b284613672565b838152905060208082019084028301858111156149be576149be600080fd5b835b818110156136e65780356001600160401b038111156149e1576149e1600080fd5b8086016149ee898261468b565b85525050602092830192016149c0565b600082601f830112614a1257614a12600080fd5b813561062e848260208601614991565b6000614a306130b284613672565b83815290506020808201908402830185811115614a4f57614a4f600080fd5b835b818110156136e65780356001600160401b03811115614a7257614a72600080fd5b808601614a7f89826130dd565b8552505060209283019201614a51565b600082601f830112614aa357614aa3600080fd5b813561062e848260208601614a22565b600060408284031215614ac857614ac8600080fd5b614ad26040613052565b905081356001600160401b03811115614aed57614aed600080fd5b614af9848285016130dd565b82525060208201356001600160401b03811115614b1857614b18600080fd5b6139e984828501614a8f565b6000614b326130b284613672565b83815290506020808201908402830185811115614b5157614b51600080fd5b835b818110156136e65780356001600160401b03811115614b7457614b74600080fd5b808601614b818982614ab3565b8552505060209283019201614b53565b600082601f830112614ba557614ba5600080fd5b813561062e848260208601614b24565b600060408284031215614bca57614bca600080fd5b614bd46040613052565b905081356001600160401b03811115614bef57614bef600080fd5b614bfb848285016149fe565b82525060208201356001600160401b03811115614c1a57614c1a600080fd5b6139e984828501614b91565b600060e08284031215614c3b57614c3b600080fd5b614c4560e0613052565b905081356001600160401b03811115614c6057614c60600080fd5b614c6c84828501613b88565b82525060208201356001600160401b03811115614c8b57614c8b600080fd5b614c9784828501613e58565b60208301525060408201356001600160401b03811115614cb957614cb9600080fd5b614cc5848285016140d1565b60408301525060608201356001600160401b03811115614ce757614ce7600080fd5b614cf3848285016143a1565b60608301525060808201356001600160401b03811115614d1557614d15600080fd5b614d218482850161461a565b60808301525060a08201356001600160401b03811115614d4357614d43600080fd5b614d4f84828501614920565b60a08301525060c08201356001600160401b03811115614d7157614d71600080fd5b6138c484828501614bb5565b600080600060608486031215614d9557614d95600080fd5b6000614da18686613005565b93505060208401356001600160401b03811115614dc057614dc0600080fd5b614dcc86828701613919565b92505060408401356001600160401b03811115614deb57614deb600080fd5b61366886828701614c26565b602081016107db82846131b6565b60008060008060808587031215614e1e57614e1e600080fd5b6000614e2a8787612ff4565b9450506020614e3b87828801612ff4565b9350506040614e4c87828801612ff4565b9250506060613173878288016138d8565b634e487b7160e01b600052601160045260246000fd5b600082821015614e8557614e85614e5d565b500390565b80516107db81612fff565b600060208284031215614eaa57614eaa600080fd5b600061062e8484614e8a565b80516107db816138d0565b600060208284031215614ed657614ed6600080fd5b600061062e8484614eb6565b6000612b356020840184613005565b6000612b356020840184612ff4565b6000808335601e1936859003018112614f1b57614f1b600080fd5b8381016020810193503591506001600160401b03821115614f3e57614f3e600080fd5b36829003841315614f5157614f51600080fd5b509250929050565b8183526000602084019350614f6f838584613098565b601f19601f8401166133d9565b60006101608301614f8d8380614ee2565b614f978582612fbb565b50614fa56020840184614ee2565b614fb26020860182612fbb565b50614fc06040840184614ef1565b614fcd60408601826131b6565b50614fdb6060840184614ee2565b614fe86060860182612fbb565b50614ff66080840184614ef1565b61500360808601826131b6565b5061501160a0840184614ee2565b61501e60a0860182612fbb565b5061502c60c0840184614ee2565b61503960c0860182612fbb565b5061504760e0840184614ee2565b61505460e0860182612fbb565b50615063610100840184614ee2565b615071610100860182612fbb565b50615080610120840184614ee2565b61508e610120860182612fbb565b5061509d610140840184614f00565b85830361014087015261257a838284614f59565b604081016150bf8285612f9e565b8181036020830152612b328184614f7c565b6009811061143357600080fd5b80516107db816150d1565b6002811061143357600080fd5b80516107db816150e9565b60006080828403121561511657615116600080fd5b6151206080613052565b9050600061512e8484614eb6565b825250602061513f848483016150f6565b6020830152506040615153848285016150f6565b604083015250606061516784828501614e8a565b60608301525092915050565b80516107db81612fe0565b600061518c6130b28461306e565b9050828152602081018484840111156151a7576151a7600080fd5b612140848285613383565b600082601f8301126151c6576151c6600080fd5b815161062e84826020860161517e565b600061016082840312156151ec576151ec600080fd5b6151f7610100613052565b9050600061520584846150de565b825250602061521684848301614e8a565b602083015250604061522a84828501615101565b60408301525060c061523e84828501614e8a565b60608301525060e061525284828501614e8a565b60808301525061010061526784828501615173565b60a08301525061012061527c84828501614e8a565b60c0830152506101408201516001600160401b0381111561529f5761529f600080fd5b6152ab848285016151b2565b60e08301525092915050565b60006152c56130b284613672565b838152905060208082019084028301858111156152e4576152e4600080fd5b835b818110156136e65780516001600160401b0381111561530757615307600080fd5b80860161531489826151d6565b85525050602092830192016152e6565b600082601f83011261533857615338600080fd5b815161062e8482602086016152b7565b60006020828403121561535d5761535d600080fd5b81516001600160401b0381111561537657615376600080fd5b61062e84828501615324565b6040810161539082856131b6565b612b356020830184612fbb565b6000602082840312156153b2576153b2600080fd5b600061062e8484615173565b600080604083850312156153d4576153d4600080fd5b60006153e08585613005565b92505060208301356001600160401b038111156153ff576153ff600080fd5b61540b858286016130dd565b9150509250929050565b634e487b7160e01b600052600160045260246000fd5b60006107db82612fcf565b612fe98161542b565b80516107db81615436565b60006020828403121561545f5761545f600080fd5b600061062e848461543f565b604081016154798285612fbb565b612b3560208301846131b6565b606081016154948286612f9e565b6154a160208301856131b6565b61062e60408301846131a0565b6000612b3560208401846138d8565b60e082016154cb8280614ee2565b6154d58482612fbb565b506154e36020830183614ef1565b6154f060208501826131b6565b506154fe6040830183614ee2565b61550b6040850182612fbb565b506155196060830183614ef1565b61552660608501826131b6565b506155346080830183614ee2565b6155416080850182612fbb565b5061554f60a0830183614ee2565b61555c60a0850182612fbb565b5061556a60c08301836154ae565b61137760c08501826131a0565b838152610120810161558c6020830185612fbb565b61062e60408301846154bd565b83815261012081016155ae6020830185612fbb565b61062e60408301846131bf565b634e487b7160e01b600052603260045260246000fd5b7372656365697665644d61726b6574546f6b656e7360601b81526000601482016107db565b6000615600825190565b61560e818560208601613383565b9290920192915050565b6000612b3582846155f6565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b602080825281016107db81615624565b600060ff82166107db565b612fa781615682565b602081016107db828461568d565b604081016153908285612f9e565b6001600160f01b03198116612fa7565b6001600160f81b03198116612fa7565b60006156de82896155f6565b91506156ea82886156b2565b6002820191506156fa82876155f6565b915061570682866156b2565b60028201915061571682856155f6565b915061572282846156c2565b506001019695505050505050565b60208082528101612b3581846133af565b600061574d82866155f6565b915061575982856156b2565b60028201915061348582846155f6565b600061577582846155f6565b7f3a2067657445786368616e6765436f7374206973206e6f7420696d706c656d658152631b9d195960e21b6020820152915060248201612b35565b61010081016157bf8285612f9e565b612b3560208301846131bf565b600060033d1115612f795760046000803e5060005160e01c90565b600060443d10156157f55790565b60405160043d036004823e80513d60248201116001600160401b038211171561581d57505090565b80820180516001600160401b03811115615838575050505090565b80602083010160043d03850181111561585357505050505090565b61586282602001850186613026565b5090949350505050565b6060810161587a8286612fbb565b61588760208301856131b6565b818103604083015261062b81846133af565b606081016158a78285612fbb565b6158b460208301846131b6565b81810360408301526000815260208101612b32565b600080604083850312156158df576158df600080fd5b60006158eb8585614e8a565b92505060208301516001600160401b0381111561590a5761590a600080fd5b61540b858286016151b2565b61012081016159258286612fbb565b6155ae60208301856131b6565b6040810161594082856131b6565b612b3560208301846131a0565b8051604083019061595e84826131a0565b5060208201516113776020850182612fbb565b60c0810161597f82886131b6565b61598c6020830187612fbb565b6159996040830186613330565b6159a6606083018561594d565b61257a60a08301846131b6565b6040810161547982856131b6565b603681526000602082017f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6020820152915061566b565b602080825281016107db816159c1565b60608101615a3282866131b6565b615a3f6020830185612fbb565b61062e6040830184612fbb565b83815260608101615a6060208301856131b6565b61062e60408301846131b6565b6000615a798284612fbb565b50602001919050565b600081615a9157615a91614e5d565b506000190190565b60008219821115615aac57615aac614e5d565b500190565b6000816000190483118215151615615acb57615acb614e5d565b500290565b6000600019821415615ae457615ae4614e5d565b5060010190565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b6020820152915061566b565b602080825281016107db81615aeb565b6101208101615b51828c612f9e565b615b5e602083018b612f9e565b615b6b604083018a612f9e565b615b7860608301896131b6565b615b856080830188612fbb565b615b9260a08301876131b6565b615b9f60c0830186612fbb565b615bac60e08301856131b6565b615bba610100830184612fbb565b9a9950505050505050505050565b600060408284031215615bdd57615bdd600080fd5b615be76040613052565b90506000615bf58484614eb6565b82525060206139e984848301614e8a565b600060408284031215615c1b57615c1b600080fd5b600061062e8484615bc8565b6001600160801b038116612fe9565b80516107db81615c27565b600060408284031215615c5657615c56600080fd5b615c606040613052565b90506000615c6e8484615c36565b82525060206139e984848301615c36565b600060408284031215615c9457615c94600080fd5b600061062e8484615c41565b6001600160601b038116612fe9565b80516107db81615ca0565b63ffffffff8116612fe9565b80516107db81615cba565b600060608284031215615ce657615ce6600080fd5b615cf06060613052565b90506000615cfe8484615caf565b8252506020615d0f84848301615caf565b602083015250604061398684828501615cc6565b600060608284031215615d3857615d38600080fd5b600061062e8484615cd1565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b6020820152915061566b565b602080825281016107db81615d44565b634e487b7160e01b600052601260045260246000fd5b600082615dbc57615dbc615d97565b500490565b602080825281016107db81601d81527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000602082015260400190565b600082615e0b57615e0b615d97565b50069056fe5570677261646561626c65577261707065725472616465725632000000000000a2646970667358221220096f0bd44db1c8a7de66ea5105fda38c49f054c66c92c3944bb016b38fc9b1a664736f6c6343000809003300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1