0 txs
16 calls
constructor
No constructor.
functions
evolveLiquidity
viewfunction evolveLiquidity() view returns (uint256)
factory
viewfunction factory() view returns (address)
gems
viewfunction gems() view returns (address)
getAmountIn
purefunction getAmountIn(uint256 amountOut, uint256 reserveOut, uint256 reserveIn) pure returns (uint256 amountIn)
getAmountInWithFee
viewfunction getAmountInWithFee(uint256 amountOut, uint256 reserveOut, uint256 reserveIn) view returns (uint256 amountInWithFee)
getAmountOut
purefunction getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns (uint256 amountOut)
getAmountOutWithFee
viewfunction getAmountOutWithFee(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) view returns (uint256 amountOutWithFee)
owner
viewfunction owner() view returns (address)
platformFee
viewfunction platformFee() view returns (uint256)
platformWallet
viewfunction platformWallet() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
signatureUsed
viewfunction signatureUsed(bytes) view returns (bool)
signer
viewfunction signer() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
weth
viewfunction weth() view returns (address)
buy
nonpayablefunction buy(uint256 amountToExchange, uint256 amountMinMax, bool exactIn, address namesToken, address to, uint256 deadline)
buyWithETH
payablefunction buyWithETH(uint256 amountMinMax, bool exactIn, address namesToken, address to, uint256 deadline) payable
initalize
nonpayablefunction initalize(address owner_, address gems_, address weth_, address signer_, address platformWallet_, uint256 platformFee_, uint256 evolveLiquidity_)
initializeFactory
nonpayablefunction initializeFactory(address newFactory)
launch
payablefunction launch(string name, string symbol, uint256 deadline, bytes signature) payable returns (address namesToken)
renounceOwnership
nonpayablefunction renounceOwnership()
sell
nonpayablefunction sell(uint256 amountToExchange, uint256 amountMinMax, bool exactIn, bool toUnwrap, address namesToken, address to, uint256 deadline)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateEvolveLiquidity
nonpayablefunction updateEvolveLiquidity(uint256 newEvolveLiquidity)
updatePlatformFee
nonpayablefunction updatePlatformFee(uint256 newPlatformFee)
updatePlatformWallet
nonpayablefunction updatePlatformWallet(address newPlatformWallet)
updateSigner
nonpayablefunction updateSigner(address newSinger)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Buy
event Buy(address indexed namesToken, address indexed pair, uint256 amountWETH, uint256 amountNamesToken, uint256 reserveWETH, uint256 reserveNamesToken, address to)
Evolve
event Evolve(address indexed namesToken, address indexed pair)
Initialized
event Initialized(uint64 version)
InitializeFactory
event InitializeFactory(address newFactory, address oldFactory)
Launch
event Launch(string name, string symbol, address indexed creator, address indexed namesToken, address indexed pair, uint256 totalPairs)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Sell
event Sell(address indexed namesToken, address indexed pair, uint256 amountNamesToken, uint256 amountWETH, uint256 reserveWETH, uint256 reserveNamesToken, address to)
UpdateEvolveLiquidity
event UpdateEvolveLiquidity(uint256 newEvolveLiquidity, uint256 oldEvolveLiquidity)
UpdatePlatformFee
event UpdatePlatformFee(uint256 newPlatformFee, uint256 oldPlatformFee)
UpdatePlatformWallet
event UpdatePlatformWallet(address newPlatformWallet, address oldPlatformWallet)
UpdateSigner
event UpdateSigner(address newSigner, address oldSigner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExceededDeadline
error ExceededDeadline()
ExcessiveInputAmount
error ExcessiveInputAmount()
FactoryNotInitialized
error FactoryNotInitialized()
FailedCall
error FailedCall()
InsufficientAmount
error InsufficientAmount()
InsufficientOutputAmount
error InsufficientOutputAmount()
InvalidAddress
error InvalidAddress()
InvalidAssignment
error InvalidAssignment()
InvalidInitialization
error InvalidInitialization()
InvalidSignature
error InvalidSignature()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156012575f5ffd5b506080516126526100395f395f81816112d6015281816112ff015261144301526126525ff3fe6080604052600436106101af575f3560e01c80637e4697fc116100e7578063bb10c82911610087578063c45a015511610062578063c45a0155146104df578063f2fde38b146104fe578063fa2af9da1461051d578063fe558f101461053c575f5ffd5b8063bb10c8291461046e578063bb1a737f146104b8578063bc22593e146104cb575f5ffd5b8063a7ecd37e116100c2578063a7ecd37e146103d4578063aa0b5988146103f3578063ad3cb1cc14610412578063ada4ef301461044f575f5ffd5b80637e4697fc1461035a57806385f8c259146103795780638da5cb5b14610398575f5ffd5b806352d1902d1161015257806355960aa41161012d57806355960aa4146102f55780636c305055146103145780636c86782814610333578063715018a614610346575f5ffd5b806352d1902d146102a3578063531cd224146102b7578063538a3f0e146102d6575f5ffd5b80633447f1041161018d5780633447f10414610231578063364a6944146102505780633fc8cef3146102715780634f1ef28614610290575f5ffd5b8063054d50d4146101b3578063238ac933146101e557806326232a2e1461021c575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004611e0d565b61055b565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b50600654610204906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b348015610227575f5ffd5b506101d260055481565b34801561023c575f5ffd5b506101d261024b366004611e0d565b61056f565b34801561025b575f5ffd5b5061026f61026a366004611e57565b61057e565b005b34801561027c575f5ffd5b50600254610204906001600160a01b031681565b61026f61029e366004611f7f565b6105d0565b3480156102ae575f5ffd5b506101d26105ef565b3480156102c2575f5ffd5b5061026f6102d1366004611fcc565b61060a565b3480156102e1575f5ffd5b5061026f6102f036600461204a565b6107cc565b348015610300575f5ffd5b5061026f61030f366004612065565b6108b7565b34801561031f575f5ffd5b50600154610204906001600160a01b031681565b610204610341366004612121565b610b68565b348015610351575f5ffd5b5061026f610db0565b348015610365575f5ffd5b5061026f6103743660046121d7565b610dc3565b348015610384575f5ffd5b506101d2610393366004611e0d565b610dd7565b3480156103a3575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610204565b3480156103df575f5ffd5b5061026f6103ee36600461204a565b610de3565b3480156103fe575f5ffd5b5061026f61040d3660046121d7565b610df4565b34801561041d575f5ffd5b50610442604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101dc919061221c565b34801561045a575f5ffd5b5061026f61046936600461204a565b610e05565b348015610479575f5ffd5b506104a861048836600461222e565b805160208183018101805160078252928201919093012091525460ff1681565b60405190151581526020016101dc565b61026f6104c6366004612260565b610e16565b3480156104d6575f5ffd5b506101d25f5481565b3480156104ea575f5ffd5b50600354610204906001600160a01b031681565b348015610509575f5ffd5b5061026f61051836600461204a565b610eca565b348015610528575f5ffd5b50600454610204906001600160a01b031681565b348015610547575f5ffd5b506101d2610556366004611e0d565b610f09565b5f610567848484610f18565b949350505050565b5f610567848484600554610f6e565b8061058881610fa8565b5f5f5f6105978a8a8a8a610fc0565b60025492955090935091506105b7906001600160a01b03163383866110aa565b6105c4838389848a611117565b50505050505050505050565b6105d86112cb565b6105e18261136f565b6105eb8282611377565b5050565b5f6105f8611438565b505f5160206125fd5f395f51905f5290565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561064f5750825b90505f8267ffffffffffffffff16600114801561066b5750303b155b905081158015610679575080155b156106975760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c157845460ff60401b1916600160401b1785555b6106c9611481565b6106d28c611489565b6001600160a01b038a1615806106ef57506001600160a01b038816155b156107045761070463e6c4247b60e01b61149a565b86158061070f575085155b1561072457610724632ca2f52b60e11b61149a565b600180546001600160a01b03808e166001600160a01b03199283161790925560028054928d169290911691909117905561075d896114a2565b6107668861154f565b61076f876115fc565b6107788661166e565b83156107be57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b6107d46116dd565b600254600160a01b900460ff16156107f6576107f6637fd217e360e01b61149a565b6001600160a01b0381166108145761081463e6c4247b60e01b61149a565b6003546001600160a01b039081169082160361083a5761083a637fd217e360e01b61149a565b600354604080516001600160a01b03808516825290921660208301527f34baf96e7fcacc94a5a9a7ebc82e37640ca3e68552e21a79f359caf50e2fe2fd910160405180910390a1600380546001600160a01b039092166001600160a01b03199092169190911790556002805460ff60a01b1916600160a01b179055565b806108c181610fa8565b600354604051630d3c450160e11b81526001600160a01b0386811660048301525f921690631a788a0290602401602060405180830381865afa158015610909573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092d91906122b7565b90505f5f61093a83611738565b915091505f5f8a15610973578c915061095482848661055b565b90508b81101561096e5761096e6342301c2360e01b61149a565b61099b565b61097e8d8585610dd7565b91508c90508b82111561099b5761099b63e1b0da4f60e01b61149a565b6109b06001600160a01b038a163387856110aa565b60405163135f0f8560e01b815260048101839052602481018290525f604482018190528b151560648301526001600160a01b038a8116608484015290919087169063135f0f859060a4016080604051808303815f875af1158015610a16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3a91906122ed565b60408051858152602081018590526001600160701b0393841681830181905292909316606084018190526001600160a01b038f811660808601529151929a509850939650919450888316928d16917fce0f086a8f92779a80758b1d481f2437e363e3c36bb300b37baa5b451b563dfd9181900360a00190a3856001600160a01b0316630d8d7f146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b129190612331565b15610b5857856001600160a01b03168a6001600160a01b03167f3429e50ffcf5595548958b612e8accf95b62580eba87ebb4e372dfe1d0a1edd060405160405180910390a35b5050505050505050505050505050565b5f83610b7381610fa8565b600254600160a01b900460ff1615155f03610b9857610b986311aa167d60e01b61149a565b610bae610ba7898989896117b0565b85856117ea565b610bc257610bc2638baa579f60e01b61149a565b600160078585604051610bd692919061234c565b908152604080519182900360209081018320805494151560ff199095169490941790935560c0601f8b0184900490930282018301905260a081018981525f928291908c908c90819085018382808284375f920182905250938552505050602082018a9052600480546001600160a01b0390811660408086019190915260055460608601528354608090950194909452600354935163dca7c84160e01b8152949550919384939092169163dca7c84191610c919187910161235b565b5f604051808303815f875af1158015610cac573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cd391908101906123c6565b809450819c5082955083985050505050816001600160a01b031663be9a65556040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610d1b575f5ffd5b505af1158015610d2d573d5f5f3e3d5ffd5b50505050816001600160a01b0316856001600160a01b0316336001600160a01b03167f6cb8bc0a0c4a8515421fb455a786d4ed2871a467c531d7905b9fd993f34181cf8e8e8e87604051610d849493929190612469565b60405180910390a4348015610da157610da15f600188338d610e16565b50505050509695505050505050565b610db86116dd565b610dc15f61187b565b565b610dcb6116dd565b610dd48161166e565b50565b5f6105678484846118eb565b610deb6116dd565b610dd4816114a2565b610dfc6116dd565b610dd4816115fc565b610e0d6116dd565b610dd48161154f565b80610e2081610fa8565b5f5f5f610e2f348a8a8a610fc0565b92509250925060025f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004015f604051808303818588803b158015610e82575f5ffd5b505af1158015610e94573d5f5f3e3d5ffd5b5050600254610eb293506001600160a01b031691508390508561192d565b610ebf838389848a611117565b505050505050505050565b610ed26116dd565b6001600160a01b038116610f0057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610dd48161187b565b5f61056784848460055461195e565b5f835f03610f3057610f30632ca2f52b60e11b61149a565b821580610f3b575081155b15610f5057610f5063bb55fd2760e01b61149a565b610f5a84846124cb565b610f6483866124de565b61056791906124f5565b5f806103e8610f7d8482612514565b610f8790886124de565b610f9191906124f5565b9050610f9e818686610f18565b9695505050505050565b42811015610dd457610dd46331f36aeb60e21b61149a565b600354604051630d3c450160e11b81526001600160a01b0383811660048301525f928392839290911690631a788a0290602401602060405180830381865afa15801561100e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122b7565b90505f5f61103f83611738565b9150915086156110765788945061105785838361056f565b935087841015611071576110716342301c2360e01b61149a565b61109e565b611081898284610f09565b94508893508785111561109e5761109e63e1b0da4f60e01b61149a565b50509450945094915050565b6040516001600160a01b0384811660248301528381166044830152606482018390526111119186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061198f565b50505050565b60405163135f0f8560e01b815260048101869052602481018590526001604482018190525f606483018190526001600160a01b038481166084850152909283929183919087169063135f0f859060a4016080604051808303815f875af1158015611183573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a791906122ed565b60408051858152602081018590526001600160701b0384811682840152831660608201526001600160a01b038b811660808301529151959e50939c50919750955088811692908a16917f8d0aaf9f88a0c8ece371b7250c39e5b2f8ea6338392a3cdd636d0800e24f382c919081900360a00190a3856001600160a01b0316630d8d7f146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611257573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b9190612331565b15610ebf57856001600160a01b0316876001600160a01b03167f3429e50ffcf5595548958b612e8accf95b62580eba87ebb4e372dfe1d0a1edd060405160405180910390a3505050505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061135157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113455f5160206125fd5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610dc15760405163703e46dd60e11b815260040160405180910390fd5b610dd46116dd565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113d1575060408051601f3d908101601f191682019092526113ce91810190612527565b60015b6113f957604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ef7565b5f5160206125fd5f395f51905f52811461142957604051632a87526960e21b815260048101829052602401610ef7565b61143383836119fb565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dc15760405163703e46dd60e11b815260040160405180910390fd5b610dc1611a50565b611491611a50565b610dd481611a99565b805f5260045ffd5b6001600160a01b0381166114c0576114c063e6c4247b60e01b61149a565b6006546001600160a01b03908116908216036114e6576114e6637fd217e360e01b61149a565b600654604080516001600160a01b03808516825290921660208301527f72959271bae82854684905271432777342373a732ba892607d189cbf5049086f910160405180910390a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661156d5761156d63e6c4247b60e01b61149a565b6004546001600160a01b039081169082160361159357611593637fd217e360e01b61149a565b600454604080516001600160a01b03808516825290921660208301527fa31a0871e96638141a6d14f91d9d806c9f760b3173a8c89cf8ebd42a5654692c910160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b805f0361161357611613632ca2f52b60e11b61149a565b600554810361162c5761162c637fd217e360e01b61149a565b6005546040805183815260208101929092527f61312852de43725e4264e8d956247989130cee42a6a07bb5475ed12335609c7b910160405180910390a1600555565b805f0361168557611685632ca2f52b60e11b61149a565b5f54810361169d5761169d637fd217e360e01b61149a565b5f546040805183815260208101929092527ff1f0b60edb879a2358d1a0b88a06c684c37f7f7f36ac223d35d2c135ef42034b910160405180910390a15f55565b3361170f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610dc15760405163118cdaa760e01b8152336004820152602401610ef7565b5f5f826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179a919061253e565b506001600160701b039182169591169350915050565b5f84848484336040516020016117ca9594939291906125a1565b604051602081830303815290604052805190602001209050949350505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c849052603c8120600654604080516020601f87018190048102820181019092528581526001600160a01b03909216916118669184919088908890819084018382808284375f92019190915250611aa192505050565b6001600160a01b0316149150505b9392505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f835f0361190357611903632ca2f52b60e11b61149a565b82158061190e575081155b156119235761192363bb55fd2760e01b61149a565b610f5a8484612514565b6040516001600160a01b0383811660248301526044820183905261143391859182169063a9059cbb906064016110df565b5f5f61196b8686866118eb565b9050611979836103e8612514565b611985826103e86124de565b610f9e91906124f5565b5f5f60205f8451602086015f885af1806119ae576040513d5f823e3d81fd5b50505f513d915081156119c55780600114156119d2565b6001600160a01b0384163b155b1561111157604051635274afe760e01b81526001600160a01b0385166004820152602401610ef7565b611a0482611acb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611a48576114338282611b2e565b6105eb611ba0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610dc157604051631afcd79f60e31b815260040160405180910390fd5b610ed2611a50565b5f5f5f5f611aaf8686611bbf565b925092509250611abf8282611c08565b50909150505b92915050565b806001600160a01b03163b5f03611b0057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ef7565b5f5160206125fd5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051611b4a91906125dd565b5f60405180830381855af49150503d805f8114611b82576040519150601f19603f3d011682016040523d82523d5f602084013e611b87565b606091505b5091509150611b97858383611cc0565b95945050505050565b3415610dc15760405163b398979f60e01b815260040160405180910390fd5b5f5f5f8351604103611bf6576020840151604085015160608601515f1a611be888828585611d1c565b955095509550505050611c01565b505081515f91506002905b9250925092565b5f826003811115611c1b57611c1b6125e8565b03611c24575050565b6001826003811115611c3857611c386125e8565b03611c565760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611c6a57611c6a6125e8565b03611c8b5760405163fce698f760e01b815260048101829052602401610ef7565b6003826003811115611c9f57611c9f6125e8565b036105eb576040516335e2f38360e21b815260048101829052602401610ef7565b606082611cd557611cd082611de4565b611874565b8151158015611cec57506001600160a01b0384163b155b15611d1557604051639996b31560e01b81526001600160a01b0385166004820152602401610ef7565b5080611874565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611d5557505f91506003905082611dda565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611da6573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611dd157505f925060019150829050611dda565b92505f91508190505b9450945094915050565b805115611df45780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f5f60608486031215611e1f575f5ffd5b505081359360208301359350604090920135919050565b8015158114610dd4575f5ffd5b6001600160a01b0381168114610dd4575f5ffd5b5f5f5f5f5f5f60c08789031215611e6c575f5ffd5b86359550602087013594506040870135611e8581611e36565b93506060870135611e9581611e43565b92506080870135611ea581611e43565b9598949750929591949360a090920135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ef757611ef7611eba565b604052919050565b5f67ffffffffffffffff821115611f1857611f18611eba565b50601f01601f191660200190565b5f611f38611f3384611eff565b611ece565b9050828152838383011115611f4b575f5ffd5b828260208301375f602084830101529392505050565b5f82601f830112611f70575f5ffd5b61187483833560208501611f26565b5f5f60408385031215611f90575f5ffd5b8235611f9b81611e43565b9150602083013567ffffffffffffffff811115611fb6575f5ffd5b611fc285828601611f61565b9150509250929050565b5f5f5f5f5f5f5f60e0888a031215611fe2575f5ffd5b8735611fed81611e43565b96506020880135611ffd81611e43565b9550604088013561200d81611e43565b9450606088013561201d81611e43565b9350608088013561202d81611e43565b9699959850939692959460a0840135945060c09093013592915050565b5f6020828403121561205a575f5ffd5b813561187481611e43565b5f5f5f5f5f5f5f60e0888a03121561207b575f5ffd5b8735965060208801359550604088013561209481611e36565b945060608801356120a481611e36565b935060808801356120b481611e43565b925060a08801356120c481611e43565b96999598509396929591949193505060c09091013590565b5f5f83601f8401126120ec575f5ffd5b50813567ffffffffffffffff811115612103575f5ffd5b60208301915083602082850101111561211a575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215612136575f5ffd5b863567ffffffffffffffff81111561214c575f5ffd5b61215889828a016120dc565b909750955050602087013567ffffffffffffffff811115612177575f5ffd5b8701601f81018913612187575f5ffd5b61219689823560208401611f26565b94505060408701359250606087013567ffffffffffffffff8111156121b9575f5ffd5b6121c589828a016120dc565b979a9699509497509295939492505050565b5f602082840312156121e7575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61187460208301846121ee565b5f6020828403121561223e575f5ffd5b813567ffffffffffffffff811115612254575f5ffd5b61056784828501611f61565b5f5f5f5f5f60a08688031215612274575f5ffd5b85359450602086013561228681611e36565b9350604086013561229681611e43565b925060608601356122a681611e43565b949793965091946080013592915050565b5f602082840312156122c7575f5ffd5b815161187481611e43565b80516001600160701b03811681146122e8575f5ffd5b919050565b5f5f5f5f60808587031215612300575f5ffd5b845160208601519094509250612318604086016122d2565b9150612326606086016122d2565b905092959194509250565b5f60208284031215612341575f5ffd5b815161187481611e36565b818382375f9101908152919050565b602081525f825160a0602084015261237660c08401826121ee565b90506020840151601f1984830301604085015261239382826121ee565b91505060018060a01b03604085015116606084015260608401516080840152608084015160a08401528091505092915050565b5f5f5f5f608085870312156123d9575f5ffd5b84516123e481611e43565b60208601519094506123f581611e43565b604086015190935067ffffffffffffffff811115612411575f5ffd5b8501601f81018713612421575f5ffd5b805161242f611f3382611eff565b818152886020838501011115612443575f5ffd5b8160208401602083015e5f91810160200191909152606096909601519497939650505050565b60608152836060820152838560808301375f608085830101525f601f19601f860116820160808382030160208401526124a560808201866121ee565b91505082604083015295945050505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611ac557611ac56124b7565b8082028115828204841417611ac557611ac56124b7565b5f8261250f57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115611ac557611ac56124b7565b5f60208284031215612537575f5ffd5b5051919050565b5f5f5f60608486031215612550575f5ffd5b612559846122d2565b9250612567602085016122d2565b9150604084015163ffffffff8116811461257f575f5ffd5b809150509250925092565b5f81518060208401855e5f93019283525090919050565b848682375f8582015f81526125b6818761258a565b94855250505060601b6bffffffffffffffffffffffff191660208201526034019392505050565b5f611874828461258a565b634e487b7160e01b5f52602160045260245ffdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b908f1fc681451354b79abd942870ed0542dfc7af7a5ed9c69d5e5dbb354bc1764736f6c634300081c0033