More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 263 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 8271942 | 1970 days ago | IN | 0 ETH | 0.00038389 | ||||
Update User Shar... | 8271938 | 1970 days ago | IN | 0 ETH | 0.0017553 | ||||
Close Cycle | 8271931 | 1970 days ago | IN | 0 ETH | 0.00083931 | ||||
Use As Bankroll | 8271768 | 1970 days ago | IN | 0 ETH | 0.00112228 | ||||
Deposit | 8271729 | 1970 days ago | IN | 0 ETH | 0.00410214 | ||||
Withdraw | 8271695 | 1970 days ago | IN | 0 ETH | 0.00051186 | ||||
Update User Shar... | 8271692 | 1970 days ago | IN | 0 ETH | 0.0023404 | ||||
Close Cycle | 8271688 | 1970 days ago | IN | 0 ETH | 0.00111908 | ||||
Use As Bankroll | 8271518 | 1970 days ago | IN | 0 ETH | 0.00112228 | ||||
Deposit | 8271477 | 1970 days ago | IN | 0 ETH | 0.0030766 | ||||
Withdraw | 8271260 | 1970 days ago | IN | 0 ETH | 0.00038389 | ||||
Update User Shar... | 8271258 | 1970 days ago | IN | 0 ETH | 0.00175452 | ||||
Close Cycle | 8271255 | 1970 days ago | IN | 0 ETH | 0.00083931 | ||||
Use As Bankroll | 8271063 | 1970 days ago | IN | 0 ETH | 0.00039279 | ||||
Deposit | 8270981 | 1970 days ago | IN | 0 ETH | 0.00205107 | ||||
Withdraw | 8270162 | 1971 days ago | IN | 0 ETH | 0.00069101 | ||||
Update User Shar... | 8270159 | 1971 days ago | IN | 0 ETH | 0.00413928 | ||||
Close Cycle | 8270156 | 1971 days ago | IN | 0 ETH | 0.00151075 | ||||
Use As Bankroll | 8269965 | 1971 days ago | IN | 0 ETH | 0.00112228 | ||||
Deposit | 8269892 | 1971 days ago | IN | 0 ETH | 0.0030766 | ||||
Withdraw | 8265246 | 1971 days ago | IN | 0 ETH | 0.00051186 | ||||
Update User Shar... | 8265243 | 1971 days ago | IN | 0 ETH | 0.00233832 | ||||
Close Cycle | 8265240 | 1971 days ago | IN | 0 ETH | 0.00111908 | ||||
Use As Bankroll | 8265039 | 1971 days ago | IN | 0 ETH | 0.00084171 | ||||
Deposit | 8265033 | 1971 days ago | IN | 0 ETH | 0.00285064 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BankrollLending
Compiler Version
v0.5.10+commit.5a6ea5b1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-07-17 */ /** * Do not send tokens to this contract directly! * * Allows EDG token holders to lend the Edgeless Casino tokens for the bankroll. * Users may pay in their tokens at any time, but they will only be used for the bankroll * begining from the next cycle. When the cycle is closed, they may * withdraw their stake of the bankroll. The casino may decide to limit the number of tokens * used for the bankroll. * Non-withdrawn tokens after cycle is finished is not automaticaly staked for the next round, * but they can be withdrawn by staker in any time. * author: Rytis Grincevicius <[email protected]> * */ pragma solidity ^0.5.10; contract Token { function transfer(address receiver, uint amount) public returns(bool); function transferFrom(address sender, address receiver, uint amount) public returns(bool); function balanceOf(address holder) public view returns(uint); } contract Casino { mapping(address => bool) public authorized; } contract Owned { address public owner; modifier onlyOwner { require(msg.sender == owner); _; } constructor() public { owner = msg.sender; } function changeOwner(address newOwner) onlyOwner public { owner = newOwner; } } contract SafeMath { function safeSub(uint a, uint b) pure internal returns(uint) { assert(b <= a); return a - b; } function safeAdd(uint a, uint b) pure internal returns(uint) { uint c = a + b; assert(c >= a && c >= b); return c; } function safeMul(uint a, uint b) pure internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } } contract BankrollLending is Owned, SafeMath { struct CycleData { /** How musch stakers we got in this cycle */ uint numHolders; /** Total staked amount */ uint initialStakes; /** Amount received from bankroll (staked + 40% of bankroll surpluss) */ uint finalStakes; /** Amount distributed to stakers for withdrawals. It decreases when user withdraws. */ uint totalStakes; /** Last staker wallet index that had his share distributed */ uint lastUpdateIndex; /** Amount of balance to return to bankroll. (If all stakers are ranked VIP then this amount should be 0) */ uint returnToBankroll; /** Allows withdrawals when set to true */ bool sharesDistributed; /** Stakers address to Staker struct */ mapping(address => Staker) addressToStaker; /** staker address to available staker balance */ mapping(address => uint) addressToBalance; /** Index to staker address */ address[] indexToAddress; } struct Staker { /** Index of staker */ uint stakeIndex; /** Staker rank */ StakingRank rank; /** How much staked for this stake round */ uint staked; /** How much staker payout was for stake round */ uint payout; } /** The set of lending contracts state phases **/ enum StakingPhases { deposit, bankroll } /** The set of staking ranks **/ enum StakingRank { vip, gold, silver } /** The number of the current cycle. Increases by 1 each round.**/ uint public cycle; /** Cycle data */ mapping(uint => CycleData) public cycleToData; /** Phase of current round */ StakingPhases public phase; /** The address of the casino contract.**/ Casino public casino; /** The Edgeless casino token contract **/ Token public token; /** Previuos staking contract **/ address public predecessor; /** Wallet to return bankroll surplus share of stakers who doesnt get all 100% */ address public returnBankrollTo; /** The minimum staking amount required **/ uint public minStakingAmount; /** The maximum number of addresses to process in one batch of stake updates **/ uint public maxUpdates; /** Marks contract as paused. */ bool public paused; /** Share of vip rank */ uint vipRankShare; /** Share of gold rank */ uint goldRankShare; /** Share of silver rank */ uint silverRankShare; /** notifies listeners about a stake update **/ event StakeUpdate(address holder, uint stake); /** * Constructor. * @param tokenAddr the address of the edgeless token contract * casinoAddr the address of the edgeless casino contract * predecessorAdr the address of the previous bankroll lending contract. * */ constructor(address tokenAddr, address casinoAddr, address predecessorAdr) public { token = Token(tokenAddr); casino = Casino(casinoAddr); predecessor = predecessorAdr; returnBankrollTo = casinoAddr; maxUpdates = 5; cycle = 90; vipRankShare = 1000; goldRankShare = 500; silverRankShare = 125; } /** * Changes share of specified ranks that would be assigned from bankroll surpluss. * @param _rank staking rank (0 - vip, 1 - gold, 2 - silver) * @param _share share 0 - 1000, 1000 is 100%. */ function setStakingRankShare(StakingRank _rank, uint _share) public onlyOwner { if (_rank == StakingRank.vip) { vipRankShare = _share; } else if (_rank == StakingRank.gold) { goldRankShare = _share; } else if (_rank == StakingRank.silver) { silverRankShare = _share; } } /** * Get share of staking rank. * @param _rank staking rank (0 - vip, 1 - gold, 2 - silver) * @return share 0 - 1000, 1000 is 100% */ function getStakingRankShare(StakingRank _rank) public view returns (uint) { if (_rank == StakingRank.vip) { return vipRankShare; } else if (_rank == StakingRank.gold) { return goldRankShare; } else if (_rank == StakingRank.silver) { return silverRankShare; } return 0; } /** * Allows authorized wallet to change stakers VIP ranking for current round. * @param _address stakers wallet address * @param _rank new vip rank of staker. (0 - vip, 1 - gold, 2 - silver) */ function setStakerRank(address _address, StakingRank _rank) public onlyAuthorized { Staker storage _staker = cycleToData[cycle].addressToStaker[_address]; require(_staker.staked > 0, "Staker not staked."); _staker.rank = _rank; } /** * Allows owner to change returnBankrollTo address * @param _address address to send tokens to */ function setReturnBankrollTo(address _address) public onlyOwner { returnBankrollTo = _address; } /** * Pause contract so it would not allow to make new deposits. */ function setPaused() public onlyOwner onlyActive { paused = true; } /** * Enable deposits. */ function setActive() public onlyOwner onlyPaused { paused = false; } /** * Allows staker to withdraw staked amount + bankroll share of previous round. * @param _receiver address withdraw tokens to */ function withdraw(address _receiver) public { makeWithdrawal(msg.sender, _receiver, safeSub(cycle, 1)); } /** * Allows staker to withdraw staked amount + bankroll share of previous round. * @param _cycle cycle index from which to withdraw. * @param _receiver address withdraw tokens to */ function withdraw(address _receiver, uint _cycle) public { makeWithdrawal(msg.sender, _receiver, _cycle); } /** * Allow authorized wallet to withdraw stakers balance back to stakers wallet. * @param _address staker address * @param _cycle cycle index from which to withdraw. */ function withdrawFor(address _address, uint _cycle) public onlyAuthorized { makeWithdrawal(_address, _address, _cycle); } /** * Send collected stakes to casino contract and advance staking to bankroll phase. */ function useAsBankroll() public onlyAuthorized depositPhase { CycleData storage _cycle = cycleToData[cycle]; _cycle.initialStakes = _cycle.totalStakes; _cycle.totalStakes = 0; assert(token.transfer(address(casino), _cycle.initialStakes)); phase = StakingPhases.bankroll; } /** * Closes staking round with amount to distribute and creates new round with deposit phase. * @param _finalStakes Token amount (0 decimals) of amount to be distributed for stakers. (Staked amount + 40% casino surpluss) */ function closeCycle(uint _finalStakes) public onlyAuthorized bankrollPhase { CycleData storage _cycle = cycleToData[cycle]; _cycle.finalStakes = _finalStakes; cycle = safeAdd(cycle, 1); phase = StakingPhases.deposit; } /** * Distributes user shares for previous round. */ function updateUserShares() public onlyAuthorized { _updateUserShares(cycle - 1); } /** * Distributes user shares for selected finished round. * @param _cycleIndex Index of cycle to update shares. */ function updateUserShares(uint _cycleIndex) public onlyAuthorized { _updateUserShares(_cycleIndex); } /** * Allows to deposit tokens to staking. Wallet must approve staking contract to transfer its tokens. * Transfaction must be signed by authorized wallet to confirm rank and allowance. */ function deposit(uint _value, StakingRank _rank, uint _allowedMax, uint8 v, bytes32 r, bytes32 s) public depositPhase onlyActive { require(verifySignature(msg.sender, _allowedMax, _rank, v, r, s)); makeDeposit(msg.sender, _value, _rank, _allowedMax); } /** * Allow authorized wallet to deposit on wallet behalft. Wallet must approve staking contract to transfer its tokens. */ function depositFor(address _address, uint _value, StakingRank _rank, uint _allowedMax) public depositPhase onlyActive onlyAuthorized { makeDeposit(_address, _value, _rank, _allowedMax); } /** * Holders of current staking round. */ function numHolders() public view returns (uint) { return cycleToData[cycle].numHolders; } /** * Get holder address by index. * @param _index staker index in array. */ function stakeholders(uint _index) public view returns (address) { return stakeholders(cycle, _index); } /** * Get holder balance by address. * @param _address staker address. */ function stakes(address _address) public view returns (uint) { return stakes(cycle, _address); } /** * Get holder information by address. * @param _address staker address. */ function staker(address _address) public view returns (uint stakeIndex, StakingRank rank, uint staked, uint payout) { return staker(cycle, _address); } /** * Returns token amount staked to contract */ function totalStakes() public view returns (uint) { return totalStakes(cycle); } /** * Returns token amount of initial stakes */ function initialStakes() public view returns (uint) { return initialStakes(cycle); } /** * Get holder address by cycle and index. * @param _cycle cycle to look * @param _index staker index in array. */ function stakeholders(uint _cycle, uint _index) public view returns (address) { return cycleToData[_cycle].indexToAddress[_index]; } /** * Returns available EDG balance of staker. * @param _cycle cycle index to look * @param _address staker address */ function stakes(uint _cycle, address _address) public view returns (uint) { return cycleToData[_cycle].addressToBalance[_address]; } /** * Returns info about staker in round. * @param _cycle cycle index to look * @param _address staker address */ function staker(uint _cycle, address _address) public view returns (uint stakeIndex, StakingRank rank, uint staked, uint payout ) { Staker memory _s = cycleToData[_cycle].addressToStaker[_address]; return (_s.stakeIndex, _s.rank, _s.staked, _s.payout); } /** * Returns token amount staked to contract * @param _cycle cycle index to look */ function totalStakes(uint _cycle) public view returns (uint) { return cycleToData[_cycle].totalStakes; } /** * Returns token amount of initial stakes * @param _cycle cycle index to look */ function initialStakes(uint _cycle) public view returns (uint) { return cycleToData[_cycle].initialStakes; } /** * Returns token amount of final stakes * @param _cycle cycle index to look */ function finalStakes(uint _cycle) public view returns (uint) { return cycleToData[_cycle].finalStakes; } /** * Sets the casino contract address. * @param casinoAddr the new casino contract address * */ function setCasinoAddress(address casinoAddr) public onlyOwner { casino = Casino(casinoAddr); } /** * Sets the maximum number of user stakes to update at once * @param newMax the new maximum * */ function setMaxUpdates(uint newMax) public onlyAuthorized { maxUpdates = newMax; } /** * Sets the minimum amount of user stakes * @param amount the new minimum * */ function setMinStakingAmount(uint amount) public onlyAuthorized { minStakingAmount = amount; } /** * Closes the contract in state of emergency or on contract update. * Transfers all tokens held by the contract to the owner before doing so. **/ function kill() public onlyOwner { assert(token.transfer(owner, tokenBalance())); selfdestruct(address(uint160(owner))); } /** * @return the current token balance of the contract. * */ function tokenBalance() public view returns(uint) { return token.balanceOf(address(this)); } /** * Withdrawal logic. Withdraws all balance from stakers staking contract and transfers to his deposit wallet. * @param _address staker address for which to withdraw * @param _receiver address withdraw to. * @param _cycle cycle index from which to withdraw. */ function makeWithdrawal(address _address, address _receiver, uint _cycle) internal { require(_cycle < cycle, "Withdrawal possible only for finished rounds."); CycleData storage _cycleData = cycleToData[_cycle]; require(_cycleData.sharesDistributed == true, "All user shares must be distributed to stakeholders first."); uint _balance = _cycleData.addressToBalance[_address]; require(_balance > 0, "Staker doesn't have balance."); _cycleData.addressToBalance[_address] = 0; _cycleData.totalStakes = safeSub(_cycleData.totalStakes, _balance); emit StakeUpdate(_address, 0); assert(token.transfer(_receiver, _balance)); } /** * Calculates and distributes shares for stakers. * When all staker shares distributed it sets cycleToData[cycle].sharesDistributed to true and unlocks withdrawals. * @param _cycleIndex round index for which calculations should be made. */ function _updateUserShares(uint _cycleIndex) internal { require(cycle > 0 && cycle > _cycleIndex, "You can't distribute shares of previous cycle when there isn't any."); CycleData storage _cycle = cycleToData[_cycleIndex]; require(_cycle.sharesDistributed == false, "Shares already distributed."); uint limit = safeAdd(_cycle.lastUpdateIndex, maxUpdates); if (limit >= _cycle.numHolders) { limit = _cycle.numHolders; } address _address; uint _payout; uint _totalStakes = _cycle.totalStakes; for (uint i = _cycle.lastUpdateIndex; i < limit; i++) { _address = _cycle.indexToAddress[i]; Staker storage _staker = _cycle.addressToStaker[_address]; _payout = computeFinalStake(_staker.staked, _staker.rank, _cycle); _staker.payout = _payout; _cycle.addressToBalance[_address] = _payout; _totalStakes = safeAdd(_totalStakes, _payout); emit StakeUpdate(_address, _payout); } _cycle.totalStakes = _totalStakes; _cycle.lastUpdateIndex = limit; if (limit >= _cycle.numHolders) { if (_cycle.finalStakes > _cycle.totalStakes) { _cycle.returnToBankroll = safeSub(_cycle.finalStakes, _cycle.totalStakes); if (_cycle.returnToBankroll > 0) { assert(token.transfer(returnBankrollTo, _cycle.returnToBankroll)); } } _cycle.sharesDistributed = true; } } /** * Calculates stakers profit / loss. * @param _initialStake how much holder initialy staked for the round * @param _vipRank vip rank of the holder * @param _cycleData data of the cycle */ function computeFinalStake(uint _initialStake, StakingRank _vipRank, CycleData storage _cycleData) internal view returns(uint) { if (_cycleData.finalStakes >= _cycleData.initialStakes) { uint profit = ((_initialStake * _cycleData.finalStakes / _cycleData.initialStakes) - _initialStake) * getStakingRankShare(_vipRank) / 1000; return _initialStake + profit; } else { uint loss = (_initialStake - (_initialStake * _cycleData.finalStakes / _cycleData.initialStakes)); return _initialStake - loss; } } /** * Deposit logic. * @param _address holder address * @param _value how much to deposit * @param _rank vip rank to set for holder * @param _allowedMax what is maximum total deposit for the holder */ function makeDeposit(address _address, uint _value, StakingRank _rank, uint _allowedMax) internal { require(_value > 0); CycleData storage _cycle = cycleToData[cycle]; uint _balance = _cycle.addressToBalance[_address]; uint newStake = safeAdd(_balance, _value); require(newStake >= minStakingAmount); if(_allowedMax > 0){ //if allowedMax > 0 the caller is the user himself require(newStake <= _allowedMax); assert(token.transferFrom(_address, address(this), _value)); } Staker storage _staker = _cycle.addressToStaker[_address]; if (_cycle.addressToBalance[_address] == 0) { uint _numHolders = _cycle.indexToAddress.push(_address); _cycle.numHolders = _numHolders; _staker.stakeIndex = safeSub(_numHolders, 1); } _cycle.addressToBalance[_address] = newStake; _staker.staked = newStake; _staker.rank = _rank; _cycle.totalStakes = safeAdd(_cycle.totalStakes, _value); emit StakeUpdate(_address, newStake); } /** * verifies if the withdrawal request was signed by an authorized wallet * @param to the receiver address * value the number of tokens * rank the vip rank * v, r, s the signature of an authorized wallet * */ function verifySignature(address to, uint value, StakingRank rank, uint8 v, bytes32 r, bytes32 s) internal view returns(bool) { address signer = ecrecover(keccak256(abi.encodePacked(to, value, rank, cycle)), v, r, s); return casino.authorized(signer); } //check if the sender is an authorized casino wallet modifier onlyAuthorized { require(casino.authorized(msg.sender), "Only authorized wallet can request this method."); _; } modifier depositPhase { require(phase == StakingPhases.deposit, "Method can be run only in deposit phase."); _; } modifier bankrollPhase { require(phase == StakingPhases.bankroll, "Method can be run only in bankroll phase."); _; } modifier onlyActive() { require(paused == false, "Contract is paused."); _; } modifier onlyPaused() { require(paused == true, "Contract is not paused."); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"initialStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"stakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"stakeholders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minStakingAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"updateUserShares","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_rank","type":"uint8"}],"name":"setStakerRank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_finalStakes","type":"uint256"}],"name":"closeCycle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"}],"name":"totalStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"},{"name":"_index","type":"uint256"}],"name":"stakeholders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"uint256"},{"name":"_rank","type":"uint8"},{"name":"_allowedMax","type":"uint256"}],"name":"depositFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"},{"name":"_address","type":"address"}],"name":"staker","outputs":[{"name":"stakeIndex","type":"uint256"},{"name":"rank","type":"uint8"},{"name":"staked","type":"uint256"},{"name":"payout","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinStakingAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cycle","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"}],"name":"finalStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setActive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxUpdates","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"staker","outputs":[{"name":"stakeIndex","type":"uint256"},{"name":"rank","type":"uint8"},{"name":"staked","type":"uint256"},{"name":"payout","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"setMaxUpdates","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"returnBankrollTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setReturnBankrollTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"casino","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"},{"name":"_address","type":"address"}],"name":"stakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rank","type":"uint8"},{"name":"_share","type":"uint256"}],"name":"setStakingRankShare","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"predecessor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numHolders","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cycleToData","outputs":[{"name":"numHolders","type":"uint256"},{"name":"initialStakes","type":"uint256"},{"name":"finalStakes","type":"uint256"},{"name":"totalStakes","type":"uint256"},{"name":"lastUpdateIndex","type":"uint256"},{"name":"returnToBankroll","type":"uint256"},{"name":"sharesDistributed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_cycle","type":"uint256"}],"name":"withdrawFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_rank","type":"uint8"},{"name":"_allowedMax","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cycleIndex","type":"uint256"}],"name":"updateUserShares","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"}],"name":"initialStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"useAsBankroll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_cycle","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_rank","type":"uint8"}],"name":"getStakingRankShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"casinoAddr","type":"address"}],"name":"setCasinoAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"tokenAddr","type":"address"},{"name":"casinoAddr","type":"address"},{"name":"predecessorAdr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"holder","type":"address"},{"indexed":false,"name":"stake","type":"uint256"}],"name":"StakeUpdate","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516123473803806123478339818101604052606081101561003357600080fd5b508051602082015160409092015160008054336001600160a01b03199182161782556004805482166001600160a01b0395861617905560038054610100600160a81b0319166101009686169687021790556005805482169490931693909317825560068054909316909317909155600855605a6001556103e8600a556101f4600b55607d600c5561227d9081906100ca90396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806390e2160a11610151578063cc642cc2116100c3578063e7dbc90311610087578063e7dbc903146106f9578063eecb700514610716578063f3fef3a31461071e578063f78bb1fa1461074a578063fc0c546a1461076a578063ff55e2ee1461077257610274565b8063cc642cc214610611578063d43b732514610619578063db518db214610670578063dddc2f641461069c578063e67aa415146106dc57610274565b8063a6f9dae111610115578063a6f9dae11461055d578063a9a3bba414610583578063b1c9fe6e146105af578063b204fa28146105db578063b719d03214610601578063bf9befb11461060957610274565b806390e2160a14610502578063920ec6441461051f57806392320684146105275780639403e8dd1461054d5780639e1a4d191461055557610274565b806351782a72116101ea5780636190c9d5116101ae5780636190c9d51461049f57806369334eeb146104a7578063760a8c2a146104c4578063773b5b5e146104cc57806382e4eda4146104d45780638da5cb5b146104fa57610274565b806351782a72146103a057806351cff8d9146103db5780635983f7cd146104015780635c975abb14610466578063612d669e1461048257610274565b806334f3ea671161023c57806334f3ea671461030457806337a66d85146103335780633f6fff4e1461033b578063402822521461035857806341c0e1b5146103755780634fd70e7f1461037d57610274565b806308611a581461027957806316934fc4146102935780631d6b8b72146102b957806325c065b1146102f25780632da39239146102fa575b600080fd5b610281610798565b60408051918252519081900360200190f35b610281600480360360208110156102a957600080fd5b50356001600160a01b03166107aa565b6102d6600480360360208110156102cf57600080fd5b50356107c0565b604080516001600160a01b039092168252519081900360200190f35b6102816107ce565b6103026107d4565b005b6103026004803603604081101561031a57600080fd5b5080356001600160a01b0316906020013560ff16610899565b6103026109e8565b6103026004803603602081101561035157600080fd5b5035610a5c565b6102816004803603602081101561036e57600080fd5b5035610b9b565b610302610bb0565b6102d66004803603604081101561039357600080fd5b5080359060200135610c77565b610302600480360360808110156103b657600080fd5b506001600160a01b038135169060208101359060ff6040820135169060600135610cb0565b610302600480360360208110156103f157600080fd5b50356001600160a01b0316610e15565b61042d6004803603604081101561041757600080fd5b50803590602001356001600160a01b0316610e2f565b6040518085815260200184600281111561044357fe5b60ff16815260200183815260200182815260200194505050505060405180910390f35b61046e610ed5565b604080519115158252519081900360200190f35b6103026004803603602081101561049857600080fd5b5035610ede565b610281610f99565b610281600480360360208110156104bd57600080fd5b5035610f9f565b610302610fb5565b610281611034565b61042d600480360360208110156104ea57600080fd5b50356001600160a01b031661103a565b6102d661105b565b6103026004803603602081101561051857600080fd5b503561106a565b6102d6611125565b6103026004803603602081101561053d57600080fd5b50356001600160a01b0316611134565b6102d661116d565b610281611181565b6103026004803603602081101561057357600080fd5b50356001600160a01b0316611201565b6102816004803603604081101561059957600080fd5b50803590602001356001600160a01b031661123a565b6105b7611266565b604051808260018111156105c757fe5b60ff16815260200191505060405180910390f35b610302600480360360408110156105f157600080fd5b5060ff813516906020013561126f565b6102d66112e0565b6102816112ef565b6102816112fc565b6106366004803603602081101561062f57600080fd5b5035611311565b604080519788526020880196909652868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6103026004803603604081101561068657600080fd5b506001600160a01b038135169060200135611351565b610302600480360360c08110156106b257600080fd5b5080359060ff60208201358116916040810135916060820135169060808101359060a00135611412565b610302600480360360208110156106f257600080fd5b50356114da565b6102816004803603602081101561070f57600080fd5b5035611599565b6103026115ae565b6103026004803603604081101561073457600080fd5b506001600160a01b038135169060200135611777565b6102816004803603602081101561076057600080fd5b503560ff16611782565b6102d66117e2565b6103026004803603602081101561078857600080fd5b50356001600160a01b03166117f1565b60006107a5600154611599565b905090565b60006107b86001548361123a565b90505b919050565b60006107b860015483610c77565b60075481565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b15801561082357600080fd5b505afa158015610837573d6000803e3d6000fd5b505050506040513d602081101561084d57600080fd5b505161088a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b6108976001805403611830565b565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156108e857600080fd5b505afa1580156108fc573d6000803e3d6000fd5b505050506040513d602081101561091257600080fd5b505161094f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b60015460009081526002602081815260408084206001600160a01b0387168552600701909152909120908101546109c2576040805162461bcd60e51b815260206004820152601260248201527129ba30b5b2b9103737ba1039ba30b5b2b21760711b604482015290519081900360640190fd5b60018082018054849260ff19909116908360028111156109de57fe5b0217905550505050565b6000546001600160a01b031633146109ff57600080fd5b60095460ff1615610a4d576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6009805460ff19166001179055565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610aab57600080fd5b505afa158015610abf573d6000803e3d6000fd5b505050506040513d6020811015610ad557600080fd5b5051610b125760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600160035460ff166001811115610b2557fe5b14610b615760405162461bcd60e51b81526004018080602001828103825260298152602001806121e66029913960400191505060405180910390fd5b60018054600090815260026020819052604090912090810183905581549091610b8a9190611ade565b60015550506003805460ff19169055565b60009081526002602052604090206003015490565b6000546001600160a01b03163314610bc757600080fd5b6004546000546001600160a01b039182169163a9059cbb9116610be8611181565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b5051610c6957fe5b6000546001600160a01b0316ff5b6000828152600260205260408120600901805483908110610c9457fe5b6000918252602090912001546001600160a01b03169392505050565b600060035460ff166001811115610cc357fe5b14610cff5760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60095460ff1615610d4d576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610d9c57600080fd5b505afa158015610db0573d6000803e3d6000fd5b505050506040513d6020811015610dc657600080fd5b5051610e035760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b610e0f84848484611b00565b50505050565b610e2c3382610e276001546001611d13565b611d25565b50565b600080600080610e3d6120f5565b60008781526002602081815260408084206001600160a01b038b16855260070182529283902083516080810190945280548452600181015490929184019160ff90911690811115610e8a57fe5b6002811115610e9557fe5b8152602001600282015481526020016003820154815250509050806000015181602001518260400151836060015194509450945094505092959194509250565b60095460ff1681565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610f2d57600080fd5b505afa158015610f41573d6000803e3d6000fd5b505050506040513d6020811015610f5757600080fd5b5051610f945760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600755565b60015481565b6000908152600260208190526040909120015490565b6000546001600160a01b03163314610fcc57600080fd5b60095460ff161515600114611028576040805162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206973206e6f74207061757365642e000000000000000000604482015290519081900360640190fd5b6009805460ff19169055565b60085481565b60008060008061104c60015486610e2f565b93509350935093509193509193565b6000546001600160a01b031681565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b50516111205760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600855565b6006546001600160a01b031681565b6000546001600160a01b0316331461114b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60035461010090046001600160a01b031681565b60048054604080516370a0823160e01b81523093810193909352516000926001600160a01b03909216916370a08231916024808301926020929190829003018186803b1580156111d057600080fd5b505afa1580156111e4573d6000803e3d6000fd5b505050506040513d60208110156111fa57600080fd5b5051905090565b6000546001600160a01b0316331461121857600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526002602090815260408083206001600160a01b038516845260080190915290205492915050565b60035460ff1681565b6000546001600160a01b0316331461128657600080fd5b600082600281111561129457fe5b14156112a457600a8190556112dc565b60018260028111156112b257fe5b14156112c257600b8190556112dc565b60028260028111156112d057fe5b14156112dc57600c8190555b5050565b6005546001600160a01b031681565b60006107a5600154610b9b565b60015460009081526002602052604090205490565b6002602081905260009182526040909120805460018201549282015460038301546004840154600585015460069095015493959492939192909160ff1687565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156113a057600080fd5b505afa1580156113b4573d6000803e3d6000fd5b505050506040513d60208110156113ca57600080fd5b50516114075760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b6112dc828383611d25565b600060035460ff16600181111561142557fe5b146114615760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60095460ff16156114af576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6114bd338587868686611f2e565b6114c657600080fd5b6114d233878787611b00565b505050505050565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d602081101561155357600080fd5b50516115905760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b610e2c81611830565b60009081526002602052604090206001015490565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d602081101561162757600080fd5b50516116645760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600060035460ff16600181111561167757fe5b146116b35760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60018054600090815260026020908152604080832060038082018054968301879055859055600480549154845163a9059cbb60e01b81526001600160a01b03610100909204821692810192909252602482019790975292519195169363a9059cbb93604480850194919392918390030190829087803b15801561173557600080fd5b505af1158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b505161176757fe5b506003805460ff19166001179055565b6112dc338383611d25565b60008082600281111561179157fe5b14156117a05750600a546107bb565b60018260028111156117ae57fe5b14156117bd5750600b546107bb565b60028260028111156117cb57fe5b14156117da5750600c546107bb565b506000919050565b6004546001600160a01b031681565b6000546001600160a01b0316331461180857600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600154118015611843575080600154115b61187e5760405162461bcd60e51b81526004018080602001828103825260438152602001806121746043913960600191505060405180910390fd5b6000818152600260205260409020600681015460ff16156118e6576040805162461bcd60e51b815260206004820152601b60248201527f53686172657320616c72656164792064697374726962757465642e0000000000604482015290519081900360640190fd5b60006118f88260040154600854611ade565b82549091508110611907575080545b6003820154600483015460009182915b848110156119f15785600901818154811061192e57fe5b60009182526020808320909101546001600160a01b0316808352600789019091526040909120600281015460018201549296509091611971919060ff1689612089565b600382018190556001600160a01b0386166000908152600889016020526040902081905593506119a18385611ade565b604080516001600160a01b03881681526020810187905281519295507f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929081900390910190a150600101611917565b506003850181905560048501849055845484106114d257846003015485600201541115611ac757611a2a85600201548660030154611d13565b6005860181905515611ac7576004805460065460058801546040805163a9059cbb60e01b81526001600160a01b039384169581019590955260248501919091525191169163a9059cbb9160448083019260209291908290030181600087803b158015611a9557600080fd5b505af1158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b5051611ac757fe5b60068501805460ff19166001179055505050505050565b6000828201838110801590611af35750828110155b611af957fe5b9392505050565b60008311611b0d57600080fd5b60015460009081526002602090815260408083206001600160a01b0388168452600881019092528220549091611b438287611ade565b9050600754811015611b5457600080fd5b8315611bf95783811115611b6757600080fd5b60048054604080516323b872dd60e01b81526001600160a01b038b811694820194909452306024820152604481018a9052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611bc757600080fd5b505af1158015611bdb573d6000803e3d6000fd5b505050506040513d6020811015611bf157600080fd5b5051611bf957fe5b6001600160a01b038716600090815260078401602090815260408083206008870190925290912054611c6b5760098401805460018082018084556000938452602090932090910180546001600160a01b0319166001600160a01b038c16179055818655611c67908290611d13565b8255505b6001600160a01b038816600090815260088501602052604090208290556002808201839055600180830180548993919260ff19909116918490811115611cad57fe5b0217905550611cc0846003015488611ade565b6003850155604080516001600160a01b038a1681526020810184905281517f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929181900390910190a15050505050505050565b600082821115611d1f57fe5b50900390565b6001548110611d655760405162461bcd60e51b815260040180806020018281038252602d81526020018061211f602d913960400191505060405180910390fd5b6000818152600260205260409020600681015460ff161515600114611dbb5760405162461bcd60e51b815260040180806020018281038252603a81526020018061220f603a913960400191505060405180910390fd5b6001600160a01b038416600090815260088201602052604090205480611e28576040805162461bcd60e51b815260206004820152601c60248201527f5374616b657220646f65736e277420686176652062616c616e63652e00000000604482015290519081900360640190fd5b6001600160a01b03851660009081526008830160205260408120556003820154611e529082611d13565b6003830155604080516001600160a01b03871681526000602082015281517f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929181900390910190a1600480546040805163a9059cbb60e01b81526001600160a01b0388811694820194909452602481018590529051929091169163a9059cbb916044808201926020929091908290030181600087803b158015611ef557600080fd5b505af1158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b5051611f2757fe5b5050505050565b600080600188888860015460405160200180856001600160a01b03166001600160a01b031660601b8152601401848152602001836002811115611f6d57fe5b60ff1660f81b81526001018281526020019450505050506040516020818303038152906040528051906020012086868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611ff4573d6000803e3d6000fd5b505060408051601f1981015160035463b918161160e01b83526001600160a01b03808316600485015293519195506101009004909216925063b9181611916024808301926020929190829003018186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b505050506040513d602081101561207b57600080fd5b505198975050505050505050565b600081600101548260020154106120d25760006103e86120a885611782565b86856001015486600201548902816120bc57fe5b040302816120c657fe5b0485019150611af99050565b6000826001015483600201548602816120e757fe5b04850385039150611af99050565b60408051608081019091526000808252602082019081526020016000815260200160008152509056fe5769746864726177616c20706f737369626c65206f6e6c7920666f722066696e697368656420726f756e64732e4d6574686f642063616e2062652072756e206f6e6c7920696e206465706f7369742070686173652e596f752063616e2774206469737472696275746520736861726573206f662070726576696f7573206379636c65207768656e2074686572652069736e277420616e792e4f6e6c7920617574686f72697a65642077616c6c65742063616e20726571756573742074686973206d6574686f642e4d6574686f642063616e2062652072756e206f6e6c7920696e2062616e6b726f6c6c2070686173652e416c6c207573657220736861726573206d75737420626520646973747269627574656420746f207374616b65686f6c646572732066697273742ea265627a7a7230582007f0b34e3238ab7b02c84a46d20c6189d2c12dcf2fe2ee7c582f51fceebefd8564736f6c634300050a0032000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f000000000000000000000000764280456ae178591e037e36b01f69a52d9327a7000000000000000000000000f7a542a7f61d6479e8c63b8c43943df32262d71d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102745760003560e01c806390e2160a11610151578063cc642cc2116100c3578063e7dbc90311610087578063e7dbc903146106f9578063eecb700514610716578063f3fef3a31461071e578063f78bb1fa1461074a578063fc0c546a1461076a578063ff55e2ee1461077257610274565b8063cc642cc214610611578063d43b732514610619578063db518db214610670578063dddc2f641461069c578063e67aa415146106dc57610274565b8063a6f9dae111610115578063a6f9dae11461055d578063a9a3bba414610583578063b1c9fe6e146105af578063b204fa28146105db578063b719d03214610601578063bf9befb11461060957610274565b806390e2160a14610502578063920ec6441461051f57806392320684146105275780639403e8dd1461054d5780639e1a4d191461055557610274565b806351782a72116101ea5780636190c9d5116101ae5780636190c9d51461049f57806369334eeb146104a7578063760a8c2a146104c4578063773b5b5e146104cc57806382e4eda4146104d45780638da5cb5b146104fa57610274565b806351782a72146103a057806351cff8d9146103db5780635983f7cd146104015780635c975abb14610466578063612d669e1461048257610274565b806334f3ea671161023c57806334f3ea671461030457806337a66d85146103335780633f6fff4e1461033b578063402822521461035857806341c0e1b5146103755780634fd70e7f1461037d57610274565b806308611a581461027957806316934fc4146102935780631d6b8b72146102b957806325c065b1146102f25780632da39239146102fa575b600080fd5b610281610798565b60408051918252519081900360200190f35b610281600480360360208110156102a957600080fd5b50356001600160a01b03166107aa565b6102d6600480360360208110156102cf57600080fd5b50356107c0565b604080516001600160a01b039092168252519081900360200190f35b6102816107ce565b6103026107d4565b005b6103026004803603604081101561031a57600080fd5b5080356001600160a01b0316906020013560ff16610899565b6103026109e8565b6103026004803603602081101561035157600080fd5b5035610a5c565b6102816004803603602081101561036e57600080fd5b5035610b9b565b610302610bb0565b6102d66004803603604081101561039357600080fd5b5080359060200135610c77565b610302600480360360808110156103b657600080fd5b506001600160a01b038135169060208101359060ff6040820135169060600135610cb0565b610302600480360360208110156103f157600080fd5b50356001600160a01b0316610e15565b61042d6004803603604081101561041757600080fd5b50803590602001356001600160a01b0316610e2f565b6040518085815260200184600281111561044357fe5b60ff16815260200183815260200182815260200194505050505060405180910390f35b61046e610ed5565b604080519115158252519081900360200190f35b6103026004803603602081101561049857600080fd5b5035610ede565b610281610f99565b610281600480360360208110156104bd57600080fd5b5035610f9f565b610302610fb5565b610281611034565b61042d600480360360208110156104ea57600080fd5b50356001600160a01b031661103a565b6102d661105b565b6103026004803603602081101561051857600080fd5b503561106a565b6102d6611125565b6103026004803603602081101561053d57600080fd5b50356001600160a01b0316611134565b6102d661116d565b610281611181565b6103026004803603602081101561057357600080fd5b50356001600160a01b0316611201565b6102816004803603604081101561059957600080fd5b50803590602001356001600160a01b031661123a565b6105b7611266565b604051808260018111156105c757fe5b60ff16815260200191505060405180910390f35b610302600480360360408110156105f157600080fd5b5060ff813516906020013561126f565b6102d66112e0565b6102816112ef565b6102816112fc565b6106366004803603602081101561062f57600080fd5b5035611311565b604080519788526020880196909652868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6103026004803603604081101561068657600080fd5b506001600160a01b038135169060200135611351565b610302600480360360c08110156106b257600080fd5b5080359060ff60208201358116916040810135916060820135169060808101359060a00135611412565b610302600480360360208110156106f257600080fd5b50356114da565b6102816004803603602081101561070f57600080fd5b5035611599565b6103026115ae565b6103026004803603604081101561073457600080fd5b506001600160a01b038135169060200135611777565b6102816004803603602081101561076057600080fd5b503560ff16611782565b6102d66117e2565b6103026004803603602081101561078857600080fd5b50356001600160a01b03166117f1565b60006107a5600154611599565b905090565b60006107b86001548361123a565b90505b919050565b60006107b860015483610c77565b60075481565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b15801561082357600080fd5b505afa158015610837573d6000803e3d6000fd5b505050506040513d602081101561084d57600080fd5b505161088a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b6108976001805403611830565b565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156108e857600080fd5b505afa1580156108fc573d6000803e3d6000fd5b505050506040513d602081101561091257600080fd5b505161094f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b60015460009081526002602081815260408084206001600160a01b0387168552600701909152909120908101546109c2576040805162461bcd60e51b815260206004820152601260248201527129ba30b5b2b9103737ba1039ba30b5b2b21760711b604482015290519081900360640190fd5b60018082018054849260ff19909116908360028111156109de57fe5b0217905550505050565b6000546001600160a01b031633146109ff57600080fd5b60095460ff1615610a4d576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6009805460ff19166001179055565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610aab57600080fd5b505afa158015610abf573d6000803e3d6000fd5b505050506040513d6020811015610ad557600080fd5b5051610b125760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600160035460ff166001811115610b2557fe5b14610b615760405162461bcd60e51b81526004018080602001828103825260298152602001806121e66029913960400191505060405180910390fd5b60018054600090815260026020819052604090912090810183905581549091610b8a9190611ade565b60015550506003805460ff19169055565b60009081526002602052604090206003015490565b6000546001600160a01b03163314610bc757600080fd5b6004546000546001600160a01b039182169163a9059cbb9116610be8611181565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b5051610c6957fe5b6000546001600160a01b0316ff5b6000828152600260205260408120600901805483908110610c9457fe5b6000918252602090912001546001600160a01b03169392505050565b600060035460ff166001811115610cc357fe5b14610cff5760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60095460ff1615610d4d576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610d9c57600080fd5b505afa158015610db0573d6000803e3d6000fd5b505050506040513d6020811015610dc657600080fd5b5051610e035760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b610e0f84848484611b00565b50505050565b610e2c3382610e276001546001611d13565b611d25565b50565b600080600080610e3d6120f5565b60008781526002602081815260408084206001600160a01b038b16855260070182529283902083516080810190945280548452600181015490929184019160ff90911690811115610e8a57fe5b6002811115610e9557fe5b8152602001600282015481526020016003820154815250509050806000015181602001518260400151836060015194509450945094505092959194509250565b60095460ff1681565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b158015610f2d57600080fd5b505afa158015610f41573d6000803e3d6000fd5b505050506040513d6020811015610f5757600080fd5b5051610f945760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600755565b60015481565b6000908152600260208190526040909120015490565b6000546001600160a01b03163314610fcc57600080fd5b60095460ff161515600114611028576040805162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206973206e6f74207061757365642e000000000000000000604482015290519081900360640190fd5b6009805460ff19169055565b60085481565b60008060008061104c60015486610e2f565b93509350935093509193509193565b6000546001600160a01b031681565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b50516111205760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600855565b6006546001600160a01b031681565b6000546001600160a01b0316331461114b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60035461010090046001600160a01b031681565b60048054604080516370a0823160e01b81523093810193909352516000926001600160a01b03909216916370a08231916024808301926020929190829003018186803b1580156111d057600080fd5b505afa1580156111e4573d6000803e3d6000fd5b505050506040513d60208110156111fa57600080fd5b5051905090565b6000546001600160a01b0316331461121857600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526002602090815260408083206001600160a01b038516845260080190915290205492915050565b60035460ff1681565b6000546001600160a01b0316331461128657600080fd5b600082600281111561129457fe5b14156112a457600a8190556112dc565b60018260028111156112b257fe5b14156112c257600b8190556112dc565b60028260028111156112d057fe5b14156112dc57600c8190555b5050565b6005546001600160a01b031681565b60006107a5600154610b9b565b60015460009081526002602052604090205490565b6002602081905260009182526040909120805460018201549282015460038301546004840154600585015460069095015493959492939192909160ff1687565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156113a057600080fd5b505afa1580156113b4573d6000803e3d6000fd5b505050506040513d60208110156113ca57600080fd5b50516114075760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b6112dc828383611d25565b600060035460ff16600181111561142557fe5b146114615760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60095460ff16156114af576040805162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b604482015290519081900360640190fd5b6114bd338587868686611f2e565b6114c657600080fd5b6114d233878787611b00565b505050505050565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d602081101561155357600080fd5b50516115905760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b610e2c81611830565b60009081526002602052604090206001015490565b6003546040805163b918161160e01b815233600482015290516101009092046001600160a01b03169163b918161191602480820192602092909190829003018186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d602081101561162757600080fd5b50516116645760405162461bcd60e51b815260040180806020018281038252602f8152602001806121b7602f913960400191505060405180910390fd5b600060035460ff16600181111561167757fe5b146116b35760405162461bcd60e51b815260040180806020018281038252602881526020018061214c6028913960400191505060405180910390fd5b60018054600090815260026020908152604080832060038082018054968301879055859055600480549154845163a9059cbb60e01b81526001600160a01b03610100909204821692810192909252602482019790975292519195169363a9059cbb93604480850194919392918390030190829087803b15801561173557600080fd5b505af1158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b505161176757fe5b506003805460ff19166001179055565b6112dc338383611d25565b60008082600281111561179157fe5b14156117a05750600a546107bb565b60018260028111156117ae57fe5b14156117bd5750600b546107bb565b60028260028111156117cb57fe5b14156117da5750600c546107bb565b506000919050565b6004546001600160a01b031681565b6000546001600160a01b0316331461180857600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600154118015611843575080600154115b61187e5760405162461bcd60e51b81526004018080602001828103825260438152602001806121746043913960600191505060405180910390fd5b6000818152600260205260409020600681015460ff16156118e6576040805162461bcd60e51b815260206004820152601b60248201527f53686172657320616c72656164792064697374726962757465642e0000000000604482015290519081900360640190fd5b60006118f88260040154600854611ade565b82549091508110611907575080545b6003820154600483015460009182915b848110156119f15785600901818154811061192e57fe5b60009182526020808320909101546001600160a01b0316808352600789019091526040909120600281015460018201549296509091611971919060ff1689612089565b600382018190556001600160a01b0386166000908152600889016020526040902081905593506119a18385611ade565b604080516001600160a01b03881681526020810187905281519295507f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929081900390910190a150600101611917565b506003850181905560048501849055845484106114d257846003015485600201541115611ac757611a2a85600201548660030154611d13565b6005860181905515611ac7576004805460065460058801546040805163a9059cbb60e01b81526001600160a01b039384169581019590955260248501919091525191169163a9059cbb9160448083019260209291908290030181600087803b158015611a9557600080fd5b505af1158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b5051611ac757fe5b60068501805460ff19166001179055505050505050565b6000828201838110801590611af35750828110155b611af957fe5b9392505050565b60008311611b0d57600080fd5b60015460009081526002602090815260408083206001600160a01b0388168452600881019092528220549091611b438287611ade565b9050600754811015611b5457600080fd5b8315611bf95783811115611b6757600080fd5b60048054604080516323b872dd60e01b81526001600160a01b038b811694820194909452306024820152604481018a9052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611bc757600080fd5b505af1158015611bdb573d6000803e3d6000fd5b505050506040513d6020811015611bf157600080fd5b5051611bf957fe5b6001600160a01b038716600090815260078401602090815260408083206008870190925290912054611c6b5760098401805460018082018084556000938452602090932090910180546001600160a01b0319166001600160a01b038c16179055818655611c67908290611d13565b8255505b6001600160a01b038816600090815260088501602052604090208290556002808201839055600180830180548993919260ff19909116918490811115611cad57fe5b0217905550611cc0846003015488611ade565b6003850155604080516001600160a01b038a1681526020810184905281517f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929181900390910190a15050505050505050565b600082821115611d1f57fe5b50900390565b6001548110611d655760405162461bcd60e51b815260040180806020018281038252602d81526020018061211f602d913960400191505060405180910390fd5b6000818152600260205260409020600681015460ff161515600114611dbb5760405162461bcd60e51b815260040180806020018281038252603a81526020018061220f603a913960400191505060405180910390fd5b6001600160a01b038416600090815260088201602052604090205480611e28576040805162461bcd60e51b815260206004820152601c60248201527f5374616b657220646f65736e277420686176652062616c616e63652e00000000604482015290519081900360640190fd5b6001600160a01b03851660009081526008830160205260408120556003820154611e529082611d13565b6003830155604080516001600160a01b03871681526000602082015281517f89dbe872fd688c751e8c5df10849155d89d1467fd56ddb92b0d0024cda2ccd78929181900390910190a1600480546040805163a9059cbb60e01b81526001600160a01b0388811694820194909452602481018590529051929091169163a9059cbb916044808201926020929091908290030181600087803b158015611ef557600080fd5b505af1158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b5051611f2757fe5b5050505050565b600080600188888860015460405160200180856001600160a01b03166001600160a01b031660601b8152601401848152602001836002811115611f6d57fe5b60ff1660f81b81526001018281526020019450505050506040516020818303038152906040528051906020012086868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611ff4573d6000803e3d6000fd5b505060408051601f1981015160035463b918161160e01b83526001600160a01b03808316600485015293519195506101009004909216925063b9181611916024808301926020929190829003018186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b505050506040513d602081101561207b57600080fd5b505198975050505050505050565b600081600101548260020154106120d25760006103e86120a885611782565b86856001015486600201548902816120bc57fe5b040302816120c657fe5b0485019150611af99050565b6000826001015483600201548602816120e757fe5b04850385039150611af99050565b60408051608081019091526000808252602082019081526020016000815260200160008152509056fe5769746864726177616c20706f737369626c65206f6e6c7920666f722066696e697368656420726f756e64732e4d6574686f642063616e2062652072756e206f6e6c7920696e206465706f7369742070686173652e596f752063616e2774206469737472696275746520736861726573206f662070726576696f7573206379636c65207768656e2074686572652069736e277420616e792e4f6e6c7920617574686f72697a65642077616c6c65742063616e20726571756573742074686973206d6574686f642e4d6574686f642063616e2062652072756e206f6e6c7920696e2062616e6b726f6c6c2070686173652e416c6c207573657220736861726573206d75737420626520646973747269627574656420746f207374616b65686f6c646572732066697273742ea265627a7a7230582007f0b34e3238ab7b02c84a46d20c6189d2c12dcf2fe2ee7c582f51fceebefd8564736f6c634300050a0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f000000000000000000000000764280456ae178591e037e36b01f69a52d9327a7000000000000000000000000f7a542a7f61d6479e8c63b8c43943df32262d71d
-----Decoded View---------------
Arg [0] : tokenAddr (address): 0x801f67eC764459F9EC3Cb9d6b998547f2DE6Ed3f
Arg [1] : casinoAddr (address): 0x764280456ae178591E037E36B01f69a52d9327a7
Arg [2] : predecessorAdr (address): 0xf7A542a7f61D6479E8c63b8c43943DF32262D71D
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f
Arg [1] : 000000000000000000000000764280456ae178591e037e36b01f69a52d9327a7
Arg [2] : 000000000000000000000000f7a542a7f61d6479e8c63b8c43943df32262d71d
Deployed Bytecode Sourcemap
1665:18344:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1665:18344:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10992:94;;;:::i;:::-;;;;;;;;;;;;;;;;10398:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10398:106:0;-1:-1:-1;;;;;10398:106:0;;:::i;10186:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10186:114:0;;:::i;:::-;;;;-1:-1:-1;;;;;10186:114:0;;;;;;;;;;;;;;3746:28;;;:::i;8760:93::-;;;:::i;:::-;;6067:253;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6067:253:0;;-1:-1:-1;;;;;6067:253:0;;;;;;;;:::i;6637:77::-;;;:::i;8439:249::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8439:249:0;;:::i;12181:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12181:114:0;;:::i;13547:135::-;;;:::i;11232:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11232:142:0;;;;;;;:::i;9725:198::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;9725:198:0;;;;;;;;;;;;;;;;;;;;:::i;6992:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6992:115:0;-1:-1:-1;;;;;6992:115:0;;:::i;11802:271::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11802:271:0;;;;;;-1:-1:-1;;;;;11802:271:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;13278:102;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13278:102:0;;:::i;3212:17::-;;;:::i;12625:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12625:114:0;;:::i;6760:78::-;;;:::i;3863:22::-;;;:::i;10606:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10606:161:0;-1:-1:-1;;;;;10606:161:0;;:::i;1007:20::-;;;:::i;13083:90::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13083:90:0;;:::i;3663:31::-;;;:::i;6444:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6444:106:0;-1:-1:-1;;;;;6444:106:0;;:::i;3416:20::-;;;:::i;13759:100::-;;;:::i;1164:85::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1164:85:0;-1:-1:-1;;;;;1164:85:0;;:::i;11520:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11520:142:0;;;;;;-1:-1:-1;;;;;11520:142:0;;:::i;3338:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5040:320;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5040:320:0;;;;;;;;;:::i;3547:26::-;;;:::i;10835:90::-;;;:::i;9985:100::-;;;:::i;3255:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3255:45:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7639:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7639:131:0;;;;;;;;:::i;9313:269::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;9313:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8990:111::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8990:111:0;;:::i;12402:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12402:118:0;;:::i;7878:310::-;;;:::i;7317:117::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7317:117:0;;;;;;;;:::i;5523:322::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5523:322:0;;;;:::i;3487:18::-;;;:::i;12857:103::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12857:103:0;-1:-1:-1;;;;;12857:103:0;;:::i;10992:94::-;11038:4;11060:20;11074:5;;11060:13;:20::i;:::-;11053:27;;10992:94;:::o;10398:106::-;10453:4;10475:23;10482:5;;10489:8;10475:6;:23::i;:::-;10468:30;;10398:106;;;;:::o;10186:114::-;10242:7;10267:27;10280:5;;10287:6;10267:12;:27::i;3746:28::-;;;;:::o;8760:93::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8819:28;8845:1;8837:5;;:9;8819:17;:28::i;:::-;8760:93::o;6067:253::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6195:5;;6158:22;6183:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6183:44:0;;;;:34;;:44;;;;;;6244:14;;;;6236:49;;;;;-1:-1:-1;;;6236:49:0;;;;;;;;;;;;-1:-1:-1;;;6236:49:0;;;;;;;;;;;;;;;6294:12;;;;:20;;6309:5;;-1:-1:-1;;6294:20:0;;;;6309:5;6294:20;;;;;;;;;;;;;19531:1;6067:253;;:::o;6637:77::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;19850:6;;;;:15;19842:47;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;;;;6695:6;:13;;-1:-1:-1;;6695:13:0;6704:4;6695:13;;;6637:77::o;8439:249::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19723:22;19714:5;;;;;:31;;;;;;;;19706:85;;;;-1:-1:-1;;;19706:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8562:5;;;8523:24;8550:18;;;:11;:18;;;;;;;;8577;;;:33;;;8635:5;;8550:18;;8627:17;;8635:5;8627:7;:17::i;:::-;8619:5;:25;-1:-1:-1;;8653:5:0;:29;;-1:-1:-1;;8653:29:0;;;8439:249::o;12181:114::-;12236:4;12258:19;;;:11;:19;;;;;:31;;;;12181:114::o;13547:135::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;13594:5;;;13609;-1:-1:-1;;;;;13594:5:0;;;;:14;;13609:5;13616:14;:12;:14::i;:::-;13594:37;;;;;;;;;;;;;-1:-1:-1;;;;;13594:37:0;-1:-1:-1;;;;;13594:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13594:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13594:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13594:37:0;13587:45;;;;13668:5;;-1:-1:-1;;;;;13668:5:0;13639:37;11232:142;11301:7;11326:19;;;:11;:19;;;;;:34;;:42;;11361:6;;11326:42;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11326:42:0;;11232:142;-1:-1:-1;;;11232:142:0:o;9725:198::-;19590:21;19581:5;;;;;:30;;;;;;;;19573:83;;;;-1:-1:-1;;;19573:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19850:6;;;;:15;19842:47;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;;;;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9868:49;9880:8;9890:6;9898:5;9905:11;9868;:49::i;:::-;9725:198;;;;:::o;6992:115::-;7045:56;7060:10;7072:9;7083:17;7091:5;;7098:1;7083:7;:17::i;:::-;7045:14;:56::i;:::-;6992:115;:::o;11802:271::-;11870:15;11887:16;11905:11;11918;11941:16;;:::i;:::-;11960:19;;;;:11;:19;;;;;;;;-1:-1:-1;;;;;11960:45:0;;;;:35;;:45;;;;;;11941:64;;;;;;;;;;;;;;;;11960:45;;11941:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12022:2;:13;;;12037:2;:7;;;12046:2;:9;;;12057:2;:9;;;12014:53;;;;;;;;;11802:271;;;;;;;:::o;3927:18::-;;;;;;:::o;13278:102::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13349:16;:25;13278:102::o;3212:17::-;;;;:::o;12625:114::-;12680:4;12702:19;;;:11;:19;;;;;;;;:31;;;12625:114::o;6760:78::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;19948:6;;;;:14;;:6;:14;19940:50;;;;;-1:-1:-1;;;19940:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6818:6;:14;;-1:-1:-1;;6818:14:0;;;6760:78::o;3863:22::-;;;;:::o;10606:161::-;10661:15;10678:16;10696:11;10709;10738:23;10745:5;;10752:8;10738:6;:23::i;:::-;10731:30;;;;;;;;10606:161;;;;;:::o;1007:20::-;;;-1:-1:-1;;;;;1007:20:0;;:::o;13083:90::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13148:10;:19;13083:90::o;3663:31::-;;;-1:-1:-1;;;;;3663:31:0;;:::o;6444:106::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;6517:16;:27;;-1:-1:-1;;;;;;6517:27:0;-1:-1:-1;;;;;6517:27:0;;;;;;;;;;6444:106::o;3416:20::-;;;;;;-1:-1:-1;;;;;3416:20:0;;:::o;13759:100::-;13823:5;;;:30;;;-1:-1:-1;;;13823:30:0;;13847:4;13823:30;;;;;;;;13803:4;;-1:-1:-1;;;;;13823:5:0;;;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13823:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13823:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13823:30:0;;-1:-1:-1;13759:100:0;:::o;1164:85::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;1227:5;:16;;-1:-1:-1;;;;;;1227:16:0;-1:-1:-1;;;;;1227:16:0;;;;;;;;;;1164:85::o;11520:142::-;11588:4;11610:19;;;:11;:19;;;;;;;;-1:-1:-1;;;;;11610:46:0;;;;:36;;:46;;;;;;11520:142;;;;:::o;3338:26::-;;;;;;:::o;5040:320::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;5138:15;5129:5;:24;;;;;;;;;5125:230;;;5166:12;:21;;;5125:230;;;5214:16;5205:5;:25;;;;;;;;;5201:154;;;5243:13;:22;;;5201:154;;;5292:18;5283:5;:27;;;;;;;;;5279:76;;;5323:15;:24;;;5279:76;5040:320;;:::o;3547:26::-;;;-1:-1:-1;;;;;3547:26:0;;:::o;10835:90::-;10879:4;10901:18;10913:5;;10901:11;:18::i;9985:100::-;10062:5;;10028:4;10050:18;;;:11;:18;;;;;:29;9985:100;:::o;3255:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7639:131::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7722:42;7737:8;7747;7757:6;7722:14;:42::i;9313:269::-;19590:21;19581:5;;;;;:30;;;;;;;;19573:83;;;;-1:-1:-1;;;19573:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19850:6;;;;:15;19842:47;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;-1:-1:-1;;;19842:47:0;;;;;;;;;;;;;;;9459:56;9475:10;9487:11;9500:5;9507:1;9510;9513;9459:15;:56::i;:::-;9451:65;;;;;;9525:51;9537:10;9549:6;9557:5;9564:11;9525;:51::i;:::-;9313:269;;;;;;:::o;8990:111::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9065:30;9083:11;9065:17;:30::i;12402:118::-;12459:4;12481:19;;;:11;:19;;;;;:33;;;;12402:118::o;7878:310::-;19443:6;;:29;;;-1:-1:-1;;;19443:29:0;;19461:10;19443:29;;;;;;:6;;;;-1:-1:-1;;;;;19443:6:0;;:17;;:29;;;;;;;;;;;;;;;:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;19443:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19443:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19443:29:0;19435:89;;;;-1:-1:-1;;;19435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19590:21;19581:5;;;;;:30;;;;;;;;19573:83;;;;-1:-1:-1;;;19573:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7986:5;;;7947:24;7974:18;;;:11;:18;;;;;;;;8024;;;;;;8001:20;;;:41;;;8051:22;;;8089:5;;;8112:6;;8089:53;;-1:-1:-1;;;8089:53:0;;-1:-1:-1;;;;;8089:5:0;8112:6;;;;;8089:53;;;;;;;;;;;;;;;;7974:18;;8089:5;;:14;;:53;;;;;7974:18;;8089:53;;;;;;;;;:5;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;8089:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8089:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8089:53:0;8082:61;;;;-1:-1:-1;8152:5:0;:30;;-1:-1:-1;;8152:30:0;8160:22;8152:30;;;7878:310::o;7317:117::-;7383:45;7398:10;7410:9;7421:6;7383:14;:45::i;5523:322::-;5592:4;;5608:5;:24;;;;;;;;;5604:221;;;-1:-1:-1;5651:12:0;;5644:19;;5604:221;5690:16;5681:5;:25;;;;;;;;;5677:148;;;-1:-1:-1;5725:13:0;;5718:20;;5677:148;5765:18;5756:5;:27;;;;;;;;;5752:73;;;-1:-1:-1;5802:15:0;;5795:22;;5752:73;-1:-1:-1;5838:1:0;5523:322;;;:::o;3487:18::-;;;-1:-1:-1;;;;;3487:18:0;;:::o;12857:103::-;1080:5;;-1:-1:-1;;;;;1080:5:0;1066:10;:19;1058:28;;;;;;12927:6;:27;;-1:-1:-1;;;;;12927:27:0;;;;;-1:-1:-1;;;;;;12927:27:0;;;;;;;;;12857:103::o;15121:1517::-;15200:1;15192:5;;:9;:32;;;;;15213:11;15205:5;;:19;15192:32;15184:112;;;;-1:-1:-1;;;15184:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15305:24;15332;;;:11;:24;;;;;15373;;;;;;:33;15365:73;;;;;-1:-1:-1;;;15365:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15447:10;15460:43;15468:6;:22;;;15492:10;;15460:7;:43::i;:::-;15525:17;;15447:56;;-1:-1:-1;15516:26:0;;15512:80;;-1:-1:-1;15565:17:0;;15512:80;15666:18;;;;15707:22;;;;15600:16;;;;15693:459;15735:5;15731:1;:9;15693:459;;;15771:6;:21;;15793:1;15771:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15771:24:0;15833:32;;;:22;;;:32;;;;;;;15906:14;;;;15771:24;15922:12;;;15771:24;;-1:-1:-1;15833:32:0;;15888:55;;15906:14;15922:12;;15833:6;15888:17;:55::i;:::-;15956:14;;;:24;;;-1:-1:-1;;;;;15993:33:0;;;;;;:23;;;:33;;;;;:43;;;15878:65;-1:-1:-1;16064:30:0;16072:12;15878:65;16064:7;:30::i;:::-;16112;;;-1:-1:-1;;;;;16112:30:0;;;;;;;;;;;;16049:45;;-1:-1:-1;16112:30:0;;;;;;;;;;;-1:-1:-1;15742:3:0;;15693:459;;;-1:-1:-1;16160:18:0;;;:33;;;16202:22;;;:30;;;16254:17;;16245:26;;16241:392;;16311:6;:18;;;16290:6;:18;;;:39;16286:294;;;16372:47;16380:6;:18;;;16400:6;:18;;;16372:7;:47::i;:::-;16346:23;;;:73;;;16438:27;16434:133;;16493:5;;;16508:16;;16526:23;;;;16493:57;;;-1:-1:-1;;;16493:57:0;;-1:-1:-1;;;;;16508:16:0;;;16493:57;;;;;;;;;;;;;;;:5;;;:14;;:57;;;;;;;;;;;;;;:5;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;16493:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16493:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16493:57:0;16486:65;;;;16592:24;;;:31;;-1:-1:-1;;16592:31:0;16619:4;16592:31;;;15121:1517;;;;;;:::o;1387:127::-;1442:4;1462:5;;;1479:6;;;;;;:16;;;1494:1;1489;:6;;1479:16;1472:24;;;;1508:1;1387:127;-1:-1:-1;;;1387:127:0:o;17674:1125::-;17799:1;17790:6;:10;17782:19;;;;;;17850:5;;17811:24;17838:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;17882:33:0;;;;:23;;;:33;;;;;;17838:18;;17941:25;17882:33;17959:6;17941:7;:25::i;:::-;17925:41;;17996:16;;17984:8;:28;;17976:37;;;;;;18026:15;;18023:200;;18127:11;18115:8;:23;;18107:32;;;;;;18160:5;;;:51;;;-1:-1:-1;;;18160:51:0;;-1:-1:-1;;;;;18160:51:0;;;;;;;;;;18197:4;18160:51;;;;;;;;;;;;:5;;;;;:18;;:51;;;;;;;;;;;;;;;:5;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;18160:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18160:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18160:51:0;18153:59;;;;-1:-1:-1;;;;;18257:32:0;;18232:22;18257:32;;;:22;;;:32;;;;;;;;18312:23;;;:33;;;;;;;18308:227;;18385:21;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;18385:36:0;;;;;;;;;;;;-1:-1:-1;;;;;;18385:36:0;-1:-1:-1;;;;;18385:36:0;;;;;18435:31;;;18501:23;;23:18:-1;;18501:7:0;:23::i;:::-;18480:44;;-1:-1:-1;18308:227:0;-1:-1:-1;;;;;18553:33:0;;;;;;:23;;;:33;;;;;:44;;;18607:14;;;;:25;;;18642:12;;;;:20;;18657:5;;18642:12;;-1:-1:-1;;18642:20:0;;;;18657:5;;18642:20;;;;;;;;;;;;18702:35;18710:6;:18;;;18730:6;18702:7;:35::i;:::-;18681:18;;;:56;18761:31;;;-1:-1:-1;;;;;18761:31:0;;;;;;;;;;;;;;;;;;;;;;;17674:1125;;;;;;;;:::o;1280:102::-;1335:4;1358:1;1353;:6;;1346:14;;;;-1:-1:-1;1372:5:0;;;1280:102::o;14163:684::-;14272:5;;14263:6;:14;14255:72;;;;-1:-1:-1;;;14255:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14336:28;14367:19;;;:11;:19;;;;;14403:28;;;;;;:36;;:28;:36;14395:107;;;;-1:-1:-1;;;14395:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14527:37:0;;14511:13;14527:37;;;:27;;;:37;;;;;;14581:12;14573:53;;;;;-1:-1:-1;;;14573:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14635:37:0;;14675:1;14635:37;;;:27;;;:37;;;;;:41;14718:22;;;;14710:41;;14742:8;14710:7;:41::i;:::-;14685:22;;;:66;14765:24;;;-1:-1:-1;;;;;14765:24:0;;;;14787:1;14765:24;;;;;;;;;;;;;;;;;14805:5;;;:35;;;-1:-1:-1;;;14805:35:0;;-1:-1:-1;;;;;14805:35:0;;;;;;;;;;;;;;;;;;:5;;;;;:14;;:35;;;;;;;;;;;;;;;:5;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;14805:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14805:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14805:35:0;14798:43;;;;14163:684;;;;;:::o;19074:266::-;19194:4;19207:14;19224:71;19261:2;19265:5;19272:4;19278:5;;19244:40;;;;;;-1:-1:-1;;;;;19244:40:0;-1:-1:-1;;;;;19244:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19244:40:0;;;19234:51;;;;;;19287:1;19290;19293;19224:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19224:71:0;;;-1:-1:-1;;19224:71:0;;;19309:6;;-1:-1:-1;;;19309:25:0;;-1:-1:-1;;;;;19309:25:0;;;;;;;;;19224:71;;-1:-1:-1;19309:6:0;;;;;;;-1:-1:-1;19309:17:0;;:25;;;;;19224:71;;19309:25;;;;;;;:6;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;19309:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19309:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19309:25:0;;19074:266;-1:-1:-1;;;;;;;;19074:266:0:o;16867:561::-;16988:4;17034:10;:24;;;17008:10;:22;;;:50;17004:417;;17071:11;17205:4;17173:29;17193:8;17173:19;:29::i;:::-;17156:13;17128:10;:24;;;17103:10;:22;;;17087:13;:38;:65;;;;;;17086:83;17085:117;:124;;;;;;17227:22;;;-1:-1:-1;17220:29:0;;-1:-1:-1;17220:29:0;17004:417;17276:9;17347:10;:24;;;17322:10;:22;;;17306:13;:38;:65;;;;;;17289:83;;17391:20;;;-1:-1:-1;17384:27:0;;-1:-1:-1;17384:27:0;1665:18344;;;;;;;;;;-1:-1:-1;1665:18344:0;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://07f0b34e3238ab7b02c84a46d20c6189d2c12dcf2fe2ee7c582f51fceebefd85
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.