0 txs
20.3k calls
constructor
constructor()
functions
antToken
viewfunction antToken() view returns (address)
batchLimit
viewfunction batchLimit() view returns (uint256)
completedPayments
viewfunction completedPayments(bytes32) view returns (bytes16 rewardsAddress, uint128 amount)
getLatestPrice
viewfunction getLatestPrice() view returns (uint80, int256)
getPriceForRoundID
viewfunction getPriceForRoundID(uint80 _roundId) view returns (int256)
getQuote
viewfunction getQuote(tuple[] _metrics) view returns (uint256[] prices)
owner
viewfunction owner() view returns (address)
priceFeed
viewfunction priceFeed() view returns (address)
pricingCalculator
viewfunction pricingCalculator() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
requiredPaymentVerificationLength
viewfunction requiredPaymentVerificationLength() view returns (uint256)
roundIds
viewfunction roundIds(bytes32) view returns (uint80)
sequencerUptimeFeed
viewfunction sequencerUptimeFeed() view returns (address)
singlePaymentMultiplier
viewfunction singlePaymentMultiplier() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
verifyPayment
viewfunction verifyPayment(tuple[] _payments) view returns (tuple[3] verificationResults)
clearZeroQuoteHash
nonpayablefunction clearZeroQuoteHash()
initialize
nonpayablefunction initialize(address _antToken, uint256 _batchLimit, address _priceFeed, address _sequencerUptimeFeed, address _pricingCalculator)
payForQuotes
nonpayablefunction payForQuotes(tuple[] _payments)
renounceOwnership
nonpayablefunction renounceOwnership()
setBatchLimit
nonpayablefunction setBatchLimit(uint256 _batchLimit)
setPriceFeed
nonpayablefunction setPriceFeed(address _priceFeed)
setPricingCalculator
nonpayablefunction setPricingCalculator(address _pricingCalculator)
setRequiredPaymentVerificationLength
nonpayablefunction setRequiredPaymentVerificationLength(uint256 _requiredPaymentVerificationLength)
setSequencerUptimeFeed
nonpayablefunction setSequencerUptimeFeed(address _sequencerUptimeFeed)
setSinglePaymentMultiplier
nonpayablefunction setSinglePaymentMultiplier(uint256 _singlePaymentMultiplier)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
DataPaymentMade
event DataPaymentMade(address indexed rewardsAddress, uint256 indexed amount, bytes32 indexed quoteHash)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AntTokenNull
error AntTokenNull()
BatchLimitExceeded
error BatchLimitExceeded()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
GracePeriodNotOver
error GracePeriodNotOver()
InvalidChainlinkPrice
error InvalidChainlinkPrice()
InvalidInitialization
error InvalidInitialization()
InvalidInputLength
error InvalidInputLength()
InvalidQuoteHash
error InvalidQuoteHash()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PriceFeedNull
error PriceFeedNull()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SequencerDown
error SequencerDown()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600a600855348015610047575f5ffd5b5061005661005b60201b60201c565b6101bb565b5f61006a61015960201b60201c565b9050805f0160089054906101000a900460ff16156100b4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff16146101565767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161014d91906101a2565b60405180910390a15b50565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b5f67ffffffffffffffff82169050919050565b61019c81610180565b82525050565b5f6020820190506101b55f830184610193565b92915050565b608051614db46101e15f395f81816124bb0152818161251001526126ca0152614db45ff3fe6080604052600436106101b6575f3560e01c80638e15f473116100eb578063c7170bb611610089578063f11466cc11610063578063f11466cc146105af578063f2600b56146105d9578063f2fde38b14610601578063fe3c806e14610629576101b6565b8063c7170bb614610521578063ca5009151461054b578063e02c720214610573576101b6565b8063a7264705116100c5578063a72647051461047d578063ad3cb1cc146104a7578063b6c2141b146104d1578063b8f44963146104f9576101b6565b80638e15f4731461040257806396b79c981461042d578063a01ef25f14610455576101b6565b806352d1902d11610158578063724e78da11610132578063724e78da14610370578063741bef1a146103985780637a55cbb1146103c25780638da5cb5b146103d8576101b6565b806352d1902d146103085780635b5cd23314610332578063715018a61461035a576101b6565b80633ffbb252116101945780633ffbb2521461025c578063474740b1146102985780634ec42e8e146102c25780634f1ef286146102ec576101b6565b806301664c29146101ba5780630c6740eb146101f657806338f03e7514610220575b5f5ffd5b3480156101c5575f5ffd5b506101e060048036038101906101db9190612f98565b610666565b6040516101ed9190612fdb565b60405180910390f35b348015610201575f5ffd5b5061020a6107b5565b604051610217919061300c565b60405180910390f35b34801561022b575f5ffd5b5061024660048036038101906102419190613086565b6107bb565b60405161025391906131e8565b60405180910390f35b348015610267575f5ffd5b50610282600480360381019061027d9190613257565b610ff0565b60405161028f919061334a565b60405180910390f35b3480156102a3575f5ffd5b506102ac611192565b6040516102b9919061300c565b60405180910390f35b3480156102cd575f5ffd5b506102d6611197565b6040516102e391906133e4565b60405180910390f35b61030660048036038101906103019190613570565b6111bc565b005b348015610313575f5ffd5b5061031c6111db565b60405161032991906135d9565b60405180910390f35b34801561033d575f5ffd5b506103586004803603810190610353919061361c565b61120c565b005b348015610365575f5ffd5b5061036e61121e565b005b34801561037b575f5ffd5b5061039660048036038101906103919190613682565b611231565b005b3480156103a3575f5ffd5b506103ac61127c565b6040516103b991906136cd565b60405180910390f35b3480156103cd575f5ffd5b506103d66112a1565b005b3480156103e3575f5ffd5b506103ec61136e565b6040516103f991906136f5565b60405180910390f35b34801561040d575f5ffd5b506104166113a3565b60405161042492919061371d565b60405180910390f35b348015610438575f5ffd5b50610453600480360381019061044e919061377f565b6114f2565b005b348015610460575f5ffd5b5061047b600480360381019061047691906137e5565b61153d565b005b348015610488575f5ffd5b506104916118a2565b60405161049e91906136cd565b60405180910390f35b3480156104b2575f5ffd5b506104bb6118c7565b6040516104c891906138bc565b60405180910390f35b3480156104dc575f5ffd5b506104f760048036038101906104f29190613931565b611900565b005b348015610504575f5ffd5b5061051f600480360381019061051a9190613682565b611bdd565b005b34801561052c575f5ffd5b50610535611c28565b604051610542919061300c565b60405180910390f35b348015610556575f5ffd5b50610571600480360381019061056c919061361c565b611c2e565b005b34801561057e575f5ffd5b50610599600480360381019061059491906139a6565b611c82565b6040516105a691906139d1565b60405180910390f35b3480156105ba575f5ffd5b506105c3611ca8565b6040516105d09190613a0a565b60405180910390f35b3480156105e4575f5ffd5b506105ff60048036038101906105fa919061361c565b611ccd565b005b34801561060c575f5ffd5b5061062760048036038101906106229190613a23565b611cde565b005b348015610634575f5ffd5b5061064f600480360381019061064a91906139a6565b611d62565b60405161065d929190613ab2565b60405180910390f35b5f61066f611da9565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a6fc8f5846040518263ffffffff1660e01b81526004016106ca91906139d1565b60a060405180830381865afa1580156106e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107099190613b2b565b5050509150505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079e9190613bd8565b90506107ac82826012611f23565b92505050919050565b60085481565b6107c3612e3d565b6002548383905014610801576040517f7db491eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6108178484906108129190613f62565b611fa5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c41575f5f60065f87878681811061085857610857613f76565b5b905060200281019061086a9190613fa7565b6040013581526020019081526020015f205f9054906101000a900469ffffffffffffffffffff1690505f8169ffffffffffffffffffff16036108bb575f6108af6113a3565b915050809250506108c7565b6108c481610666565b91505b5f8686906108d59190613f62565b7382dcdc35cdf11447fa9632a87f6e0c63b53ab75063411a7bfb909160055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b81526004016109329392919061432b565b602060405180830381865af415801561094d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190614367565b90505f60075f89898881811061098a57610989613f76565b5b905060200281019061099c9190613fa7565b6040013581526020019081526020015f206040518060400160405290815f82015f9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020015f820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f5f82602001516fffffffffffffffffffffffffffffffff1614158015610a88575060085483610a6e91906143bf565b82602001516fffffffffffffffffffffffffffffffff1610155b90505f610aca8a8a89818110610aa157610aa0613f76565b5b9050602002810190610ab39190613fa7565b6020016020810190610ac59190613a23565b6120a3565b6fffffffffffffffffffffffffffffffff1916835f01516fffffffffffffffffffffffffffffffff1916148015610b6357505f73ffffffffffffffffffffffffffffffffffffffff168a8a89818110610b2657610b25613f76565b5b9050602002810190610b389190613fa7565b6020016020810190610b4a9190613a23565b73ffffffffffffffffffffffffffffffffffffffff1614155b905060405180606001604052808b8b8a818110610b8357610b82613f76565b5b9050602002810190610b959190613fa7565b60400135815260200184602001516fffffffffffffffffffffffffffffffff168152602001838015610bc45750825b1515815250885f60038110610bdc57610bdb613f76565b5b6020020181905250600188600160038110610bfa57610bf9613f76565b5b60200201516040019015159081151581525050600188600260038110610c2357610c22613f76565b5b60200201516040019015159081151581525050505050505050610fe9565b5f610c4c85856120c9565b90505f5f90505b6003811015610fe6575f60075f848460038110610c7357610c72613f76565b5b60200201516040015181526020019081526020015f206040518060400160405290815f82015f9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020015f820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60065f858560038110610d3157610d30613f76565b5b60200201516040015181526020019081526020015f205f9054906101000a900469ffffffffffffffffffff1690505f8169ffffffffffffffffffff1603610db35760405180606001604052805f5f1b81526020015f81526020015f1515815250868460038110610da457610da3613f76565b5b60200201819052505050610fd9565b5f610dbd82610666565b90505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634280b78083888860038110610e1157610e10613f76565b5b60200201515f01516040518363ffffffff1660e01b8152600401610e36929190614581565b602060405180830381865afa158015610e51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e759190614367565b90505f5f85602001516fffffffffffffffffffffffffffffffff1614158015610eb457508185602001516fffffffffffffffffffffffffffffffff1610155b90505f610edb888860038110610ecd57610ecc613f76565b5b6020020151602001516120a3565b6fffffffffffffffffffffffffffffffff1916865f01516fffffffffffffffffffffffffffffffff1916148015610f5957505f73ffffffffffffffffffffffffffffffffffffffff16888860038110610f3757610f36613f76565b5b60200201516020015173ffffffffffffffffffffffffffffffffffffffff1614155b90505f60405180606001604052808a8a60038110610f7a57610f79613f76565b5b602002015160400151815260200188602001516fffffffffffffffffffffffffffffffff168152602001848015610fae5750835b15158152509050808b8960038110610fc957610fc8613f76565b5b6020020181905250505050505050505b8080600101915050610c53565b50505b5092915050565b60605f610ffb6113a3565b9150505f8113611037576040517f8002905d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8484905067ffffffffffffffff8111156110555761105461344c565b5b6040519080825280602002602001820160405280156110835781602001602082028036833780820191505090505b5090505f5f90505b85859050811015611186575f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634280b780858989868181106110e8576110e7613f76565b5b90506020028101906110fa91906145af565b6040518363ffffffff1660e01b815260040161111792919061484b565b602060405180830381865afa158015611132573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111569190614367565b90508083838151811061116c5761116b613f76565b5b60200260200101818152505050808060010191505061108b565b50809250505092915050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c46124b9565b6111cd8261259f565b6111d782826125aa565b5050565b5f6111e46126c8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b905090565b61121461274f565b8060028190555050565b61122661274f565b61122f5f6127d6565b565b61123961274f565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112a961274f565b60405180604001604052806112bd5f6120a3565b6fffffffffffffffffffffffffffffffff191681526020015f6fffffffffffffffffffffffffffffffff1681525060075f5f5f1b81526020019081526020015f205f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff021916908360801c02179055506020820151815f0160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050565b5f5f6113786128a7565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6113ad611da9565b5f5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611419573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143d9190613b2b565b505050915091505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d39190613bd8565b90505f6114e283836012611f23565b9050838195509550505050509091565b6114fa61274f565b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6115466128ce565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561158e5750825b90505f60018367ffffffffffffffff161480156115c157505f3073ffffffffffffffffffffffffffffffffffffffff163b145b9050811580156115cf575080155b15611606576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315611653576001855f0160086101000a81548160ff0219169083151502179055505b5f73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16036116b8576040517fb418582c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361171d576040517fe5020e6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8960015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550885f8190555060056002819055508760035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611834336128f5565b61183c612909565b8315611896575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161188d91906148c5565b60405180910390a15b50505050505050505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b5f8282905090505f54811115611942576040517f359fd04400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61194b6113a3565b5090505f5f90505b82811015611bd6573685858381811061196f5761196e613f76565b5b90506060020190505f5f1b8160400135036119ed576119e733825f01602081019061199a9190613a23565b836020013560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612913909392919063ffffffff16565b50611bc9565b611a5033825f016020810190611a039190613a23565b836020013560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612913909392919063ffffffff16565b6040518060400160405280611a75835f016020810190611a709190613a23565b6120a3565b6fffffffffffffffffffffffffffffffff1916815260200182602001356fffffffffffffffffffffffffffffffff1681525060075f836040013581526020019081526020015f205f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff021916908360801c02179055506020820151815f0160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050508260065f836040013581526020019081526020015f205f6101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff16021790555080604001358160200135825f016020810190611b859190613a23565b73ffffffffffffffffffffffffffffffffffffffff167ff998960b1c6f0e0e89b7bbe6b6fbf3e03e6f08eee5b8430877d8adb8e149d58060405160405180910390a4505b8080600101915050611953565b5050505050565b611be561274f565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b611c3661274f565b5f8111611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f9061494e565b60405180910390fd5b8060088190555050565b6006602052805f5260405f205f915054906101000a900469ffffffffffffffffffff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd561274f565b805f8190555050565b611ce661274f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d56575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611d4d91906136f5565b60405180910390fd5b611d5f816127d6565b50565b6007602052805f5260405f205f91509050805f015f9054906101000a900460801b90805f0160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b5f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160315611f21575f5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611e6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8e9190613b2b565b505092509250505f5f8314905080611ed2576040517f032b3d0000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8242611edf919061496c565b9050610e108111611f1c576040517fd15f73b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505b565b5f8160ff168360ff161015611f5f578282611f3e919061499f565b60ff16600a611f4d9190614b02565b84611f589190614b4c565b9050611f9e565b8160ff168360ff161115611f9a578183611f79919061499f565b60ff16600a611f889190614b02565b84611f939190614bef565b9050611f9e565b8390505b9392505050565b5f5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505f5f90505f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505f5f90505b855181101561208b575f60075f88848151811061201757612016613f76565b5b60200260200101516040015181526020019081526020015f205f0160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690505f81111561207d57838061207690614c57565b9450508192505b508080600101915050611ff7565b5060018203612098578092505b829350505050919050565b5f60208273ffffffffffffffffffffffffffffffffffffffff16901c60801b9050919050565b6120d1612e6a565b5f5f90505b838390508110156124b2575f60075f8686858181106120f8576120f7613f76565b5b905060200281019061210a9190613fa7565b6040013581526020019081526020015f206040518060400160405290815f82015f9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020015f820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060075f845f600381106121c2576121c1613f76565b5b60200201516040015181526020019081526020015f205f0160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681602001516fffffffffffffffffffffffffffffffff1611156122dd578260016003811061223a57612239613f76565b5b60200201518360026003811061225357612252613f76565b5b6020020181905250825f6003811061226e5761226d613f76565b5b60200201518360016003811061228757612286613f76565b5b60200201819052508484838181106122a2576122a1613f76565b5b90506020028101906122b49190613fa7565b6122bd90614c9e565b835f600381106122d0576122cf613f76565b5b60200201819052506124a4565b60075f846001600381106122f4576122f3613f76565b5b60200201516040015181526020019081526020015f205f0160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681602001516fffffffffffffffffffffffffffffffff1611156123dc578260016003811061236c5761236b613f76565b5b60200201518360026003811061238557612384613f76565b5b60200201819052508484838181106123a05761239f613f76565b5b90506020028101906123b29190613fa7565b6123bb90614c9e565b836001600381106123cf576123ce613f76565b5b60200201819052506124a3565b60075f846002600381106123f3576123f2613f76565b5b60200201516040015181526020019081526020015f205f0160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681602001516fffffffffffffffffffffffffffffffff1611156124a25784848381811061246a57612469613f76565b5b905060200281019061247c9190613fa7565b61248590614c9e565b8360026003811061249957612498613f76565b5b60200201819052505b5b5b5080806001019150506120d6565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148061256657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661254d612995565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561259d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6125a761274f565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561261257506040513d601f19601f8201168201806040525081019061260f9190614cc4565b60015b61265357816040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161264a91906136f5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b81146126b957806040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004016126b091906135d9565b60405180910390fd5b6126c383836129e8565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461274d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612757612a5a565b73ffffffffffffffffffffffffffffffffffffffff1661277561136e565b73ffffffffffffffffffffffffffffffffffffffff16146127d457612798612a5a565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016127cb91906136f5565b60405180910390fd5b565b5f6127df6128a7565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6128fd612a61565b61290681612aa1565b50565b612911612a61565b565b61298f848573ffffffffffffffffffffffffffffffffffffffff166323b872dd86868660405160240161294893929190614cef565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612b25565b50505050565b5f6129c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b612bc0565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6129f182612bc9565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f81511115612a4d57612a478282612c92565b50612a56565b612a55612d12565b5b5050565b5f33905090565b612a69612d4e565b612a9f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612aa9612a61565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b19575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612b1091906136f5565b60405180910390fd5b612b22816127d6565b50565b5f5f60205f8451602086015f885af180612b44576040513d5f823e3d81fd5b3d92505f519150505f8214612b5d576001811415612b78565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b15612bba57836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612bb191906136f5565b60405180910390fd5b50505050565b5f819050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b03612c2457806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401612c1b91906136f5565b60405180910390fd5b80612c507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b612bc0565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff1684604051612cbb9190614d68565b5f60405180830381855af49150503d805f8114612cf3576040519150601f19603f3d011682016040523d82523d5f602084013e612cf8565b606091505b5091509150612d08858383612d6c565b9250505092915050565b5f341115612d4c576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f612d576128ce565b5f0160089054906101000a900460ff16905090565b606082612d8157612d7c82612df9565b612df1565b5f8251148015612da757505f8473ffffffffffffffffffffffffffffffffffffffff163b145b15612de957836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401612de091906136f5565b60405180910390fd5b819050612df2565b5b9392505050565b5f81511115612e0b5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180606001604052806003905b612e54612e97565b815260200190600190039081612e4c5790505090565b60405180606001604052806003905b612e81612eb7565b815260200190600190039081612e795790505090565b60405180606001604052805f81526020015f81526020015f151581525090565b6040518060600160405280612eca612ef2565b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b6040518061012001604052805f6003811115612f1157612f10613ff7565b5b81526020015f81526020015f8152602001606081526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f69ffffffffffffffffffff82169050919050565b612f7781612f59565b8114612f81575f5ffd5b50565b5f81359050612f9281612f6e565b92915050565b5f60208284031215612fad57612fac612f51565b5b5f612fba84828501612f84565b91505092915050565b5f819050919050565b612fd581612fc3565b82525050565b5f602082019050612fee5f830184612fcc565b92915050565b5f819050919050565b61300681612ff4565b82525050565b5f60208201905061301f5f830184612ffd565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261304657613045613025565b5b8235905067ffffffffffffffff81111561306357613062613029565b5b60208301915083602082028301111561307f5761307e61302d565b5b9250929050565b5f5f6020838503121561309c5761309b612f51565b5b5f83013567ffffffffffffffff8111156130b9576130b8612f55565b5b6130c585828601613031565b92509250509250929050565b5f60039050919050565b5f81905092915050565b5f819050919050565b5f819050919050565b613100816130ee565b82525050565b61310f81612ff4565b82525050565b5f8115159050919050565b61312981613115565b82525050565b606082015f8201516131435f8501826130f7565b5060208201516131566020850182613106565b5060408201516131696040850182613120565b50505050565b5f61317a838361312f565b60608301905092915050565b5f602082019050919050565b61319b816130d1565b6131a581846130db565b92506131b0826130e5565b805f5b838110156131e05781516131c7878261316f565b96506131d283613186565b9250506001810190506131b3565b505050505050565b5f610120820190506131fc5f830184613192565b92915050565b5f5f83601f84011261321757613216613025565b5b8235905067ffffffffffffffff81111561323457613233613029565b5b6020830191508360208202830111156132505761324f61302d565b5b9250929050565b5f5f6020838503121561326d5761326c612f51565b5b5f83013567ffffffffffffffff81111561328a57613289612f55565b5b61329685828601613202565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6132d68383613106565b60208301905092915050565b5f602082019050919050565b5f6132f8826132a2565b61330281856132ac565b935061330d836132bc565b805f5b8381101561333d57815161332488826132cb565b975061332f836132e2565b925050600181019050613310565b5085935050505092915050565b5f6020820190508181035f83015261336281846132ee565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6133ac6133a76133a28461336a565b613389565b61336a565b9050919050565b5f6133bd82613392565b9050919050565b5f6133ce826133b3565b9050919050565b6133de816133c4565b82525050565b5f6020820190506133f75f8301846133d5565b92915050565b5f6134078261336a565b9050919050565b613417816133fd565b8114613421575f5ffd5b50565b5f813590506134328161340e565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6134828261343c565b810181811067ffffffffffffffff821117156134a1576134a061344c565b5b80604052505050565b5f6134b3612f48565b90506134bf8282613479565b919050565b5f67ffffffffffffffff8211156134de576134dd61344c565b5b6134e78261343c565b9050602081019050919050565b828183375f83830152505050565b5f61351461350f846134c4565b6134aa565b9050828152602081018484840111156135305761352f613438565b5b61353b8482856134f4565b509392505050565b5f82601f83011261355757613556613025565b5b8135613567848260208601613502565b91505092915050565b5f5f6040838503121561358657613585612f51565b5b5f61359385828601613424565b925050602083013567ffffffffffffffff8111156135b4576135b3612f55565b5b6135c085828601613543565b9150509250929050565b6135d3816130ee565b82525050565b5f6020820190506135ec5f8301846135ca565b92915050565b6135fb81612ff4565b8114613605575f5ffd5b50565b5f81359050613616816135f2565b92915050565b5f6020828403121561363157613630612f51565b5b5f61363e84828501613608565b91505092915050565b5f613651826133fd565b9050919050565b61366181613647565b811461366b575f5ffd5b50565b5f8135905061367c81613658565b92915050565b5f6020828403121561369757613696612f51565b5b5f6136a48482850161366e565b91505092915050565b5f6136b7826133b3565b9050919050565b6136c7816136ad565b82525050565b5f6020820190506136e05f8301846136be565b92915050565b6136ef816133fd565b82525050565b5f6020820190506137085f8301846136e6565b92915050565b61371781612f59565b82525050565b5f6040820190506137305f83018561370e565b61373d6020830184612fcc565b9392505050565b5f61374e826133fd565b9050919050565b61375e81613744565b8114613768575f5ffd5b50565b5f8135905061377981613755565b92915050565b5f6020828403121561379457613793612f51565b5b5f6137a18482850161376b565b91505092915050565b5f6137b4826133fd565b9050919050565b6137c4816137aa565b81146137ce575f5ffd5b50565b5f813590506137df816137bb565b92915050565b5f5f5f5f5f60a086880312156137fe576137fd612f51565b5b5f61380b888289016137d1565b955050602061381c88828901613608565b945050604061382d8882890161366e565b935050606061383e8882890161366e565b925050608061384f8882890161376b565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61388e8261385c565b6138988185613866565b93506138a8818560208601613876565b6138b18161343c565b840191505092915050565b5f6020820190508181035f8301526138d48184613884565b905092915050565b5f5f83601f8401126138f1576138f0613025565b5b8235905067ffffffffffffffff81111561390e5761390d613029565b5b60208301915083606082028301111561392a5761392961302d565b5b9250929050565b5f5f6020838503121561394757613946612f51565b5b5f83013567ffffffffffffffff81111561396457613963612f55565b5b613970858286016138dc565b92509250509250929050565b613985816130ee565b811461398f575f5ffd5b50565b5f813590506139a08161397c565b92915050565b5f602082840312156139bb576139ba612f51565b5b5f6139c884828501613992565b91505092915050565b5f6020820190506139e45f83018461370e565b92915050565b5f6139f4826133b3565b9050919050565b613a04816139ea565b82525050565b5f602082019050613a1d5f8301846139fb565b92915050565b5f60208284031215613a3857613a37612f51565b5b5f613a4584828501613424565b91505092915050565b5f7fffffffffffffffffffffffffffffffff0000000000000000000000000000000082169050919050565b613a8281613a4e565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b613aac81613a88565b82525050565b5f604082019050613ac55f830185613a79565b613ad26020830184613aa3565b9392505050565b5f81519050613ae781612f6e565b92915050565b613af681612fc3565b8114613b00575f5ffd5b50565b5f81519050613b1181613aed565b92915050565b5f81519050613b25816135f2565b92915050565b5f5f5f5f5f60a08688031215613b4457613b43612f51565b5b5f613b5188828901613ad9565b9550506020613b6288828901613b03565b9450506040613b7388828901613b17565b9350506060613b8488828901613b17565b9250506080613b9588828901613ad9565b9150509295509295909350565b5f60ff82169050919050565b613bb781613ba2565b8114613bc1575f5ffd5b50565b5f81519050613bd281613bae565b92915050565b5f60208284031215613bed57613bec612f51565b5b5f613bfa84828501613bc4565b91505092915050565b5f67ffffffffffffffff821115613c1d57613c1c61344c565b5b602082029050602081019050919050565b5f5ffd5b5f5ffd5b60048110613c42575f5ffd5b50565b5f81359050613c5381613c36565b92915050565b5f67ffffffffffffffff821115613c7357613c7261344c565b5b602082029050602081019050919050565b5f60408284031215613c9957613c98613c2e565b5b613ca360406134aa565b90505f613cb284828501613c45565b5f830152506020613cc584828501613608565b60208301525092915050565b5f613ce3613cde84613c59565b6134aa565b90508083825260208201905060408402830185811115613d0657613d0561302d565b5b835b81811015613d2f5780613d1b8882613c84565b845260208401935050604081019050613d08565b5050509392505050565b5f82601f830112613d4d57613d4c613025565b5b8135613d5d848260208601613cd1565b91505092915050565b5f6101208284031215613d7c57613d7b613c2e565b5b613d876101206134aa565b90505f613d9684828501613c45565b5f830152506020613da984828501613608565b6020830152506040613dbd84828501613608565b604083015250606082013567ffffffffffffffff811115613de157613de0613c32565b5b613ded84828501613d39565b6060830152506080613e0184828501613608565b60808301525060a0613e1584828501613608565b60a08301525060c0613e2984828501613608565b60c08301525060e0613e3d84828501613608565b60e083015250610100613e5284828501613608565b6101008301525092915050565b5f60608284031215613e7457613e73613c2e565b5b613e7e60606134aa565b90505f82013567ffffffffffffffff811115613e9d57613e9c613c32565b5b613ea984828501613d66565b5f830152506020613ebc84828501613424565b6020830152506040613ed084828501613992565b60408301525092915050565b5f613eee613ee984613c03565b6134aa565b90508083825260208201905060208402830185811115613f1157613f1061302d565b5b835b81811015613f5857803567ffffffffffffffff811115613f3657613f35613025565b5b808601613f438982613e5f565b85526020850194505050602081019050613f13565b5050509392505050565b5f613f6e368484613edc565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f82356001606003833603038112613fc257613fc1613fa3565b5b80830191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6004811061403557614034613ff7565b5b50565b5f81905061404582614024565b919050565b5f61405482614038565b9050919050565b6140648161404a565b82525050565b61407381612ff4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b604082015f8201516140b65f85018261405b565b5060208201516140c9602085018261406a565b50505050565b5f6140da83836140a2565b60408301905092915050565b5f602082019050919050565b5f6140fc82614079565b6141068185614083565b935061411183614093565b805f5b8381101561414157815161412888826140cf565b9750614133836140e6565b925050600181019050614114565b5085935050505092915050565b5f61012083015f8301516141645f86018261405b565b506020830151614177602086018261406a565b50604083015161418a604086018261406a565b50606083015184820360608601526141a282826140f2565b91505060808301516141b7608086018261406a565b5060a08301516141ca60a086018261406a565b5060c08301516141dd60c086018261406a565b5060e08301516141f060e086018261406a565b5061010083015161420561010086018261406a565b508091505092915050565b614219816133fd565b82525050565b614228816130ee565b82525050565b5f606083015f8301518482035f860152614248828261414e565b915050602083015161425d6020860182614210565b506040830151614270604086018261421f565b508091505092915050565b5f614286838361422e565b905092915050565b5f602082019050919050565b5f6142a482613fce565b6142ae8185613fd8565b9350836020820285016142c085613fe8565b805f5b858110156142fb57848403895281516142dc858261427b565b94506142e78361428e565b925060208a019950506001810190506142c3565b50829750879550505050505092915050565b614316816139ea565b82525050565b61432581612ff4565b82525050565b5f6060820190508181035f830152614343818661429a565b9050614352602083018561430d565b61435f604083018461431c565b949350505050565b5f6020828403121561437c5761437b612f51565b5b5f61438984828501613b17565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6143c982612ff4565b91506143d483612ff4565b92508282026143e281612ff4565b915082820484148315176143f9576143f8614392565b5b5092915050565b6144098161404a565b82525050565b5f82825260208201905092915050565b604082015f8201516144335f850182614400565b5060208201516144466020850182613106565b50505050565b5f614457838361441f565b60408301905092915050565b5f61446d82614079565b614477818561440f565b935061448283614093565b805f5b838110156144b2578151614499888261444c565b97506144a4836140e6565b925050600181019050614485565b5085935050505092915050565b5f61012083015f8301516144d55f860182614400565b5060208301516144e86020860182613106565b5060408301516144fb6040860182613106565b50606083015184820360608601526145138282614463565b91505060808301516145286080860182613106565b5060a083015161453b60a0860182613106565b5060c083015161454e60c0860182613106565b5060e083015161456160e0860182613106565b50610100830151614576610100860182613106565b508091505092915050565b5f6040820190506145945f830185612ffd565b81810360208301526145a681846144bf565b90509392505050565b5f82356001610120038336030381126145cb576145ca613fa3565b5b80830191505092915050565b5f6145e56020840184613c45565b905092915050565b5f6145fb6020840184613608565b905092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f8335600160200384360303811261462b5761462a61460b565b5b83810192508235915060208301925067ffffffffffffffff82111561465357614652614603565b5b60408202360383131561466957614668614607565b5b509250929050565b5f819050919050565b6040820161468a5f8301836145d7565b6146965f850182614400565b506146a460208301836145ed565b6146b16020850182613106565b50505050565b5f6146c2838361467a565b60408301905092915050565b5f82905092915050565b5f604082019050919050565b5f6146ef838561440f565b93506146fa82614671565b805f5b858110156147325761470f82846146ce565b61471988826146b7565b9750614724836146d8565b9250506001810190506146fd565b5085925050509392505050565b5f61012083016147515f8401846145d7565b61475d5f860182614400565b5061476b60208401846145ed565b6147786020860182613106565b5061478660408401846145ed565b6147936040860182613106565b506147a1606084018461460f565b85830360608701526147b48382846146e4565b925050506147c560808401846145ed565b6147d26080860182613106565b506147e060a08401846145ed565b6147ed60a0860182613106565b506147fb60c08401846145ed565b61480860c0860182613106565b5061481660e08401846145ed565b61482360e0860182613106565b506148326101008401846145ed565b614840610100860182613106565b508091505092915050565b5f60408201905061485e5f830185612ffd565b8181036020830152614870818461473f565b90509392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f6148af6148aa6148a584614879565b613389565b614882565b9050919050565b6148bf81614895565b82525050565b5f6020820190506148d85f8301846148b6565b92915050565b7f496e76616c69642073696e676c65207061796d656e74206d756c7469706c69655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f614938602183613866565b9150614943826148de565b604082019050919050565b5f6020820190508181035f8301526149658161492c565b9050919050565b5f61497682612ff4565b915061498183612ff4565b925082820390508181111561499957614998614392565b5b92915050565b5f6149a982613ba2565b91506149b483613ba2565b9250828203905060ff8111156149cd576149cc614392565b5b92915050565b5f8160011c9050919050565b5f5f8291508390505b6001851115614a2857808604811115614a0457614a03614392565b5b6001851615614a135780820291505b8081029050614a21856149d3565b94506149e8565b94509492505050565b5f82614a405760019050614afb565b81614a4d575f9050614afb565b8160018114614a635760028114614a6d57614a9c565b6001915050614afb565b60ff841115614a7f57614a7e614392565b5b8360020a915084821115614a9657614a95614392565b5b50614afb565b5060208310610133831016604e8410600b8410161715614ad15782820a905083811115614acc57614acb614392565b5b614afb565b614ade84848460016149df565b92509050818404811115614af557614af4614392565b5b81810290505b9392505050565b5f614b0c82612ff4565b9150614b1783612ff4565b9250614b447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614a31565b905092915050565b5f614b5682612fc3565b9150614b6183612fc3565b9250828202614b6f81612fc3565b91507f800000000000000000000000000000000000000000000000000000000000000084145f84121615614ba657614ba5614392565b5b8282058414831517614bbb57614bba614392565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614bf982612fc3565b9150614c0483612fc3565b925082614c1457614c13614bc2565b5b60015f0383147f800000000000000000000000000000000000000000000000000000000000000083141615614c4c57614c4b614392565b5b828205905092915050565b5f614c6182612ff4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c9357614c92614392565b5b600182019050919050565b5f614ca93683613e5f565b9050919050565b5f81519050614cbe8161397c565b92915050565b5f60208284031215614cd957614cd8612f51565b5b5f614ce684828501614cb0565b91505092915050565b5f606082019050614d025f8301866136e6565b614d0f60208301856136e6565b614d1c6040830184612ffd565b949350505050565b5f81519050919050565b5f81905092915050565b5f614d4282614d24565b614d4c8185614d2e565b9350614d5c818560208601613876565b80840191505092915050565b5f614d738284614d38565b91508190509291505056fea26469706673582212208251e648e6cf50af4255638bba481354ff0fa8e9f07448533301f361e855d3ca64736f6c634300081c0033