0 txs
1 call
constructor
No constructor.
functions
erc20s
viewfunction erc20s() view returns (address[] erc20s_)
GAS_FOR_BH_QTY
viewfunction GAS_FOR_BH_QTY() view returns (uint256)
GAS_FOR_DISABLE_BASKET
viewfunction GAS_FOR_DISABLE_BASKET() view returns (uint256)
getRegistry
viewfunction getRegistry() view returns (tuple reg)
isRegistered
viewfunction isRegistered(address erc20) view returns (bool)
lastRefresh
viewfunction lastRefresh() view returns (uint48)
main
viewfunction main() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
size
viewfunction size() view returns (uint256)
toAsset
viewfunction toAsset(address erc20) view returns (address)
toColl
viewfunction toColl(address erc20) view returns (address)
validateCurrentAssets
viewfunction validateCurrentAssets() view
version
purefunction version() pure returns (string)
init
nonpayablefunction init(address main_, address[] assets_)
refresh
nonpayablefunction refresh()
register
nonpayablefunction register(address asset) returns (bool)
registerNewRTokenAsset
nonpayablefunction registerNewRTokenAsset(uint192 maxTradeVolume) returns (bool swapped)
swapRegistered
nonpayablefunction swapRegistered(address asset) returns (bool swapped)
unregister
nonpayablefunction unregister(address asset)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AssetRegistered
event AssetRegistered(address indexed erc20, address indexed asset)
AssetUnregistered
event AssetUnregistered(address indexed erc20, address indexed asset)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a06040523060805234801561001457600080fd5b50600054610100900460ff16158080156100355750600054600160ff909116105b8061004f5750303b15801561004f575060005460ff166001145b6100b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100d9576000805461ff0019166101001790555b801561011f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50608051615eb561015760003960008181610e3401528181610e74015281816117c00152818161180001526118930152615eb56000f3fe60806040526004361061012a5760003560e01c806352d1902d116100ab5780639f2822f91161006f5780639f2822f914610343578063c3c5a5471461035a578063cdcff0011461037a578063cde2be8a1461039a578063dffeadd0146103ba578063f8ac93e8146103da57600080fd5b806352d1902d1461028b57806354fd4d50146102a057806357a26a40146102d45780635ab1bd531461030c578063949d225d1461032e57600080fd5b80633ba3712a116100f25780633ba3712a146101d25780633c5a3cea146102025780634420e486146102225780634f1ef286146102425780634fe882141461025557600080fd5b8063104b6e681461012f5780632510a1d7146101595780632ec2c2461461017b57806332e0f32f1461019d5780633659cfe6146101b2575b600080fd5b34801561013b57600080fd5b50610146620dbba081565b6040519081526020015b60405180910390f35b34801561016557600080fd5b5061016e6103ef565b6040516101509190612d4d565b34801561018757600080fd5b5061019b610196366004612dae565b610491565b005b3480156101a957600080fd5b5061019b610b9a565b3480156101be57600080fd5b5061019b6101cd366004612dae565b610e2a565b3480156101de57600080fd5b506101f26101ed366004612dae565b610f06565b6040519015158152602001610150565b34801561020e57600080fd5b5061019b61021d366004612dcb565b611351565b34801561022e57600080fd5b506101f261023d366004612dae565b6115b6565b61019b610250366004612ec4565b6117b6565b34801561026157600080fd5b5060ce546102749065ffffffffffff1681565b60405165ffffffffffff9091168152602001610150565b34801561029757600080fd5b50610146611886565b3480156102ac57600080fd5b5060408051808201825260058152640342e322e360dc1b602082015290516101509190612f7b565b3480156102e057600080fd5b506102f46102ef366004612dae565b611939565b6040516001600160a01b039091168152602001610150565b34801561031857600080fd5b50610321611a6c565b6040516101509190612fae565b34801561033a57600080fd5b50610146611bd6565b34801561034f57600080fd5b50610146620186a081565b34801561036657600080fd5b506101f2610375366004612dae565b611be7565b34801561038657600080fd5b506101f2610395366004613065565b611bf4565b3480156103a657600080fd5b506102f46103b5366004612dae565b611d76565b3480156103c657600080fd5b506097546102f4906001600160a01b031681565b3480156103e657600080fd5b5061019b611dc4565b606060006103fd60cb611f02565b90508067ffffffffffffffff81111561041857610418612e55565b604051908082528060200260200182016040528015610441578160200160208202803683370190505b50915060005b8181101561048c5761045a60cb82611f0c565b83828151811061046c5761046c613082565b6001600160a01b0390921660209283029190910190910152600101610447565b505090565b60975460408051808201909152600581526427aba722a960d91b60208201526001600160a01b03909116906391d14854906104cb90613098565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a91906130bf565b61055f5760405162461bcd60e51b8152600401610556906130e1565b60405180910390fd5b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d6919061310a565b6001600160a01b0316816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610641919061310a565b6001600160a01b0316036106975760405162461bcd60e51b815260206004820152601860248201527f63616e6e6f7420756e72656769737465722052546f6b656e00000000000000006044820152606401610556565b610704816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc919061310a565b60cb90611f1f565b6107495760405162461bcd60e51b815260206004820152601660248201527537379030b9b9b2ba103a37903ab73932b3b4b9ba32b960511b6044820152606401610556565b806001600160a01b031660cd6000836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b9919061310a565b6001600160a01b03908116825260208201929092526040016000205416146108155760405162461bcd60e51b815260206004820152600f60248201526e185cdcd95d081b9bdd08199bdd5b99608a1b6044820152606401610556565b60c9546001600160a01b031663a5a5828c61082e611f41565b836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610890919061310a565b6040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526024016020604051808303818786fa935050505080156108f1575060408051601f3d908101601f191682019092526108ee91810190613127565b60015b6109625760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b505050506109dc565b6001600160c01b038116156109da5760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050505b505b610a49816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a41919061310a565b60cb90611fd3565b50600060cd6000836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab2919061310a565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b0316816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061310a565b6001600160a01b03167f817f216d12af1855f1b81f88dc6421e26ebc7fa7eca01c58fd1035dd655b3d5460405160405180910390a350565b60975460408051630d99ba2560e41b815290516000926001600160a01b03169163d99ba2509160048083019260209291908290030181865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c08919061310a565b90506001600160a01b03811615610e27576000306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c819190810190613144565b604051602001610c9191906131bb565b60408051601f1981840301815282825280516020918201206097546320632fb960e11b855292519094506000936001600160a01b03909316926340c65f729260048083019391928290030181865afa158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d15919061310a565b90506000610d21611a6c565b60208101515190915060005b81811015610e2157600083602001518281518110610d4d57610d4d613082565b60200260200101519050866001600160a01b031663c35b79b887836040518363ffffffff1660e01b8152600401610d979291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd891906130bf565b610e185760405162461bcd60e51b81526020600482015260116024820152701d5b9cdd5c1c1bdc9d195908185cdcd95d607a1b6044820152606401610556565b50600101610d2d565b50505050505b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e725760405162461bcd60e51b8152600401610556906131d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ebb600080516020615e39833981519152546001600160a01b031690565b6001600160a01b031614610ee15760405162461bcd60e51b815260040161055690613223565b610eea81611fe8565b60408051600080825260208201909252610e2791839190612037565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d1485490610f4190613098565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb091906130bf565b610fcc5760405162461bcd60e51b8152600401610556906130e1565b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611043919061310a565b6001600160a01b0316826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae919061310a565b6001600160a01b0316036110f95760405162461bcd60e51b815260206004820152601260248201527131b0b73737ba1039bbb0b810292a37b5b2b760711b6044820152606401610556565b61113a826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b61117b5760405162461bcd60e51b815260206004820152601260248201527137379022a92199181031b7b63634b9b4b7b760711b6044820152606401610556565b60c9546001600160a01b031663a5a5828c611194611f41565b846001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f6919061310a565b6040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526024016020604051808303818786fa93505050508015611257575060408051601f3d908101601f1916820190925261125491810190613127565b60015b6112c85760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b50505050611342565b6001600160c01b038116156113405760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b505050505b505b61134b826121a7565b92915050565b600054610100900460ff16158080156113715750600054600160ff909116105b8061138b5750303b15801561138b575060005460ff166001145b6113ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610556565b6000805460ff191660011790558015611411576000805461ff0019166101001790555b61141a8461278a565b836001600160a01b0316632f2439b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147c919061310a565b60c960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001600160a01b031663dc8af5f66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611504919061310a565b60ca80546001600160a01b0319166001600160a01b03929092169190911790558160005b818110156115685761155f85858381811061154557611545613082565b905060200201602081019061155a9190612dae565b612828565b50600101611528565b505080156115b0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d14854906115f190613098565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa15801561163c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166091906130bf565b61167c5760405162461bcd60e51b8152600401610556906130e1565b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f3919061310a565b6001600160a01b0316826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175e919061310a565b6001600160a01b0316036117ad5760405162461bcd60e51b815260206004820152601660248201527531b0b73737ba103932b3b4b9ba32b910292a37b5b2b760511b6044820152606401610556565b61134b82612828565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117fe5760405162461bcd60e51b8152600401610556906131d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611847600080516020615e39833981519152546001600160a01b031690565b6001600160a01b03161461186d5760405162461bcd60e51b815260040161055690613223565b61187682611fe8565b61188282826001612037565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119265760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610556565b50600080516020615e3983398151915290565b600061194660cb83611f1f565b6119875760405162461bcd60e51b8152602060048201526012602482015271195c98cc8c081d5b9c9959da5cdd195c995960721b6044820152606401610556565b6001600160a01b03808316600090815260cd602090815260409182902054825163c59b3d6360e01b8152925193169263c59b3d639260048082019392918290030181865afa1580156119dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0191906130bf565b611a4d5760405162461bcd60e51b815260206004820152601760248201527f6572633230206973206e6f7420636f6c6c61746572616c0000000000000000006044820152606401610556565b506001600160a01b03908116600090815260cd60205260409020541690565b60408051808201909152606080825260208201526000611a8c60cb611f02565b90508067ffffffffffffffff811115611aa757611aa7612e55565b604051908082528060200260200182016040528015611ad0578160200160208202803683370190505b5082528067ffffffffffffffff811115611aec57611aec612e55565b604051908082528060200260200182016040528015611b15578160200160208202803683370190505b50602083015260005b8181101561048c57611b3160cb82611f0c565b8351805183908110611b4557611b45613082565b6001600160a01b039092166020928302919091019091015260cd6000611b6c60cb84611f0c565b6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b031683602001518281518110611bb657611bb6613082565b6001600160a01b0390921660209283029190910190910152600101611b1e565b6000611be260cb611f02565b905090565b600061134b60cb83611f1f565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d1485490611c2f90613098565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9e91906130bf565b611cba5760405162461bcd60e51b8152600401610556906130e1565b609754604080516320632fb960e11b8152905161134b926001600160a01b0316916340c65f729160048083019260209291908290030181865afa158015611d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d29919061310a565b83604051611d3690612d40565b6001600160a01b0390921682526001600160c01b03166020820152604001604051809103906000f080158015611d70573d6000803e3d6000fd5b506121a7565b6000611d8360cb83611f1f565b611a4d5760405162461bcd60e51b8152602060048201526012602482015271195c98cc8c081d5b9c9959da5cdd195c995960721b6044820152606401610556565b6000611dd060cb611f02565b905060005b81811015611e7d5760cd6000611dec60cb84611f0c565b6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b50505050806001019050611dd5565b5060c960009054906101000a90046001600160a01b03166001600160a01b03166342046d6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ece57600080fd5b505af1158015611ee2573d6000803e3d6000fd5b505060ce805465ffffffffffff19164265ffffffffffff16179055505050565b600061134b825490565b6000611f18838361294d565b9392505050565b6001600160a01b03811660009081526001830160205260408120541515611f18565b6000805a9050620dbba0603f611f5b620186a06040613285565b611f65919061329c565b611f6f91906132be565b8111611fc95760405162461bcd60e51b815260206004820152602360248201527f6e6f7420656e6f7567682067617320746f20756e726567697374657220736166604482015262656c7960e81b6064820152608401610556565b620186a091505090565b6000611f18836001600160a01b038416612977565b6097546001600160a01b0316336001600160a01b031614610e275760405162461bcd60e51b81526020600482015260096024820152686d61696e206f6e6c7960b81b6044820152606401610556565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561206f5761206a83612a6a565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120c9575060408051601f3d908101601f191682019092526120c6918101906132d1565b60015b61212c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610556565b600080516020615e39833981519152811461219b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610556565b5061206a838383612b06565b6000816001600160a01b031663c59b3d636040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220b91906130bf565b156122c9576000826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122749190613300565b6002811115612285576122856132ea565b146122c95760405162461bcd60e51b815260206004820152601460248201527318dbdb1b185d195c985b081b9bdd081cdbdd5b9960621b6044820152606401610556565b60975460408051630d99ba2560e41b815290516000926001600160a01b03169163d99ba2509160048083019260209291908290030181865afa158015612313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612337919061310a565b90506001600160a01b0381161561250557609760009054906101000a90046001600160a01b03166001600160a01b031663d99ba2506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561239b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bf919061310a565b6001600160a01b031663c35b79b8306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa15801561240b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124339190810190613144565b60405160200161244391906131bb565b60408051601f198184030181529082905280516020909101206001600160e01b031960e084901b16825260048201526001600160a01b0386166024820152604401602060405180830381865afa1580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c591906130bf565b6125055760405162461bcd60e51b81526020600482015260116024820152701d5b9cdd5c1c1bdc9d195908185cdcd95d607a1b6044820152606401610556565b6000836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015612545573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612569919061310a565b905061257660cb82611f1f565b156125f2576001600160a01b03818116600090815260cd60205260409020548186169116036125a9575060009392505050565b6001600160a01b03808216600081815260cd60205260408082205490519316927f817f216d12af1855f1b81f88dc6421e26ebc7fa7eca01c58fd1035dd655b3d549190a36125ff565b6125fd60cb82612b2b565b505b6001600160a01b03818116600081815260cd602052604080822080546001600160a01b0319169489169485179055517f7beb5803e95d997a3a41bdd114aad49420e9b4ee9fd80c96b9acb7a8bf9ee0779190a3836001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561268d57600080fd5b505af11580156126a1573d6000803e3d6000fd5b50505050609760009054906101000a90046001600160a01b03166001600160a01b031663054f7d9c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271c91906130bf565b6127805760ca546040516326009b6560e21b81526001600160a01b038381166004830152909116906398026d9490602401600060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050505b5060019392505050565b600054610100900460ff166127b15760405162461bcd60e51b815260040161055690613321565b6001600160a01b0381166127fe5760405162461bcd60e51b81526020600482015260146024820152736d61696e206973207a65726f206164647265737360601b6044820152606401610556565b612806612b40565b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600061286b826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b15806129015750816001600160a01b031660cd6000846001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e2919061310a565b6001600160a01b03908116825260208201929092526040016000205416145b6113425760405162461bcd60e51b815260206004820152601860248201527f6475706c696361746520455243323020646574656374656400000000000000006044820152606401610556565b600082600001828154811061296457612964613082565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612a6057600061299b60018361336c565b85549091506000906129af9060019061336c565b9050818114612a145760008660000182815481106129cf576129cf613082565b90600052602060002001549050808760000184815481106129f2576129f2613082565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612a2557612a2561337f565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061134b565b600091505061134b565b6001600160a01b0381163b612ad75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610556565b600080516020615e3983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b0f83612b69565b600082511180612b1c5750805b1561206a576115b08383612ba9565b6000611f18836001600160a01b038416612bce565b600054610100900460ff16612b675760405162461bcd60e51b815260040161055690613321565b565b612b7281612a6a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f188383604051806060016040528060278152602001615e5960279139612c1d565b6000818152600183016020526040812054612c155750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561134b565b50600061134b565b6060600080856001600160a01b031685604051612c3a91906131bb565b600060405180830381855af49150503d8060008114612c75576040519150601f19603f3d011682016040523d82523d6000602084013e612c7a565b606091505b5091509150612c8b86838387612c95565b9695505050505050565b60608315612d04578251600003612cfd576001600160a01b0385163b612cfd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610556565b5081612d0e565b612d0e8383612d16565b949350505050565b815115612d265781518083602001fd5b8060405162461bcd60e51b81526004016105569190612f7b565b612aa38061339683390190565b602080825282518282018190526000918401906040840190835b81811015612d8e5783516001600160a01b0316835260209384019390920191600101612d67565b509095945050505050565b6001600160a01b0381168114610e2757600080fd5b600060208284031215612dc057600080fd5b8135611f1881612d99565b600080600060408486031215612de057600080fd5b8335612deb81612d99565b9250602084013567ffffffffffffffff811115612e0757600080fd5b8401601f81018613612e1857600080fd5b803567ffffffffffffffff811115612e2f57600080fd5b8660208260051b8401011115612e4457600080fd5b939660209190910195509293505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e9457612e94612e55565b604052919050565b600067ffffffffffffffff821115612eb657612eb6612e55565b50601f01601f191660200190565b60008060408385031215612ed757600080fd5b8235612ee281612d99565b9150602083013567ffffffffffffffff811115612efe57600080fd5b8301601f81018513612f0f57600080fd5b8035612f22612f1d82612e9c565b612e6b565b818152866020838501011115612f3757600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b83811015612f72578181015183820152602001612f5a565b50506000910152565b6020815260008251806020840152612f9a816040850160208701612f57565b601f01601f19169190910160400192915050565b602080825282516040838301528051606084018190526000929190910190829060808501905b808310156130005783516001600160a01b03168252602082019150602084019350600183019250612fd4565b50602086810151868303601f1901604088015280518084529082019450910191506000905b80821015612d8e5783516001600160a01b031683526020938401939092019160019190910190613025565b6001600160c01b0381168114610e2757600080fd5b60006020828403121561307757600080fd5b8135611f1881613050565b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156130b9576000198160200360031b1b821691505b50919050565b6000602082840312156130d157600080fd5b81518015158114611f1857600080fd5b6020808252600f908201526e676f7665726e616e6365206f6e6c7960881b604082015260600190565b60006020828403121561311c57600080fd5b8151611f1881612d99565b60006020828403121561313957600080fd5b8151611f1881613050565b60006020828403121561315657600080fd5b815167ffffffffffffffff81111561316d57600080fd5b8201601f8101841361317e57600080fd5b805161318c612f1d82612e9c565b8181528560208385010111156131a157600080fd5b6131b2826020830160208601612f57565b95945050505050565b600082516131cd818460208701612f57565b9190910192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761134b5761134b61326f565b6000826132b957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561134b5761134b61326f565b6000602082840312156132e357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561331257600080fd5b815160038110611f1857600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8181038181111561134b5761134b61326f565b634e487b7160e01b600052603160045260246000fdfe61016060405234801561001157600080fd5b50604051612aa3380380612aa3833981016040819052610030916103b5565b6001600160a01b03821661007b5760405162461bcd60e51b815260206004820152600d60248201526c06d697373696e6720657263323609c1b60448201526064015b60405180910390fd5b806001600160c01b03166000036100d45760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206d617820747261646520766f6c756d6500000000000000006044820152606401610072565b6000826001600160a01b031663dffeadd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610114573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013891906103fb565b9050806001600160a01b031663979d7e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906103fb565b6001600160a01b03166080816001600160a01b031681525050806001600160a01b0316632f2439b16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021791906103fb565b6001600160a01b031660a0816001600160a01b031681525050806001600160a01b031663dc8af5f66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029291906103fb565b6001600160a01b031660c0816001600160a01b031681525050806001600160a01b031663656e96e16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030d91906103fb565b6001600160a01b0390811660e05283166101008190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801561035e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610382919061041f565b60ff1661012052506001600160c01b03166101405250610442565b6001600160a01b03811681146103b257600080fd5b50565b600080604083850312156103c857600080fd5b82516103d38161039d565b60208401519092506001600160c01b03811681146103f057600080fd5b809150509250929050565b60006020828403121561040d57600080fd5b81516104188161039d565b9392505050565b60006020828403121561043157600080fd5b815160ff8116811461041857600080fd5b60805160a05160c05160e051610100516101205161014051612590610513600039600061027a0152600061019901526000818161024b015281816103e30152818161057b0152610b46015260008181610224015261092b015260008181610306015281816107d70152818161086501528181610aa901528181610c3301528181610e990152610f28015260008181610158015281816104800152818161073d01528181610ad40152610e0a0152600081816102b00152818161099e015281816109d70152610cf201526125906000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806395acc4ae116100ad578063c59b3d6311610071578063c59b3d631461029c578063dc8af5f614610301578063efd3614c14610328578063f0f615f814610398578063f8ac93e8146103a057600080fd5b806395acc4ae1461027557806396f80ae91461029c578063979d7e86146102ab578063a035b1fe146102d2578063a3e6ba94146102da57600080fd5b806354fd4d50116100f457806354fd4d50146101cd5780635580f72a146101f4578063656e96e11461021f578063785e9e86146102465780637d1ea1371461026d57600080fd5b8063271181ec146101265780632f2439b114610153578063372500ab146101925780633cb5d37914610194575b600080fd5b61012e6103a8565b604080516001600160c01b039384168152929091166020830152015b60405180910390f35b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014a565b005b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161014a565b60408051808201825260058152640342e322e360dc1b6020820152905161014a9190611d13565b610207610202366004611d79565b6103bd565b6040516001600160c01b03909116815260200161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61012e610459565b6102077f000000000000000000000000000000000000000000000000000000000000000081565b6040516000815260200161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61012e610663565b6102e261071c565b604080516001600160c01b03909316835260208301919091520161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b60005460015460025460035461035b936001600160c01b0316929165ffffffffffff80821692600160301b909204169085565b604080516001600160c01b039096168652602086019490945265ffffffffffff92831693850193909352166060830152608082015260a00161014a565b610192610921565b610192610929565b6000806103b3610663565b915091509091565b565b6040516370a0823160e01b81526001600160a01b038281166004830152600091610453917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e9190611d96565b610a50565b92915050565b604051633558aa1b60e11b8152600160048201526000908190819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636ab15436906024016040805180830381865afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190611dcb565b91509150816001600160c01b031660001415801561051157506001600160c01b0381811614155b6105525760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b60448201526064015b60405180910390fd5b806001600160c01b0316826001600160c01b0316111561057457610574611dfe565b60006105d77f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d6000803e3d6000fd5b9050806001600160c01b03166000036105f4575090939092509050565b60006105fe610a7e565b8051909150610619906001600160c01b031685846000610cb9565b6020820151909650610637906001600160c01b031684846002610cb9565b9450846001600160c01b0316866001600160c01b0316111561065b5761065b611dfe565b505050509091565b600080306001600160a01b0316637d1ea1376040518163ffffffff1660e01b81526004016040805180830381865afa9250505080156106bf575060408051601f3d908101601f191682019092526106bc91810190611dcb565b60015b610713573d8080156106ed576040519150601f19603f3d011682016040523d82523d6000602084013e6106f2565b606091505b50805160000361070157600080fd5b506000926001600160c01b0392509050565b90939092509050565b600080426103846000600101546107339190611e2a565b1115806107cf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611e3d565b60025465ffffffffffff908116911614155b8061085d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638767e6386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190611d96565b60035414155b806108fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c76aeb126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611e3d565b600254600160301b900465ffffffffffff908116911614155b1561090b5761090b610cf0565b50506000546001546001600160c01b0390911691565b6103bb610cf0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635220f5106040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561098457600080fd5b505af1158015610998573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b031614610a49577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3057600080fd5b505af1158015610a44573d6000803e3d6000fd5b505050505b6000600155565b60006001600160c01b03821115610a7a5760405163f44398f560e01b815260040160405180910390fd5b5090565b6040805180820190915260008082526020820152604051635523caaf60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aa47955e906024016040805180830381865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190611f37565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc69190611f53565b9050806001600160c01b031682600001516001600160c01b031610610bfa576001600160c01b031680835260208301525090565b604051630e5f6e5360e31b815282516001600160c01b039081166004830152602084015116602482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906372fb729890604401600060405180830381865afa158015610c7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca29190810190612144565b91509150610cb0828261101b565b94505050505090565b6000610ce561044e866001600160c01b0316866001600160c01b0316866001600160c01b031686611624565b90505b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d4b57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b50505050600080610d6e610663565b91509150816001600160c01b0316600014158015610d9557506001600160c01b0381811614155b610dd15760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b6044820152606401610549565b6040518060a0016040528060028385610dea919061229e565b610df491906122d3565b6001600160c01b031681526020014281526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611e3d565b65ffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c76aeb126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190611e3d565b65ffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638767e6386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa89190611d96565b90528051600080546001600160c01b039092166001600160c01b03199092169190911790556020810151600155604081015160028054606084015165ffffffffffff908116600160301b026bffffffffffffffffffffffff19909216931692909217919091179055608001516003555050565b60408051808201909152600080825260208201526020830151604051633558aa1b60e11b81526000600482018190529182916001600160a01b0390911690636ab15436906024016040805180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190611dcb565b91509150816001600160c01b03166000141580156110c957506001600160c01b0381811614155b6111045760405162461bcd60e51b815260206004820152600c60248201526b10955cc81d5b9c1c9a58d95960a21b6044820152606401610549565b60008560a001516001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190611f53565b9050806001600160c01b03168660000151602001516001600160c01b031611156111a35785516001600160c01b0382166020909101525b60008060005b8751518110156114e9578860a001516001600160a01b0316886000015182815181106111d7576111d7612302565b60200260200101516001600160a01b031603156114e1576000808960200151838151811061120757611207612302565b60200260200101516001600160a01b031663a035b1fe6040518163ffffffff1660e01b81526004016040805180830381865afa15801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190611dcb565b915091508a6101000151838151811061128a5761128a612302565b60200260200101516001600160c01b031660001480156112f257506112f08a6020015184815181106112be576112be612302565b60200260200101518c610120015185815181106112dd576112dd612302565b6020026020010151848e60c001516116d1565b155b156112fe5750506114e1565b60006113458c600001516020015160028e6101000151878151811061132557611325612302565b60200260200101516001600160c01b031661177b9092919063ffffffff16565b90508b6101200151848151811061135e5761135e612302565b60200260200101516001600160c01b0316816001600160c01b031611156113d9576113bf8c6101200151858151811061139957611399612302565b6020026020010151826113ac9190612318565b6001600160c01b038516908a6000610cb9565b6113d2906001600160c01b031687612337565b955061142f565b611419818d610120015186815181106113f4576113f4612302565b60200260200101516114069190612318565b6001600160c01b038416908b60026117b2565b61142c906001600160c01b03168761235e565b95505b5060006114578c600001516000015160008e6101000151878151811061132557611325612302565b9050600061149a828e6101200151878151811061147657611476612302565b60200260200101516114889190612318565b6001600160c01b03861690600061177b565b90508c60c001516001600160c01b0316816001600160c01b0316106114cd5760c08d01516114c89082612318565b6114d0565b60005b6114da908761229e565b9550505050505b6001016111a9565b506000821215611522576114ff61044e83612386565b88516020015161150f9190612318565b6001600160c01b0316602087015261157d565b8751602001516001600160c01b039061153d90821684611e2a565b1115611555576001600160c01b03602087015261157d565b61155e82610a50565b88516020015161156e919061229e565b6001600160c01b031660208701525b60e08801516115ac9061159990670de0b6b3a7640000906119c9565b6001600160c01b03831690866000610cb9565b8851516115b9919061229e565b6001600160c01b0390811687526020870151848216911611156115e6576001600160c01b03831660208701525b85602001516001600160c01b031686600001516001600160c01b031611156116195760208601516001600160c01b031686525b505050505092915050565b6000806116328686866119d5565b90506000836002811115611648576116486123a2565b03611654579050610ce8565b60008480611664576116646122bd565b8688099050600284600281111561167d5761167d6123a2565b0361169b57801561169657611693600183611e2a565b91505b6116c7565b60026116a86001876123b8565b6116b291906123cb565b8111156116c7576116c4600183611e2a565b91505b5095945050505050565b60006116f36116e08385611ab8565b6001600160c01b03908116908616101590565b8015610ce557506001611771866001600160a01b0316633cb5d3796040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176191906123df565b6001600160c01b03871690611b07565b1195945050505050565b60006117a861044e6117996001600160c01b03808716908816612402565b670de0b6b3a764000085611b15565b90505b9392505050565b60006001600160c01b03851615806117d157506001600160c01b038416155b156117de57506000610ce8565b6001600160c01b0385811614806117fd57506001600160c01b03848116145b8061180f57506001600160c01b038316155b1561182257506001600160c01b03610ce8565b6000806000611843886001600160c01b0316886001600160c01b0316611bba565b91509150856001600160c01b03168210611869576001600160c01b039350505050610ce8565b6000866001600160c01b031680611882576118826122bd565b886001600160c01b03168a6001600160c01b0316099050818111156118a8576001830392505b90819003906001600160c01b036000889003881681169088168181816118d0576118d06122bd565b0490508184816118e2576118e26122bd565b0493508182600003816118f7576118f76122bd565b04600101850293909301600284810380860282030280860282030280860282030280860282030280860282030280860282030280860282030282810297509194919089600281111561194b5761194b6123a2565b0361196257831561195d576001870196505b6119a3565b6001896002811115611976576119766123a2565b036119a35760026001600160c01b036000198c0116046001600160c01b03168411156119a3576001870196505b5050505050506001600160c01b0380168110610ce5576001600160c01b03915050610ce8565b60006117ab8284612318565b60008060006119e48686611bba565b91509150838210611a085760405163f44398f560e01b815260040160405180910390fd5b60008480611a1857611a186122bd565b868809905081811115611a2c576001830392505b908190039060008590038516808681611a4757611a476122bd565b049550808381611a5957611a596122bd565b049250808160000381611a6e57611a6e6122bd565b046001019390930291909101600285810380870282030280870282030280870282030280870282030280870282030280870282030295860290039094029390930295945050505050565b6000806001600160c01b03831615611ae457611adf6001600160c01b038516846002611be7565b611aed565b6001600160c01b035b9050806001600160c01b03166000036117ab576001610ce8565b60006117ab83836000611c1a565b600080611b2284866123cb565b90506000836002811115611b3857611b386123a2565b03611b445790506117ab565b6001836002811115611b5857611b586123a2565b03611b97576002611b6a6001866123b8565b611b7491906123cb565b611b7e8587612419565b1115611b925780611b8e8161242d565b9150505b6117a8565b611ba18486612419565b156117a85780611bb08161242d565b9695505050505050565b6000808060001984860990508385029150818103925081811015611bdf576001830392505b509250929050565b60006117a861044e611c0a670de0b6b3a76400006001600160c01b038816612402565b856001600160c01b031685611b15565b6000836001600160c01b0316600003611c35575060006117ab565b6029198360000b13611c6e576002826002811115611c5557611c556123a2565b14611c61576000611c64565b60015b60ff1690506117ab565b8260000b606013611c925760405163f44398f560e01b815260040160405180910390fd5b611c9d601284612446565b92506000611cad8460000b611cfb565b611cb890600a61254e565b905060008460000b1215611cdf57611cda856001600160c01b03168285611b15565b611cf2565b611cf2816001600160c01b038716612402565b95945050505050565b6000808212611d0a5781610453565b61045382612386565b602081526000825180602084015260005b81811015611d415760208186018101516040868401015201611d24565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611d7657600080fd5b50565b600060208284031215611d8b57600080fd5b81356117ab81611d61565b600060208284031215611da857600080fd5b5051919050565b80516001600160c01b0381168114611dc657600080fd5b919050565b60008060408385031215611dde57600080fd5b611de783611daf565b9150611df560208401611daf565b90509250929050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561045357610453611e14565b600060208284031215611e4f57600080fd5b815165ffffffffffff811681146117ab57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e9e57611e9e611e65565b60405290565b604051610140810167ffffffffffffffff81118282101715611e9e57611e9e611e65565b604051601f8201601f1916810167ffffffffffffffff81118282101715611ef157611ef1611e65565b604052919050565b600060408284031215611f0b57600080fd5b611f13611e7b565b9050611f1e82611daf565b8152611f2c60208301611daf565b602082015292915050565b600060408284031215611f4957600080fd5b6117ab8383611ef9565b600060208284031215611f6557600080fd5b6117ab82611daf565b8051611dc681611d61565b600067ffffffffffffffff821115611f9357611f93611e65565b5060051b60200190565b600082601f830112611fae57600080fd5b8151611fc1611fbc82611f79565b611ec8565b8082825260208201915060208360051b860101925085831115611fe357600080fd5b602085015b838110156116c757611ff981611daf565b835260209283019201611fe8565b600082601f83011261201857600080fd5b8151612026611fbc82611f79565b8082825260208201915060208360051b86010192508583111561204857600080fd5b602085015b838110156116c757805161206081611d61565b83526020928301920161204d565b60006040828403121561208057600080fd5b612088611e7b565b9050815167ffffffffffffffff8111156120a157600080fd5b8201601f810184136120b257600080fd5b80516120c0611fbc82611f79565b8082825260208201915060208360051b8501019250868311156120e257600080fd5b6020840193505b8284101561210d5783516120fc81611d61565b8252602093840193909101906120e9565b8452505050602082015167ffffffffffffffff81111561212c57600080fd5b61213884828501612007565b60208301525092915050565b6000806040838503121561215757600080fd5b825167ffffffffffffffff81111561216e57600080fd5b8301610160818603121561218157600080fd5b612189611ea4565b6121938683611ef9565b81526121a160408301611f6e565b60208201526121b260608301611f6e565b60408201526121c360808301611f6e565b60608201526121d460a08301611f6e565b60808201526121e560c08301611f6e565b60a08201526121f660e08301611daf565b60c08201526122086101008301611daf565b60e082015261012082015167ffffffffffffffff81111561222857600080fd5b61223487828501611f9d565b6101008301525061014082015167ffffffffffffffff81111561225657600080fd5b61226287828501611f9d565b610120830152508093505050602083015167ffffffffffffffff81111561228857600080fd5b6122948582860161206e565b9150509250929050565b6001600160c01b03818116838216019081111561045357610453611e14565b634e487b7160e01b600052601260045260246000fd5b60006001600160c01b038316806122ec576122ec6122bd565b6001600160c01b03929092169190910492915050565b634e487b7160e01b600052603260045260246000fd5b6001600160c01b03828116828216039081111561045357610453611e14565b818103600083128015838313168383128216171561235757612357611e14565b5092915050565b808201828112600083128015821682158216171561237e5761237e611e14565b505092915050565b6000600160ff1b820161239b5761239b611e14565b5060000390565b634e487b7160e01b600052602160045260246000fd5b8181038181111561045357610453611e14565b6000826123da576123da6122bd565b500490565b6000602082840312156123f157600080fd5b815160ff811681146117ab57600080fd5b808202811582820484141761045357610453611e14565b600082612428576124286122bd565b500690565b60006001820161243f5761243f611e14565b5060010190565b600082810b9082900b03607f198112607f8213171561045357610453611e14565b6001815b60018411156124a25780850481111561248657612486611e14565b600184161561249457908102905b60019390931c92800261246b565b935093915050565b6000826124b957506001610453565b816124c657506000610453565b81600181146124dc57600281146124e657612502565b6001915050610453565b60ff8411156124f7576124f7611e14565b50506001821b610453565b5060208310610133831016604e8410600b8410161715612525575081810a610453565b6125326000198484612467565b806000190482111561254657612546611e14565b029392505050565b60006117ab83836124aa56fea2646970667358221220a42ab1cbfa9578d09ec5fdc6ca20fd54b75ac4945ff9d4ce85f2361d4dfc0bfe64736f6c634300081c0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122016a26892b39ecde9bae4d466e1a273974e897b6582eff5ce972eaf14dcc7b51164736f6c634300081c0033