0 txs
0 calls
constructor
constructor(address _adapterRegistry)
functions
adapterRegistry
viewfunction adapterRegistry() view returns (address)
getOracleInfo
viewfunction getOracleInfo(address oracleAddress, address[] bases, address[] quotes) view returns (tuple)
getValidAdapters
viewfunction getValidAdapters(address base, address quote) view returns (address[])
isStalePullOracle
viewfunction isStalePullOracle(address oracleAddress, bytes failureReason) view returns (bool)
TTL_ERROR
viewfunction TTL_ERROR() view returns (int256)
TTL_INFINITY
viewfunction TTL_INFINITY() view returns (int256)
TTL_LIQUIDATION
viewfunction TTL_LIQUIDATION() view returns (int256)
TTL_MORE_THAN_ONE_YEAR
viewfunction TTL_MORE_THAN_ONE_YEAR() view returns (int256)
events
No events.
errors
No errors.
creation bytecode
0x60a060405234801562000010575f80fd5b506040516200399a3803806200399a833981016040819052620000339162000045565b6001600160a01b031660805262000074565b5f6020828403121562000056575f80fd5b81516001600160a01b03811681146200006d575f80fd5b9392505050565b608051613907620000935f395f818160cc015261027501526139075ff3fe608060405234801561000f575f80fd5b5060043610610085575f3560e01c806372537d9a1161005857806372537d9a1461012d578063900bb8a614610154578063aa2c31361461017b578063b25664311461019b575f80fd5b806317a35823146100895780634abee02a146100b157806350b5c16a146100c75780636410b79214610106575b5f80fd5b61009c610097366004612fbe565b6101bb565b60405190151581526020015b60405180910390f35b6100b96101fe565b6040519081526020016100a8565b6100ee7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a8565b6100b97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81565b6100b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6100b97f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b61018e61018936600461303c565b61022c565b6040516100a89190613073565b6101ae6101a93660046131b5565b6102eb565b6040516100a891906132bc565b5f806101c783856132ce565b90506101d385826123ca565b806101e357506101e3858261257c565b806101f357506101f38582612723565b9150505b9392505050565b61022960017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613343565b81565b6040517f7c8b72c70000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301524260448301526060917f000000000000000000000000000000000000000000000000000000000000000090911690637c8b72c7906064015f60405180830381865afa1580156102bb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102e29190810190613369565b90505b92915050565b61031760405180606001604052805f6001600160a01b0316815260200160608152602001606081525090565b6060805f816001600160a01b038816156103db5760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06fdde030000000000000000000000000000000000000000000000000000000017905290516001600160a01b038a1691610397916133f3565b5f60405180830381855afa9150503d805f81146103cf576040519150601f19603f3d011682016040523d82523d5f602084013e6103d4565b606091505b5090925090505b8180156103ea57506020815110155b1561040a5780806020019051810190610403919061340e565b9350610455565b6040518060600160405280896001600160a01b0316815260200160405180602001604052805f815250815260200160405180602001604052805f8152508152509450505050506101f7565b505060408051808201909152600f81527f436861696e6c696e6b4f7261636c6500000000000000000000000000000000006020918201528251908301207f3347fb2d9337d6a0c3e2f4dcfc9aa03fda7f189ee6ae26b5ac97d93c20c001360361075b576040518060a00160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610523919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610591919061349d565b6001600160a01b03168152602001876001600160a01b03166337a7b7d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff919061349d565b6001600160a01b03168152602001876001600160a01b03166337a7b7d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610649573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066d919061349d565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156106a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106ce919081019061340e565b8152602001876001600160a01b03166387cf46966040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073391906134b8565b90526040516107459190602001613524565b60405160208183030381529060405290506123a0565b60408051808201909152601981527f436861696e6c696e6b496e6672657175656e744f7261636c65000000000000006020918201528251908301207f8e9c3f775e0f080b197ff379eba09a3319a5582cf88131cad80e71f5f1759b5603610803576040518060a00160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ff573d5f803e3d5ffd5b60408051808201909152600f81527f4368726f6e69636c654f7261636c6500000000000000000000000000000000006020918201528251908301207f79ac7a18b69002d8ae7fb77d378715bce73f2731b7cd238ae49a31c390604eb903610a5f576040518060800160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108cf919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093d919061349d565b6001600160a01b03168152602001876001600160a01b03166337a7b7d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610987573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ab919061349d565b6001600160a01b03168152602001876001600160a01b03166387cf46966040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1991906134b8565b90526040805182516001600160a01b039081166020808401919091528401518116828401529183015190911660608083019190915290910151608082015260a001610745565b60408051808201909152600a81527f4c69646f4f7261636c65000000000000000000000000000000000000000000006020918201528251908301207fc987f708ef4d97624df0c1bddedc2484c5c4f8d0fd920baee462ced0514d031003610bb4576040518060400160405280876001600160a01b031663d9fb643a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2b919061349d565b6001600160a01b03168152602001876001600160a01b031663e00bfe506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b99919061349d565b6001600160a01b031690526040516107459190602001613536565b60408051808201909152601581527f4c69646f46756e64616d656e74616c4f7261636c6500000000000000000000006020918201528251908301207f0825897acecea14ea9b7dd06ba393fbe014f6aeb09d61afa801814737109190a03610cca576040518060400160405280876001600160a01b031663d9fb643a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c80919061349d565b6001600160a01b03168152602001876001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d5f803e3d5ffd5b60408051808201909152600a81527f507974684f7261636c65000000000000000000000000000000000000000000006020918201528251908301207ff4c16c409379c23d0d3ad629f6799c388585f511e8f79c5fe710f598e4a8e7cb03611009576040518060c00160405280876001600160a01b031663f98d06f06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d96919061349d565b6001600160a01b03168152602001876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e04919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e72919061349d565b6001600160a01b03168152602001876001600160a01b0316634a6434996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ebc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee091906134b8565b8152602001876001600160a01b03166387cf46966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4591906134b8565b8152602001876001600160a01b03166388df1eff6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610faa91906134b8565b905260405161074591906020015f60c0820190506001600160a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a083015160a083015292915050565b60408051808201909152601281527f52656473746f6e65436f72654f7261636c6500000000000000000000000000006020918201528251908301207fa01627088501c14173f657c9dafb93a3a468a0e4578b596f8f2a0e5ee7751af5036113ba575f80876001600160a01b03166360c7d2956040518163ffffffff1660e01b81526004016040805180830381865afa1580156110a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cb919061355a565b915091506040518060e00160405280896001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611116573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113a919061349d565b6001600160a01b03168152602001896001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a8919061349d565b6001600160a01b03168152602001896001600160a01b0316634a6434996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121691906134b8565b8152602001896001600160a01b031663c23953d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b91906135af565b60ff168152602001896001600160a01b03166387cf46966040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e391906134b8565b81526020018379ffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020018265ffffffffffff168152506040516020016113a291905f60e0820190506001600160a01b03808451168352806020850151166020840152506040830151604083015260ff60608401511660608301526080830151608083015279ffffffffffffffffffffffffffffffffffffffffffffffffffff60a08401511660a083015265ffffffffffff60c08401511660c083015292915050565b604051602081830303815290604052925050506123a0565b60408051808201909152600f81527f556e697377617056334f7261636c6500000000000000000000000000000000006020918201528251908301207f32ceb3c4df7b44179c8ac0bbc71396639e9d56ff85c504f6bf6dcbfd134822bc036116a0576040518060a00160405280876001600160a01b0316630fc63d106040518163ffffffff1660e01b8152600401602060405180830381865afa158015611462573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611486919061349d565b6001600160a01b03168152602001876001600160a01b0316635f64b55b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f4919061349d565b6001600160a01b03168152602001876001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561153e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611562919061349d565b6001600160a01b03168152602001876001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d091906135cf565b62ffffff168152602001876001600160a01b0316638107e1336040518163ffffffff1660e01b8152600401602060405180830381865afa158015611616573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163a91906135f1565b63ffffffff16905260405161074591906020015f60a0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401525062ffffff606084015116606083015263ffffffff608084015116608083015292915050565b60408051808201909152600f81527f4669786564526174654f7261636c6500000000000000000000000000000000006020918201528251908301207f979d3024f623cb02aaf3e1a78da0e33ddefd03c5446cfee64ab54787f08207ff0361187c576040518060600160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117da919061349d565b6001600160a01b03168152602001876001600160a01b0316632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611824573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184891906134b8565b90526040805182516001600160a01b0390811660208084019190915284015116818301529101516060820152608001610745565b60408051808201909152601281527f5261746550726f76696465724f7261636c6500000000000000000000000000006020918201528251908301207f4bea610829e6390ec03fc23cc723d91ff2bea03ca3bfc0f1ecc1308b441d028a03611a5d576040518060600160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611924573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611948919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611992573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b6919061349d565b6001600160a01b03168152602001876001600160a01b031663949db6586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a24919061349d565b6001600160a01b039081169091526040805183518316602080830191909152840151831681830152920151166060820152608001610745565b60408051808201909152600c81527f50656e646c654f7261636c6500000000000000000000000000000000000000006020918201528251908301207f16caf5334b30c157ec8b91a8778ea48280d563c01b74753ebbd4fc9c564970db03611cca576040518060800160405280876001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b29919061349d565b6001600160a01b03168152602001876001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b97919061349d565b6001600160a01b03168152602001876001600160a01b03166399d9a71f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c05919061349d565b6001600160a01b03168152602001876001600160a01b0316638107e1336040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7391906135f1565b63ffffffff16905260405161074591906020015f6080820190506001600160a01b038084511683528060208501511660208401528060408501511660408401525063ffffffff606084015116606083015292915050565b60408051808201909152600c81527f43726f73734164617074657200000000000000000000000000000000000000006020918201528251908301207f3fecf33d1e769f1731b4722525288fa69b1206a8faa961b747e19339407c5f7303611fb4575f866001600160a01b031663fd8867006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d8c919061349d565b90505f876001600160a01b0316636f612f9a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611def919061349d565b90505f611dfd8389896102eb565b90505f611e0b838a8a6102eb565b90506040518060e001604052808b6001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e78919061349d565b6001600160a01b031681526020018b6001600160a01b031663fa074d036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ec2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ee6919061349d565b6001600160a01b031681526020018b6001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f54919061349d565b6001600160a01b03168152602001856001600160a01b03168152602001846001600160a01b0316815260200183815260200182815250604051602001611f9a9190613614565b6040516020818303038152906040529450505050506123a0565b60408051808201909152600b81527f45756c6572526f757465720000000000000000000000000000000000000000006020918201528251908301207f7904efa7e21712a84c08db53ee94b15be80152c10accb5841dcc8a625199e9f3036123a0578351855114612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f7261636c654c656e733a20696e76616c696420696e70757400000000000000604482015260640160405180910390fd5b5f855167ffffffffffffffff81111561209f5761209f6130bf565b6040519080825280602002602001820160405280156120d257816020015b60608152602001906001900390816120bd5790505b5090505f865167ffffffffffffffff8111156120f0576120f06130bf565b604051908082528060200260200182016040528015612119578160200160208202803683370190505b5090505f875167ffffffffffffffff811115612137576121376130bf565b60405190808252806020026020018201604052801561219457816020015b61218160405180606001604052805f6001600160a01b0316815260200160608152602001606081525090565b8152602001906001900390816121555790505b5090505f5b8851811015612261576121f98a8583815181106121b8576121b86136aa565b60200260200101518b84815181106121d2576121d26136aa565b60200260200101518b85815181106121ec576121ec6136aa565b60200260200101516129be565b86848151811061220b5761220b6136aa565b60200260200101868581518110612224576122246136aa565b6020026020010186868151811061223d5761223d6136aa565b60209081029190910101929092526001600160a01b03909216905252600101612199565b505f896001600160a01b031663629838e56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561229f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c3919061349d565b90506040518061010001604052808b6001600160a01b0316630c340a246040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612331919061349d565b6001600160a01b03168152602001826001600160a01b03168152602001612359838c8c6102eb565b81526020018a81526020018981526020018581526020018481526020018381525060405160200161238a91906137bd565b6040516020818303038152906040529450505050505b604080516060810182526001600160a01b0388168152602081019390935282015290509392505050565b5f6001600160a01b0383166123e057505f6102e5565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06fdde030000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b03871691612450916133f3565b5f60405180830381855afa9150503d805f8114612488576040519150601f19603f3d011682016040523d82523d5f602084013e61248d565b606091505b50915091508180156124a157506020815110155b15612572575f818060200190518101906124bb919061340e565b60408051808201909152600a81527f507974684f7261636c65000000000000000000000000000000000000000000006020918201528151908201209091507ff4c16c409379c23d0d3ad629f6799c388585f511e8f79c5fe710f598e4a8e7cb14801561256857507fffffffff0000000000000000000000000000000000000000000000000000000085167fd743df6a00000000000000000000000000000000000000000000000000000000145b93505050506102e5565b505f949350505050565b5f6001600160a01b03831661259257505f6102e5565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06fdde030000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b03871691612602916133f3565b5f60405180830381855afa9150503d805f811461263a576040519150601f19603f3d011682016040523d82523d5f602084013e61263f565b606091505b509150915081801561265357506020815110155b15612572575f8180602001905181019061266d919061340e565b60408051808201909152601281527f52656473746f6e65436f72654f7261636c6500000000000000000000000000006020918201528151908201209091507fa01627088501c14173f657c9dafb93a3a468a0e4578b596f8f2a0e5ee7751af514801561256857507fffffffff0000000000000000000000000000000000000000000000000000000085167fa6e68d63000000000000000000000000000000000000000000000000000000001493505050506102e5565b5f6001600160a01b03831661273957505f6102e5565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06fdde030000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038716916127a9916133f3565b5f60405180830381855afa9150503d805f81146127e1576040519150601f19603f3d011682016040523d82523d5f602084013e6127e6565b606091505b50915091508180156127fa57506020815110155b15612889575f81806020019051810190612814919061340e565b60408051808201909152600c81527f43726f73734164617074657200000000000000000000000000000000000000006020918201528151908201209091507f3fecf33d1e769f1731b4722525288fa69b1206a8faa961b747e19339407c5f7314612883575f93505050506102e5565b50612893565b5f925050506102e5565b5f856001600160a01b031663fd8867006040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128f4919061349d565b90505f866001600160a01b0316636f612f9a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612933573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612957919061349d565b905061296382876123ca565b806129735750612973828761257c565b80612983575061298381876123ca565b806129935750612993818761257c565b806129a357506129a38287612723565b806129b357506129b38187612723565b979650505050505050565b60605f6129ed60405180606001604052805f6001600160a01b0316815260200160608152602001606081525090565b836001600160a01b0316856001600160a01b031603612a0e57859250612f9d565b6040516001600160a01b03868116602483015285811660448301525f9182918a169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8aa776080000000000000000000000000000000000000000000000000000000017905251612a9691906133f3565b5f60405180830381855afa9150503d805f8114612ace576040519150601f19603f3d011682016040523d82523d5f602084013e612ad3565b606091505b5091509150811580612ae6575060208151105b15612af5578794505050612f9d565b80806020019051810190612b09919061349d565b93506001600160a01b03841615612bdc576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833701905050905088825f81518110612b7057612b706136aa565b60200260200101906001600160a01b031690816001600160a01b03168152505087815f81518110612ba357612ba36136aa565b60200260200101906001600160a01b031690816001600160a01b031681525050612bce8683836102eb565b945089965050505050612f9d565b6040516001600160a01b0388811660248301528a169060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ca400170000000000000000000000000000000000000000000000000000000017905251612c5891906133f3565b5f60405180830381855afa9150503d805f8114612c90576040519150601f19603f3d011682016040523d82523d5f602084013e612c95565b606091505b509092509050811580612ca9575060208151105b15612cb8578794505050612f9d565b5f81806020019051810190612ccd919061349d565b90506001600160a01b03811615612de1578851612ceb9060016138ab565b67ffffffffffffffff811115612d0357612d036130bf565b604051908082528060200260200182016040528015612d2c578160200160208202803683370190505b5095505f5b8951811015612d8657898181518110612d4c57612d4c6136aa565b6020026020010151878281518110612d6657612d666136aa565b6001600160a01b0390921660209283029190910190910152600101612d31565b50808660018851612d9791906138be565b81518110612da757612da76136aa565b60200260200101906001600160a01b031690816001600160a01b031681525050612dd38a87838a6129be565b955095509550505050612f9d565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f629838e50000000000000000000000000000000000000000000000000000000017905290516001600160a01b038c1691612e4d916133f3565b5f60405180830381855afa9150503d805f8114612e85576040519150601f19603f3d011682016040523d82523d5f602084013e612e8a565b606091505b509093509150821580612e9e575060208251105b15612eae57889550505050612f9d565b81806020019051810190612ec2919061349d565b94506001600160a01b03851615612f96576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833701905050905089825f81518110612f2957612f296136aa565b60200260200101906001600160a01b031690816001600160a01b03168152505088815f81518110612f5c57612f5c6136aa565b60200260200101906001600160a01b031690816001600160a01b031681525050612f878783836102eb565b95508a97505050505050612f9d565b8895505050505b9450945094915050565b6001600160a01b0381168114612fbb575f80fd5b50565b5f805f60408486031215612fd0575f80fd5b8335612fdb81612fa7565b9250602084013567ffffffffffffffff80821115612ff7575f80fd5b818601915086601f83011261300a575f80fd5b813581811115613018575f80fd5b876020828501011115613029575f80fd5b6020830194508093505050509250925092565b5f806040838503121561304d575f80fd5b823561305881612fa7565b9150602083013561306881612fa7565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b818110156130b35783516001600160a01b03168352928401929184019160010161308e565b50909695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613115576131156130bf565b604052919050565b5f67ffffffffffffffff821115613136576131366130bf565b5060051b60200190565b5f82601f83011261314f575f80fd5b8135602061316461315f8361311d565b6130ec565b8083825260208201915060208460051b870101935086841115613185575f80fd5b602086015b848110156131aa57803561319d81612fa7565b835291830191830161318a565b509695505050505050565b5f805f606084860312156131c7575f80fd5b83356131d281612fa7565b9250602084013567ffffffffffffffff808211156131ee575f80fd5b6131fa87838801613140565b9350604086013591508082111561320f575f80fd5b5061321c86828701613140565b9150509250925092565b5f5b83811015613240578181015183820152602001613228565b50505f910152565b5f815180845261325f816020860160208601613226565b601f01601f19169290920160200192915050565b6001600160a01b0381511682525f60208201516060602085015261329a6060850182613248565b9050604083015184820360408601526132b38282613248565b95945050505050565b602081525f6102e26020830184613273565b7fffffffff00000000000000000000000000000000000000000000000000000000813581811691600485101561330e5780818660040360031b1b83161692505b505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181035f83128015838313168383128216171561336257613362613316565b5092915050565b5f602080838503121561337a575f80fd5b825167ffffffffffffffff811115613390575f80fd5b8301601f810185136133a0575f80fd5b80516133ae61315f8261311d565b81815260059190911b820183019083810190878311156133cc575f80fd5b928401925b828410156129b35783516133e481612fa7565b825292840192908401906133d1565b5f8251613404818460208701613226565b9190910192915050565b5f6020828403121561341e575f80fd5b815167ffffffffffffffff80821115613435575f80fd5b818401915084601f830112613448575f80fd5b81518181111561345a5761345a6130bf565b61346d6020601f19601f840116016130ec565b9150808252856020828501011115613483575f80fd5b613494816020840160208601613226565b50949350505050565b5f602082840312156134ad575f80fd5b81516101f781612fa7565b5f602082840312156134c8575f80fd5b5051919050565b5f6001600160a01b0380835116845280602084015116602085015280604084015116604085015250606082015160a0606085015261351060a0850182613248565b608093840151949093019390935250919050565b602081525f6102e260208301846134cf565b604081016102e5828480516001600160a01b03908116835260209182015116910152565b5f806040838503121561356b575f80fd5b825179ffffffffffffffffffffffffffffffffffffffffffffffffffff81168114613594575f80fd5b602084015190925065ffffffffffff81168114613068575f80fd5b5f602082840312156135bf575f80fd5b815160ff811681146101f7575f80fd5b5f602082840312156135df575f80fd5b815162ffffff811681146101f7575f80fd5b5f60208284031215613601575f80fd5b815163ffffffff811681146101f7575f80fd5b602081525f6001600160a01b0380845116602084015280602085015116604084015280604085015116606084015250606083015161365d60808401826001600160a01b03169052565b5060808301516001600160a01b03811660a08401525060a083015160e060c084015261368d610100840182613273565b905060c0840151601f198483030160e08501526132b38282613273565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561370f5781516001600160a01b0316875295820195908201906001016136ea565b509495945050505050565b5f8282518085526020808601955060208260051b840101602086015f5b8481101561376557601f198684030189526137538383516136d7565b98840198925090830190600101613737565b5090979650505050505050565b5f8282518085526020808601955060208260051b840101602086015f5b8481101561376557601f198684030189526137ab838351613273565b9884019892509083019060010161378f565b602081526137d76020820183516001600160a01b03169052565b5f60208301516137f260408401826001600160a01b03169052565b50604083015161010080606085015261380f610120850183613273565b91506060850151601f198086850301608087015261382d84836136d7565b935060808701519150808685030160a087015261384a84836136d7565b935060a08701519150808685030160c0870152613867848361371a565b935060c08701519150808685030160e087015261388484836136d7565b935060e08701519150808685030183870152506138a18382613772565b9695505050505050565b808201808211156102e5576102e5613316565b818103818111156102e5576102e561331656fea26469706673582212200cdf909b8c78c3a9a5696966e7aa4a02276390134f5738af4157fe71f771bcf364736f6c634300081800330000000000000000000000006dffc4971672d456f51e6905588d9904f0bcc379