0 txs
2 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
currentStatus
viewfunction currentStatus() view returns (uint8)
decimals
viewfunction decimals() view returns (uint8)
feeRecipient
viewfunction feeRecipient() view returns (address)
finalTokenSupply
viewfunction finalTokenSupply() view returns (uint256)
getAmountOfEthToSell
viewfunction getAmountOfEthToSell(uint256 _tokenAmount) view returns (uint256 ethToUser)
getAmountOfTokensToBuy
viewfunction getAmountOfTokensToBuy(uint256 _ethAmount) view returns (uint256 tokensToMint)
getBondingCurveConfig
viewfunction getBondingCurveConfig() view returns (uint256 num, uint256 den)
getBondingProgressPercent
viewfunction getBondingProgressPercent() view returns (uint256 progressBps, uint256 raised, uint256 threshold)
getCurrentBondingCurvePricePerToken
viewfunction getCurrentBondingCurvePricePerToken() view returns (uint256 currentPriceWei)
getCurrentPhase
viewfunction getCurrentPhase() view returns (string phase)
getCurrentStatusEnum
viewfunction getCurrentStatusEnum() view returns (uint8)
getFeeRecipient
viewfunction getFeeRecipient() view returns (address)
getLPSplitRatioFeeRecipientBps
viewfunction getLPSplitRatioFeeRecipientBps() view returns (uint256)
getPaginatedHolders
viewfunction getPaginatedHolders(uint256 _startIndex, uint256 _count) view returns (address[] holders, uint256[] balances)
getTargetEth
viewfunction getTargetEth() view returns (uint256)
getUniswapV2Router
viewfunction getUniswapV2Router() view returns (address)
getUserQuote
viewfunction getUserQuote(address user) view returns (uint256 balance, uint256 tokensFor1Eth, uint256 ethFor1Token)
lpSplitRatioFeeRecipientBps
viewfunction lpSplitRatioFeeRecipientBps() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
scaledCurveExponent
viewfunction scaledCurveExponent() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
targetEth
viewfunction targetEth() view returns (uint256)
totalEthRaisedBonding
viewfunction totalEthRaisedBonding() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
buy
payablefunction buy(uint256 _minTokensOut) payable
initialize
nonpayablefunction initialize(tuple _config) returns (bool success)
migrateToDex
nonpayablefunction migrateToDex()
renounceOwnership
nonpayablefunction renounceOwnership()
sell
nonpayablefunction sell(uint256 _tokenAmount, uint256 _minEthOut)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Bought
event Bought(address indexed buyer, uint256 ethIn, uint256 tokensOut, uint256 fee)
DexMigration
event DexMigration(uint256 ethForLp, uint256 tokensForLp, uint256 ethForFeeRecipient)
Initialized
event Initialized(address indexed initializer, string name, string symbol)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Sold
event Sold(address indexed seller, uint256 tokensIn, uint256 ethOut, uint256 fee)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
CalculatedEthOutIsZero
error CalculatedEthOutIsZero()
CurveReserveInsufficient
error CurveReserveInsufficient(uint256 required, uint256 available)
DexTriggerThresholdNotMet
error DexTriggerThresholdNotMet(uint256 currentRaised, uint256 threshold)
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
EthAmountMustBePositive
error EthAmountMustBePositive()
EthForCurveMustBePositive
error EthForCurveMustBePositive()
EthTransferFailed
error EthTransferFailed(address recipient)
ExpectedBondingPhase
error ExpectedBondingPhase()
FeeRecipientLPSplitPayoutFailed
error FeeRecipientLPSplitPayoutFailed()
FeeTransferFailed
error FeeTransferFailed()
InsufficientEthForLiquidity
error InsufficientEthForLiquidity(uint256 available)
InsufficientTokenBalance
error InsufficientTokenBalance(address owner, uint256 required, uint256 available)
InvalidCurveExponent
error InvalidCurveExponent(uint256 value)
InvalidPhaseForAction
error InvalidPhaseForAction(uint8 currentPhase, uint8 requiredPhase)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PRBMath_MulDiv_Overflow
error PRBMath_MulDiv_Overflow(uint256 x, uint256 y, uint256 denominator)
PRBMath_MulDiv18_Overflow
error PRBMath_MulDiv18_Overflow(uint256 x, uint256 y)
PRBMath_UD60x18_Exp2_InputTooBig
error PRBMath_UD60x18_Exp2_InputTooBig(uint256 x)
PRBMath_UD60x18_Log_InputTooSmall
error PRBMath_UD60x18_Log_InputTooSmall(uint256 x)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SlippageProtectionEth
error SlippageProtectionEth(uint256 ethToUser, uint256 minEthOut)
SlippageProtectionTokens
error SlippageProtectionTokens(uint256 tokensToMint, uint256 minTokensOut)
TokenAmountMustBePositive
error TokenAmountMustBePositive()
TradingDisabledDexPhaseActive
error TradingDisabledDexPhaseActive()
ValidationInvalidAggressivenessFactor
error ValidationInvalidAggressivenessFactor(uint256 value)
ValidationInvalidFeeRecipientAddress
error ValidationInvalidFeeRecipientAddress(address providedAddress)
ValidationInvalidFinalTokenSupply
error ValidationInvalidFinalTokenSupply(uint256 value)
ValidationInvalidLPSplitRatio
error ValidationInvalidLPSplitRatio(uint256 value)
ValidationInvalidMigrationAdminAddress
error ValidationInvalidMigrationAdminAddress(address providedAddress)
ValidationInvalidRouterAddress
error ValidationInvalidRouterAddress(address providedAddress)
creation bytecode
0x6080604052346103aa57604080519081016001600160401b038111828210176102b5576040908152601482527f426f6e646b6974546f6b656e54656d706c617465000000000000000000000000602083015280519081016001600160401b038111828210176102b557604052600381526210951560ea1b602082015281516001600160401b0381116102b557600354600181811c911680156103a0575b602082101461029557601f811161033b575b50602092601f82116001146102d657928192936000926102cb575b50508160011b916000199060031b1c1916176003555b80516001600160401b0381116102b557600454600181811c911680156102ab575b602082101461029557601f8111610230575b50602091601f82116001146101cc579181926000926101c1575b50508160011b916000199060031b1c1916176004555b33156101ab5760058054336001600160a01b03198216811790925560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600160065560ff1960095416600955612f5d90816103b08239f35b631e4fbdf760e01b600052600060045260246000fd5b01519050388061012c565b601f198216926004600052806000209160005b858110610218575083600195106101ff575b505050811b01600455610142565b015160001960f88460031b161c191690553880806101f1565b919260206001819286850151815501940192016101df565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061028b575b601f0160051c01905b81811061027f5750610112565b60008155600101610272565b9091508190610269565b634e487b7160e01b600052602260045260246000fd5b90607f1690610100565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c9565b601f198216936003600052806000209160005b868110610323575083600195961061030a575b505050811b016003556100df565b015160001960f88460031b161c191690553880806102fc565b919260206001819286850151815501940192016102e9565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610396575b601f0160051c01905b81811061038a57506100ae565b6000815560010161037d565b9091508190610374565b90607f169061009c565b600080fdfe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c90816271c175146118205750806306fdde0314611789578063095ea7b3146117635780631694505e1461173a57806318160ddd1461171c5780631f5092bb146116fe57806323b872dd14611611578063284211b91461158b578063313ce5671461156f57806331e14f7314611551578063354c03e71461151f5780633aac84dc1461129357806346904840146112665780634ccb20c01461122757806351233a0e146111c657806353afe8ef1461119457806365d4bdab1461117657806370a082311461113c578063710bebae1461106f578063715018a61461104e5780638da5cb5b1461102557806394ce155414610fe857806395d89b4114610f2c5780639c4212d014610f0e578063a3a40ea514610ee2578063a9059cbb14610eb1578063b286d2d3146108c2578063d79875eb14610609578063d96a094a146103df578063dd62ed3e1461038e578063edd55fa114610334578063eea679cc1461035c578063ef8a923514610334578063efd04d2b14610316578063f2fde38b146102c7578063f5da42f3146102675763fb65dace146101c0573861000f565b34610262576101d76101d1366118cd565b90611d32565b906040519182916040830160408452815180915260206060850192019060005b8181106102405750505082810360208401526020808351928381520192019060005b818110610227575050500390f35b8251845285945060209384019390920191600101610219565b82516001600160a01b03168452869550602093840193909201916001016101f7565b600080fd5b346102625760003660031901126102625760ff6009541660038110156102b157156102a0576040600b54600a5482519182526020820152f35b6307aa71a160e11b60005260046000fd5b634e487b7160e01b600052602160045260246000fd5b34610262576020366003190112610262576102e06118a1565b6102e8612023565b6001600160a01b038116156103005761001b90612171565b631e4fbdf760e01b600052600060045260246000fd5b34610262576000366003190112610262576020601154604051908152f35b3461026257600036600319011261026257602060ff6009541661035a60405180926118f1565bf35b346102625760003660031901126102625760ff6009541660038110156102b157156102a0576020600c54604051908152f35b34610262576040366003190112610262576103a76118a1565b6103af6118b7565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b6020366003190112610262576004356103f661204c565b60ff6009541660038110156102b157600181036105ea575034156105d9576101f434023481046101f4036105c357612710900461043381346119fe565b918215806105bb575b61058857600254926011549080600c54808410156105aa5780610460859384611a4b565b11610599575b505080156105885761047791611a4b565b90610481826120de565b848082111561057e57610493916119fe565b935b61049f8582611a4b565b600a5480911161055f575b5050808410610547575060115581610538575b80610504575b60408051348152602081019390935282015233907fedba86fd2b22962d534e70ad9b0ff8730de46f636146f2bab6a72cbb1ebbcc5390606090a26001600655005b60008080808460018060a01b0360095460081c165af1610522611a0b565b506104c357634033e4e360e01b60005260046000fd5b610542823361206e565b6104bd565b836355b29c3d60e11b60005260045260245260446000fd5b61056a9295506119fe565b928315610579575b84806104aa565b610572565b5050600093610495565b630ad7f77160e41b60005260046000fd5b6105a392506119fe565b8186610466565b636ed4467360e11b60005260046000fd5b50600161043c565b634e487b7160e01b600052601160045260246000fd5b63ed20bced60e01b60005260046000fd5b6395e3db4560e01b6000526105fe906118e3565b600160245260446000fd5b3461026257610617366118cd565b9061062061204c565b60ff6009541660038110156102b157600181036105ea575080156108b1573360005260006020526040600020548181106108955750610669610664826002546119fe565b6121ba565b916011549081841180610882575b6108695761068584836119fe565b918215908180610861575b80610858575b61083f571580610850575b61083f576101f48302908382046101f41417156105c3576127106106c7910480936119fe565b9080821061082757503315610811576000933385528460205260408520548481106107f6578490338752866020520360408620558360025403600255846040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3338552846020526040852054156107e7575b601155816107b6575b8380808084335af161075b611a0b565b50156107a35760408051938452602084019190915282015233907fe029f26dbcf8c42dd2f352c10214a7fc26773dc62482c6241334a0402ac09a8090606090a2600160065580f35b6309b62ba160e01b845233600452602484fd5b838080808560018060a01b0360095460081c165af16107d3611a0b565b5061074b57634033e4e360e01b8452600484fd5b6107f033612dac565b50610742565b63391434e360e21b8652336004526024526044849052606485fd5b634b637e8f60e11b600052600060045260246000fd5b9063152920d160e21b60005260045260245260446000fd5b6367953bed60e11b60005260046000fd5b5060016106a1565b50801515610696565b506001610690565b508263179de03560e01b60005260045260245260446000fd5b50600161088f83866119fe565b11610677565b9063ebd6ced960e01b6000523360045260245260445260646000fd5b630ce3b29b60e31b60005260046000fd5b346102625760203660031901126102625760043567ffffffffffffffff811161026257806004019061012060031982360301126102625760ff6009541660038110156102b15780610e92575060448101916001600160a01b0361092484611c7b565b1615610e68576101048201926001600160a01b0361094185611c7b565b1615610e3e5760e48301926001600160a01b0361095d85611c7b565b1615610e145760648101358015610e00576084820190606460ff61098084611c8f565b1611610de05760a4830135926127108411610dcb5761099f8680611c48565b9067ffffffffffffffff8211610cc05781906109bc600f546118fe565b601f8111610d54575b50600090601f8311600114610ce157600092610cd6575b50508160011b916000199060031b1c191617600f555b6024810194610a018688611c48565b9067ffffffffffffffff8211610cc057610a1c6010546118fe565b601f8111610c53575b50600090601f8311600114610bd457610a9a95938360c49460ff999794610a6894600092610bc9575b50508160011b916000199060031b1c191617601055611c7b565b60098054610100600160a81b03191660089290921b610100600160a81b03169190911790550135600c55600a55611c8f565b16670de0b6b3a7640000810290808204670de0b6b3a764000014901517156105c35760649004670de0b6b3a76400000180670de0b6b3a7640000116105c3578015610bb3576ec097ce7bc90715b34b9f100000000004600b55600d55610ba5937f82dfd53401a55bb491abcb3e7a97c99da1ed7eaffd89721d3e96e8e8ad4a692d93610b5991610b54916001600160a01b0390610b3690611c7b565b166bffffffffffffffffffffffff60a01b600e541617600e55611c7b565b612171565b600160ff196009541617600955610b7b610b738380611c48565b929093611c48565b610b95604096929651948594604086526040860191611c9d565b9083820360208501523396611c9d565b0390a2602060405160018152f35b634e487b7160e01b600052601260045260246000fd5b013590508f80610a4e565b60108252600080516020612ee883398151915291601f198416815b818110610c3b57508460ff999794610a6894610a9a9a989460c49860019510610c21575b505050811b01601055611c7b565b0135600019600384901b60f8161c191690558f8080610c13565b91936020600181928787013581550195019201610bef565b6010600052601f830160051c600080516020612ee8833981519152019060208410610caa575b601f0160051c600080516020612ee883398151915201905b818110610c9e5750610a25565b60008155600101610c91565b600080516020612ee88339815191529150610c79565b634e487b7160e01b600052604160045260246000fd5b013590508a806109dc565b600f8252600080516020612f08833981519152925090601f198416815b818110610d3c5750908460019594939210610d22575b505050811b01600f556109f2565b0135600019600384901b60f8161c191690558a8080610d14565b91936020600181928787013581550195019201610cfe565b909150600f600052601f830160051c600080516020612f08833981519152019060208410610db5575b90601f8493920160051c600080516020612f0883398151915201905b818110610da657506109c5565b60008155849350600101610d99565b600080516020612f088339815191529150610d7d565b836311d42f5960e21b60005260045260246000fd5b60ff610deb83611c8f565b635cc786bd60e11b6000521660045260246000fd5b633989e31560e21b60005260045260246000fd5b610e1d84611c7b565b634839291560e01b60009081526001600160a01b0391909116600452602490fd5b610e4784611c7b565b63187f3d2960e01b60009081526001600160a01b0391909116600452602490fd5b610e7183611c7b565b634e49e45d60e01b60009081526001600160a01b0391909116600452602490fd5b6395e3db4560e01b600052610ea6906118e3565b600060245260446000fd5b3461026257604036600319011261026257610ed7610ecd6118a1565b6024359033611e64565b602060405160018152f35b3461026257600036600319011261026257610f0a610efe611b87565b60405191829182611858565b0390f35b34610262576000366003190112610262576020600a54604051908152f35b34610262576000366003190112610262576040516000601054610f4e816118fe565b8084529060018116908115610fc45750600114610f76575b610f0a83610efe81850382611938565b9190506010600052600080516020612ee8833981519152916000905b808210610faa57509091508101602001610efe610f66565b919260018160209254838588010152019101909291610f92565b60ff191660208086019190915291151560051b84019091019150610efe9050610f66565b346102625760203660031901126102625760ff6009541660038110156102b157600181036105ea57602061101d600435611b6a565b604051908152f35b34610262576000366003190112610262576005546040516001600160a01b039091168152602090f35b3461026257600036600319011261026257611067612023565b61001b61212d565b34610262576020366003190112610262576110886118a1565b60ff6009541660038110156102b157600181036105ea575060018060a01b03166000526000602052604060002054600060ff600954166003811015611128576001810361110a57826110e1670de0b6b3a7640000611a58565b90610f0a6110ed611adb565b604051938493846040919493926060820195825260208201520152565b6395e3db4560e01b825260449190611121906118e3565b6001602452fd5b634e487b7160e01b82526021600452602482fd5b34610262576020366003190112610262576001600160a01b0361115d6118a1565b1660005260006020526020604060002054604051908152f35b34610262576000366003190112610262576020600c54604051908152f35b346102625760003660031901126102625760ff6009541660038110156102b157156102a0576020600d54604051908152f35b346102625760203660031901126102625760095460ff166000600382101561121357600182036111fd57602061101d600435611a58565b6395e3db4560e01b8152604491611121906118e3565b634e487b7160e01b81526021600452602490fd5b346102625760003660031901126102625760095460ff811660038110156102b157156102a05760405160089190911c6001600160a01b03168152602090f35b346102625760003660031901126102625760095460405160089190911c6001600160a01b03168152602090f35b34610262576000366003190112610262576112ac612023565b6112b461204c565b60ff6009541660038110156102b157600181036105ea57601154600c549081811061150857600260ff19600954161760095547600d54808202821591838204148217156105c35761271061130a910480936119fe565b908115809181926114ff575b506114ea57826114b6575b61147757600a546107d08102908082046107d014901517156105c35761271090049030600052600060205260406000205482811061145e575b50600e546113739083906001600160a01b031630612229565b80606060018060a01b03600e541660c46040518094819363f305d71960e01b8352306004840152886024840152600060448401526000606484015261dead60848401524260a48401525af1801561145257611427575b5061140c7f0da9a8b1777b29b3ff94a13f8cf98be3631fd856057cebb8363556baa2ff691493604051938493846040919493926060820195825260208201520152565b0390a15b611418612023565b61142061212d565b6001600655005b606090813d831161144b575b61143d8183611938565b8101031261026257836113c9565b503d611433565b6040513d6000823e3d90fd5b61146b61147191846119fe565b3061206e565b8361135a565b5060607f0da9a8b1777b29b3ff94a13f8cf98be3631fd856057cebb8363556baa2ff6914916040519060008252600060208301526040820152a1611410565b60008080808660018060a01b0360095460081c165af16114d4611a0b565b5061132157633385f4fd60e01b60005260046000fd5b506377c2026560e11b60005260045260246000fd5b90501584611316565b631c20a0ef60e11b60005260045260245260446000fd5b346102625760003660031901126102625760ff6009541660038110156102b157600181036105ea57602061101d611964565b34610262576000366003190112610262576020600d54604051908152f35b3461026257600036600319011261026257602060405160128152f35b346102625760003660031901126102625760ff6009541660038110156102b157600181036105ea57601154600c5480158015611607575b156115e0576040805161271081526020810193909352820152606090f35b612710820282810461271014831517156105c35761160182610f0a9261195a565b916110ed565b50808210156115c2565b346102625760603660031901126102625761162a6118a1565b6116326118b7565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110611672575b50610ed79350611e64565b8381106116e15784156116cb5733156116b557610ed7946000526001602052604060002060018060a01b0333166000526020528360406000209103905584611667565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b34610262576000366003190112610262576020600b54604051908152f35b34610262576000366003190112610262576020600254604051908152f35b3461026257600036600319011261026257600e546040516001600160a01b039091168152602090f35b3461026257604036600319011261026257610ed761177f6118a1565b6024359033612229565b34610262576000366003190112610262576040516000600f546117ab816118fe565b8084529060018116908115610fc457506001146117d257610f0a83610efe81850382611938565b919050600f600052600080516020612f08833981519152916000905b80821061180657509091508101602001610efe610f66565b9192600181602092548385880101520191019092916117ee565b346102625760003660031901126102625760ff6009541660038110156102b157156102a057600e546001600160a01b03168152602090f35b91909160208152825180602083015260005b81811061188b575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161186a565b600435906001600160a01b038216820361026257565b602435906001600160a01b038216820361026257565b6040906003190112610262576004359060243590565b60038110156102b157600452565b9060038210156102b15752565b90600182811c9216801561192e575b602083101461191857565b634e487b7160e01b600052602260045260246000fd5b91607f169161190d565b90601f8019910116810190811067ffffffffffffffff821117610cc057604052565b8115610bb3570490565b600a54801580156119f4575b6119ed5760025490600c5491818110156119e35780156119d2578161199491612328565b600b5492670de0b6b3a763ffff1984018481116105c3576119cf946119bf6119c5926119ca95611f58565b92612290565b612290565b612328565b90565b506119ca6119cf92600b5490612290565b506119cf9161195a565b5060001990565b50600b5415611970565b919082039182116105c357565b3d15611a46573d9067ffffffffffffffff8211610cc05760405191611a3a601f8201601f191660200184611938565b82523d6000602084013e565b606090565b919082018092116105c357565b8015611acd576101f48102908082046101f4036105c357612710611a7d9204906119fe565b801580611ad3575b611acd57611aac611a9b60025492601154611a4b565b600c54808211611ac5575b506120de565b9080821115611abe576119cf916119fe565b5050600090565b905038611aa6565b50600090565b506001611a85565b60025480670de0b6b3a764000011611acd57670de0b6b3a763ffff1981019081116105c357611b09906121ba565b601154908181101580611b61575b611abe578115611abe57611b2a916119fe565b8015908180611b59575b611abe576101f48102918183046101f41417156105c3576127106119cf9204906119fe565b506001611b34565b50811515611b17565b8015611acd57600254808211611abe57611b0991610664916119fe565b60ff6009541660038110156102b15760018114611c2257600060028214611bfe575015611bd357604051611bbc604082611938565b60078152662ab735b737bbb760c91b602082015290565b604051611be1604082611938565b600d81526c155b9a5b9a5d1a585b1a5e9959609a1b602082015290565b50506040805190611c0f9082611938565b60038152620888ab60eb1b602082015290565b50604051611c31604082611938565b6007815266426f6e64696e6760c81b602082015290565b903590601e1981360301821215610262570180359067ffffffffffffffff82116102625760200191813603831361026257565b356001600160a01b03811681036102625790565b3560ff811681036102625790565b908060209392818452848401376000828201840152601f01601f1916010190565b67ffffffffffffffff8111610cc05760051b60200190565b90611ce082611cbe565b611ced6040519182611938565b8281528092611cfe601f1991611cbe565b0190602036910137565b8051821015611d1c5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91906103e88111611e5b575b6007549081841015611e2357611d6891611d59859283611a4b565b90808211611e1b575b506119fe565b91611d7283611cd6565b90611d7c84611cd6565b93600091600754925b828110611d9457505050509190565b611d9e8183611a4b565b600085821015611e0757600790527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880154600191906040906000906001600160a01b031680611ded858b611d08565b528152806020522054611e00828a611d08565b5201611d85565b634e487b7160e01b81526032600452602490fd5b905038611d62565b505060405160209250611e368382611938565b60008152600036813760405192611e4d8185611938565b600084525060003681379190565b506103e8611d3e565b9192916001600160a01b0316908115610811576001600160a01b0316908115611f4257600090808252816020526040822054858110611f275792817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208884989960409885895288845203888820558487528682528787208181540190558751908152a3808252816020528282205415611f17575b50828152806020522054611f0b5750565b611f1490612e8d565b50565b611f2090612dac565b5038611efa565b60649350859163391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b80158015611f77575050611f7257670de0b6b3a764000090565b600090565b670de0b6b3a764000082146120145782611f9a57505050670de0b6b3a764000090565b670de0b6b3a7640000831461200e57670de0b6b3a7640000821115611fcf57506119cf916119c5611fca926123ea565b6124f2565b610bb357611ff4916119c5611fca926ec097ce7bc90715b34b9f1000000000046123ea565b8015610bb3576ec097ce7bc90715b34b9f10000000000490565b50905090565b505050670de0b6b3a764000090565b6005546001600160a01b0316330361203757565b63118cdaa760e01b6000523360045260246000fd5b60026006541461205d576002600655565b633ee5aeb560e01b60005260046000fd5b6001600160a01b0316908115611f425760208282612090604094600254611a4b565b6002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60009384928484528382528684208181540190558651908152a3828152806020522054611f0b5750565b600c54908115612120578015611abe5781811015612118576121126121096119cf93600a5493612328565b600b5490611f58565b90612290565b5050600a5490565b159050611f7257600a5490565b600580546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3565b600580546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b600a5490811561221c578015611abe578181101561221457600c5490600b5480156121fe576121f86121f26119cf9561211294612328565b91611ff4565b90611f58565b6324423be560e01b600052600060045260246000fd5b5050600c5490565b159050611f7257600c5490565b6001600160a01b03169081156116cb576001600160a01b03169182156116b55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b9091906000198382098382029182808310920391808303921461231757670de0b6b3a76400008210156122fe577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b8490635173648d60e01b60005260045260245260446000fd5b5050670de0b6b3a764000090049150565b600019670de0b6b3a7640000820991670de0b6b3a76400008202918280851094039380850394146123de57818410156123bb57670de0b6b3a764000082910960018219018216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b630c740aef60e31b600052600452670de0b6b3a764000060245260445260646000fd5b50906119cf925061195a565b670de0b6b3a764000081106124de57670de0b6b3a764000081046fffffffffffffffffffffffffffffffff811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c11961717171717171790670de0b6b3a76400008202911c670de0b6b3a764000081146124da576706f05b59d3b2000090815b6124a357505090565b80670de0b6b3a764000091020490671bc16d674ec800008210156124cc575b60011c908161249a565b809192019160011c906124c2565b5090565b63036d32ef60e41b60005260045260246000fd5b680a688906bd8affffff8111612d8057670de0b6b3a76400009060401b04600160bf1b67ff000000000000008216612c57575b670de0b6b3a76400009066ff0000000000008316612b47575b65ff00000000008316612a3f575b64ff00000000831661293f575b63ff0000008316612847575b62ff00008316612757575b61ff00831661266f575b60ff831661258f575b029060401c60bf031c90565b6080831661265c575b60408316612649575b60208316612636575b60108316612623575b60088316612610575b600483166125fd575b600283166125ea575b600183161561258357680100000000000000010260401c612583565b680100000000000000010260401c6125ce565b680100000000000000030260401c6125c5565b680100000000000000060260401c6125bc565b6801000000000000000b0260401c6125b3565b680100000000000000160260401c6125aa565b6801000000000000002c0260401c6125a1565b680100000000000000590260401c612598565b6180008316612744575b6140008316612731575b612000831661271e575b611000831661270b575b61080083166126f8575b61040083166126e5575b61020083166126d2575b61010083161561257a57680100000000000000b10260401c61257a565b680100000000000001630260401c6126b5565b680100000000000002c60260401c6126ab565b6801000000000000058c0260401c6126a1565b68010000000000000b170260401c612697565b6801000000000000162e0260401c61268d565b68010000000000002c5d0260401c612683565b680100000000000058b90260401c612679565b628000008316612834575b624000008316612821575b62200000831661280e575b6210000083166127fb575b6208000083166127e8575b6204000083166127d5575b6202000083166127c2575b62010000831615612570576801000000000000b1720260401c612570565b680100000000000162e40260401c6127a4565b6801000000000002c5c80260401c612799565b68010000000000058b910260401c61278e565b680100000000000b17210260401c612783565b68010000000000162e430260401c612778565b680100000000002c5c860260401c61276d565b6801000000000058b90c0260401c612762565b6380000000831661292c575b63400000008316612919575b63200000008316612906575b631000000083166128f3575b630800000083166128e0575b630400000083166128cd575b630200000083166128ba575b63010000008316156125655768010000000000b172180260401c612565565b6801000000000162e4300260401c61289b565b68010000000002c5c8600260401c61288f565b680100000000058b90c00260401c612883565b6801000000000b17217f0260401c612877565b680100000000162e42ff0260401c61286b565b6801000000002c5c85fe0260401c61285f565b68010000000058b90bfc0260401c612853565b6480000000008316612a2c575b6440000000008316612a19575b6420000000008316612a06575b64100000000083166129f3575b64080000000083166129e0575b64040000000083166129cd575b64020000000083166129ba575b64010000000083161561255957680100000000b17217f80260401c612559565b68010000000162e42ff10260401c61299a565b680100000002c5c85fe30260401c61298d565b6801000000058b90bfce0260401c612980565b68010000000b17217fbb0260401c612973565b6801000000162e42fff00260401c612966565b68010000002c5c8601cc0260401c612959565b680100000058b90c0b490260401c61294c565b658000000000008316612b34575b654000000000008316612b21575b652000000000008316612b0e575b651000000000008316612afb575b650800000000008316612ae8575b650400000000008316612ad5575b650200000000008316612ac2575b6501000000000083161561254c576801000000b1721835510260401c61254c565b680100000162e430e5a20260401c612aa1565b6801000002c5c863b73f0260401c612a93565b68010000058b90cf1e6e0260401c612a85565b680100000b1721bcfc9a0260401c612a77565b68010000162e43f4f8310260401c612a69565b680100002c5c89d5ec6d0260401c612a5b565b6801000058b91b5bc9ae0260401c612a4d565b66800000000000008316612c44575b66400000000000008316612c31575b66200000000000008316612c1e575b66100000000000008316612c0b575b66080000000000008316612bf8575b66040000000000008316612be5575b66020000000000008316612bd2575b660100000000000083161561253e5768010000b17255775c040260401c61253e565b6801000162e525ee05470260401c612bb0565b68010002c5cc37da94920260401c612ba1565b680100058ba01fb9f96d0260401c612b92565b6801000b175effdc76ba0260401c612b83565b680100162f3904051fa10260401c612b74565b6801002c605e2e8cec500260401c612b65565b68010058c86da1c09ea20260401c612b56565b6780000000000000008216612d6d575b670de0b6b3a7640000906740000000000000008316612d5a575b6720000000000000008316612d47575b6710000000000000008316612d34575b6708000000000000008316612d21575b6704000000000000008316612d0e575b6702000000000000008316612cfb575b6701000000000000008316612ce8575b9050612525565b680100b1afa5abcbed610260401c612ce1565b68010163da9fb33356d80260401c612cd1565b680102c9a3e778060ee70260401c612cc1565b6801059b0d31585743ae0260401c612cb1565b68010b5586cf9890f62a0260401c612ca1565b6801172b83c7d517adce0260401c612c91565b6801306fe0a31b7152df0260401c612c81565b5068016a09e667f3bcc909607f1b612c67565b63b3b6ba1f60e01b60005260045260246000fd5b8054821015611d1c5760005260206000200190600090565b6000818152600860205260409020548015611abe5760001981018181116105c3576007546000198101919082116105c357818103612e3c575b5050506007548015612e265760001901612e00816007612d94565b8154906000199060031b1b19169055600755600052600860205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b612e75612e4d612e5e936007612d94565b90549060031b1c9283926007612d94565b819391549060031b91821b91600019901b19161790565b90556000526008602052604060002055388080612de5565b80600052600860205260406000205415600014611acd5760075468010000000000000000811015610cc057612ece612e5e8260018594016007556007612d94565b905560075490600052600860205260406000205560019056fe1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802a26469706673582212209ffcd37f429b2262cd4cbf4f12be7e490c3bf8d89e6d3df533b82f78fcf6926f64736f6c634300081b0033