0 txs
3 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
checkpoints
viewfunction checkpoints(address account, uint32 pos) view returns (tuple)
claimed
viewfunction claimed() view returns (uint256)
CLOCK_MODE
viewfunction CLOCK_MODE() view returns (string)
clock
viewfunction clock() view returns (uint48)
decimals
viewfunction decimals() view returns (uint8)
delegates
viewfunction delegates(address account) view returns (address)
distancePerSecond
viewfunction distancePerSecond() view returns (uint160)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getClaimableAmount
viewfunction getClaimableAmount(address beneficiary) view returns (uint256)
getDistributionRecord
viewfunction getDistributionRecord(address beneficiary) view returns (tuple)
getFairDelayTime
viewfunction getFairDelayTime(address user) view returns (uint256)
getFractionDenominator
viewfunction getFractionDenominator() view returns (uint256)
getMerkleRoot
viewfunction getMerkleRoot() view returns (bytes32)
getPastTotalSupply
viewfunction getPastTotalSupply(uint256 timepoint) view returns (uint256)
getPastVotes
viewfunction getPastVotes(address account, uint256 timepoint) view returns (uint256)
getSweepRecipient
viewfunction getSweepRecipient() view returns (address)
getTotalVotes
viewfunction getTotalVotes() view returns (uint256)
getVestedFraction
viewfunction getVestedFraction(address beneficiary, uint256 time) view returns (uint256)
getVestingConfig
viewfunction getVestingConfig() view returns (uint256, uint256, uint256)
getVoteFactor
viewfunction getVoteFactor(address) view returns (uint256)
getVotes
viewfunction getVotes(address account) view returns (uint256)
maxDelayTime
viewfunction maxDelayTime() view returns (uint160)
NAME
purefunction NAME() pure returns (string)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(address account) view returns (uint32)
owner
viewfunction owner() view returns (address)
randomValue
viewfunction randomValue() view returns (uint160)
symbol
viewfunction symbol() view returns (string)
token
viewfunction token() view returns (address)
total
viewfunction total() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
uri
viewfunction uri() view returns (string)
VERSION
purefunction VERSION() pure returns (uint256)
adjust
nonpayablefunction adjust(address beneficiary, int256 amount)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claim
nonpayablefunction claim(uint256 index, address beneficiary, uint256 totalAmount, bytes32[] merkleProof)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
delegate
nonpayablefunction delegate(address delegatee)
delegateBySig
nonpayablefunction delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _token, uint256 _total, string _uri, uint256 _start, uint256 _cliff, uint256 _end, bytes32 _merkleRoot, uint160 _maxDelayTime, address _owner)
initializeDistributionRecord
nonpayablefunction initializeDistributionRecord(uint256 index, address beneficiary, uint256 amount, bytes32[] merkleProof)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
renounceOwnership
nonpayablefunction renounceOwnership()
setMerkleRoot
nonpayablefunction setMerkleRoot(bytes32 _merkleRoot)
setSweepRecipient
nonpayablefunction setSweepRecipient(address _recipient)
setToken
nonpayablefunction setToken(address _token)
setTotal
nonpayablefunction setTotal(uint256 _total)
setUri
nonpayablefunction setUri(string _uri)
setVestingConfig
nonpayablefunction setVestingConfig(uint256 _start, uint256 _cliff, uint256 _end)
setVoteFactor
nonpayablefunction setVoteFactor(uint256 _voteFactor)
sweepNative
nonpayablefunction sweepNative()
sweepNative
nonpayablefunction sweepNative(uint256 amount)
sweepToken
nonpayablefunction sweepToken(address token, uint256 amount)
sweepToken
nonpayablefunction sweepToken(address token)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Adjust
event Adjust(address indexed beneficiary, int256 amount)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Claim
event Claim(address indexed beneficiary, uint256 amount)
DelegateChanged
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
DelegateVotesChanged
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint8 version)
InitializeDistributionRecord
event InitializeDistributionRecord(address indexed beneficiary, uint256 total)
InitializeDistributor
event InitializeDistributor(address indexed token, uint256 total, string uri, uint256 fractionDenominator)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetContinuousVesting
event SetContinuousVesting(uint256 start, uint256 cliff, uint256 end)
SetDelay
event SetDelay(uint160 maxDelayTime)
SetMerkleRoot
event SetMerkleRoot(bytes32 merkleRoot)
SetSweepRecipient
event SetSweepRecipient(address recipient)
SetToken
event SetToken(address indexed token)
SetTotal
event SetTotal(uint256 total)
SetUri
event SetUri(string indexed uri)
SetVoteFactor
event SetVoteFactor(uint256 voteFactor)
SweepNative
event SweepNative(uint256 amount)
SweepToken
event SweepToken(address indexed token, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
InvalidShortString
error InvalidShortString()
StringTooLong
error StringTooLong(string str)
creation bytecode
0x6101606040818152346200058257620000188262000587565b60158252602091828101917f496e7465726e616c20766f746520747261636b6572000000000000000000000093848452815194620000568662000587565b60158652818601528151906200006c8262000587565b600382526212559560ea1b81830152825195620000898762000587565b6001808852603160f81b8389019081526000805462010000600160b01b0319811633601081811b62010000600160b01b031692909217845589519598939693957fccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f9389939192911c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08980a388546001600160a01b031916339081178a558152a180516001600160401b03939091908483116200056e576005928354928984811c9416801562000563575b898510146200046f578190601f9485811162000512575b508990858311600114620004ae578992620004a2575b5050600019600383901b1c191690891b1783555b8051928584116200048e57600654908982811c9216801562000483575b898310146200046f57908392918594821162000418575b505087918311600114620003b2578692620003a6575b5050600019600383901b1c191690861b176006555b6200020887620005b9565b976101209889526200021a8a62000796565b97610140988952519020988960e0525190209361010098858a524660a052865195858701917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528888015260608701524660808701523060a087015260a0865260c0860192868410908411176200039257828752855190206080523060c052600e5581549360ff8560081c166200033f57505060ff8084160362000305575b505050519161480293846200094f853960805184612d76015260a05184612e31015260c05184612d40015260e05184612dc501525183612deb01525182611269015251816112930152f35b60ff7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249893811916179055825160ff8152a1388080620002ba565b9066616c697a696e6760c81b6101246084938662461bcd60e51b855260c4820152602760e48201527f496e697469616c697a61626c653a20636f6e747261637420697320696e6974696101048201520152fd5b634e487b7160e01b84526041600452602484fd5b015190503880620001e8565b600687528787208994509190601f198416885b8a828210620004015750508411620003e7575b505050811b01600655620001fd565b015160001960f88460031b161c19169055388080620003d8565b8385015186558c97909501949384019301620003c5565b9091929350600688528888209084808701821c8301938b881062000465575b9187968d93969594929601901c01915b828110620004565750620001d2565b8981558695508b910162000447565b9350829362000437565b634e487b7160e01b88526022600452602488fd5b91607f1691620001bb565b634e487b7160e01b87526041600452602487fd5b0151905038806200018a565b868a528a8a208c94509190601f1984168b5b8d828210620004fb5750508411620004e1575b505050811b0183556200019e565b015160001960f88460031b161c19169055388080620004d3565b8385015186558f97909501949384019301620004c0565b90915085895289892085808501881c8201928c861062000559575b918d918695949301891c01915b8281106200054a57505062000174565b8b81558594508d91016200053a565b925081926200052d565b93607f16936200015d565b634e487b7160e01b86526041600452602486fd5b600080fd5b604081019081106001600160401b03821117620005a357604052565b634e487b7160e01b600052604160045260246000fd5b805160209081811015620006565750601f825111620005f55780825192015190808310620005e657501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106200063c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000618565b906001600160401b038211620005a357600754926001938481811c911680156200078b575b838210146200077557601f81116200073b575b5081601f8411600114620006cf5750928293918392600094620006c3575b50501b916000199060031b1c19161760075560ff90565b015192503880620006ac565b919083601f198116600760005284600020946000905b8883831062000720575050501062000706575b505050811b0160075560ff90565b015160001960f88460031b161c19169055388080620006f8565b858701518855909601959485019487935090810190620006e5565b600760005284601f84600020920160051c820191601f860160051c015b828110620007685750506200068e565b6000815501859062000758565b634e487b7160e01b600052602260045260246000fd5b90607f16906200067b565b805160209081811015620008245750601f825111620007c35780825192015190808310620005e657501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106200080a575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350620007e6565b906001600160401b038211620005a357600854926001938481811c9116801562000943575b838210146200077557601f811162000909575b5081601f84116001146200089d575092829391839260009462000891575b50501b916000199060031b1c19161760085560ff90565b0151925038806200087a565b919083601f198116600860005284600020946000905b88838310620008ee5750505010620008d4575b505050811b0160085560ff90565b015160001960f88460031b161c19169055388080620008c6565b858701518855909601959485019487935090810190620008b3565b600860005284601f84600020920160051c820191601f860160051c015b828110620009365750506200085c565b6000815501859062000926565b90607f16906200084956fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146103ed578063095ea7b3146103345780630f56b96c146103e8578063144fa6d7146103e357806318160ddd146103575780631be19560146103de5780631f8d1d50146103d957806323b872dd146103d4578063276801ec146103cf5780632ddbd13a146103ca5780632e7ba6ef146103c5578063313ce567146103c05780633644e515146103bb57806339509351146103b65780633a46b1a8146103b15780633cf3a025146103ac57806349590657146103a75780634bf5d7e9146103a2578063587cde1e1461039d5780635c19a95c14610398578063684de1f5146103935780636fcfff451461038e57806370a0823114610389578063715018a61461038457806375aa9bc61461037f5780637cb647591461037a5780637ecebe001461037557806384b0196e146103705780638da5cb5b1461036b5780638e539e8c1461036657806391ddadf41461036157806395d89b411461035c5780639a0e7d66146103575780639ab24eb0146103525780639b642de11461034d578063a011c8cc14610348578063a3f4df7e14610343578063a457c2d71461033e578063a4ef1f7814610339578063a9059cbb14610334578063ab803a761461032f578063b6d8f79f1461032a578063bb22dccb14610325578063bf38b5c814610320578063c32b13261461031b578063c3cda52014610316578063c6e8d98214610311578063c78d59851461030c578063c955725514610307578063d505accf14610302578063dd62ed3e146102fd578063de032f58146102f8578063e12f3a61146102f3578063e834a834146102ee578063e85858d9146102e9578063e90a182f146102e4578063eac989f8146102df578063f1127ed8146102da578063f2fde38b146102d5578063f56c8547146102d0578063fc0c546a146102cb5763ffa1ad74146102c657600080fd5b612353565b61232a565b612301565b612270565b6121e5565b61214e565b6120a2565b611fec565b611fce565b611fa7565b611f7a565b611f17565b611dd7565b611d8b565b611d62565b611d39565b611c0a565b611b7b565b611b49565b611b20565b611af5565b611a9a565b61053b565b611a73565b6119d0565b611965565b611823565b6116e4565b611539565b610622565b611490565b611464565b611374565b611347565b61124e565b611211565b6111c5565b610fd1565b610f71565b610f34565b610ee9565b610e92565b610e6c565b610e2d565b610d7b565b610d5d565b610cee565b610b95565b610aff565b610adc565b610ac0565b6108bf565b610840565b610817565b610775565b610729565b610640565b61057a565b61055c565b610446565b919082519283825260005b84811061041e575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016103fd565b9060206104439281815201906103f2565b90565b3461052557600080600319360112610522576040518160055461046881612114565b90818452602092600191828116908160001461050057506001146104a7575b6104a38561049781890382611643565b60405191829182610432565b0390f35b929450600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8284106104ed57505050816104a393610497928201019338610487565b80548585018701529285019281016104d0565b60ff191686860152505050151560051b8201019150610497816104a338610487565b80fd5b600080fd5b6001600160a01b0381160361052557565b346105255760403660031901126105255761055760043561052a565b612428565b34610525576000366003190112610525576020601454604051908152f35b34610525576020366003190112610525576004356105978161052a565b61059f61236f565b6001600160a01b031680156105e757601080546001600160a01b031916821790557fefc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b600080a2005b60405162461bcd60e51b8152602060048201526013602482015272746f6b656e206973206164647265737328302960681b6044820152606490fd5b34610525576000366003190112610525576020600454604051908152f35b346105255760203660031901126105255760043561065d8161052a565b61066561236f565b6040516370a0823160e01b81523060048201526001600160a01b0382169190602081602481865afa8015610724577ff4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d926106eb926000926106f0575b506001546106db9183916001600160a01b03165b906134c7565b6040519081529081906020820190565b0390a2005b6106db9192506107169060203d811161071d575b61070e8183611643565b8101906146f8565b91906106c1565b503d610704565b612caf565b34610525576020366003190112610525577fac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d29602060043561076861236f565b80601155604051908152a1005b34610525576060366003190112610525576004356107928161052a565b61079d60243561052a565b6001600160a01b0316600090815260036020908152604080832033845290915290205460018101156124285760443511156124285760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b34610525576000366003190112610525576017546040516001600160a01b039091168152602090f35b34610525576000366003190112610525576020601154604051908152f35b6080600319820112610525576004359160243561087a8161052a565b916044359160643567ffffffffffffffff9283821161052557806023830112156105255781600401359384116105255760248460051b83010111610525576024019190565b346105255761092d6109276108d33661085e565b92959360409592955161091c8161090e898b602084019687916054939183526001600160601b03199060601b16602083015260348201520190565b03601f198101835282611643565b51902092369161407c565b90614662565b6002600e5414610a7b576002600e556001600160781b0380911660018060a01b038316600052600f602052808260406000205460081c1603610a6b575b50610974826143b6565b168015610a0e576001600160a01b0382166000908152600f60205260409020610a0292906109e0906109ba846109b583546001600160781b039060801c1690565b6133d4565b8154600160801b600160f81b03191660809190911b600160801b600160f81b0316179055565b6109f46109ef8360125461248d565b601255565b6109fd816136bc565b614370565b610a0c6001600e55565b005b60405162461bcd60e51b815260206004820152602f60248201527f4469737472696275746f723a206e6f206d6f726520746f6b656e7320636c616960448201526e6d61626c65207269676874206e6f7760881b6064820152608490fd5b610a7590836140d2565b3861096a565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b3461052557600036600319011261052557602060405160128152f35b34610525576000366003190112610525576020610af7612d3d565b604051908152f35b3461052557604036600319011261052557610b44600435610b1f8161052a565b33600052600360205260406000209060018060a01b0316600052602052604060002090565b54602435810110610b905760405162461bcd60e51b81526020600482015260196024820152783234b9b0b13632b2103337b9103b37ba34b733903837bbb2b960391b6044820152606490fd5b612469565b3461052557604036600319011261052557600435610bb28161052a565b60243590610bd165ffffffffffff610bc943613229565b168310612536565b6001600160a01b03166000908152600c6020526040812080549290918360058111610c9d575b50905b838210610c4857505081610c21575050602060005b6040516001600160e01b039091168152f35b610c3c610c4391602093600019019060005260206000200190565b5460201c90565b610c0f565b9092610c548185613059565b90818363ffffffff610c7a610c70848960005260206000200190565b5463ffffffff1690565b161115610c8b575050925b90610bfa565b909450610c98915061247f565b610c85565b80610cad610cb39296939661306e565b90612582565b908263ffffffff610cce610c70858860005260206000200190565b161115610cde5750925b38610bf7565b9350610ce99061247f565b610cd8565b3461052557602036600319011261052557600435610d0a61236f565b7f3b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd26020600092610d53848080808560018060a01b03600154165af1610d4d6135fb565b50614707565b604051908152a180f35b34610525576000366003190112610525576020601c54604051908152f35b34610525576000366003190112610525574365ffffffffffff610d9d43613229565b1603610de8576104a3604051610db2816115d3565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829182610432565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b34610525576020366003190112610525576020600435610e4c8161052a565b60018060a01b03809116600052600b825260406000205416604051908152f35b3461052557602036600319011261052557610a0c600435610e8c8161052a565b336125db565b3461052557610a0c610927610ee4610ea93661085e565b92949360409692965161091c8161090e8a8a602084019687916054939183526001600160601b03199060601b16602083015260348201520190565b6140d2565b3461052557602036600319011261052557600435610f068161052a565b60018060a01b0316600052600c6020526020610f26604060002054613290565b63ffffffff60405191168152f35b3461052557602036600319011261052557600435610f518161052a565b60018060a01b031660005260026020526020604060002054604051908152f35b346105255760008060031936011261052257610f8b61236f565b805462010000600160b01b031981168255819060101c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461052557604036600319011261052557600435610fee8161052a565b7fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c83886106eb6024359261101e61236f565b6001600160a01b0381166000908152600f6020526040902061103f906132f5565b61105161104c8251151590565b61332c565b60008513156111b757845b6001600160781b0391611070838310613388565b600087121561116c57611149926110cf6110ca84611129946110c5826110be6110b26020601154956110a4858810156133ef565b01516001600160781b031690565b6001600160781b031690565b101561344b565b612582565b601155565b6001600160a01b0385166000908152600f602052604090206111089091841661110383546001600160781b039060081c1690565b6134ae565b610100600160801b0382549160081b1690610100600160801b031916179055565b6010546001600160a01b031660005460101c6001600160a01b03166106d5565b611152816136bc565b6040519384526001600160a01b0316929081906020820190565b506111086111b2926111836110ca8460115461248d565b6001600160a01b0385166000908152600f6020526040902092166109b583546001600160781b039060081c1690565b611149565b6111c085613377565b61105c565b34610525576020366003190112610525577f914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46602060043561120461236f565b80601c55604051908152a1005b346105255760203660031901126105255760043561122e8161052a565b60018060a01b031660005260096020526020604060002054604051908152f35b3461052557600080600319360112610522576112eb9061128d7f0000000000000000000000000000000000000000000000000000000000000000612e7d565b906112b77f0000000000000000000000000000000000000000000000000000000000000000612f77565b90604051916112c5836115ef565b8183526112f9602091604051968796600f60f81b885260e08589015260e08801906103f2565b9086820360408801526103f2565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061133057505050500390f35b835185528695509381019392810192600101611321565b346105255760003660031901126105255760005460405160109190911c6001600160a01b03168152602090f35b34610525576020366003190112610525576004356113a365ffffffffffff61139b43613229565b168210612536565b600d549060008260058111611421575b50905b8282106113e25782806113d0575060405160008152602090f35b610c43610c3c60209260001901612b2a565b90916113ee8184613059565b908263ffffffff611401610c7085612b2a565b1611156114115750915b906113b6565b925061141c9061247f565b61140b565b80610cad6114319295939561306e565b908263ffffffff611444610c7085612b2a565b1611156114545750915b386113b3565b925061145f9061247f565b61144e565b3461052557600036600319011261052557602061148043613229565b65ffffffffffff60405191168152f35b346105255760008060031936011261052257604051816006546114b281612114565b90818452602092600191828116908160001461050057506001146114e0576104a38561049781890382611643565b929450600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b82841061152657505050816104a393610497928201019338610487565b8054858501870152928501928101611509565b34610525576020366003190112610525576004356115568161052a565b6001600160a01b03166000908152600c6020526040902080548061158257505060405160008152602090f35b6020916115939160001901906124e6565b5054811c610c0f565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176115ce57604052565b61159c565b6040810190811067ffffffffffffffff8211176115ce57604052565b6020810190811067ffffffffffffffff8211176115ce57604052565b60c0810190811067ffffffffffffffff8211176115ce57604052565b6080810190811067ffffffffffffffff8211176115ce57604052565b90601f8019910116810190811067ffffffffffffffff8211176115ce57604052565b60405190611672826115d3565b565b60405190611672826115b2565b67ffffffffffffffff81116115ce57601f01601f191660200190565b81601f82011215610525578035906116b482611681565b926116c26040519485611643565b8284526020838301011161052557816000926020809301838601378301015290565b34610525576020806003193601126105255767ffffffffffffffff6004358181116105255761171790369060040161169d565b9161172061236f565b82519182116115ce5761173d82611738601354612114565b613ab5565b80601f83116001146117ab5750819061176d936000926117a0575b50508160011b916000199060031b1c19161790565b6013555b611779613be2565b7fd70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1f600080a2005b015190503880611758565b90601f198316936117cc60136000526000805160206147ad83398151915290565b926000905b86821061180b57505083600195106117f2575b505050811b01601355611771565b015160001960f88460031b161c191690553880806117e4565b806001859682949686015181550195019301906117d1565b3461052557610120366003190112610525576004356118418161052a565b60443567ffffffffffffffff8111610525576118646118d491369060040161169d565b60e4356118708161052a565b610104359161187e8361052a565b600054946118a360ff8760081c161580978198611957575b8115611937575b50613ccc565b856118b6600160ff196000541617600055565b61191e575b60c4359160a43591608435916064359160243590613d2f565b6118da57005b6118ea61ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989080602081015b0390a1005b61193261010061ff00196000541617600055565b6118bb565b303b15915081611949575b503861189d565b6001915060ff161438611942565b600160ff8216109150611896565b34610525576000366003190112610525576104a3604051611985816115b2565b602481527f436f6e74696e756f757356657374696e674d65726b6c65496e697469616c697a60208201526361626c6560e01b60408201526040519182916020835260208301906103f2565b34610525576040366003190112610525576004356119ed8161052a565b336000526003602052611a196024359160406000209060018060a01b0316600052602052604060002090565b5410156124285760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b34610525576020366003190112610525576020610af7600435611a958161052a565b6145f1565b346105255760008060031936011261052257611ab461236f565b7f3b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd2602047610d53848080808560018060a01b03600154165af1610d4d6135fb565b34610525576040366003190112610525576020610af7600435611b178161052a565b60243590613c6d565b3461052557602036600319011261052557611b3c60043561052a565b6020601854604051908152f35b3461052557600036600319011261052557601954601a54601b5460408051938452602084019290925290820152606090f35b34610525576060366003190112610525577f34ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b4602435600435611919604435611bc161236f565b8260195583601a5580601b55604051938493846040919493926060820195825260208201520152565b6064359060ff8216820361052557565b6084359060ff8216820361052557565b346105255760c036600319011261052557600435611c278161052a565b60443590602435611c36611bea565b92804211611cf457611cc6611cef91610a0c9560405190611cae82611ca06020820195898b8860609194939260808201957fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835260018060a01b0316602083015260408201520152565b03601f198101845283611643565b611cc160a4359360843593519020612e57565b612b54565b6001600160a01b038116600090815260096020526040902080546001810190915590921461258f565b6125db565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b34610525576000366003190112610525576015546040516001600160a01b039091168152602090f35b34610525576000366003190112610525576001546040516001600160a01b039091168152602090f35b34610525576020366003190112610525577f6c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc56020600435611dca61236f565b80601855604051908152a1005b346105255760e036600319011261052557600435611df48161052a565b60243590611e018261052a565b60643591611e0d611bfa565b90834211611ed25761055793611ebf92611eac611e458660018060a01b03166000526009602052604060002090815491600183019055565b611ca06040519485926020840197604435908b8a91959493909260a09360c08401977f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98552600180871b038092166020860152166040840152606083015260808201520152565b611cc160c4359360a43593519020612e57565b6001600160a01b0390811691161461249a565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b34610525576040366003190112610525576020611f71600435611f398161052a565b60243590611f468261052a565b60018060a01b03166000526003835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b3461052557602036600319011261052557610a0c600435611f9a8161052a565b611fa261236f565b614746565b34610525576020366003190112610525576020610af7600435611fc98161052a565b6143b6565b34610525576000366003190112610525576020601254604051908152f35b34610525576020366003190112610525576104a360043561200c8161052a565b604090600082805161201d816115b2565b828152826020820152015260018060a01b0316600052600f6020528060002090805191612049836115b2565b5460ff8116151583526001600160781b0390818160081c16602085015260801c1681830152519182918291909160406060820193805115158352816020820151916001600160781b038093166020860152015116910152565b34610525576040366003190112610525576004356120bf8161052a565b7ff4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d6020602435926120ee61236f565b6001546001600160a01b0391906121099086908416836134c7565b6040519485521692a2005b90600182811c92168015612144575b602083101461212e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612123565b3461052557600080600319360112610522576040518160135461217081612114565b908184526020926001918281169081600014610500575060011461219e576104a38561049781890382611643565b929450601383526000805160206147ad8339815191525b8284106121d257505050816104a393610497928201019338610487565b80548585018701529285019281016121b5565b34610525576040366003190112610525576004356122028161052a565b63ffffffff60243581811681036105255761224c6122529160409460006020875161222c816115d3565b82815201526001600160a01b03166000908152600c6020528590206124e6565b50612514565b8251815190921682526020908101516001600160e01b031690820152f35b346105255760203660031901126105255760043561228d8161052a565b61229561236f565b6001600160a01b038116156122ad57610a0c906123ca565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b34610525576000366003190112610525576016546040516001600160a01b039091168152602090f35b34610525576000366003190112610525576010546040516001600160a01b039091168152602090f35b3461052557600036600319011261052557602060405160038152f35b60005460101c6001600160a01b0316330361238657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000805462010000600160b01b03198116601084811b62010000600160b01b03169190911783556001600160a01b039384169391901c16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3565b60405162461bcd60e51b81526020600482015260196024820152783234b9b0b13632b2103337b9103b37ba34b733903837bbb2b960391b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b9060018201809211610b9057565b91908201809211610b9057565b156124a157565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b80548210156124fe5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b90604051612521816115d3565b602081935463ffffffff81168352811c910152565b1561253d57565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b91908203918211610b9057565b1561259657565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b6116729160018060a01b03809216600092818452600b60205280604085205416809260026020527f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f604087205496600b6020526040812094871694856001600160601b0360a01b82541617905580a45b6001600160a01b0380831693929116808414158061285e575b61266f575b50505050565b806126dd575b5082612682575b80612669565b6001600160a01b03166000908152600c602052604090207fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724916126c491612928565b60408051928352602083019190915290a238808061267c565b80600052600c6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724604060002080548015918260001461283b57612721611665565b6000815260006020820152915b602083015161274d906001600160e01b03165b6001600160e01b031690565b926127588985614792565b94159081612818575b50156127b6576127896127a092612777866131c0565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a238612675565b50612813906127da6127d56127ca43613229565b65ffffffffffff1690565b613290565b9061280e6127e7866131c0565b6127fe6127f2611665565b63ffffffff9095168552565b6001600160e01b03166020840152565b6128ce565b6127a0565b5163ffffffff16905063ffffffff6128326127ca43613229565b91161438612761565b61285861285360001984018360005260206000200190565b612514565b9161272e565b50821515612664565b600d5490600160401b8210156115ce576001820180600d558210156124fe57600d600052805160209182015190911b63ffffffff191663ffffffff91909116177fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb590910155565b8054600160401b8110156115ce576128eb916001820181556124e6565b61291257815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b9091815491821592836000146129c457612940611665565b60008152600060208201525b602081015161296e90612967906001600160e01b0316612741565b968761479f565b941590816129a1575b501561298d5761278961167292612777866131c0565b50611672906127da6127d56127ca43613229565b5163ffffffff16905063ffffffff6129bb6127ca43613229565b91161438612977565b6129dc61285360001983018460005260206000200190565b61294c565b600d5490918115918215612abc576129f7611665565b60008152600060208201525b6020810151612a2590612a1e906001600160e01b0316612741565b958661479f565b93159081612a99575b5015612a4e5761167290612789612a44856131c0565b9160001901612b2a565b50611672612a616127d56127ca43613229565b612a94612a6d856131c0565b612a84612a78611665565b63ffffffff9094168452565b6001600160e01b03166020830152565b612867565b5163ffffffff16905063ffffffff612ab36127ca43613229565b91161438612a2e565b612acc6128536000198301612b2a565b612a03565b600d5490918115918215612b1557612ae7611665565b60008152600060208201525b6020810151612a2590612b0e906001600160e01b0316612741565b9586614792565b612b256128536000198301612b2a565b612af3565b600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190565b916104439391612b6393612cbb565b919091612b8b565b60051115612b7557565b634e487b7160e01b600052602160045260246000fd5b612b9481612b6b565b80612b9c5750565b612ba581612b6b565b60018103612bf65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b0390fd5b612bff81612b6b565b60028103612c4c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80612c58600392612b6b565b14612c5f57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b6040513d6000823e3d90fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612d315791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156107245781516001600160a01b03811615612d2b579190565b50600190565b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612e2e575b15612d98577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612e288161160b565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612d6f565b604290612e62612d3d565b906040519161190160f01b8352600283015260228201522090565b60ff8114612ebb5760ff811690601f8211612ea95760405191612e9f836115d3565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600754816000612ece83612114565b808352602093600190818116908115612f575750600114612ef8575b505061044392500382611643565b9093915060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688936000915b818310612f3f57505061044393508201013880612eea565b85548784018501529485019486945091830191612f27565b91505061044394925060ff191682840152151560051b8201013880612eea565b60ff8114612f995760ff811690601f8211612ea95760405191612e9f836115d3565b50604051600854816000612fac83612114565b808352602093600190818116908115612f575750600114612fd557505061044392500382611643565b9093915060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3936000915b81831061301c57505061044393508201013880612eea565b85548784018501529485019486945091830191613004565b634e487b7160e01b600052601260045260246000fd5b8115613054570490565b613034565b90808216911860011c8101809111610b905790565b80156131a8578061314161313a61313061312661311c6131126131086130fe60016104439a6000908b60801c8061319c575b508060401c8061318f575b508060201c80613182575b508060101c80613175575b508060081c80613168575b508060041c8061315b575b508060021c8061314e575b50821c613147575b811c1b6130f7818b61304a565b0160011c90565b6130f7818a61304a565b6130f7818961304a565b6130f7818861304a565b6130f7818761304a565b6130f7818661304a565b6130f7818561304a565b809261304a565b906131ae565b81016130ea565b60029150910190386130e2565b60049150910190386130d7565b60089150910190386130cc565b60109150910190386130c1565b60209150910190386130b6565b60409150910190386130ab565b915050608090386130a0565b50600090565b90808210156131bb575090565b905090565b6001600160e01b03908181116131d4571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff9081811161323c571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff908181116132a1571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b90604051613302816115b2565b604081935460ff8116151583526001600160781b0390818160081c16602085015260801c16910152565b1561333357565b606460405162461bcd60e51b815260206004820152602060248201527f6d75737420696e697469616c697a65206265666f72652061646a757374696e676044820152fd5b600160ff1b8114610b905760000390565b1561338f57565b60405162461bcd60e51b815260206004820152601860248201527f61646a7573746d656e74203e206d61782075696e7431323000000000000000006044820152606490fd5b9190916001600160781b0380809416911601918211610b9057565b156133f657565b60405162461bcd60e51b815260206004820152602760248201527f64656372656173652067726561746572207468616e206469737472696275746f6044820152661c881d1bdd185b60ca1b6064820152608490fd5b1561345257565b60405162461bcd60e51b815260206004820152602e60248201527f64656372656173652067726561746572207468616e206469737472696275746960448201526d1bdb949958dbdc99081d1bdd185b60921b6064820152608490fd5b6001600160781b039182169082160391908211610b9057565b60405163a9059cbb60e01b602082019081526001600160a01b03938416602483015260448083019590955293815261355692909161350483611627565b1660405191613512836115d3565b602083527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020840152600080958192519082855af16135506135fb565b9161362b565b805190811591821561356f575b5050611672915061359c565b819250906020918101031261359857602001519081151582036105225750611672903880613563565b5080fd5b156135a357565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b3d15613626573d9061360c82611681565b9161361a6040519384611643565b82523d6000602084013e565b606090565b9192901561368d575081511561363f575090565b3b156136485790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156136a05750805190602001fd5b60405162461bcd60e51b8152908190612bf29060048301610432565b6001600160a01b038116600090815260026020908152604080832054600f9092529091209091906136ec906132f5565b6001600160781b0380602081604085015116930151168083101560001461374d5750505060005b8083111561372e576137289061167293612582565b906138bb565b80831061373a57505050565b6116729261374791612582565b906137d9565b6137649261375a916134ae565b1660185490613aa2565b6014549081156130545704613713565b1561377b57565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b906001600160a01b038216801561387657600454828101809111610b905761387293613857926138098593600455565b6001600160a01b0382166000908152600260209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3613a09565b60045461386d906001600160e01b031015613774565b6129e1565b5050565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b6001600160a01b03811691908215613963578181600061387295836138f561395e9660018060a01b03166000526002602052604060002090565b54613902828210156139b2565b0361391f8460018060a01b03166000526002602052604060002090565b5561392d8460045403600455565b6040518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3613a54565b612ad1565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b156139b957565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546001600160a01b03918216600090815260409020546116729392908116911661264b565b6001600160a01b039081166000908152600b60205260408120549080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546116729392908116911661264b565b81810292918115918404141715610b9057565b601f8111613ac1575050565b600090601382526000805160206147ad833981519152906020601f850160051c83019410613b0a575b601f0160051c01915b828110613aff57505050565b818155600101613af3565b9092508290613aea565b90815167ffffffffffffffff81116115ce57613b3581611738601354612114565b602080601f8311600114613b6c57508190613b6793946000926117a05750508160011b916000199060031b1c19161790565b601355565b90601f19831694613b8d60136000526000805160206147ad83398151915290565b926000905b878210613bca575050836001959610613bb1575b505050811b01601355565b015160001960f88460031b161c19169055388080613ba6565b80600185968294968601518155019501930190613b92565b604051806000601354613bf481612114565b90600190818116908115613c565750600114613c13575b505003902090565b601360009081529192506000805160206147ad8339815191525b838310613c405750505081013880613c0b565b8054868401528594506020909201918101613c2d565b60ff19168552505080151502820190503880613c0b565b613c76906145f1565b8103908111610b9057601a548111156131a857601b549081811015613cc45760145460195491828103908111610b9057613caf91613aa2565b9080830392808411610b905714613054570490565b505060145490565b15613cd357565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b979695949293909160018060a01b0394613d5960ff60005460081c16613d5481613f25565b613f25565b613d64868a16614746565b7f6c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5602061271080601855604051908152a1613da660ff60005460081c16613f25565b858a1615613ee157613e5e613edc98613e9597613dfc613e8b95613df76116729f996110ca613e909b613dda831515614205565b60018060a01b03166001600160601b0360a01b6010541617601055565b613b14565b613e0d670de0b6b3a7640000601455565b6010546001600160a01b03167f433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c718260115492613e53601454604051938493169583614251565b0390a28916906144b3565b613e6a83821115613f85565b613e7685841115613fd1565b613e8663f486570086111561401d565b601955565b601a55565b601b55565b601954601a54601b54604080519384526020840192909252908201527f34ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b490606090a1614620565b6123ca565b606460405162461bcd60e51b815260206004820152602060248201527f4469737472696275746f723a20746f6b656e20697320616464726573732830296044820152fd5b15613f2c57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b15613f8c57565b60405162461bcd60e51b815260206004820152601a60248201527f76657374696e6720636c696666206265666f72652073746172740000000000006044820152606490fd5b15613fd857565b60405162461bcd60e51b815260206004820152601860248201527f76657374696e6720656e64206265666f726520636c69666600000000000000006044820152606490fd5b1561402457565b60405162461bcd60e51b815260206004820152602a60248201527f76657374696e6720656e6473206166746572203431303234343438303020284a604482015269616e203120323130302960b01b6064820152608490fd5b90929167ffffffffffffffff84116115ce578360051b602092836040516140a582850182611643565b809781520191810192831161052557905b8282106140c35750505050565b813581529083019083016140b6565b6001600160781b038083116141ab5761167292166141646141186141088460018060a01b0316600052600f602052604060002090565b5460801c6001600160781b031690565b614147614123611674565b60018152916001600160781b03851660208401526001600160781b03166040830152565b6001600160a01b0384166000908152600f60205260409020614302565b6040516001600160781b039190911681526001600160a01b038216907fdb598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd243490602090a26136bc565b60405162461bcd60e51b815260206004820152602c60248201527f4469737472696275746f723a20746f74616c416d6f756e74203e20747970652860448201526b0ead2dce8626460525cdac2f60a31b6064820152608490fd5b1561420c57565b60405162461bcd60e51b815260206004820152601760248201527f4469737472696275746f723a20746f74616c20697320300000000000000000006044820152606490fd5b9291908352602060608185015260006013549161426d83612114565b9081606088015260809360019081811690816000146142e1575060011461429b575b50505060409150930152565b6013600090815293506000805160206147ad8339815191525b8385106142ce57505050509060409185010138808061428f565b80548986018701529382019381016142b4565b92505050604093925060ff191682870152151560051b85010138808061428f565b815181546020840151610100600160801b0360089190911b1691151560ff166fffffffffffffffffffffffffffffffff1990911617178155611672916001600160781b0390604001518254600160801b600160f81b031916911660801b600160801b600160f81b0316179055565b60207f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49160018060a01b03906143ab858284601054166134c7565b6040519485521692a2565b6001600160a01b0381166000908152600f602052604090205460ff1615614463576001600160a01b0381166000908152600f602052604090206143f8906132f5565b9061444b604061443c61443361442361441b60208801516001600160781b031690565b954290613c6d565b6001600160781b03809616613aa2565b6014549061304a565b9301516001600160781b031690565b1681811061445a575050600090565b61044391612582565b60405162461bcd60e51b815260206004820152602260248201527f4469737472696275746f723a20636c61696d206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b906144c560ff60005460081c16613f25565b601680546001600160a01b039384166001600160a01b0319918216811790925590928315600081614538575061305457837fdccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d928261167296602094045b16906015541617601555604051908152a1614569565b611672959150926020927fdccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d94614522565b6015546001600160a01b03919082161561387257818116156145ac576000194301438111610b90578290401618166001600160601b0360a01b6017541617601755565b60405162461bcd60e51b815260206004820152601860248201527f492064656d616e64206d6f72652072616e646f6d6e65737300000000000000006044820152606490fd5b6015546001600160a01b039190821690811561461857829081806017541691161816041690565b505050600090565b60207f914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a469161465560ff60005460081c16613f25565b80601c55604051908152a1565b601c5492600092915b82518410156146b7576020808560051b850101519160008382106000146146aa57506000525260406000205b926000198114610b90576001019261466b565b9160409383525220614697565b9150929150036146c357565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b210383937b7b360991b6044820152606490fd5b90816020910312610525575190565b1561470e57565b60405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606490fd5b600180546001600160a01b0319166001600160a01b0390921691821790556040519081527fccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f90602090a1565b908103908111610b905790565b908101809111610b90579056fe66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090a26469706673582212209b21dd9fd86a37a095e7e1655af01a59773522160014de033d5469b8c20b154d64736f6c63430008150033