0 txs
1k calls
constructor
No constructor.
functions
allChainsStaked
viewfunction allChainsStaked(uint256) view returns (uint256)
allChainsStakedLength
viewfunction allChainsStakedLength() view returns (uint256)
allPlatforms
viewfunction allPlatforms(uint256) view returns (string)
allPlatformsLength
viewfunction allPlatformsLength() view returns (uint256)
allProjects
viewfunction allProjects(uint256) view returns (address)
allProjectsLength
viewfunction allProjectsLength() view returns (uint256)
allUsdPaymentTokens
viewfunction allUsdPaymentTokens(uint256) view returns (address)
allUsdPaymentTokensLength
viewfunction allUsdPaymentTokensLength() view returns (uint256)
beacon
viewfunction beacon() view returns (address)
getChainStakedIndex
viewfunction getChainStakedIndex(uint256) view returns (uint256)
getPlatformIndex
viewfunction getPlatformIndex(string) view returns (uint256)
getUsdPaymentTokenIndex
viewfunction getUsdPaymentTokenIndex(address) view returns (uint256)
isKnown
viewfunction isKnown(address) view returns (bool)
isPlatformSupported
viewfunction isPlatformSupported(string _platform) view returns (bool)
isWorker
viewfunction isWorker(address) view returns (bool)
marketing
viewfunction marketing() view returns (address)
marketingPercentage_d2
viewfunction marketingPercentage_d2() view returns (uint256)
operational
viewfunction operational() view returns (address)
operationalPercentage_d2
viewfunction operationalPercentage_d2() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingProxyAdmin
viewfunction pendingProxyAdmin() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
proxyAdmin
viewfunction proxyAdmin() view returns (address)
savior
viewfunction savior() view returns (address)
treasury
viewfunction treasury() view returns (address)
treasuryPercentage_d2
viewfunction treasuryPercentage_d2() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
workerNumber
viewfunction workerNumber() view returns (uint256)
acceptProxyAdmin
nonpayablefunction acceptProxyAdmin()
addChainStaked
nonpayablefunction addChainStaked(uint256[] _chainID)
addPlatform
nonpayablefunction addPlatform(string _platform)
addUsdPaymentToken
nonpayablefunction addUsdPaymentToken(address _token)
addWorker
nonpayablefunction addWorker(address _worker)
config
nonpayablefunction config(address _beacon, address _savior)
createProject
nonpayablefunction createProject(uint128 _startInEpoch, uint128 _durationPerBoosterInSeconds, uint256 _sale, uint256[] _platformPercentage_d2, uint256 _tokenPriceInUsdDecimal, uint256[4] _feePercentage_d2, address _usdPaymentToken, string[3] _nameVersionMsg) returns (address project)
emitTokenBought
nonpayablefunction emitTokenBought(uint256 _usdIn, address _buyer, address _targetSale)
init
nonpayablefunction init(string[] _platforms, address _beacon, address _savior, address[] _workers)
removeChainStaked
nonpayablefunction removeChainStaked(uint256[] _chainID)
removePlatform
nonpayablefunction removePlatform(string _platform)
removeUsdPaymentToken
nonpayablefunction removeUsdPaymentToken(address _token)
removeWorker
nonpayablefunction removeWorker(address _worker)
renounceOwnership
nonpayablefunction renounceOwnership()
setVault
nonpayablefunction setVault(address _operational, address _marketing, address _treasury)
setVaultPercentage_d2
nonpayablefunction setVaultPercentage_d2(uint256 _operationalPercentage, uint256 _marketingPercentage, uint256 _treasuryPercentage)
togglePause
nonpayablefunction togglePause()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferProxyAdmin
nonpayablefunction transferProxyAdmin(address _newProxyAdmin)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
ProjectCreated
event ProjectCreated(address indexed project, uint256 index)
ProxyAdminTransferred
event ProxyAdminTransferred(address indexed previousProxyAdmin, address indexed newProxyAdmin)
ProxyAdminTransferStarted
event ProxyAdminTransferStarted(address indexed previousProxyAdmin, address indexed newProxyAdmin)
TokenBought
event TokenBought(uint256 usdIn, address buyer, address sale)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PendingProxyAdminUnauthorizedAccount
error PendingProxyAdminUnauthorizedAccount(address account)
ProxyAdminInvalidAccount
error ProxyAdminInvalidAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015601357600080fd5b5060805161367e61003d60003960008181611eda01528181611f030152612095015261367e6000f3fe6080604052600436106102ae5760003560e01c806376487f5411610175578063c1a48064116100dc578063ce5abfa711610095578063e05a40131161006f578063e05a40131461085d578063e8f55fb514610873578063f2fde38b14610893578063faca692a146108b357600080fd5b8063ce5abfa7146107fd578063d18f4b601461081d578063dfa78bf51461083d57600080fd5b8063c1a480641461073b578063c247b39214610768578063c4ae316814610788578063c4f987a51461079d578063cbf75c9a146107bd578063cd4322b4146107dd57600080fd5b80639b26d08c1161012e5780639b26d08c14610662578063aa15664514610678578063acc0bbf6146106a8578063ad3cb1cc146106bd578063b062dfb5146106fb578063b39e66b21461071b57600080fd5b806376487f54146105ad578063789598d2146105cd578063806ad57e146105ed5780638356ca4f1461060d57806386b1f3f31461062d5780638da5cb5b1461064d57600080fd5b8063451a9482116102195780635c975abb116101d25780635c975abb146104e257806361d027b31461051357806364059016146105335780636e09999e146105485780636e8f35b614610578578063715018a61461059857600080fd5b8063451a9482146104435780634990e42b146104655780634f1ef2861461047a57806352d1902d1461048d57806353b3194c146104a257806359659e90146104c257600080fd5b806325f86cbb1161026b57806325f86cbb1461038c5780632cd58be0146103a15780632d3e474a146103c15780632ddc19fc146103e15780633509d2e8146104195780633e47158c1461042e57600080fd5b80630a401086146102b357806316aba151146102f05780631a7c4911146103145780631b720d20146103295780631ebc69c014610349578063256103e514610376575b600080fd5b3480156102bf57600080fd5b50600a546102d3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102fc57600080fd5b5061030660025481565b6040519081526020016102e7565b34801561032057600080fd5b50600654610306565b34801561033557600080fd5b506102d361034436600461268f565b6108d3565b34801561035557600080fd5b50610306610364366004612761565b600e6020526000908152604090205481565b34801561038257600080fd5b5061030660005481565b34801561039857600080fd5b506102d3610ba9565b3480156103ad57600080fd5b506102d36103bc36600461277c565b610bde565b3480156103cd57600080fd5b50600b546102d3906001600160a01b031681565b3480156103ed57600080fd5b506103066103fc366004612823565b8051602081830181018051600d8252928201919093012091525481565b34801561042557600080fd5b50600554610306565b34801561043a57600080fd5b506102d3610c08565b34801561044f57600080fd5b5061046361045e366004612873565b610c25565b005b34801561047157600080fd5b50600454610306565b6104636104883660046128b4565b610dbb565b34801561049957600080fd5b50610306610dda565b3480156104ae57600080fd5b506102d36104bd36600461277c565b610df7565b3480156104ce57600080fd5b506008546102d3906001600160a01b031681565b3480156104ee57600080fd5b506000805160206136298339815191525460ff165b60405190151581526020016102e7565b34801561051f57600080fd5b50600c546102d3906001600160a01b031681565b34801561053f57600080fd5b50610463610e07565b34801561055457600080fd5b50610503610563366004612761565b60106020526000908152604090205460ff1681565b34801561058457600080fd5b50610463610593366004612761565b610e4f565b3480156105a457600080fd5b50610463610f65565b3480156105b957600080fd5b506104636105c8366004612915565b610f79565b3480156105d957600080fd5b506104636105e8366004612987565b61102d565b3480156105f957600080fd5b50610463610608366004612761565b6110c9565b34801561061957600080fd5b50610463610628366004612761565b611158565b34801561063957600080fd5b506104636106483660046129c3565b611230565b34801561065957600080fd5b506102d361158e565b34801561066e57600080fd5b5061030660035481565b34801561068457600080fd5b50610503610693366004612761565b60116020526000908152604090205460ff1681565b3480156106b457600080fd5b50600754610306565b3480156106c957600080fd5b506106ee604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102e79190612aa8565b34801561070757600080fd5b50610463610716366004612abb565b611598565b34801561072757600080fd5b506106ee61073636600461277c565b6115e3565b34801561074757600080fd5b5061030661075636600461277c565b600f6020526000908152604090205481565b34801561077457600080fd5b50610463610783366004612915565b61168f565b34801561079457600080fd5b50610463611867565b3480156107a957600080fd5b506104636107b8366004612761565b611897565b3480156107c957600080fd5b506104636107d8366004612ae7565b61191b565b3480156107e957600080fd5b506104636107f8366004612873565b61198d565b34801561080957600080fd5b50610463610818366004612b1a565b611a85565b34801561082957600080fd5b5061030661083836600461277c565b611b4e565b34801561084957600080fd5b506009546102d3906001600160a01b031681565b34801561086957600080fd5b5061030660015481565b34801561087f57600080fd5b5061046361088e366004612761565b611b6f565b34801561089f57600080fd5b506104636108ae366004612761565b611d1e565b3480156108bf57600080fd5b506105036108ce366004612915565b611d59565b60006108dd611e6c565b6108e5611e9d565b60006108f060045490565b90506001600160a01b0384161580159061094e57506001600160a01b0384166000908152600e602052604090205460068054909190811061093357610933612b46565b6000918252602090912001546001600160a01b038581169116145b801561095957508681145b801561096d57508a6001600160801b031642105b801561097a575060065415155b80156109905750600a546001600160a01b031615155b6109b55760405162461bcd60e51b81526004016109ac90612b5c565b60405180910390fd5b6000805b828160ff1610156109fd5789898260ff168181106109d9576109d9612b46565b90506020020135826109eb9190612b8f565b91506109f681612ba2565b90506109b9565b508061271014610a4f5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964205f706c6174666f726d50657263656e746167655f6432000060448201526064016109ac565b60006376bbcf7b60e01b8d8d8d8d8d8d8d8d8d604051602401610a7a99989796959493929190612c79565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260085491519092506001600160a01b03909116908290610acb906125b6565b610ad6929190612d16565b604051809103906000f080158015610af2573d6000803e3d6000fd5b5060058054600180820183557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090910180546001600160a01b0319166001600160a01b0385169081179091556000818152601060205260409020805460ff191683179055915492965090917f20bfd29f3d906f96fc35742fac45a554b19cbd4e21f8c4c1d84cb58fdfc32c8991610b8891612d3a565b60405190815260200160405180910390a25050509998505050505050505050565b6000807f8a59f7a64c66470bf640c97c76846f17f243529240a7e0230806f27e524062005b546001600160a01b031692915050565b60068181548110610bee57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610c206000805160206135e98339815191525490565b905090565b610c2d611e9d565b600754610c4c5760405162461bcd60e51b81526004016109ac90612b5c565b60005b81811015610db657828282818110610c6957610c69612b46565b905060200201356007600f6000868686818110610c8857610c88612b46565b9050602002013581526020019081526020016000205481548110610cae57610cae612b46565b906000526020600020015403610dae576000600f6000858585818110610cd657610cd6612b46565b905060200201358152602001908152602001600020549050600060076001600780549050610d049190612d3a565b81548110610d1457610d14612b46565b906000526020600020015490508060078381548110610d3557610d35612b46565b6000918252602080832090910192909255828152600f909152604090208290556007805480610d6657610d66612d4d565b60019003818190600052602060002001600090559055600f6000868686818110610d9257610d92612b46565b9050602002013581526020019081526020016000206000905550505b600101610c4f565b505050565b610dc3611ecf565b610dcc82611f74565b610dd68282611fcd565b5050565b6000610de461208a565b5060008051602061360983398151915290565b60058181548110610bee57600080fd5b3380610e11610ba9565b6001600160a01b031614610e4357604051635b33add360e01b81526001600160a01b03821660048201526024016109ac565b610e4c816120d3565b50565b610e57611e9d565b6001600160a01b038116610e7d5760405162461bcd60e51b81526004016109ac90612b5c565b60065415610f04576001600160a01b0381166000908152600e6020526040902054600680549091908110610eb357610eb3612b46565b6000918252602090912001546001600160a01b0390811690821603610f045760405162461bcd60e51b8152602060048201526007602482015266195e1a5cdd195960ca1b60448201526064016109ac565b600680546001600160a01b039092166000818152600e60205260408120849055600184018355919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90910180546001600160a01b0319169091179055565b610f6d611e9d565b610f776000612168565b565b610f81611e9d565b60045415610fca57610f938282611d59565b15610fca5760405162461bcd60e51b8152602060048201526007602482015266195e1a5cdd195960ca1b60448201526064016109ac565b600454604051600d90610fe09085908590612d63565b90815260405190819003602001902055600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01610db6828483612dfb565b3360009081526010602052604090205460ff1661107b5760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064016109ac565b604080518481526001600160a01b03848116602083015283168183015290517fda33032f9fdf4294e306d57542659d17b99275badf1c5f2e585f8f66a9e3fd5a9181900360600190a1505050565b6110d1611e9d565b6001600160a01b0381161580159061110257506001600160a01b03811660009081526011602052604090205460ff16155b61111e5760405162461bcd60e51b81526004016109ac90612b5c565b6001600160a01b0381166000908152601160205260408120805460ff191660011790556003805490919061115190612eba565b9091555050565b60006111706000805160206135e98339815191525490565b90506001600160a01b03811661119d576001600160a01b036000805160206135e9833981519152556111b2565b336001600160a01b038216146111b257600080fd5b7f8a59f7a64c66470bf640c97c76846f17f243529240a7e0230806f27e5240620080546001600160a01b0319166001600160a01b0384811691821783556000805160206135e9833981519152546040519116907fb2545529be52b939282eae695f247b67b12f64e824f7493a1fdfdae1259f426590600090a3505050565b60006112486000805160206135e98339815191525490565b90506001600160a01b038116611275576001600160a01b036000805160206135e98339815191525561128a565b336001600160a01b0382161461128a57600080fd5b60006112946121d9565b805490915060ff600160401b82041615906001600160401b03166000811580156112bb5750825b90506000826001600160401b031660011480156112d75750303b155b9050811580156112e5575080155b156113035760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561132d57845460ff60401b1916600160401b1785555b611335612202565b61133e3361220a565b611346612202565b61134f3361221b565b8a1580159061136657506001600160a01b038a1615155b801561137a57506001600160a01b03891615155b6113965760405162461bcd60e51b81526004016109ac90612b5c565b60005b60ff81168c111561144857600454600d8e8e60ff85168181106113be576113be612b46565b90506020028101906113d09190612ed3565b6040516113de929190612d63565b9081526040519081900360200190205560048d8d60ff841681811061140557611405612b46565b90506020028101906114179190612ed3565b825460018101845560009384526020909320909201916114379183612dfb565b5061144181612ba2565b9050611399565b50600880546001600160a01b03808d166001600160a01b03199283161790925560098054928c1692909116919091179055600387905586158015906114bb575060008888828161149a5761149a612b46565b90506020020160208101906114af9190612761565b6001600160a01b031614155b1561153a5760005b6003548160ff161015611538576001601160008b8b8560ff168181106114eb576114eb612b46565b90506020020160208101906115009190612761565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561153181612ba2565b90506114c3565b505b831561158057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b6000610c2061222c565b6115a0611e9d565b806115ab8385612b8f565b6115b59190612b8f565b612710146115d55760405162461bcd60e51b81526004016109ac90612b5c565b600092909255600155600255565b600481815481106115f357600080fd5b90600052602060002001600091509050805461160e90612d73565b80601f016020809104026020016040519081016040528092919081815260200182805461163a90612d73565b80156116875780601f1061165c57610100808354040283529160200191611687565b820191906000526020600020905b81548152906001019060200180831161166a57829003601f168201915b505050505081565b611697611e9d565b600454158015906116ad57506116ad8282611d59565b6116e25760405162461bcd60e51b815260206004820152600660248201526508599bdd5b9960d21b60448201526064016109ac565b6000600d83836040516116f6929190612d63565b908152602001604051809103902054905060006004600160048054905061171d9190612d3a565b8154811061172d5761172d612b46565b90600052602060002001805461174290612d73565b80601f016020809104026020016040519081016040528092919081815260200182805461176e90612d73565b80156117bb5780601f10611790576101008083540402835291602001916117bb565b820191906000526020600020905b81548152906001019060200180831161179e57829003601f168201915b5050505050905080600483815481106117d6576117d6612b46565b9060005260206000200190816117ec9190612f19565b5081600d826040516117fe9190612fd7565b90815260405190819003602001902055600480548061181f5761181f612d4d565b60019003818190600052602060002001600061183b91906125c3565b9055600d848460405161184f929190612d63565b90815260200160405180910390206000905550505050565b61186f611e9d565b6000805160206136298339815191525460ff161561188f57610f77612255565b610f776122b5565b61189f611e9d565b6001600160a01b038116158015906118cf57506001600160a01b03811660009081526011602052604090205460ff165b6118eb5760405162461bcd60e51b81526004016109ac90612b5c565b6001600160a01b0381166000908152601160205260408120805460ff191690556003805490919061115190612ff3565b611923611e9d565b6001600160a01b0382161580159061194357506001600160a01b03811615155b61195f5760405162461bcd60e51b81526004016109ac90612b5c565b600880546001600160a01b039384166001600160a01b03199182161790915560098054929093169116179055565b611995611e9d565b60005b81811015610db65760075415801590611a1057508282828181106119be576119be612b46565b905060200201356007600f60008686868181106119dd576119dd612b46565b9050602002013581526020019081526020016000205481548110611a0357611a03612b46565b9060005260206000200154145b611a7d57600754600f6000858585818110611a2d57611a2d612b46565b905060200201358152602001908152602001600020819055506007838383818110611a5a57611a5a612b46565b835460018101855560009485526020948590209190940292909201359190920155505b600101611998565b611a8d611e9d565b6001600160a01b03831615801590611aad57506001600160a01b03821615155b8015611ac157506001600160a01b03811615155b611add5760405162461bcd60e51b81526004016109ac90612b5c565b600a80546001600160a01b038086166001600160a01b031992831617909255600b8054858416908316179055600c805492841692909116919091179055600254600154600054611b2d9190612b8f565b611b379190612b8f565b61271014610db657610db6610fa0610bb880611598565b60078181548110611b5e57600080fd5b600091825260209091200154905081565b611b77611e9d565b6001600160a01b038116611b9d5760405162461bcd60e51b81526004016109ac90612b5c565b60065415801590611bf257506001600160a01b0381166000908152600e6020526040902054600680549091908110611bd757611bd7612b46565b6000918252602090912001546001600160a01b038281169116145b611c275760405162461bcd60e51b815260206004820152600660248201526508599bdd5b9960d21b60448201526064016109ac565b6001600160a01b0381166000908152600e602052604081205460068054919291611c5390600190612d3a565b81548110611c6357611c63612b46565b600091825260209091200154600680546001600160a01b039092169250829184908110611c9257611c92612b46565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600e909152604090208290556006805480611cdc57611cdc612d4d565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03949094168152600e90935250506040812055565b611d26611e9d565b6001600160a01b038116611d5057604051631e4fbdf760e01b8152600060048201526024016109ac565b610e4c81612168565b6000611e636004600d8585604051611d72929190612d63565b90815260200160405180910390205481548110611d9157611d91612b46565b906000526020600020018054611da690612d73565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd290612d73565b8015611e1f5780601f10611df457610100808354040283529160200191611e1f565b820191906000526020600020905b815481529060010190602001808311611e0257829003601f168201915b505050505084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506122fe9050565b90505b92915050565b6000805160206136298339815191525460ff1615610f775760405163d93c066560e01b815260040160405180910390fd5b33611ea661158e565b6001600160a01b031614610f775760405163118cdaa760e01b81523360048201526024016109ac565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611f5657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611f4a600080516020613609833981519152546001600160a01b031690565b6001600160a01b031614155b15610f775760405163703e46dd60e11b815260040160405180910390fd5b6000611f8c6000805160206135e98339815191525490565b90506001600160a01b038116611fb8576001600160a01b036000805160206135e9833981519152555050565b336001600160a01b03821614610dd657600080fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612027575060408051601f3d908101601f191682019092526120249181019061300a565b60015b61204f57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016109ac565b600080516020613609833981519152811461208057604051632a87526960e21b8152600481018290526024016109ac565b610db68383612323565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f775760405163703e46dd60e11b815260040160405180910390fd5b7f8a59f7a64c66470bf640c97c76846f17f243529240a7e0230806f27e5240620080546001600160a01b03191681556000805160206135e983398151915254826000805160206135e983398151915255826001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00611e66565b610f77612379565b612212612379565b610e4c8161239e565b612223612379565b610e4c816123a6565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300610bce565b61225d6123ea565b600080516020613629833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6122bd611e6c565b600080516020613629833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612297565b600081518351148015611e635750508051602091820120825192909101919091201490565b61232c8261241a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561237157610db6828261247f565b610dd66124f5565b612381612514565b610f7757604051631afcd79f60e31b815260040160405180910390fd5b611d26612379565b6123ae612379565b6001600160a01b0381166123d85760405163f17d1c4160e01b8152600060048201526024016109ac565b6000805160206135e983398151915255565b6000805160206136298339815191525460ff16610f7757604051638dfc202b60e01b815260040160405180910390fd5b806001600160a01b03163b60000361245057604051634c9c8ce360e01b81526001600160a01b03821660048201526024016109ac565b60008051602061360983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161249c9190612fd7565b600060405180830381855af49150503d80600081146124d7576040519150601f19603f3d011682016040523d82523d6000602084013e6124dc565b606091505b50915091506124ec85838361252e565b95945050505050565b3415610f775760405163b398979f60e01b815260040160405180910390fd5b600061251e6121d9565b54600160401b900460ff16919050565b6060826125435761253e8261258d565b612586565b815115801561255a57506001600160a01b0384163b155b1561258357604051639996b31560e01b81526001600160a01b03851660048201526024016109ac565b50805b9392505050565b80511561259d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105c58061302483390190565b5080546125cf90612d73565b6000825580601f106125df575050565b601f016020900490600052602060002090810190610e4c91905b8082111561260d57600081556001016125f9565b5090565b80356001600160801b038116811461262857600080fd5b919050565b60008083601f84011261263f57600080fd5b5081356001600160401b0381111561265657600080fd5b6020830191508360208260051b850101111561267157600080fd5b9250929050565b80356001600160a01b038116811461262857600080fd5b60008060008060008060008060006101608a8c0312156126ae57600080fd5b6126b78a612611565b98506126c560208b01612611565b975060408a0135965060608a01356001600160401b038111156126e757600080fd5b6126f38c828d0161262d565b90975095505060808a013593506101208a018b81111561271257600080fd5b60a08b01935061272181612678565b9250506101408a01356001600160401b0381111561273e57600080fd5b8a01606081018c101561275057600080fd5b809150509295985092959850929598565b60006020828403121561277357600080fd5b611e6382612678565b60006020828403121561278e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806001600160401b038411156127c5576127c5612795565b50604051601f19601f85018116603f011681018181106001600160401b03821117156127f3576127f3612795565b60405283815290508082840185101561280b57600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561283557600080fd5b81356001600160401b0381111561284b57600080fd5b8201601f8101841361285c57600080fd5b61286b848235602084016127ab565b949350505050565b6000806020838503121561288657600080fd5b82356001600160401b0381111561289c57600080fd5b6128a88582860161262d565b90969095509350505050565b600080604083850312156128c757600080fd5b6128d083612678565b915060208301356001600160401b038111156128eb57600080fd5b8301601f810185136128fc57600080fd5b61290b858235602084016127ab565b9150509250929050565b6000806020838503121561292857600080fd5b82356001600160401b0381111561293e57600080fd5b8301601f8101851361294f57600080fd5b80356001600160401b0381111561296557600080fd5b85602082840101111561297757600080fd5b6020919091019590945092505050565b60008060006060848603121561299c57600080fd5b833592506129ac60208501612678565b91506129ba60408501612678565b90509250925092565b600080600080600080608087890312156129dc57600080fd5b86356001600160401b038111156129f257600080fd5b6129fe89828a0161262d565b9097509550612a11905060208801612678565b9350612a1f60408801612678565b925060608701356001600160401b03811115612a3a57600080fd5b612a4689828a0161262d565b979a9699509497509295939492505050565b60005b83811015612a73578181015183820152602001612a5b565b50506000910152565b60008151808452612a94816020860160208601612a58565b601f01601f19169290920160200192915050565b602081526000611e636020830184612a7c565b600080600060608486031215612ad057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612afa57600080fd5b612b0383612678565b9150612b1160208401612678565b90509250929050565b600080600060608486031215612b2f57600080fd5b612b3884612678565b92506129ac60208501612678565b634e487b7160e01b600052603260045260246000fd5b60208082526003908201526218985960ea1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115611e6657611e66612b79565b600060ff821660ff8103612bb857612bb8612b79565b60010192915050565b60808183375050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600082606081018360005b6003811015612c6e5783830387528135601e19873603018112612c2057600080fd5b86016020810190356001600160401b03811115612c3c57600080fd5b803603821315612c4b57600080fd5b612c56858284612bca565b6020998a019990955093909301925050600101612bfe565b509095945050505050565b6001600160801b038a81168252891660208201526040810188905261016060608201819052810186905260006001600160fb1b03871115612cb957600080fd5b8660051b8089610180850137608083018790528201612cdb60a0840187612bc1565b6001600160a01b03851661012084015261018083820301610140840152612d06610180820185612bf3565b9c9b505050505050505050505050565b6001600160a01b038316815260406020820181905260009061286b90830184612a7c565b81810381811115611e6657611e66612b79565b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b600181811c90821680612d8757607f821691505b602082108103612da757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610db657806000526020600020601f840160051c81016020851015612dd45750805b601f840160051c820191505b81811015612df45760008155600101612de0565b5050505050565b6001600160401b03831115612e1257612e12612795565b612e2683612e208354612d73565b83612dad565b6000601f841160018114612e5a5760008515612e425750838201355b600019600387901b1c1916600186901b178355612df4565b600083815260209020601f19861690835b82811015612e8b5786850135825560209485019460019092019101612e6b565b5086821015612ea85760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600060018201612ecc57612ecc612b79565b5060010190565b6000808335601e19843603018112612eea57600080fd5b8301803591506001600160401b03821115612f0457600080fd5b60200191503681900382131561267157600080fd5b81516001600160401b03811115612f3257612f32612795565b612f4681612f408454612d73565b84612dad565b6020601f821160018114612f7a5760008315612f625750848201515b600019600385901b1c1916600184901b178455612df4565b600084815260208120601f198516915b82811015612faa5787850151825560209485019460019092019101612f8a565b5084821015612fc85786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60008251612fe9818460208701612a58565b9190910192915050565b60008161300257613002612b79565b506000190190565b60006020828403121561301c57600080fd5b505191905056fe60a06040526040516105c53803806105c583398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161012761049e6000396000601e01526101276000f3fe6080604052600a600c565b005b60186014601a565b60a0565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156079573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190609b919060c3565b905090565b3660008037600080366000845af43d6000803e80801560be573d6000f35b3d6000fd5b60006020828403121560d457600080fd5b81516001600160a01b038116811460ea57600080fd5b939250505056fea264697066735822122009d80dd71f8fe3c6c9965b7cb26e02aa3da704747d16f98c2e9e6432ddccd86e64736f6c634300081e0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a26469706673582212207787a9a21361c2386fa7f8cdc624914c74dea8e6e42737e033ebb0ca3e9462b664736f6c634300081e0033