ERC-20
Exchange
Overview
Max Total Supply
1,600,000 DIGIX
Holders
697 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DigiExchange
Compiler Version
v0.5.6+commit.b259423e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-11 */ pragma solidity >=0.5.6 <0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract DigiExchange { using SafeMath for *; struct Roadmap { uint256 supply; uint256 startPrice; uint256 incPrice; } string constant public _name = "Digi Exchange"; string constant public _symbol = "DIGIX"; uint8 constant public _decimals = 0; uint256 public _totalSupply = 1600000; uint256 public _rewardsSupply = 240000; uint256 public circulatingSupply = 514538; mapping(address => bool) private administrators; address commissionHolder; address stakeHolder; uint256 commissionFunds = 0; uint256 public commissionPercent = 400; uint256 public sellCommission = 600; uint256 public tokenCommissionPercent = 250; uint256 public buyPrice; uint256 public sellPrice; uint8 public currentRoadmap = 3; uint8 public sellRoadmap = 3; uint8 constant public LAST_ROADMAP = 18; uint256 public currentRoadmapUsedSupply = 14538; uint256 public sellRoadmapUsedSupply = 14538; uint256 public totalStakeTokens = 0; uint256 public totalLockInTokens = 0; uint256 public locakablePercent = 750; bool buyLimit = true; uint256 buyLimitToken = 2100; uint256 minBuyToken = 10; address dev; //Backend Operation address dev1; // Operations address dev2; // Research Funds address dev3; //Marketing address dev4; // Development address dev5; //Compliance uint256 dev1Com; uint256 dev2Com; uint256 dev3Com; uint256 dev4Com; uint256 dev5Com; mapping(address => uint256) commissionOf; mapping(address => uint256) userIncomes; mapping(address => uint256) private _balances; mapping(address => uint256) public stakeBalanceOf; mapping(uint8 => Roadmap) public priceRoadmap; mapping(address => uint256) public _lockInBalances; event Transfer(address indexed from, address indexed to, uint256 value); event Stake(address indexed staker, uint256 value, uint256 totalInStake); event UnStake(address indexed staker, uint256 value, uint256 totalInStake); event CommissionWithdraw(address indexed user, uint256 amount); event WithdrawTokenCommission(address indexed user, uint256 amount, uint256 nonce); event WithdrawStakingCommission(address indexed user, uint256 amount, uint256 nonce); event Price(uint256 buyPrice, uint256 sellPrice, uint256 circulatingSupply); event StakeUser(address indexed user, uint256 value, uint256 totalInStake, uint256 nonce); event LockIn(address indexed from, address indexed to, uint256 value); event TransactionFees(address to, uint256 totalValue); constructor(address _commissionHolder, address _stakeHolder) public { administrators[msg.sender] = true; administrators[_commissionHolder] = true; dev = msg.sender; commissionHolder = _commissionHolder; stakeHolder = _stakeHolder; createRoadmap(); buyPrice = 867693750000000; sellPrice = 867688750000000; } function() external payable { revert(); } modifier onlyAdministrators{ require(administrators[msg.sender], "Only administrators can execute this function"); _; } function upgradeContract(address[] memory users) public onlyAdministrators { for (uint i = 0; i < users.length; i++) { _balances[users[i]] += 500; _lockInBalances[users[i]] += 1500; _balances[commissionHolder] += 666; emit Transfer(address(this), users[i], _balances[users[i]]); emit LockIn(users[i], address(this), _lockInBalances[users[i]]); } } function upgradeDetails(uint256 _bp, uint256 _sp, uint256 _circSup, uint8 _currentRp, uint8 _sellRp, uint256 _crs, uint256 _srs, uint256 _commFunds) public onlyAdministrators { buyPrice = _bp; sellPrice = _sp; circulatingSupply = _circSup; currentRoadmap = _currentRp; sellRoadmap = _sellRp; currentRoadmapUsedSupply = _crs; sellRoadmapUsedSupply = _srs; commissionFunds = _commFunds; } function stake(address _user, uint256 _tokens, uint256 nonce) public onlyAdministrators { require(_tokens <= _balances[_user], "User dont have enough tokens to stake"); _balances[_user] -= _tokens; stakeBalanceOf[_user] += _tokens; totalStakeTokens += _tokens; emit StakeUser(_user, _tokens, totalStakeTokens, nonce); } function stakeExt(address _user, uint256 _tokens) private { require(_tokens <= _balances[_user], "You dont have enough tokens to stake"); _balances[_user] -= _tokens; stakeBalanceOf[_user] += _tokens; totalStakeTokens += _tokens; emit Stake(_user, _tokens, totalStakeTokens); } function unStake(address _user, uint256 _tokens) public onlyAdministrators { require(_tokens <= stakeBalanceOf[_user], "User doesnt have amount of token in stake"); stakeBalanceOf[_user] -= _tokens; totalStakeTokens -= _tokens; _balances[_user] += _tokens; emit UnStake(_user, _tokens, totalStakeTokens); } function lockInExt(address _user, uint256 _tokens) private { _lockInBalances[_user] += _tokens; totalLockInTokens += _tokens; } function releaseLockIn(address _user, uint256 _tokens) public onlyAdministrators { require(_tokens <= _lockInBalances[_user], "User dont have enough balance in Tokens"); _lockInBalances[_user] = _lockInBalances[_user] - _tokens; _balances[_user] = _balances[_user] + _tokens; totalLockInTokens = totalLockInTokens - _tokens; emit LockIn(address(this), _user, _tokens); } function addLiquidity() external payable returns (bool){ return true; } function purchase(uint256 tokens) external payable { purchaseExt(msg.sender, tokens, msg.value); } function sell(uint256 _tokens) public { require(_tokens > 0, "Tokens can not be zero"); require(_tokens <= _balances[msg.sender], "You dont have enough amount of token"); sellExt(msg.sender, _tokens); } function sellExt(address _user, uint256 _tokens) private { uint256 saleAmount = updateSale(_tokens); _balances[_user] -= _tokens; uint256 _commission = saleAmount.mul(sellCommission).div(10000); uint256 _balanceAfterCommission = saleAmount.sub(_commission); uint256 txnFees = _commission * 200 / 1000; commissionOf[dev] += txnFees; uint256 userInc = _commission * 50 / 10000; userIncomes[commissionHolder] += userInc; commissionFunds += (_commission - txnFees) - userInc; emit Transfer(_user, address(this), _tokens); emit Price(buyPrice, sellPrice, circulatingSupply); emit TransactionFees(address(this), _commission); sendBalanceAmount(_user, _balanceAfterCommission); } function purchaseExt(address _user, uint256 _tokens, uint256 _amountInEth) private { require(_tokens >= minBuyToken, "Minimum tokens should be buy"); require(_tokens + circulatingSupply <= _totalSupply, "All tokens has purchased"); require(_amountInEth > 0 ether, "amount can not be zero"); if (buyLimit) { uint256 tokenWithoutComm = _tokens.sub(_tokens.mul(tokenCommissionPercent).div(1000)); require(_balances[_user] + stakeBalanceOf[_user] + tokenWithoutComm + _lockInBalances[_user] <= buyLimitToken, "Exceeding buy Limit"); } uint32 size; assembly { size := extcodesize(_user) } require(size == 0, "cannot be a contract"); uint256 _commission = _amountInEth.mul(commissionPercent).div(10000); uint256 _balanceEthAfterCommission = _amountInEth - _commission; uint256 purchaseAmount = updatePurchase(_tokens, _balanceEthAfterCommission); uint256 txnFees = _commission * 200 / 1000; uint256 userInc = _commission * 100 / 10000; commissionOf[dev] += txnFees; userIncomes[commissionHolder] += userInc; commissionFunds += (_commission - txnFees) - userInc; uint256 _tokenCommission = _tokens.mul(tokenCommissionPercent).div(1000); uint256 _tokensAfterCommission = _tokens - _tokenCommission; if (buyLimit) { uint256 lockableTokens = _tokensAfterCommission.mul(locakablePercent).div(1000); _balances[commissionHolder] += _tokenCommission; _balances[_user] += _tokensAfterCommission - lockableTokens; lockInExt(_user, lockableTokens); emit Transfer(address(this), _user, _tokensAfterCommission.sub(lockableTokens)); emit Price(buyPrice, sellPrice, circulatingSupply); emit LockIn(_user, address(this), lockableTokens); } else { _balances[commissionHolder] += _tokenCommission; _balances[_user] += _tokens - _tokenCommission; emit Transfer(address(this), _user, _tokens.sub(_tokenCommission)); emit Price(buyPrice, sellPrice, circulatingSupply); } emit TransactionFees(address(this), _commission); if (purchaseAmount < _balanceEthAfterCommission) { sendBalanceAmount(_user, _balanceEthAfterCommission - purchaseAmount); } } function updateSale(uint256 _tokens) private returns (uint256 saleAmount){ uint256 _saleAmount = uint256(0); Roadmap memory _roadmap = priceRoadmap[sellRoadmap]; uint256 _sellRoadmapUsedSupply = sellRoadmapUsedSupply; uint256 _balanceSupplyInCurrentRoadmap = _sellRoadmapUsedSupply; _roadmap = priceRoadmap[sellRoadmap]; if (_tokens < _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * sellPrice * _tokens) - (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; sellPrice = _roadmap.startPrice + ((_balanceSupplyInCurrentRoadmap - _tokens) * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = _roadmap.startPrice + (((_balanceSupplyInCurrentRoadmap + 1) - _tokens) * _roadmap.incPrice) - _roadmap.incPrice; sellRoadmapUsedSupply -= _tokens; currentRoadmapUsedSupply = sellRoadmapUsedSupply; circulatingSupply -= _tokens; currentRoadmap = sellRoadmap; return _saleAmount; } else if (_tokens == _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * sellPrice * _tokens) - (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; if (sellRoadmap == 1) { sellPrice = priceRoadmap[1].startPrice; buyPrice = priceRoadmap[1].startPrice; currentRoadmap = 1; sellRoadmapUsedSupply = 0; currentRoadmapUsedSupply = 0; } else { sellPrice = priceRoadmap[sellRoadmap - 1].startPrice + (priceRoadmap[sellRoadmap - 1].supply * priceRoadmap[sellRoadmap - 1].incPrice) - priceRoadmap[sellRoadmap - 1].incPrice; buyPrice = priceRoadmap[sellRoadmap].startPrice; currentRoadmap = sellRoadmap; sellRoadmap -= 1; sellRoadmapUsedSupply = priceRoadmap[sellRoadmap].supply; currentRoadmapUsedSupply = 0; } circulatingSupply -= _tokens; return _saleAmount; } uint256 noOfTokensToSell = _tokens; uint256 _sellPrice = uint256(0); for (uint8 i = sellRoadmap; i > 0; i--) { _roadmap = priceRoadmap[i]; _balanceSupplyInCurrentRoadmap = _sellRoadmapUsedSupply; if (i == sellRoadmap) { _sellPrice = sellPrice; } else { _sellPrice = _roadmap.startPrice + (_roadmap.supply * _roadmap.incPrice) - _roadmap.incPrice; } if (noOfTokensToSell > _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * _sellPrice * _balanceSupplyInCurrentRoadmap) - (_balanceSupplyInCurrentRoadmap * _balanceSupplyInCurrentRoadmap * _roadmap.incPrice) - (_balanceSupplyInCurrentRoadmap * _roadmap.incPrice)) / 2; noOfTokensToSell -= _balanceSupplyInCurrentRoadmap; _sellRoadmapUsedSupply = priceRoadmap[i - 1].supply; } else if (noOfTokensToSell < _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * _sellPrice * noOfTokensToSell) - (noOfTokensToSell * noOfTokensToSell * _roadmap.incPrice) - (noOfTokensToSell * _roadmap.incPrice)) / 2; sellPrice = _roadmap.startPrice + ((_balanceSupplyInCurrentRoadmap - noOfTokensToSell) * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = _roadmap.startPrice + (((_balanceSupplyInCurrentRoadmap + 1) - noOfTokensToSell) * _roadmap.incPrice) - _roadmap.incPrice; sellRoadmapUsedSupply = _balanceSupplyInCurrentRoadmap - noOfTokensToSell; currentRoadmapUsedSupply = sellRoadmapUsedSupply; circulatingSupply -= _tokens; currentRoadmap = i; sellRoadmap = i; return _saleAmount; } else { _saleAmount += ((2 * _sellPrice * noOfTokensToSell) - (noOfTokensToSell * noOfTokensToSell * _roadmap.incPrice) - (noOfTokensToSell * _roadmap.incPrice)) / 2; sellPrice = priceRoadmap[i - 1].startPrice + (priceRoadmap[i - 1].supply * priceRoadmap[i - 1].incPrice) - priceRoadmap[i - 1].incPrice; buyPrice = priceRoadmap[i].startPrice; sellRoadmap = i - 1; sellRoadmapUsedSupply = priceRoadmap[sellRoadmap].supply; currentRoadmapUsedSupply = 0; circulatingSupply -= _tokens; currentRoadmap = i; return _saleAmount; } } } function updatePurchase(uint256 _tokens, uint256 _userEthAmount) private returns (uint256 purchaseAmount){ uint256 _purchaseAmount = uint256(0); Roadmap memory _roadmap = priceRoadmap[currentRoadmap]; uint256 _currentRoadmapUsedSupply = currentRoadmapUsedSupply; uint256 _balanceSupplyInCurrentRoadmap = _currentRoadmapUsedSupply > _roadmap.supply ? _currentRoadmapUsedSupply - _roadmap.supply : _roadmap.supply - _currentRoadmapUsedSupply; if (_tokens < _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * buyPrice * _tokens) + (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; require(_purchaseAmount <= _userEthAmount, "Dont have sufficient balance to purchase"); sellPrice = buyPrice + (_tokens * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = buyPrice + (_tokens * _roadmap.incPrice); currentRoadmapUsedSupply += _tokens; sellRoadmapUsedSupply = currentRoadmapUsedSupply; circulatingSupply += _tokens; sellRoadmap = currentRoadmap; return _purchaseAmount; } else if (_tokens == _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * buyPrice * _tokens) + (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; require(_purchaseAmount <= _userEthAmount, "Dont have sufficient balance to purchase"); sellPrice = buyPrice + (_tokens * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = priceRoadmap[currentRoadmap + 1].startPrice; currentRoadmapUsedSupply = 0; sellRoadmapUsedSupply = priceRoadmap[currentRoadmap].supply; currentRoadmap += 1; sellRoadmap = currentRoadmap; circulatingSupply += _tokens; return _purchaseAmount; } uint256 noOfTokensToBuy = _tokens; uint256 _buyPrice = uint256(0); for (uint8 i = currentRoadmap; i <= LAST_ROADMAP; i++) { _roadmap = priceRoadmap[i]; _balanceSupplyInCurrentRoadmap = _currentRoadmapUsedSupply > _roadmap.supply ? _currentRoadmapUsedSupply - _roadmap.supply : _roadmap.supply - _currentRoadmapUsedSupply; if (i == currentRoadmap) { _buyPrice = buyPrice; } else { _buyPrice = _roadmap.startPrice; } if (noOfTokensToBuy > _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * _buyPrice * _balanceSupplyInCurrentRoadmap) + (_balanceSupplyInCurrentRoadmap * _balanceSupplyInCurrentRoadmap * _roadmap.incPrice) - (_balanceSupplyInCurrentRoadmap * _roadmap.incPrice)) / 2; require(_purchaseAmount <= _userEthAmount, "Dont have sufficient balance to purchase"); noOfTokensToBuy -= _balanceSupplyInCurrentRoadmap; _currentRoadmapUsedSupply = 0; } else if (noOfTokensToBuy < _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * _buyPrice * noOfTokensToBuy) + (noOfTokensToBuy * noOfTokensToBuy * _roadmap.incPrice) - (noOfTokensToBuy * _roadmap.incPrice)) / 2; require(_purchaseAmount <= _userEthAmount, "Dont have sufficient balance to purchase"); if (noOfTokensToBuy == 1) { sellPrice = priceRoadmap[i - 1].startPrice + (priceRoadmap[i - 1].supply * priceRoadmap[i - 1].incPrice) - priceRoadmap[i - 1].incPrice; buyPrice = priceRoadmap[i].startPrice + (noOfTokensToBuy * priceRoadmap[i].incPrice); sellRoadmapUsedSupply = priceRoadmap[i - 1].supply; sellRoadmap = i - 1; } else { sellPrice = _buyPrice + (noOfTokensToBuy * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = _buyPrice + (noOfTokensToBuy * _roadmap.incPrice); sellRoadmapUsedSupply = noOfTokensToBuy; sellRoadmap = i; } currentRoadmap = i; currentRoadmapUsedSupply = noOfTokensToBuy; circulatingSupply += _tokens; return _purchaseAmount; } else { _purchaseAmount += ((2 * _buyPrice * noOfTokensToBuy) + (noOfTokensToBuy * noOfTokensToBuy * _roadmap.incPrice) - (noOfTokensToBuy * _roadmap.incPrice)) / 2; require(_purchaseAmount <= _userEthAmount, "Dont have sufficient balance to purchase"); sellPrice = _buyPrice + (noOfTokensToBuy * _roadmap.incPrice) - _roadmap.incPrice; buyPrice = priceRoadmap[i + 1].startPrice; currentRoadmapUsedSupply = 0; sellRoadmapUsedSupply = priceRoadmap[i].supply; circulatingSupply += _tokens; currentRoadmap = i + 1; sellRoadmap = i; return _purchaseAmount; } } } function releaseUserIncome(address _user, uint256 _etherAmount) public onlyAdministrators { require(_etherAmount <= userIncomes[commissionHolder], "Not enough amount"); commissionOf[_user] += _etherAmount; } function addCommissionFunds(uint256 _amount) private { commissionFunds += _amount; } function getSaleSummary(uint256 _tokens) public view returns (uint256 saleAmount){ uint256 _saleAmount = uint256(0); Roadmap memory _roadmap = priceRoadmap[sellRoadmap]; uint256 _sellRoadmapUsedSupply = sellRoadmapUsedSupply; uint256 _balanceSupplyInCurrentRoadmap = _sellRoadmapUsedSupply; _roadmap = priceRoadmap[sellRoadmap]; if (_tokens < _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * sellPrice * _tokens) - (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; return _saleAmount; } else if (_tokens == _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * sellPrice * _tokens) - (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; return _saleAmount; } uint256 noOfTokensToSell = _tokens; uint256 _sellPrice = uint256(0); for (uint8 i = sellRoadmap; i > 0; i--) { _roadmap = priceRoadmap[i]; _balanceSupplyInCurrentRoadmap = _sellRoadmapUsedSupply; if (i == sellRoadmap) { _sellPrice = sellPrice; } else { _sellPrice = _roadmap.startPrice + (_roadmap.supply * _roadmap.incPrice) - _roadmap.incPrice; } if (noOfTokensToSell > _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * _sellPrice * _balanceSupplyInCurrentRoadmap) - (_balanceSupplyInCurrentRoadmap * _balanceSupplyInCurrentRoadmap * _roadmap.incPrice) - (_balanceSupplyInCurrentRoadmap * _roadmap.incPrice)) / 2; noOfTokensToSell -= _balanceSupplyInCurrentRoadmap; _sellRoadmapUsedSupply = priceRoadmap[i - 1].supply; } else if (noOfTokensToSell < _balanceSupplyInCurrentRoadmap) { _saleAmount += ((2 * _sellPrice * noOfTokensToSell) - (noOfTokensToSell * noOfTokensToSell * _roadmap.incPrice) - (noOfTokensToSell * _roadmap.incPrice)) / 2; return _saleAmount; } else { _saleAmount += ((2 * _sellPrice * noOfTokensToSell) - (noOfTokensToSell * noOfTokensToSell * _roadmap.incPrice) - (noOfTokensToSell * _roadmap.incPrice)) / 2; return _saleAmount; } } } function getPurchaseSummary(uint256 _tokens) public view returns (uint256){ uint256 _purchaseAmount = uint256(0); Roadmap memory _roadmap = priceRoadmap[currentRoadmap]; uint256 _currentRoadmapUsedSupply = currentRoadmapUsedSupply; uint256 _balanceSupplyInCurrentRoadmap = _currentRoadmapUsedSupply > _roadmap.supply ? _currentRoadmapUsedSupply - _roadmap.supply : _roadmap.supply - _currentRoadmapUsedSupply; if (_tokens < _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * buyPrice * _tokens) + (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; return _purchaseAmount; } else if (_tokens == _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * buyPrice * _tokens) + (_tokens * _tokens * _roadmap.incPrice) - (_tokens * _roadmap.incPrice)) / 2; return _purchaseAmount; } uint256 noOfTokensToBuy = _tokens; uint256 _buyPrice = uint256(0); for (uint8 i = currentRoadmap; i <= LAST_ROADMAP; i++) { _roadmap = priceRoadmap[i]; _balanceSupplyInCurrentRoadmap = _currentRoadmapUsedSupply > _roadmap.supply ? _currentRoadmapUsedSupply - _roadmap.supply : _roadmap.supply - _currentRoadmapUsedSupply; if (i == currentRoadmap) { _buyPrice = buyPrice; } else { _buyPrice = _roadmap.startPrice; } if (noOfTokensToBuy > _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * _buyPrice * _balanceSupplyInCurrentRoadmap) + (_balanceSupplyInCurrentRoadmap * _balanceSupplyInCurrentRoadmap * _roadmap.incPrice) - (_balanceSupplyInCurrentRoadmap * _roadmap.incPrice)) / 2; noOfTokensToBuy -= _balanceSupplyInCurrentRoadmap; _currentRoadmapUsedSupply = 0; } else if (noOfTokensToBuy < _balanceSupplyInCurrentRoadmap) { _purchaseAmount += ((2 * _buyPrice * noOfTokensToBuy) + (noOfTokensToBuy * noOfTokensToBuy * _roadmap.incPrice) - (noOfTokensToBuy * _roadmap.incPrice)) / 2; return _purchaseAmount; } else { _purchaseAmount += ((2 * _buyPrice * noOfTokensToBuy) + (noOfTokensToBuy * noOfTokensToBuy * _roadmap.incPrice) - (noOfTokensToBuy * _roadmap.incPrice)) / 2; return _purchaseAmount; } } } function kill(address payable addr) public onlyAdministrators { selfdestruct(addr); } function totalCommissionFunds() public onlyAdministrators view returns (uint256){ return commissionFunds; } function addAdministrator(address admin) public onlyAdministrators { require(administrators[admin] != true, "address already exists"); administrators[admin] = true; } function removeAdministrator(address admin) public onlyAdministrators { require(administrators[admin] == true, "address not exists"); administrators[admin] = false; } function updateCommissionHolders(address _dev1, address _dev2, address _dev3, address _dev4, address _dev5) public onlyAdministrators { dev1 = _dev1; dev2 = _dev2; dev3 = _dev3; dev4 = _dev4; dev5 = _dev5; } function updateCommissionPercent(uint256 _percent) public onlyAdministrators { commissionPercent = _percent; } function updateSellCommissionPercentage(uint256 _percent) public onlyAdministrators { sellCommission = _percent; } function updateTokenCommissionPercent(uint256 _percent) public onlyAdministrators { tokenCommissionPercent = _percent; } function getCommBalance() public view returns (uint256){ return commissionOf[msg.sender]; } function getCommBalanceAdmin(address _address) public onlyAdministrators view returns (uint256){ return commissionOf[_address]; } function distributeCommission(uint256 _amount) public onlyAdministrators { require(_amount <= commissionFunds, "Dont have enough funds to distribute"); uint256 totalComPer = dev1Com + dev2Com + dev3Com + dev4Com + dev5Com; require(totalComPer == 1000, "Invalid Percent structure"); commissionOf[dev1] += (_amount * dev1Com) / 1000; commissionOf[dev2] += (_amount * dev2Com) / 1000; commissionOf[dev3] += (_amount * dev3Com) / 1000; commissionOf[dev4] += (_amount * dev4Com) / 1000; commissionOf[dev5] += (_amount * dev5Com) / 1000; commissionFunds -= _amount; } function upgradeContract(uint256 _dev1, uint256 _dev2, uint256 _dev3, uint256 _dev4, uint256 _dev5) public onlyAdministrators { dev1Com = _dev1; dev2Com = _dev2; dev3Com = _dev3; dev4Com = _dev4; dev5Com = _dev5; } function updateTransFeesAdd(address _address) public onlyAdministrators { require(dev != _address, "Address already added"); dev = _address; } function withdrawCommission(uint256 _amount) public { require(_amount <= commissionOf[msg.sender], "Dont have funds to withdraw"); commissionOf[msg.sender] -= _amount; sendBalanceAmount(msg.sender, _amount); emit CommissionWithdraw(msg.sender, _amount); } function withdrawTokenCommission(address _user, uint256 _amount, uint256 nonce) public onlyAdministrators { require(_amount <= _balances[commissionHolder], "Dont have enough tokens"); _balances[commissionHolder] -= _amount; _balances[_user] += _amount; emit WithdrawTokenCommission(_user, _amount, nonce); } function withdrawStakeEarning(address _user, uint256 _amount, uint256 nonce) public onlyAdministrators { require(_amount <= _balances[stakeHolder], "Dont have enough tokens"); _balances[_user] += _amount; _balances[stakeHolder] -= _amount; emit WithdrawStakingCommission(_user, _amount, nonce); } function updateTokenCommHolder(address _address) public onlyAdministrators { require(commissionHolder != _address, "Holder already exist"); _balances[_address] = _balances[commissionHolder]; _balances[commissionHolder] -= _balances[_address]; } function updateStakeHolder(address _address) public onlyAdministrators { require(stakeHolder != _address, "Holder already exist"); _balances[_address] = _balances[stakeHolder]; _balances[stakeHolder] -= _balances[_address]; } function createRoadmap() private { Roadmap memory roadmap = Roadmap({ supply : 100000, startPrice : 0.00027 ether, incPrice : 0.00000000125 ether }); priceRoadmap[1] = roadmap; roadmap = Roadmap({ supply : 400000, startPrice : 0.00039499975 ether, incPrice : 0.000000001 ether }); priceRoadmap[2] = roadmap; roadmap = Roadmap({ supply : 100000, startPrice : 0.00079500375 ether, incPrice : 0.000000005 ether }); priceRoadmap[3] = roadmap; roadmap = Roadmap({ supply : 100000, startPrice : 0.00129500875 ether, incPrice : 0.00000001 ether }); priceRoadmap[4] = roadmap; roadmap = Roadmap({ supply : 100000, startPrice : 0.00229501875 ether, incPrice : 0.00000002 ether }); priceRoadmap[5] = roadmap; roadmap = Roadmap({ supply : 90000, startPrice : 0.00429504375 ether, incPrice : 0.000000045 ether }); priceRoadmap[6] = roadmap; roadmap = Roadmap({ supply : 90000, startPrice : 0.00834507875 ether, incPrice : 0.00000008 ether }); priceRoadmap[7] = roadmap; roadmap = Roadmap({ supply : 70000, startPrice : 0.01554517875 ether, incPrice : 0.00000018 ether }); priceRoadmap[8] = roadmap; roadmap = Roadmap({ supply : 70000, startPrice : 0.02814534875 ether, incPrice : 0.00000035 ether }); priceRoadmap[9] = roadmap; roadmap = Roadmap({ supply : 70000, startPrice : 0.052645748750 ether, incPrice : 0.00000075 ether }); priceRoadmap[10] = roadmap; roadmap = Roadmap({ supply : 60000, startPrice : 0.10514679875 ether, incPrice : 0.0000018 ether }); priceRoadmap[11] = roadmap; roadmap = Roadmap({ supply : 60000, startPrice : 0.21314779875 ether, incPrice : 0.0000028 ether }); priceRoadmap[12] = roadmap; roadmap = Roadmap({ supply : 60000, startPrice : 0.38115099875 ether, incPrice : 0.000006 ether }); priceRoadmap[13] = roadmap; roadmap = Roadmap({ supply : 50000, startPrice : 0.74115699875 ether, incPrice : 0.000012 ether }); priceRoadmap[14] = roadmap; roadmap = Roadmap({ supply : 50000, startPrice : 1.34116999875 ether, incPrice : 0.000025 ether }); priceRoadmap[15] = roadmap; roadmap = Roadmap({ supply : 50000, startPrice : 2.59118999875 ether, incPrice : 0.000045 ether }); priceRoadmap[16] = roadmap; roadmap = Roadmap({ supply : 40000, startPrice : 4.841234998750 ether, incPrice : 0.00009 ether }); priceRoadmap[17] = roadmap; roadmap = Roadmap({ supply : 40000, startPrice : 8.44126499875 ether, incPrice : 0.00012 ether }); priceRoadmap[18] = roadmap; } function sendBalanceAmount(address _receiver, uint256 _amount) private { if (!address(uint160(_receiver)).send(_amount)) { address(uint160(_receiver)).transfer(_amount); } } function getBuyPrice() public view returns (uint256){ return buyPrice; } function getSellPrice() public view returns (uint256){ return sellPrice; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function totalEthBalance() public view returns (uint256){ return address(this).balance; } function updateBuyLimit(bool limit) public onlyAdministrators { buyLimit = limit; } function updateBuyLimitToken(uint256 _noOfTokens) public onlyAdministrators { buyLimitToken = _noOfTokens; } function updateMinBuyToken(uint256 _tokens) public onlyAdministrators { minBuyToken = _tokens; } function updateLockablePercent(uint256 _percent) public onlyAdministrators { locakablePercent = _percent; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_lockInBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBuyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"distributeCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"updateTransFeesAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"updateTokenCommHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"updateMinBuyToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_rewardsSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_amount","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"withdrawTokenCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCommissionPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRoadmapUsedSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percent","type":"uint256"}],"name":"updateSellCommissionPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalCommissionFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percent","type":"uint256"}],"name":"updateCommissionPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"admin","type":"address"}],"name":"removeAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"priceRoadmap","outputs":[{"name":"supply","type":"uint256"},{"name":"startPrice","type":"uint256"},{"name":"incPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commissionPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"locakablePercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRoadmap","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dev1","type":"address"},{"name":"_dev2","type":"address"},{"name":"_dev3","type":"address"},{"name":"_dev4","type":"address"},{"name":"_dev5","type":"address"}],"name":"updateCommissionHolders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellRoadmapUsedSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dev1","type":"uint256"},{"name":"_dev2","type":"uint256"},{"name":"_dev3","type":"uint256"},{"name":"_dev4","type":"uint256"},{"name":"_dev5","type":"uint256"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"circulatingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"releaseLockIn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_percent","type":"uint256"}],"name":"updateTokenCommissionPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_percent","type":"uint256"}],"name":"updateLockablePercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stakeBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"getPurchaseSummary","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"getSaleSummary","outputs":[{"name":"saleAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bp","type":"uint256"},{"name":"_sp","type":"uint256"},{"name":"_circSup","type":"uint256"},{"name":"_currentRp","type":"uint8"},{"name":"_sellRp","type":"uint8"},{"name":"_crs","type":"uint256"},{"name":"_srs","type":"uint256"},{"name":"_commFunds","type":"uint256"}],"name":"upgradeDetails","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getCommBalanceAdmin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_noOfTokens","type":"uint256"}],"name":"updateBuyLimitToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalLockInTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"admin","type":"address"}],"name":"addAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"unStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCommBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"addLiquidity","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_amount","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"withdrawStakeEarning","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_etherAmount","type":"uint256"}],"name":"releaseUserIncome","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"limit","type":"bool"}],"name":"updateBuyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellRoadmap","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"updateStakeHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LAST_ROADMAP","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_commissionHolder","type":"address"},{"name":"_stakeHolder","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"staker","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"totalInStake","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"staker","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"totalInStake","type":"uint256"}],"name":"UnStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CommissionWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"}],"name":"WithdrawTokenCommission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"}],"name":"WithdrawStakingCommission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyPrice","type":"uint256"},{"indexed":false,"name":"sellPrice","type":"uint256"},{"indexed":false,"name":"circulatingSupply","type":"uint256"}],"name":"Price","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"totalInStake","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"}],"name":"StakeUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LockIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"totalValue","type":"uint256"}],"name":"TransactionFees","type":"event"}]
Contract Creation Code
608060405262186a0060009081556203a98060019081556207d9ea600255600682905561019060075561025860085560fa600955600c805461030061ff001960ff1992831660031716179091556138ca600d819055600e55600f8390556010929092556102ee60115560128054909216179055610834601355600a6014553480156200008a57600080fd5b50604051604080620049e483398101806040526040811015620000ac57600080fd5b5080516020918201513360008181526003855260408082208054600160ff1991821681179092556001600160a01b038088168086529390942080549091169091179055601580546001600160a01b0319908116909417905560048054841690911790556005805490921690831617905590916200012d906200014b811b901c565b505066031529b1be1980600a556603152887b82780600b5562000c29565b6200015562000c08565b506040805160608082018352620186a080835265f5904616e0006020808501918252634a817c8085870190815260016000908152602480845296517fbbbb3b1da0cb0951f34c5e9db4606f934b7367b5284f29163e9e6fe67e1e97d65592517fbbbb3b1da0cb0951f34c5e9db4606f934b7367b5284f29163e9e6fe67e1e97d755517fbbbb3b1da0cb0951f34c5e9db4606f934b7367b5284f29163e9e6fe67e1e97d8558551808501875262061a808152660167400bc8fd80818301908152633b9aca008289019081526002855287845291517f47bb5529a97e2b401b32950f6360fbc9e3f4e70b887dc0f9b9ad1f7402ca11da55517f47bb5529a97e2b401b32950f6360fbc9e3f4e70b887dc0f9b9ad1f7402ca11db55517f47bb5529a97e2b401b32950f6360fbc9e3f4e70b887dc0f9b9ad1f7402ca11dc55855180850187528381526602d30d3c1d258081830190815264012a05f2008289019081526003855287845291517f8a6809e43cef135a96df89aa3c0800baae7c497913adf6156625c15a6f57cdf055517f8a6809e43cef135a96df89aa3c0800baae7c497913adf6156625c15a6f57cdf155517f8a6809e43cef135a96df89aa3c0800baae7c497913adf6156625c15a6f57cdf25585518085018752838152660499cdb88657808183019081526402540be4008289019081526004855287845291517fe0059098054d65c76a17a4d86f8572395c4d366a1d067b0643b918330bac9e1555517fe0059098054d65c76a17a4d86f8572395c4d366a1d067b0643b918330bac9e1655517fe0059098054d65c76a17a4d86f8572395c4d366a1d067b0643b918330bac9e1755855180850187529283526608274eb158bb808382019081526404a817c8008488019081526005845286835293517ff737fbf41dafb4990088c527475c23d7ec8faec34b668fc96ba68bf83b8ad60b55517ff737fbf41dafb4990088c527475c23d7ec8faec34b668fc96ba68bf83b8ad60c5591517ff737fbf41dafb4990088c527475c23d7ec8faec34b668fc96ba68bf83b8ad60d558451808401865262015f90808252660f4251cd037580828501908152640a7a3582008389019081526006855287865292517f9aeda4bfc94a0967e92a3e3f48e3d01d74a39c4cff849e6ec9b6ae18b248bf4455517f9aeda4bfc94a0967e92a3e3f48e3d01d74a39c4cff849e6ec9b6ae18b248bf455590517f9aeda4bfc94a0967e92a3e3f48e3d01d74a39c4cff849e6ec9b6ae18b248bf465585518085018752908152661da5ce0e8433808184019081526412a05f20008288019081526007845286855291517fc8063fc1c441a7c35622a029999f562fc3f4af6fb9445f9ed83a5a94f84407c255517fc8063fc1c441a7c35622a029999f562fc3f4af6fb9445f9ed83a5a94f84407c355517fc8063fc1c441a7c35622a029999f562fc3f4af6fb9445f9ed83a5a94f84407c455845180840186526201117080825266373a41f95d1b808285019081526429e8d608008389019081526008855287865292517f283ad1fa537f2bde05287a438aa5a837917793fc3ef421ca997bcba10fcd57b155517f283ad1fa537f2bde05287a438aa5a837917793fc3ef421ca997bcba10fcd57b25590517f283ad1fa537f2bde05287a438aa5a837917793fc3ef421ca997bcba10fcd57b355855180850187528181526663fe0baa52bf8081850190815264517da02c008289019081526009855287865291517fd15317c11e97357eac85a1b0ceb4d9eb990bb055e9d2fd4ec9602c7914b31ff655517fd15317c11e97357eac85a1b0ceb4d9eb990bb055e9d2fd4ec9602c7914b31ff755517fd15317c11e97357eac85a1b0ceb4d9eb990bb055e9d2fd4ec9602c7914b31ff8558551808501875290815266bb0907912d9f8081840190815264ae9f7bcc00828801908152600a845286855291517f58e3a833cb15d6f76c53a51c4f1055a3d0f1b35d372143cd8d886614508d45b155517f58e3a833cb15d6f76c53a51c4f1055a3d0f1b35d372143cd8d886614508d45b255517f58e3a833cb15d6f76c53a51c4f1055a3d0f1b35d372143cd8d886614508d45b3558451808401865261ea608082526701758e74d4c363808285019081526501a3185c5000838901908152600b855287865292517f689fc8e38deab97189835092711de729617cef9cb2af9cd30b797f55084894b355517f689fc8e38deab97189835092711de729617cef9cb2af9cd30b797f55084894b45590517f689fc8e38deab97189835092711de729617cef9cb2af9cd30b797f55084894b555855180850187528181526702f540cb2d26738081850190815265028bed016000828901908152600c855287865291517fcfd901ba1675b89e59c977e85e6e7a7c4ff7751b63723061dce346746771b92555517fcfd901ba1675b89e59c977e85e6e7a7c4ff7751b63723061dce346746771b92655517fcfd901ba1675b89e59c977e85e6e7a7c4ff7751b63723061dce346746771b927558551808501875290815267054a1ed05e477380818401908152650574fbde6000828801908152600d845286855291517fba34aae0b75e8591ff97e00cc3f6e8df1470d379cc0886440859b851f53e13d655517fba34aae0b75e8591ff97e00cc3f6e8df1470d379cc0886440859b851f53e13d755517fba34aae0b75e8591ff97e00cc3f6e8df1470d379cc0886440859b851f53e13d8558451808401865261c350808252670a491e5d1149d380828501908152650ae9f7bcc000838901908152600e855287865292517fcb8b48384fa57da59db4c36dd093c0351f73b817d50e2c37ca88ae4d4a70a09655517fcb8b48384fa57da59db4c36dd093c0351f73b817d50e2c37ca88ae4d4a70a0975590517fcb8b48384fa57da59db4c36dd093c0351f73b817d50e2c37ca88ae4d4a70a098558551808501875281815267129ccb020ee7a3808185019081526516bcc41e9000828901908152600f855287865291517fade56671733c21a56b831aeafce666eb366266b300c4d2146feebd5529c9e7a855517fade56671733c21a56b831aeafce666eb366266b300c4d2146feebd5529c9e7a955517fade56671733c21a56b831aeafce666eb366266b300c4d2146feebd5529c9e7aa55855180850187529081526723f5c1933d09e3808184019081526528ed6103d0008288019081526010845286855291517f2bca9be5280cb83435960c0a15ed776e282e6d3f26e0cdb8e92862d7f621bedf55517f2bca9be5280cb83435960c0a15ed776e282e6d3f26e0cdb8e92862d7f621bee055517f2bca9be5280cb83435960c0a15ed776e282e6d3f26e0cdb8e92862d7f621bee15584518084018652619c4080825267432f8594d6aeb3808285019081526551dac207a0008389019081526011855287865292517fa58e39ffb33aaa0b71efb51ab249ae7c4a3f628a05974bc1477befab147b6d1955517fa58e39ffb33aaa0b71efb51ab249ae7c4a3f628a05974bc1477befab147b6d1a5590517fa58e39ffb33aaa0b71efb51ab249ae7c4a3f628a05974bc1477befab147b6d1b5585519384018652835267752565cae96e9380838301908152656d23ad5f80009584019586526012909152929052517fdfdaa254b6681d2034ed3c54ccc5ee5a5f195d749713610b82bf840098f0033f55517fdfdaa254b6681d2034ed3c54ccc5ee5a5f195d749713610b82bf840098f0034055517fdfdaa254b6681d2034ed3c54ccc5ee5a5f195d749713610b82bf840098f0034155565b60405180606001604052806000815260200160008152602001600081525090565b613dab8062000c396000396000f3fe6080604052600436106103b85760003560e01c80637bd3026b116101f2578063c6f984c61161010d578063e8078d94116100a0578063f43c3c8c1161006f578063f43c3c8c14610da6578063f4e7bfa714610dd2578063f6335acc14610de7578063fd70fbeb14610e1a576103b8565b8063e8078d9414610cf5578063e8dd29ad14610d11578063edefa6e614610d50578063efef39a114610d89576103b8565b8063d28d8852116100dc578063d28d885214610c68578063d939381414610c7d578063e4849b3214610cb6578063e5b416b614610ce0576103b8565b8063c6f984c614610bc3578063c975b2dc14610bed578063c999117614610c02578063cbf0b0c014610c35576103b8565b8063a456dd9811610185578063b09f126611610154578063b09f126614610af5578063b55c58dd14610b0a578063b7a589b814610b34578063bd6579f214610b90576103b8565b8063a456dd9814610a44578063acad76a914610a6e578063af46aa0814610a98578063b01d6d1b14610acb576103b8565b80638d0bc599116101c15780638d0bc5991461099f5780639358928b146109e157806395d89b41146109f65780639c3821c914610a0b576103b8565b80637bd3026b1461090b57806383613ca8146109205780638620410b1461097557806386aacdfc1461098a576103b8565b80633695a06c116102e25780635269d90e1161027557806370a082311161024457806370a082311461086357806373559c961461089657806377d3550b146108e157806378f4e760146108f6576103b8565b80635269d90e146107dc57806359194d0c146107f15780635e3797971461080657806368fa813414610830576103b8565b806340a65823116102b157806340a658231461077357806343d32e9c146107885780634a1cd7311461079d5780634b750334146107c7576103b8565b80633695a06c146106f557806338e04faf146107345780633b565563146107495780633eaaf86b1461075e576103b8565b80631033125f1161035a5780632934c447116103295780632934c447146105f05780632ed2811e14610605578063313ce567146106b557806332424aa3146106e0576103b8565b80631033125f1461055457806317face841461058757806318160ddd146105b157806324299b4d146105c6576103b8565b806306fdde031161039657806306fdde03146104435780630763f0ce146104cd5780630a766cfa146105005780630c51b88f14610515576103b8565b8063011c2360146103bd578063018a25e8146104025780630697b4ad14610417575b600080fd5b3480156103c957600080fd5b506103f0600480360360208110156103e057600080fd5b50356001600160a01b0316610e2f565b60408051918252519081900360200190f35b34801561040e57600080fd5b506103f0610e41565b34801561042357600080fd5b506104416004803603602081101561043a57600080fd5b5035610e47565b005b34801561044f57600080fd5b50610458610ff6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049257818101518382015260200161047a565b50505050905090810190601f1680156104bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104d957600080fd5b50610441600480360360208110156104f057600080fd5b50356001600160a01b0316611020565b34801561050c57600080fd5b506103f06110f9565b34801561052157600080fd5b506104416004803603606081101561053857600080fd5b506001600160a01b0381351690602081013590604001356110ff565b34801561056057600080fd5b506104416004803603602081101561057757600080fd5b50356001600160a01b0316611224565b34801561059357600080fd5b50610441600480360360208110156105aa57600080fd5b5035611317565b3480156105bd57600080fd5b506103f06113d5565b3480156105d257600080fd5b50610441600480360360208110156105e957600080fd5b50356113db565b3480156105fc57600080fd5b506103f0611431565b34801561061157600080fd5b506104416004803603602081101561062857600080fd5b81019060208101813564010000000081111561064357600080fd5b82018360208201111561065557600080fd5b8035906020019184602083028401116401000000008311171561067757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611437945050505050565b3480156106c157600080fd5b506106ca611660565b6040805160ff9092168252519081900360200190f35b3480156106ec57600080fd5b506106ca611665565b34801561070157600080fd5b506104416004803603606081101561071857600080fd5b506001600160a01b03813516906020810135906040013561166a565b34801561074057600080fd5b506103f06117a0565b34801561075557600080fd5b506103f06117a6565b34801561076a57600080fd5b506103f06117ac565b34801561077f57600080fd5b506103f06117b2565b34801561079457600080fd5b506103f06117b8565b3480156107a957600080fd5b50610441600480360360208110156107c057600080fd5b50356117be565b3480156107d357600080fd5b506103f0611814565b3480156107e857600080fd5b506103f061181a565b3480156107fd57600080fd5b506103f0611872565b34801561081257600080fd5b506104416004803603602081101561082957600080fd5b5035611877565b34801561083c57600080fd5b506104416004803603602081101561085357600080fd5b50356001600160a01b03166118cd565b34801561086f57600080fd5b506103f06004803603602081101561088657600080fd5b50356001600160a01b03166119b4565b3480156108a257600080fd5b506108c3600480360360208110156108b957600080fd5b503560ff166119d3565b60408051938452602084019290925282820152519081900360600190f35b3480156108ed57600080fd5b506103f06119f4565b34801561090257600080fd5b506103f06119fa565b34801561091757600080fd5b506106ca611a00565b34801561092c57600080fd5b50610441600480360360a081101561094357600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516611a09565b34801561098157600080fd5b506103f0611ab9565b34801561099657600080fd5b506103f0611abf565b3480156109ab57600080fd5b50610441600480360360a08110156109c257600080fd5b5080359060208101359060408101359060608101359060800135611ac5565b3480156109ed57600080fd5b506103f0611b2d565b348015610a0257600080fd5b50610458611b33565b348015610a1757600080fd5b5061044160048036036040811015610a2e57600080fd5b506001600160a01b038135169060200135611b55565b348015610a5057600080fd5b5061044160048036036020811015610a6757600080fd5b5035611c6f565b348015610a7a57600080fd5b5061044160048036036020811015610a9157600080fd5b5035611cc5565b348015610aa457600080fd5b506103f060048036036020811015610abb57600080fd5b50356001600160a01b0316611d1b565b348015610ad757600080fd5b506103f060048036036020811015610aee57600080fd5b5035611d2d565b348015610b0157600080fd5b50610458611f37565b348015610b1657600080fd5b506103f060048036036020811015610b2d57600080fd5b5035611f5b565b348015610b4057600080fd5b506104416004803603610100811015610b5857600080fd5b5080359060208101359060408101359060ff606082013581169160808101359091169060a08101359060c08101359060e00135612140565b348015610b9c57600080fd5b506103f060048036036020811015610bb357600080fd5b50356001600160a01b03166121d1565b348015610bcf57600080fd5b5061044160048036036020811015610be657600080fd5b503561223d565b348015610bf957600080fd5b506103f0612293565b348015610c0e57600080fd5b5061044160048036036020811015610c2557600080fd5b50356001600160a01b0316612299565b348015610c4157600080fd5b5061044160048036036020811015610c5857600080fd5b50356001600160a01b0316612384565b348015610c7457600080fd5b506104586123e1565b348015610c8957600080fd5b5061044160048036036040811015610ca057600080fd5b506001600160a01b03813516906020013561240d565b348015610cc257600080fd5b5061044160048036036020811015610cd957600080fd5b503561252d565b348015610cec57600080fd5b506103f06125e3565b610cfd6125f5565b604080519115158252519081900360200190f35b348015610d1d57600080fd5b5061044160048036036060811015610d3457600080fd5b506001600160a01b0381351690602081013590604001356125fa565b348015610d5c57600080fd5b5061044160048036036040811015610d7357600080fd5b506001600160a01b03813516906020013561272f565b61044160048036036020811015610d9f57600080fd5b5035612813565b348015610db257600080fd5b5061044160048036036020811015610dc957600080fd5b5035151561281e565b348015610dde57600080fd5b506106ca612882565b348015610df357600080fd5b5061044160048036036020811015610e0a57600080fd5b50356001600160a01b0316612890565b348015610e2657600080fd5b506106ca612983565b60256020526000908152604090205481565b600a5490565b3360009081526003602052604090205460ff16610e9857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600654811115610edc57604051600160e51b62461bcd028152600401808060200182810382526024815260200180613d356024913960400191505060405180910390fd5b601f54601e54601d54601c54601b54010101016103e88114610f485760408051600160e51b62461bcd02815260206004820152601960248201527f496e76616c69642050657263656e742073747275637475726500000000000000604482015290519081900360640190fd5b6103e8601b54830281610f5757fe5b6016546001600160a01b039081166000908152602080526040808220805495909404909401909255601c546017548216835283832080546103e8928802839004019055601d546018548316845284842080549188028390049091019055601e546019548316845284842080549188028390049091019055601f54601a549092168352929091208054918502929092040190555060068054919091039055565b60408051808201909152600d8152600160981b6c446967692045786368616e676502602082015290565b3360009081526003602052604090205460ff1661107157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6015546001600160a01b03828116911614156110d75760408051600160e51b62461bcd02815260206004820152601560248201527f4164647265737320616c72656164792061646465640000000000000000000000604482015290519081900360640190fd5b601580546001600160a01b0319166001600160a01b0392909216919091179055565b60085481565b3360009081526003602052604090205460ff1661115057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b0383166000908152602260205260409020548211156111aa57604051600160e51b62461bcd028152600401808060200182810382526025815260200180613ca46025913960400191505060405180910390fd5b6001600160a01b0383166000818152602260209081526040808320805487900390556023825291829020805486019055600f805486019081905582518681529182015280820184905290517f5e320786aa09ca8938a3809dea0ba7c671eb08f34dc57bb4885eaabd4eb66c079181900360600190a2505050565b3360009081526003602052604090205460ff1661127557604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b03828116911614156112db5760408051600160e51b62461bcd02815260206004820152601460248201527f486f6c64657220616c7265616479206578697374000000000000000000000000604482015290519081900360640190fd5b600480546001600160a01b0390811660009081526022602052604080822054948316825280822085905592549091168152208054919091039055565b33600090815260208052604090205481111561137d5760408051600160e51b62461bcd02815260206004820152601b60248201527f446f6e7420686176652066756e647320746f2077697468647261770000000000604482015290519081900360640190fd5b33600081815260208052604090208054839003905561139c9082612988565b60408051828152905133917fb5499fc99039630a8a9d9534c1c6be6f24fd7fba04c6e7015e7f50b3224972da919081900360200190a250565b60005490565b3360009081526003602052604090205460ff1661142c57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601455565b60015481565b3360009081526003602052604090205460ff1661148857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b60005b815181101561165c576101f4602260008484815181106114a757fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825401925050819055506105dc602560008484815181106114ef57fe5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081208054909501909455600454909216835260229091529020805461029a019055815182908290811061154657fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020613ced8339815191526022600086868151811061158057fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546040518082815260200191505060405180910390a3306001600160a01b03168282815181106115d457fe5b60200260200101516001600160a01b03167fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d6025600086868151811061161657fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546040518082815260200191505060405180910390a360010161148b565b5050565b600090565b600081565b3360009081526003602052604090205460ff166116bb57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b031660009081526022602052604090205482111561172d5760408051600160e51b62461bcd02815260206004820152601760248201527f446f6e74206861766520656e6f75676820746f6b656e73000000000000000000604482015290519081900360640190fd5b6004546001600160a01b03908116600090815260226020908152604080832080548790039055928616808352918390208054860190558251858152908101849052825191927fd6b035b9b3bd6ef9aeb2f5fc348470c1de8e56519cb14f139b9e88638894252892918290030190a2505050565b60095481565b600d5481565b60005481565b600f5481565b600b5490565b3360009081526003602052604090205460ff1661180f57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600855565b600b5481565b3360009081526003602052604081205460ff1661186b57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b5060065490565b303190565b3360009081526003602052604090205460ff166118c857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600755565b3360009081526003602052604090205460ff1661191e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff1615156001146119935760408051600160e51b62461bcd02815260206004820152601260248201527f61646472657373206e6f74206578697374730000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b6001600160a01b0381166000908152602260205260409020545b919050565b60246020526000908152604090208054600182015460029092015490919083565b60075481565b60115481565b600c5460ff1681565b3360009081526003602052604090205460ff16611a5a57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601980548416918516919091179055601a80549092169216919091179055565b600a5481565b600e5481565b3360009081526003602052604090205460ff16611b1657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601b94909455601c92909255601d55601e55601f55565b60025481565b6040805180820190915260058152600160db1b64088928e92b02602082015290565b3360009081526003602052604090205460ff16611ba657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b038216600090815260256020526040902054811115611c0057604051600160e51b62461bcd028152600401808060200182810382526027815260200180613d596027913960400191505060405180910390fd5b6001600160a01b03821660008181526025602090815260408083208054869003905560228252918290208054850190556010805485900390558151848152915130927fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d92908290030190a35050565b3360009081526003602052604090205460ff16611cc057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600955565b3360009081526003602052604090205460ff16611d1657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601155565b60236020526000908152604090205481565b600080611d38613c0b565b50600c5460ff1660009081526024602090815260408083208151606081018352815480825260018301549482019490945260029091015491810191909152600d54909290918211611d8d578251829003611d92565b825182035b905080861015611dcf5760028360400151870284604001518889020288600a5460020202010381611dbf57fe5b049390930193506119ce92505050565b80861415611dfa5760028360400151870284604001518889020288600a5460020202010381611dbf57fe5b600c54869060009060ff165b601260ff821611611f2b5760ff811660009081526024602090815260409182902082516060810184528154808252600183015493820193909352600290910154928101929092529096508511611e60578551859003611e65565b855185035b600c5490945060ff82811691161415611e8257600a549150611e8a565b856020015191505b83831115611ec657600286604001518502876040015186870202868560020202010381611eb357fe5b0487019650838303925060009450611f23565b83831015611f0257600286604001518402876040015185860202858560020202010381611eef57fe5b049690960196506119ce95505050505050565b600286604001518402876040015185860202858560020202010381611eef57fe5b600101611e06565b50505050505050919050565b604051806040016040528060058152602001600160db1b64088928e92b0281525081565b600080611f66613c0b565b50600c54610100900460ff16600081815260246020818152604080842081516060808201845282548083526001840154838701819052600290940154928501839052600e54989097529484528251948501835294845291830191909152810191909152908080861015611ff65760028360400151870284604001518889020288600b5460020202030381611dbf57fe5b808614156120215760028360400151870284604001518889020288600b5460020202030381611dbf57fe5b600c548690600090610100900460ff165b60ff811615611f2b5760ff8082166000818152602460209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152600c549098508796506101009004909116141561209657600b5491506120aa565b604086015186516020880151908202010391505b838311156120f55760408601516002908581028680029091028487028302030360ff600019840116600090815260246020526040902054919004979097019694509183900391612137565b8383101561211a57604086015160029084810285800290910284860283020303611eef565b604086015160029084810285800290910284860283020303611eef565b60001901612032565b3360009081526003602052604090205460ff1661219157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600a97909755600b95909555600293909355600c805460ff9283166101000261ff00199490931660ff199091161792909216179055600d55600e55600655565b3360009081526003602052604081205460ff1661222257604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b506001600160a01b0316600090815260208052604090205490565b3360009081526003602052604090205460ff1661228e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601355565b60105481565b3360009081526003602052604090205460ff166122ea57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff161515600114156123605760408051600160e51b62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792065786973747300000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b3360009081526003602052604090205460ff166123d557604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b806001600160a01b0316ff5b6040518060400160405280600d8152602001600160981b6c446967692045786368616e67650281525081565b3360009081526003602052604090205460ff1661245e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b0382166000908152602360205260409020548111156124b857604051600160e51b62461bcd028152600401808060200182810382526029815260200180613c2d6029913960400191505060405180910390fd5b6001600160a01b038216600081815260236020908152604080832080548690039055600f805486900381556022835292819020805486019055915482518581529182015281517f54a9763035584fc4fcad1bc4e0e7a83f93e016f50ae32bd527530a77257393ee929181900390910190a25050565b600081116125855760408051600160e51b62461bcd02815260206004820152601660248201527f546f6b656e732063616e206e6f74206265207a65726f00000000000000000000604482015290519081900360640190fd5b336000908152602260205260409020548111156125d657604051600160e51b62461bcd028152600401808060200182810382526024815260200180613cc96024913960400191505060405180910390fd5b6125e033826129ec565b50565b33600090815260208052604090205490565b600190565b3360009081526003602052604090205460ff1661264b57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6005546001600160a01b03166000908152602260205260409020548211156126bd5760408051600160e51b62461bcd02815260206004820152601760248201527f446f6e74206861766520656e6f75676820746f6b656e73000000000000000000604482015290519081900360640190fd5b6001600160a01b038084166000818152602260209081526040808320805488019055600554909416825290839020805486900390558251858152908101849052825191927f243ef73eb46889f44c92a67393a9135fa6ba7a9d810f2e20e7ac71e4a1a2f82a92918290030190a2505050565b3360009081526003602052604090205460ff1661278057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b03166000908152602160205260409020548111156127f25760408051600160e51b62461bcd02815260206004820152601160248201527f4e6f7420656e6f75676820616d6f756e74000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b039091166000908152602080526040902080549091019055565b6125e0338234612b6e565b3360009081526003602052604090205460ff1661286f57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6012805460ff1916911515919091179055565b600c54610100900460ff1681565b3360009081526003602052604090205460ff166128e157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6005546001600160a01b03828116911614156129475760408051600160e51b62461bcd02815260206004820152601460248201527f486f6c64657220616c7265616479206578697374000000000000000000000000604482015290519081900360640190fd5b600580546001600160a01b0390811660009081526022602052604080822054948316825280822085905592549091168152208054919091039055565b601281565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505061165c576040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156129e7573d6000803e3d6000fd5b505050565b60006129f782613085565b6001600160a01b03841660009081526022602052604081208054859003905560085491925090612a429061271090612a3690859063ffffffff6134b316565b9063ffffffff61351816565b90506000612a56838363ffffffff61355a16565b6015546001600160a01b0390811660009081526020808052604080832080546103e860c88a0204908101909155600454851684526021835292819020805461271060328a020490810190915560068054858a0383900301905581518a81529151959650929492933093908b1692600080516020613ced833981519152928290030190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a1604080513081526020810186905281517f8e4e0cf646617e7b0064af88de18264067a22faee033176d2a6d4c48ed5236ff929181900390910190a1612b658784612988565b50505050505050565b601454821015612bc85760408051600160e51b62461bcd02815260206004820152601c60248201527f4d696e696d756d20746f6b656e732073686f756c642062652062757900000000604482015290519081900360640190fd5b60005460025483011115612c265760408051600160e51b62461bcd02815260206004820152601860248201527f416c6c20746f6b656e7320686173207075726368617365640000000000000000604482015290519081900360640190fd5b60008111612c7e5760408051600160e51b62461bcd02815260206004820152601660248201527f616d6f756e742063616e206e6f74206265207a65726f00000000000000000000604482015290519081900360640190fd5b60125460ff1615612d49576000612cb6612ca96103e8612a36600954876134b390919063ffffffff16565b849063ffffffff61355a16565b6013546001600160a01b038616600090815260256020908152604080832054602383528184205460229093529220549394509290920183019091011115612d475760408051600160e51b62461bcd02815260206004820152601360248201527f457863656564696e6720627579204c696d697400000000000000000000000000604482015290519081900360640190fd5b505b823b63ffffffff811615612da75760408051600160e51b62461bcd02815260206004820152601460248201527f63616e6e6f74206265206120636f6e7472616374000000000000000000000000604482015290519081900360640190fd5b6000612dc4612710612a36600754866134b390919063ffffffff16565b90508083036000612dd5868361359c565b6015546001600160a01b0390811660009081526020808052604080832080546103e860c88b02819004918201909255600454909516845260219092528220805461271060648a020490810190915560068054858a038390030190556009549495509293612e489190612a36908c906134b3565b601254909150818a039060ff1615612f7c576000612e776103e8612a36601154856134b390919063ffffffff16565b6004546001600160a01b03908116600090815260226020526040808220805488019055918f1681522080548285030190559050612eb48c82613adf565b6001600160a01b038c1630600080516020613ced833981519152612ede858563ffffffff61355a16565b60408051918252519081900360200190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a160408051828152905130916001600160a01b038f16917fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d9181900360200190a350613029565b6004546001600160a01b03908116600090815260226020526040808220805486019055918d168082529190208054848d0301905530600080516020613ced833981519152612fd08d8663ffffffff61355a16565b60408051918252519081900360200190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a15b604080513081526020810189905281517f8e4e0cf646617e7b0064af88de18264067a22faee033176d2a6d4c48ed5236ff929181900390910190a185851015613078576130788b868803612988565b5050505050505050505050565b600080613090613c0b565b50600c54610100900460ff16600081815260246020818152604080842081516060808201845282548083526001840154838701819052600290940154928501839052600e549890975294845282519485018352948452918301919091528101919091529080808610156131865760028360400151870284604001518889020288600b546002020203038161312057fe5b6040850151602090950151928890038086028401869003600b55600101850290920193909303600a55600e805487900390819055600d55600280548790039055600c8054610100810460ff1660ff19909116179055919091049190910191506119ce9050565b808614156132ac5760028360400151870284604001518889020288600b54600202020303816131b157fe5b600c54919004949094019360ff610100909104166001141561321e576001600081815260246020527fbbbb3b1da0cb0951f34c5e9db4606f934b7367b5284f29163e9e6fe67e1e97d754600b819055600a55600c805460ff1916909217909155600e819055600d55613299565b600c805460001960ff61010080840482168381018316600090815260246020526040808220600281015481546001928301549082020103600b558383528183200154600a5560ff1990961690911782810484169094018316820261ff001990941693909317948590559093049092168252812054600e55600d555b50506002805485900390555090506119ce565b600c548690600090610100900460ff165b60ff811615611f2b5760ff8082166000818152602460209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152600c549098508796506101009004909116141561332157600b549150613335565b604086015186516020880151908202010391505b838311156133805760408601516002908581028680029091028487028302030360ff6000198401166000908152602460205260409020549190049790970196945091839003916134aa565b8383101561340b576040860151602090960151938390038087028501879003600b55600181018702909401869003600a55600e849055600d93909355600280548990038155600c805460ff191660ff90951694851761ff0019166101009590950294909417909355818502828002909502910282020392909203919091049190910191506119ce9050565b604095860151600019820160ff9081166000818152602460205289812060028082015482546001938401549082020103600b559584168083528b832090910154600a55600c805461ff00191661010094850217808255938404909416825299812054600e55600d5583548c9003845560ff19169097179096558286028380029096029190920282020393909303929092049290920192506119ce915050565b600019016132bd565b6000826134c257506000613512565b828202828482816134cf57fe5b041461350f57604051600160e51b62461bcd028152600401808060200182810382526021815260200180613c566021913960400191505060405180910390fd5b90505b92915050565b600061350f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b09565b600061350f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bae565b6000806135a7613c0b565b50600c5460ff1660009081526024602090815260408083208151606081018352815480825260018301549482019490945260029091015491810191909152600d549092909182116135fc578251829003613601565b825182035b9050808710156136bc576002836040015188028460400151898a020289600a546002020201038161362e57fe5b04840193508584111561367557604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b505060400151600a805486830201918203600b5555600d8054850190819055600e556002805485019055600c805460ff81166101000261ff00199091161790559050613512565b808714156137a3576002836040015188028460400151898a020289600a54600202020103816136e757fe5b04840193508584111561372e57604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b5050604090810151600a80548783020191909103600b55600c805460ff808216600181810183166000818152602460205288812090920154909655600d8190559081529490942054600e5560ff19169091179182166101000261ff001990921691909117905560028054850190559050613512565b600c54879060009060ff165b601260ff821611613ad25760ff81166000908152602460209081526040918290208251606081018452815480825260018301549382019390935260029091015492810192909252909650851161380957855185900361380e565b855185035b600c5490945060ff8281169116141561382b57600a549150613833565b856020015191505b838311156138b15760028660400151850287604001518687020286856002020201038161385c57fe5b0487019650888711156138a357604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b838303925060009450613aca565b838310156139ef576002866040015184028760400151858602028585600202020103816138da57fe5b04870196508887111561392157604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b826001141561399857600019810160ff908116600081815260246020526040808220600280820154825460018085015491830290910191909103600b55958716845291832091820154919094015490870201600a558190529054600e55600c805461ff0019166101009092029190911790556139c5565b60408601518381028301908103600b55600a55600e839055600c805461ff00191661010060ff8416021790555b600c805460ff191660ff9290921691909117905550600d5550506002805486019055509050613512565b600286604001518402876040015185860202858560020202010381613a1057fe5b048701965088871115613a5757604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b6040958601519283029190910191909103600b55600180820160ff9081166000818152602460205287812090930154600a55600d839055921680825294902054600e556002805489019055600c805460ff191690911761ff00191661010090940293909317909255509091506135129050565b6001016137af565b5050505050505092915050565b6001600160a01b039091166000908152602560205260409020805482019055601080549091019055565b60008183613b9857604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b5d578181015183820152602001613b45565b50505050905090810190601f168015613b8a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ba457fe5b0495945050505050565b60008184841115613c0357604051600160e51b62461bcd028152602060048201818152835160248401528351909283926044909101919085019080838360008315613b5d578181015183820152602001613b45565b505050900390565b6040518060600160405280600081526020016000815260200160008152509056fe5573657220646f65736e74206861766520616d6f756e74206f6620746f6b656e20696e207374616b65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6e6c792061646d696e6973747261746f72732063616e206578656375746520746869732066756e6374696f6e5573657220646f6e74206861766520656e6f75676820746f6b656e7320746f207374616b65596f7520646f6e74206861766520656e6f75676820616d6f756e74206f6620746f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef446f6e7420686176652073756666696369656e742062616c616e636520746f207075726368617365446f6e74206861766520656e6f7567682066756e647320746f20646973747269627574655573657220646f6e74206861766520656e6f7567682062616c616e636520696e20546f6b656e73a165627a7a723058202107ca4d623de56dad972d0d196ccc3076db7dada87df55252bf6fe6ff9b52380029000000000000000000000000af7c5ddcdc350261ebc8c3cc1aaa2b8295c54c78000000000000000000000000c8a233ef0fb30fe8954851e9ac0bde45b7cda66e
Deployed Bytecode
0x6080604052600436106103b85760003560e01c80637bd3026b116101f2578063c6f984c61161010d578063e8078d94116100a0578063f43c3c8c1161006f578063f43c3c8c14610da6578063f4e7bfa714610dd2578063f6335acc14610de7578063fd70fbeb14610e1a576103b8565b8063e8078d9414610cf5578063e8dd29ad14610d11578063edefa6e614610d50578063efef39a114610d89576103b8565b8063d28d8852116100dc578063d28d885214610c68578063d939381414610c7d578063e4849b3214610cb6578063e5b416b614610ce0576103b8565b8063c6f984c614610bc3578063c975b2dc14610bed578063c999117614610c02578063cbf0b0c014610c35576103b8565b8063a456dd9811610185578063b09f126611610154578063b09f126614610af5578063b55c58dd14610b0a578063b7a589b814610b34578063bd6579f214610b90576103b8565b8063a456dd9814610a44578063acad76a914610a6e578063af46aa0814610a98578063b01d6d1b14610acb576103b8565b80638d0bc599116101c15780638d0bc5991461099f5780639358928b146109e157806395d89b41146109f65780639c3821c914610a0b576103b8565b80637bd3026b1461090b57806383613ca8146109205780638620410b1461097557806386aacdfc1461098a576103b8565b80633695a06c116102e25780635269d90e1161027557806370a082311161024457806370a082311461086357806373559c961461089657806377d3550b146108e157806378f4e760146108f6576103b8565b80635269d90e146107dc57806359194d0c146107f15780635e3797971461080657806368fa813414610830576103b8565b806340a65823116102b157806340a658231461077357806343d32e9c146107885780634a1cd7311461079d5780634b750334146107c7576103b8565b80633695a06c146106f557806338e04faf146107345780633b565563146107495780633eaaf86b1461075e576103b8565b80631033125f1161035a5780632934c447116103295780632934c447146105f05780632ed2811e14610605578063313ce567146106b557806332424aa3146106e0576103b8565b80631033125f1461055457806317face841461058757806318160ddd146105b157806324299b4d146105c6576103b8565b806306fdde031161039657806306fdde03146104435780630763f0ce146104cd5780630a766cfa146105005780630c51b88f14610515576103b8565b8063011c2360146103bd578063018a25e8146104025780630697b4ad14610417575b600080fd5b3480156103c957600080fd5b506103f0600480360360208110156103e057600080fd5b50356001600160a01b0316610e2f565b60408051918252519081900360200190f35b34801561040e57600080fd5b506103f0610e41565b34801561042357600080fd5b506104416004803603602081101561043a57600080fd5b5035610e47565b005b34801561044f57600080fd5b50610458610ff6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049257818101518382015260200161047a565b50505050905090810190601f1680156104bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104d957600080fd5b50610441600480360360208110156104f057600080fd5b50356001600160a01b0316611020565b34801561050c57600080fd5b506103f06110f9565b34801561052157600080fd5b506104416004803603606081101561053857600080fd5b506001600160a01b0381351690602081013590604001356110ff565b34801561056057600080fd5b506104416004803603602081101561057757600080fd5b50356001600160a01b0316611224565b34801561059357600080fd5b50610441600480360360208110156105aa57600080fd5b5035611317565b3480156105bd57600080fd5b506103f06113d5565b3480156105d257600080fd5b50610441600480360360208110156105e957600080fd5b50356113db565b3480156105fc57600080fd5b506103f0611431565b34801561061157600080fd5b506104416004803603602081101561062857600080fd5b81019060208101813564010000000081111561064357600080fd5b82018360208201111561065557600080fd5b8035906020019184602083028401116401000000008311171561067757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611437945050505050565b3480156106c157600080fd5b506106ca611660565b6040805160ff9092168252519081900360200190f35b3480156106ec57600080fd5b506106ca611665565b34801561070157600080fd5b506104416004803603606081101561071857600080fd5b506001600160a01b03813516906020810135906040013561166a565b34801561074057600080fd5b506103f06117a0565b34801561075557600080fd5b506103f06117a6565b34801561076a57600080fd5b506103f06117ac565b34801561077f57600080fd5b506103f06117b2565b34801561079457600080fd5b506103f06117b8565b3480156107a957600080fd5b50610441600480360360208110156107c057600080fd5b50356117be565b3480156107d357600080fd5b506103f0611814565b3480156107e857600080fd5b506103f061181a565b3480156107fd57600080fd5b506103f0611872565b34801561081257600080fd5b506104416004803603602081101561082957600080fd5b5035611877565b34801561083c57600080fd5b506104416004803603602081101561085357600080fd5b50356001600160a01b03166118cd565b34801561086f57600080fd5b506103f06004803603602081101561088657600080fd5b50356001600160a01b03166119b4565b3480156108a257600080fd5b506108c3600480360360208110156108b957600080fd5b503560ff166119d3565b60408051938452602084019290925282820152519081900360600190f35b3480156108ed57600080fd5b506103f06119f4565b34801561090257600080fd5b506103f06119fa565b34801561091757600080fd5b506106ca611a00565b34801561092c57600080fd5b50610441600480360360a081101561094357600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516611a09565b34801561098157600080fd5b506103f0611ab9565b34801561099657600080fd5b506103f0611abf565b3480156109ab57600080fd5b50610441600480360360a08110156109c257600080fd5b5080359060208101359060408101359060608101359060800135611ac5565b3480156109ed57600080fd5b506103f0611b2d565b348015610a0257600080fd5b50610458611b33565b348015610a1757600080fd5b5061044160048036036040811015610a2e57600080fd5b506001600160a01b038135169060200135611b55565b348015610a5057600080fd5b5061044160048036036020811015610a6757600080fd5b5035611c6f565b348015610a7a57600080fd5b5061044160048036036020811015610a9157600080fd5b5035611cc5565b348015610aa457600080fd5b506103f060048036036020811015610abb57600080fd5b50356001600160a01b0316611d1b565b348015610ad757600080fd5b506103f060048036036020811015610aee57600080fd5b5035611d2d565b348015610b0157600080fd5b50610458611f37565b348015610b1657600080fd5b506103f060048036036020811015610b2d57600080fd5b5035611f5b565b348015610b4057600080fd5b506104416004803603610100811015610b5857600080fd5b5080359060208101359060408101359060ff606082013581169160808101359091169060a08101359060c08101359060e00135612140565b348015610b9c57600080fd5b506103f060048036036020811015610bb357600080fd5b50356001600160a01b03166121d1565b348015610bcf57600080fd5b5061044160048036036020811015610be657600080fd5b503561223d565b348015610bf957600080fd5b506103f0612293565b348015610c0e57600080fd5b5061044160048036036020811015610c2557600080fd5b50356001600160a01b0316612299565b348015610c4157600080fd5b5061044160048036036020811015610c5857600080fd5b50356001600160a01b0316612384565b348015610c7457600080fd5b506104586123e1565b348015610c8957600080fd5b5061044160048036036040811015610ca057600080fd5b506001600160a01b03813516906020013561240d565b348015610cc257600080fd5b5061044160048036036020811015610cd957600080fd5b503561252d565b348015610cec57600080fd5b506103f06125e3565b610cfd6125f5565b604080519115158252519081900360200190f35b348015610d1d57600080fd5b5061044160048036036060811015610d3457600080fd5b506001600160a01b0381351690602081013590604001356125fa565b348015610d5c57600080fd5b5061044160048036036040811015610d7357600080fd5b506001600160a01b03813516906020013561272f565b61044160048036036020811015610d9f57600080fd5b5035612813565b348015610db257600080fd5b5061044160048036036020811015610dc957600080fd5b5035151561281e565b348015610dde57600080fd5b506106ca612882565b348015610df357600080fd5b5061044160048036036020811015610e0a57600080fd5b50356001600160a01b0316612890565b348015610e2657600080fd5b506106ca612983565b60256020526000908152604090205481565b600a5490565b3360009081526003602052604090205460ff16610e9857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600654811115610edc57604051600160e51b62461bcd028152600401808060200182810382526024815260200180613d356024913960400191505060405180910390fd5b601f54601e54601d54601c54601b54010101016103e88114610f485760408051600160e51b62461bcd02815260206004820152601960248201527f496e76616c69642050657263656e742073747275637475726500000000000000604482015290519081900360640190fd5b6103e8601b54830281610f5757fe5b6016546001600160a01b039081166000908152602080526040808220805495909404909401909255601c546017548216835283832080546103e8928802839004019055601d546018548316845284842080549188028390049091019055601e546019548316845284842080549188028390049091019055601f54601a549092168352929091208054918502929092040190555060068054919091039055565b60408051808201909152600d8152600160981b6c446967692045786368616e676502602082015290565b3360009081526003602052604090205460ff1661107157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6015546001600160a01b03828116911614156110d75760408051600160e51b62461bcd02815260206004820152601560248201527f4164647265737320616c72656164792061646465640000000000000000000000604482015290519081900360640190fd5b601580546001600160a01b0319166001600160a01b0392909216919091179055565b60085481565b3360009081526003602052604090205460ff1661115057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b0383166000908152602260205260409020548211156111aa57604051600160e51b62461bcd028152600401808060200182810382526025815260200180613ca46025913960400191505060405180910390fd5b6001600160a01b0383166000818152602260209081526040808320805487900390556023825291829020805486019055600f805486019081905582518681529182015280820184905290517f5e320786aa09ca8938a3809dea0ba7c671eb08f34dc57bb4885eaabd4eb66c079181900360600190a2505050565b3360009081526003602052604090205460ff1661127557604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b03828116911614156112db5760408051600160e51b62461bcd02815260206004820152601460248201527f486f6c64657220616c7265616479206578697374000000000000000000000000604482015290519081900360640190fd5b600480546001600160a01b0390811660009081526022602052604080822054948316825280822085905592549091168152208054919091039055565b33600090815260208052604090205481111561137d5760408051600160e51b62461bcd02815260206004820152601b60248201527f446f6e7420686176652066756e647320746f2077697468647261770000000000604482015290519081900360640190fd5b33600081815260208052604090208054839003905561139c9082612988565b60408051828152905133917fb5499fc99039630a8a9d9534c1c6be6f24fd7fba04c6e7015e7f50b3224972da919081900360200190a250565b60005490565b3360009081526003602052604090205460ff1661142c57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601455565b60015481565b3360009081526003602052604090205460ff1661148857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b60005b815181101561165c576101f4602260008484815181106114a757fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825401925050819055506105dc602560008484815181106114ef57fe5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081208054909501909455600454909216835260229091529020805461029a019055815182908290811061154657fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020613ced8339815191526022600086868151811061158057fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546040518082815260200191505060405180910390a3306001600160a01b03168282815181106115d457fe5b60200260200101516001600160a01b03167fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d6025600086868151811061161657fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546040518082815260200191505060405180910390a360010161148b565b5050565b600090565b600081565b3360009081526003602052604090205460ff166116bb57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b031660009081526022602052604090205482111561172d5760408051600160e51b62461bcd02815260206004820152601760248201527f446f6e74206861766520656e6f75676820746f6b656e73000000000000000000604482015290519081900360640190fd5b6004546001600160a01b03908116600090815260226020908152604080832080548790039055928616808352918390208054860190558251858152908101849052825191927fd6b035b9b3bd6ef9aeb2f5fc348470c1de8e56519cb14f139b9e88638894252892918290030190a2505050565b60095481565b600d5481565b60005481565b600f5481565b600b5490565b3360009081526003602052604090205460ff1661180f57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600855565b600b5481565b3360009081526003602052604081205460ff1661186b57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b5060065490565b303190565b3360009081526003602052604090205460ff166118c857604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600755565b3360009081526003602052604090205460ff1661191e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff1615156001146119935760408051600160e51b62461bcd02815260206004820152601260248201527f61646472657373206e6f74206578697374730000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b6001600160a01b0381166000908152602260205260409020545b919050565b60246020526000908152604090208054600182015460029092015490919083565b60075481565b60115481565b600c5460ff1681565b3360009081526003602052604090205460ff16611a5a57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601980548416918516919091179055601a80549092169216919091179055565b600a5481565b600e5481565b3360009081526003602052604090205460ff16611b1657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601b94909455601c92909255601d55601e55601f55565b60025481565b6040805180820190915260058152600160db1b64088928e92b02602082015290565b3360009081526003602052604090205460ff16611ba657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b038216600090815260256020526040902054811115611c0057604051600160e51b62461bcd028152600401808060200182810382526027815260200180613d596027913960400191505060405180910390fd5b6001600160a01b03821660008181526025602090815260408083208054869003905560228252918290208054850190556010805485900390558151848152915130927fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d92908290030190a35050565b3360009081526003602052604090205460ff16611cc057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600955565b3360009081526003602052604090205460ff16611d1657604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601155565b60236020526000908152604090205481565b600080611d38613c0b565b50600c5460ff1660009081526024602090815260408083208151606081018352815480825260018301549482019490945260029091015491810191909152600d54909290918211611d8d578251829003611d92565b825182035b905080861015611dcf5760028360400151870284604001518889020288600a5460020202010381611dbf57fe5b049390930193506119ce92505050565b80861415611dfa5760028360400151870284604001518889020288600a5460020202010381611dbf57fe5b600c54869060009060ff165b601260ff821611611f2b5760ff811660009081526024602090815260409182902082516060810184528154808252600183015493820193909352600290910154928101929092529096508511611e60578551859003611e65565b855185035b600c5490945060ff82811691161415611e8257600a549150611e8a565b856020015191505b83831115611ec657600286604001518502876040015186870202868560020202010381611eb357fe5b0487019650838303925060009450611f23565b83831015611f0257600286604001518402876040015185860202858560020202010381611eef57fe5b049690960196506119ce95505050505050565b600286604001518402876040015185860202858560020202010381611eef57fe5b600101611e06565b50505050505050919050565b604051806040016040528060058152602001600160db1b64088928e92b0281525081565b600080611f66613c0b565b50600c54610100900460ff16600081815260246020818152604080842081516060808201845282548083526001840154838701819052600290940154928501839052600e54989097529484528251948501835294845291830191909152810191909152908080861015611ff65760028360400151870284604001518889020288600b5460020202030381611dbf57fe5b808614156120215760028360400151870284604001518889020288600b5460020202030381611dbf57fe5b600c548690600090610100900460ff165b60ff811615611f2b5760ff8082166000818152602460209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152600c549098508796506101009004909116141561209657600b5491506120aa565b604086015186516020880151908202010391505b838311156120f55760408601516002908581028680029091028487028302030360ff600019840116600090815260246020526040902054919004979097019694509183900391612137565b8383101561211a57604086015160029084810285800290910284860283020303611eef565b604086015160029084810285800290910284860283020303611eef565b60001901612032565b3360009081526003602052604090205460ff1661219157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b600a97909755600b95909555600293909355600c805460ff9283166101000261ff00199490931660ff199091161792909216179055600d55600e55600655565b3360009081526003602052604081205460ff1661222257604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b506001600160a01b0316600090815260208052604090205490565b3360009081526003602052604090205460ff1661228e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b601355565b60105481565b3360009081526003602052604090205460ff166122ea57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff161515600114156123605760408051600160e51b62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792065786973747300000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b3360009081526003602052604090205460ff166123d557604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b806001600160a01b0316ff5b6040518060400160405280600d8152602001600160981b6c446967692045786368616e67650281525081565b3360009081526003602052604090205460ff1661245e57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6001600160a01b0382166000908152602360205260409020548111156124b857604051600160e51b62461bcd028152600401808060200182810382526029815260200180613c2d6029913960400191505060405180910390fd5b6001600160a01b038216600081815260236020908152604080832080548690039055600f805486900381556022835292819020805486019055915482518581529182015281517f54a9763035584fc4fcad1bc4e0e7a83f93e016f50ae32bd527530a77257393ee929181900390910190a25050565b600081116125855760408051600160e51b62461bcd02815260206004820152601660248201527f546f6b656e732063616e206e6f74206265207a65726f00000000000000000000604482015290519081900360640190fd5b336000908152602260205260409020548111156125d657604051600160e51b62461bcd028152600401808060200182810382526024815260200180613cc96024913960400191505060405180910390fd5b6125e033826129ec565b50565b33600090815260208052604090205490565b600190565b3360009081526003602052604090205460ff1661264b57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6005546001600160a01b03166000908152602260205260409020548211156126bd5760408051600160e51b62461bcd02815260206004820152601760248201527f446f6e74206861766520656e6f75676820746f6b656e73000000000000000000604482015290519081900360640190fd5b6001600160a01b038084166000818152602260209081526040808320805488019055600554909416825290839020805486900390558251858152908101849052825191927f243ef73eb46889f44c92a67393a9135fa6ba7a9d810f2e20e7ac71e4a1a2f82a92918290030190a2505050565b3360009081526003602052604090205460ff1661278057604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6004546001600160a01b03166000908152602160205260409020548111156127f25760408051600160e51b62461bcd02815260206004820152601160248201527f4e6f7420656e6f75676820616d6f756e74000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b039091166000908152602080526040902080549091019055565b6125e0338234612b6e565b3360009081526003602052604090205460ff1661286f57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6012805460ff1916911515919091179055565b600c54610100900460ff1681565b3360009081526003602052604090205460ff166128e157604051600160e51b62461bcd02815260040180806020018281038252602d815260200180613c77602d913960400191505060405180910390fd5b6005546001600160a01b03828116911614156129475760408051600160e51b62461bcd02815260206004820152601460248201527f486f6c64657220616c7265616479206578697374000000000000000000000000604482015290519081900360640190fd5b600580546001600160a01b0390811660009081526022602052604080822054948316825280822085905592549091168152208054919091039055565b601281565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505061165c576040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156129e7573d6000803e3d6000fd5b505050565b60006129f782613085565b6001600160a01b03841660009081526022602052604081208054859003905560085491925090612a429061271090612a3690859063ffffffff6134b316565b9063ffffffff61351816565b90506000612a56838363ffffffff61355a16565b6015546001600160a01b0390811660009081526020808052604080832080546103e860c88a0204908101909155600454851684526021835292819020805461271060328a020490810190915560068054858a0383900301905581518a81529151959650929492933093908b1692600080516020613ced833981519152928290030190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a1604080513081526020810186905281517f8e4e0cf646617e7b0064af88de18264067a22faee033176d2a6d4c48ed5236ff929181900390910190a1612b658784612988565b50505050505050565b601454821015612bc85760408051600160e51b62461bcd02815260206004820152601c60248201527f4d696e696d756d20746f6b656e732073686f756c642062652062757900000000604482015290519081900360640190fd5b60005460025483011115612c265760408051600160e51b62461bcd02815260206004820152601860248201527f416c6c20746f6b656e7320686173207075726368617365640000000000000000604482015290519081900360640190fd5b60008111612c7e5760408051600160e51b62461bcd02815260206004820152601660248201527f616d6f756e742063616e206e6f74206265207a65726f00000000000000000000604482015290519081900360640190fd5b60125460ff1615612d49576000612cb6612ca96103e8612a36600954876134b390919063ffffffff16565b849063ffffffff61355a16565b6013546001600160a01b038616600090815260256020908152604080832054602383528184205460229093529220549394509290920183019091011115612d475760408051600160e51b62461bcd02815260206004820152601360248201527f457863656564696e6720627579204c696d697400000000000000000000000000604482015290519081900360640190fd5b505b823b63ffffffff811615612da75760408051600160e51b62461bcd02815260206004820152601460248201527f63616e6e6f74206265206120636f6e7472616374000000000000000000000000604482015290519081900360640190fd5b6000612dc4612710612a36600754866134b390919063ffffffff16565b90508083036000612dd5868361359c565b6015546001600160a01b0390811660009081526020808052604080832080546103e860c88b02819004918201909255600454909516845260219092528220805461271060648a020490810190915560068054858a038390030190556009549495509293612e489190612a36908c906134b3565b601254909150818a039060ff1615612f7c576000612e776103e8612a36601154856134b390919063ffffffff16565b6004546001600160a01b03908116600090815260226020526040808220805488019055918f1681522080548285030190559050612eb48c82613adf565b6001600160a01b038c1630600080516020613ced833981519152612ede858563ffffffff61355a16565b60408051918252519081900360200190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a160408051828152905130916001600160a01b038f16917fcb530c4d93d6b7819abcb3c731b1d25e7851bc40b1f45860906c52dc594ecf9d9181900360200190a350613029565b6004546001600160a01b03908116600090815260226020526040808220805486019055918d168082529190208054848d0301905530600080516020613ced833981519152612fd08d8663ffffffff61355a16565b60408051918252519081900360200190a3600a54600b5460025460408051938452602084019290925282820152517f4afcb4a87cdbd9974efdb92ee48bc8d7cd0ae4bf217004db3d080cbaee652ca79181900360600190a15b604080513081526020810189905281517f8e4e0cf646617e7b0064af88de18264067a22faee033176d2a6d4c48ed5236ff929181900390910190a185851015613078576130788b868803612988565b5050505050505050505050565b600080613090613c0b565b50600c54610100900460ff16600081815260246020818152604080842081516060808201845282548083526001840154838701819052600290940154928501839052600e549890975294845282519485018352948452918301919091528101919091529080808610156131865760028360400151870284604001518889020288600b546002020203038161312057fe5b6040850151602090950151928890038086028401869003600b55600101850290920193909303600a55600e805487900390819055600d55600280548790039055600c8054610100810460ff1660ff19909116179055919091049190910191506119ce9050565b808614156132ac5760028360400151870284604001518889020288600b54600202020303816131b157fe5b600c54919004949094019360ff610100909104166001141561321e576001600081815260246020527fbbbb3b1da0cb0951f34c5e9db4606f934b7367b5284f29163e9e6fe67e1e97d754600b819055600a55600c805460ff1916909217909155600e819055600d55613299565b600c805460001960ff61010080840482168381018316600090815260246020526040808220600281015481546001928301549082020103600b558383528183200154600a5560ff1990961690911782810484169094018316820261ff001990941693909317948590559093049092168252812054600e55600d555b50506002805485900390555090506119ce565b600c548690600090610100900460ff165b60ff811615611f2b5760ff8082166000818152602460209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152600c549098508796506101009004909116141561332157600b549150613335565b604086015186516020880151908202010391505b838311156133805760408601516002908581028680029091028487028302030360ff6000198401166000908152602460205260409020549190049790970196945091839003916134aa565b8383101561340b576040860151602090960151938390038087028501879003600b55600181018702909401869003600a55600e849055600d93909355600280548990038155600c805460ff191660ff90951694851761ff0019166101009590950294909417909355818502828002909502910282020392909203919091049190910191506119ce9050565b604095860151600019820160ff9081166000818152602460205289812060028082015482546001938401549082020103600b559584168083528b832090910154600a55600c805461ff00191661010094850217808255938404909416825299812054600e55600d5583548c9003845560ff19169097179096558286028380029096029190920282020393909303929092049290920192506119ce915050565b600019016132bd565b6000826134c257506000613512565b828202828482816134cf57fe5b041461350f57604051600160e51b62461bcd028152600401808060200182810382526021815260200180613c566021913960400191505060405180910390fd5b90505b92915050565b600061350f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b09565b600061350f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bae565b6000806135a7613c0b565b50600c5460ff1660009081526024602090815260408083208151606081018352815480825260018301549482019490945260029091015491810191909152600d549092909182116135fc578251829003613601565b825182035b9050808710156136bc576002836040015188028460400151898a020289600a546002020201038161362e57fe5b04840193508584111561367557604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b505060400151600a805486830201918203600b5555600d8054850190819055600e556002805485019055600c805460ff81166101000261ff00199091161790559050613512565b808714156137a3576002836040015188028460400151898a020289600a54600202020103816136e757fe5b04840193508584111561372e57604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b5050604090810151600a80548783020191909103600b55600c805460ff808216600181810183166000818152602460205288812090920154909655600d8190559081529490942054600e5560ff19169091179182166101000261ff001990921691909117905560028054850190559050613512565b600c54879060009060ff165b601260ff821611613ad25760ff81166000908152602460209081526040918290208251606081018452815480825260018301549382019390935260029091015492810192909252909650851161380957855185900361380e565b855185035b600c5490945060ff8281169116141561382b57600a549150613833565b856020015191505b838311156138b15760028660400151850287604001518687020286856002020201038161385c57fe5b0487019650888711156138a357604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b838303925060009450613aca565b838310156139ef576002866040015184028760400151858602028585600202020103816138da57fe5b04870196508887111561392157604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b826001141561399857600019810160ff908116600081815260246020526040808220600280820154825460018085015491830290910191909103600b55958716845291832091820154919094015490870201600a558190529054600e55600c805461ff0019166101009092029190911790556139c5565b60408601518381028301908103600b55600a55600e839055600c805461ff00191661010060ff8416021790555b600c805460ff191660ff9290921691909117905550600d5550506002805486019055509050613512565b600286604001518402876040015185860202858560020202010381613a1057fe5b048701965088871115613a5757604051600160e51b62461bcd028152600401808060200182810382526028815260200180613d0d6028913960400191505060405180910390fd5b6040958601519283029190910191909103600b55600180820160ff9081166000818152602460205287812090930154600a55600d839055921680825294902054600e556002805489019055600c805460ff191690911761ff00191661010090940293909317909255509091506135129050565b6001016137af565b5050505050505092915050565b6001600160a01b039091166000908152602560205260409020805482019055601080549091019055565b60008183613b9857604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b5d578181015183820152602001613b45565b50505050905090810190601f168015613b8a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ba457fe5b0495945050505050565b60008184841115613c0357604051600160e51b62461bcd028152602060048201818152835160248401528351909283926044909101919085019080838360008315613b5d578181015183820152602001613b45565b505050900390565b6040518060600160405280600081526020016000815260200160008152509056fe5573657220646f65736e74206861766520616d6f756e74206f6620746f6b656e20696e207374616b65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6e6c792061646d696e6973747261746f72732063616e206578656375746520746869732066756e6374696f6e5573657220646f6e74206861766520656e6f75676820746f6b656e7320746f207374616b65596f7520646f6e74206861766520656e6f75676820616d6f756e74206f6620746f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef446f6e7420686176652073756666696369656e742062616c616e636520746f207075726368617365446f6e74206861766520656e6f7567682066756e647320746f20646973747269627574655573657220646f6e74206861766520656e6f7567682062616c616e636520696e20546f6b656e73a165627a7a723058202107ca4d623de56dad972d0d196ccc3076db7dada87df55252bf6fe6ff9b52380029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000af7c5ddcdc350261ebc8c3cc1aaa2b8295c54c78000000000000000000000000c8a233ef0fb30fe8954851e9ac0bde45b7cda66e
-----Decoded View---------------
Arg [0] : _commissionHolder (address): 0xaf7C5dDcDc350261Ebc8c3CC1Aaa2b8295C54c78
Arg [1] : _stakeHolder (address): 0xC8A233ef0FB30fe8954851e9AC0BDE45b7CDa66E
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000af7c5ddcdc350261ebc8c3cc1aaa2b8295c54c78
Arg [1] : 000000000000000000000000c8a233ef0fb30fe8954851e9ac0bde45b7cda66e
Deployed Bytecode Sourcemap
5335:33640:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8446:8;;;7154:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7154:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7154:50:0;-1:-1:-1;;;;;7154:50:0;;:::i;:::-;;;;;;;;;;;;;;;;37703:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37703:86:0;;;:::i;31388:655::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31388:655:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31388:655:0;;:::i;:::-;;37893:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37893:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;37893:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32323:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32323:165:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32323:165:0;-1:-1:-1;;;;;32323:165:0;;:::i;5978:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5978:35:0;;;:::i;9534:369::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9534:369:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9534:369:0;;;;;;;;;;;;;:::i;33501:278::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33501:278:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33501:278:0;-1:-1:-1;;;;;33501:278:0;;:::i;32496:296::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32496:296:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32496:296:0;;:::i;38170:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38170:91:0;;;:::i;38733:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38733:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38733:110:0;;:::i;5691:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5691:38:0;;;:::i;8620:435::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8620:435:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8620:435:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8620:435:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8620:435:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8620:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8620:435:0;;-1:-1:-1;8620:435:0;;-1:-1:-1;;;;;8620:435:0:i;38079:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38079:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5605:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5605:35:0;;;:::i;32800:348::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32800:348:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;32800:348:0;;;;;;;;;;;;;:::i;6020:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6020:43:0;;;:::i;6250:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6250:47:0;;;:::i;5647:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5647:37:0;;;:::i;6355:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6355:35:0;;;:::i;37797:88::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37797:88:0;;;:::i;30846:128::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30846:128:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30846:128:0;;:::i;6100:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6100:24:0;;;:::i;29926:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29926:121:0;;;:::i;38387:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38387:103:0;;;:::i;30714:124::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30714:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30714:124:0;;:::i;30252:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30252:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30252:189:0;-1:-1:-1;;;;;30252:189:0;;:::i;38269:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38269:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38269:110:0;-1:-1:-1;;;;;38269:110:0;;:::i;7102:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7102:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7102:45:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;5933:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5933:38:0;;;:::i;6440:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6440:37:0;;;:::i;6131:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6131:31:0;;;:::i;30449:257::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30449:257:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;30449:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6070:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6070:23:0;;;:::i;6304:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6304:44:0;;;:::i;32051:264::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32051:264:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;32051:264:0;;;;;;;;;;;;;;;;;;;;;;:::i;5736:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5736:41:0;;;:::i;37984:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37984:87:0;;;:::i;10768:422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10768:422:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10768:422:0;;;;;;;;:::i;30982:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30982:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30982:134:0;;:::i;38851:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38851:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38851:121:0;;:::i;7046:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7046:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7046:49:0;-1:-1:-1;;;;;7046:49:0;;:::i;27345:2466::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27345:2466:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27345:2466:0;;:::i;5558:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5558:40:0;;;:::i;25005:2332::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25005:2332:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25005:2332:0;;:::i;9063:463::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9063:463:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;9063:463:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;31237:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31237:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31237:143:0;-1:-1:-1;;;;;31237:143:0;;:::i;38603:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38603:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38603:122:0;;:::i;6397:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6397:36:0;;;:::i;30055:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30055:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30055:189:0;-1:-1:-1;;;;;30055:189:0;;:::i;29819:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29819:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29819:99:0;-1:-1:-1;;;;;29819:99:0;;:::i;5505:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5505:46:0;;;:::i;10246:356::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10246:356:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10246:356:0;;;;;;;;:::i;11411:236::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11411:236:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11411:236:0;;:::i;31124:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31124:105:0;;;:::i;11198:85::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;33156:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33156:337:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;33156:337:0;;;;;;;;;;;;;:::i;24661:230::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24661:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24661:230:0;;;;;;;;:::i;11291:112::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11291:112:0;;:::i;38498:97::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38498:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38498:97:0;;;;:::i;6169:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6169:28:0;;;:::i;33787:257::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33787:257:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33787:257:0;-1:-1:-1;;;;;33787:257:0;;:::i;6204:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6204:39:0;;;:::i;7154:50::-;;;;;;;;;;;;;:::o;37703:86::-;37773:8;;37703:86;:::o;31388:655::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31491:15;;31480:7;:26;;31472:75;;;;-1:-1:-1;;;;;31472:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31620:7;;31610;;31600;;31590;;31580;;:17;:27;:37;:47;31661:4;31646:19;;31638:57;;;;;-1:-1:-1;;;;;31638:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;31754:4;31743:7;;31733;:17;31732:26;;;;;31723:4;;-1:-1:-1;;;;;31723:4:0;;;31710:18;;;;:12;:18;;;;;;:48;;31732:26;;;;31710:48;;;;;;31802:7;;31782:4;;;;31769:18;;;;;:48;;31813:4;31792:17;;;31791:26;;;31769:48;;;31861:7;;31841:4;;;;31828:18;;;;;:48;;31851:17;;;31850:26;;;31828:48;;;;;31920:7;;31900:4;;;;31887:18;;;;;:48;;31910:17;;;31909:26;;;31887:48;;;;;31979:7;;31959:4;;;;;31946:18;;;;;;:48;;31969:17;;;31968:26;;;;31946:48;;;-1:-1:-1;32007:15:0;:26;;;;;;;;31388:655::o;37893:83::-;37963:5;;;;;;;;;;;;-1:-1:-1;;;;;37963:5:0;;;;37893:83;:::o;32323:165::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32414:3;;-1:-1:-1;;;;;32414:15:0;;;:3;;:15;;32406:49;;;;;-1:-1:-1;;;;;32406:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;32466:3;:14;;-1:-1:-1;;;;;;32466:14:0;-1:-1:-1;;;;;32466:14:0;;;;;;;;;;32323:165::o;5978:35::-;;;;:::o;9534:369::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9652:16:0;;;;;;:9;:16;;;;;;9641:27;;;9633:77;;;;-1:-1:-1;;;;;9633:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9721:16:0;;;;;;:9;:16;;;;;;;;:27;;;;;;;9759:14;:21;;;;;;:32;;;;;;9802:16;:27;;;;;;;;9845:50;;;;;;;;;;;;;;;;;;;;;;;;;;9534:369;;;:::o;33501:278::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33595:16;;-1:-1:-1;;;;;33595:28:0;;;:16;;:28;;33587:61;;;;;-1:-1:-1;;;;;33587:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33691:16;;;-1:-1:-1;;;;;33691:16:0;;;33681:27;;;;:9;:27;;;;;;;33659:19;;;;;;;;:49;;;33729:16;;;;;33719:27;;;:50;;;;;;;;33501:278::o;32496:296::-;32591:10;32578:24;;;;:12;:24;;;;;;32567:35;;;32559:75;;;;;-1:-1:-1;;;;;32559:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;32658:10;32645:24;;;;:12;:24;;;;;:35;;;;;;;32691:38;;32673:7;32691:17;:38::i;:::-;32745:39;;;;;;;;32764:10;;32745:39;;;;;;;;;;32496:296;:::o;38170:91::-;38214:7;38241:12;38170:91;:::o;38733:110::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38814:11;:21;38733:110::o;5691:38::-;;;;:::o;8620:435::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8711:6;8706:342;8727:5;:12;8723:1;:16;8706:342;;;8784:3;8761:9;:19;8771:5;8777:1;8771:8;;;;;;;;;;;;;;-1:-1:-1;;;;;8761:19:0;-1:-1:-1;;;;;8761:19:0;;;;;;;;;;;;;:26;;;;;;;;;;;8831:4;8802:15;:25;8818:5;8824:1;8818:8;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8802:25:0;;;;;;;;;;;;;;;;-1:-1:-1;8802:25:0;;;:33;;;;;;;;8860:16;;;;;8850:27;;:9;:27;;;;;:34;;8881:3;8850:34;;;8928:8;;:5;;8934:1;;8928:8;;;;;;;;;;;;-1:-1:-1;;;;;8904:54:0;8921:4;-1:-1:-1;;;;;8904:54:0;-1:-1:-1;;;;;;;;;;;8938:9:0;:19;8948:5;8954:1;8948:8;;;;;;;;;;;;;;-1:-1:-1;;;;;8938:19:0;-1:-1:-1;;;;;8938:19:0;;;;;;;;;;;;;8904:54;;;;;;;;;;;;;;;;;;9003:4;-1:-1:-1;;;;;8978:58:0;8985:5;8991:1;8985:8;;;;;;;;;;;;;;-1:-1:-1;;;;;8978:58:0;;9010:15;:25;9026:5;9032:1;9026:8;;;;;;;;;;;;;;-1:-1:-1;;;;;9010:25:0;-1:-1:-1;;;;;9010:25:0;;;;;;;;;;;;;8978:58;;;;;;;;;;;;;;;;;;8741:3;;8706:342;;;;8620:435;:::o;38079:83::-;38120:5;38079:83;:::o;5605:35::-;5639:1;5605:35;:::o;32800:348::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32946:16;;-1:-1:-1;;;;;32946:16:0;32936:27;;;;:9;:27;;;;;;32925:38;;;32917:74;;;;;-1:-1:-1;;;;;32917:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33012:16;;-1:-1:-1;;;;;33012:16:0;;;33002:27;;;;:9;:27;;;;;;;;:38;;;;;;;33051:16;;;;;;;;;;:27;;;;;;33094:46;;;;;;;;;;;;;33051:16;;33094:46;;;;;;;;;32800:348;;;:::o;6020:43::-;;;;:::o;6250:47::-;;;;:::o;5647:37::-;;;;:::o;6355:35::-;;;;:::o;37797:88::-;37868:9;;37797:88;:::o;30846:128::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30941:14;:25;30846:128::o;6100:24::-;;;;:::o;29926:121::-;8531:10;29998:7;8516:26;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30024:15:0;;29926:121;:::o;38387:103::-;38469:4;38461:21;38387:103;:::o;30714:124::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30802:17;:28;30714:124::o;30252:189::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30341:21:0;;;;;;:14;:21;;;;;;;;:29;;:21;:29;30333:60;;;;;-1:-1:-1;;;;;30333:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30404:21:0;30428:5;30404:21;;;:14;:21;;;;;:29;;-1:-1:-1;;30404:29:0;;;30252:189::o;38269:110::-;-1:-1:-1;;;;;38353:18:0;;38326:7;38353:18;;;:9;:18;;;;;;38269:110;;;;:::o;7102:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5933:38::-;;;;:::o;6440:37::-;;;;:::o;6131:31::-;;;;;;:::o;30449:257::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30594:4;:12;;-1:-1:-1;;;;;;30594:12:0;;;-1:-1:-1;;;;;30594:12:0;;;;;;;30617:4;:12;;;;;;;;;;;;;;30640:4;:12;;;;;;;;;;;;;;30663:4;:12;;;;;;;;;;;;;30686:4;:12;;;;;;;;;;;;;30449:257::o;6070:23::-;;;;:::o;6304:44::-;;;;:::o;32051:264::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32188:7;:15;;;;32214:7;:15;;;;32240:7;:15;32266:7;:15;32292:7;:15;32051:264::o;5736:41::-;;;;:::o;37984:87::-;38056:7;;;;;;;;;;;;-1:-1:-1;;;;;38056:7:0;;;;37984:87;:::o;10768:422::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10879:22:0;;;;;;:15;:22;;;;;;10868:33;;;10860:85;;;;-1:-1:-1;;;;;10860:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10981:22:0;;;;;;:15;:22;;;;;;;;;;:32;;;10956:57;;11043:9;:16;;;;;;;;:26;;11024:45;;11102:17;;;:27;;;11082:47;;11145:37;;;;;;;11160:4;;11145:37;;;;;;;;;10768:422;;:::o;30982:134::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31075:22;:33;30982:134::o;38851:121::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38937:16;:27;38851:121::o;7046:49::-;;;;;;;;;;;;;:::o;27345:2466::-;27411:7;;27479:23;;:::i;:::-;-1:-1:-1;27518:14:0;;;;27505:28;;;;:12;:28;;;;;;;;27479:54;;;;;;;;;;;;27518:14;27479:54;;;;;;;;;;;;;;;;;;;;;;27582:24;;27479:54;;27582:24;;27660:43;;:135;;27752:15;;:43;;;27660:135;;;27734:15;;27706:43;;27660:135;27619:176;;27820:30;27810:7;:40;27806:475;;;27989:1;27967:8;:17;;;27957:7;:27;27935:8;:17;;;27925:7;27915;:17;:37;27903:7;27892:8;;27888:1;:12;:22;27887:66;:98;27886:104;;;;;;27867:123;;;;;-1:-1:-1;28005:22:0;;-1:-1:-1;;;28005:22:0;27806:475;28062:30;28051:7;:41;28047:234;;;28231:1;28209:8;:17;;;28199:7;:27;28177:8;:17;;;28167:7;28157;:17;:37;28145:7;28134:8;;28130:1;:12;:22;28129:66;:98;28128:104;;;;28047:234;28395:14;;28321:7;;28295:23;;28395:14;;28380:1424;6241:2;28411:17;;;;28380:1424;;28461:15;;;;;;;:12;:15;;;;;;;;;28450:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28524:43:0;;:135;;28616:15;;:43;;;28524:135;;;28598:15;;28570:43;;28524:135;28683:14;;28491:168;;-1:-1:-1;28683:14:0;28678:19;;;28683:14;;28678:19;28674:152;;;28730:8;;28718:20;;28674:152;;;28791:8;:19;;;28779:31;;28674:152;28862:30;28844:15;:48;28840:953;;;29128:1;29106:8;:17;;;29073:30;:50;29051:8;:17;;;29018:30;28985;:63;:83;28950:30;28938:9;28934:1;:13;:46;28933:136;:191;28932:197;;;;;;28913:216;;;;29167:30;29148:49;;;;29244:1;29216:29;;28840:953;;;29291:30;29273:15;:48;29269:524;;;29497:1;29475:8;:17;;;29457:15;:35;29435:8;:17;;;29417:15;29399;:33;:53;29379:15;29367:9;29363:1;:13;:31;29362:91;:131;29361:137;;;;;;29342:156;;;;;-1:-1:-1;29517:22:0;;-1:-1:-1;;;;;;29517:22:0;29269:524;29735:1;29713:8;:17;;;29695:15;:35;29673:8;:17;;;29655:15;29637;:33;:53;29617:15;29605:9;29601:1;:13;:31;29600:91;:131;29599:137;;;;29269:524;28430:3;;28380:1424;;;;27345:2466;;;;;;;;;:::o;5558:40::-;;;;;;;;;;;;;;-1:-1:-1;;;;;5558:40:0;;;;:::o;25005:2332::-;25067:18;;25142:23;;:::i;:::-;-1:-1:-1;25181:11:0;;;;;;;25168:25;;;;:12;:25;;;;;;;;25142:51;;;;;;;;;;;;;25181:11;25142:51;;;;;;;;;;;;;;;;;;;;25239:21;;25360:25;;;;;;;25349:36;;;;;;;;;;;;;;;;;;;;;;;;25239:21;25400:40;;;25396:463;;;25576:1;25554:8;:17;;;25544:7;:27;25522:8;:17;;;25512:7;25502;:17;:37;25490:7;25478:9;;25474:1;:13;:23;25473:67;:99;25472:105;;;;25396:463;25647:30;25636:7;:41;25632:227;;;25813:1;25791:8;:17;;;25781:7;:27;25759:8;:17;;;25749:7;25739;:17;:37;25727:7;25715:9;;25711:1;:13;:23;25710:67;:99;25709:105;;;;25632:227;25973:11;;25898:7;;25871:24;;25973:11;;;;;25958:1372;25986:5;;;;25958:1372;;26024:15;;;;;;;;:12;:15;;;;;;;;;26013:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26133:11;;26013:26;;-1:-1:-1;26087:22:0;;-1:-1:-1;26133:11:0;;;;;;26128:16;26124:212;;;26178:9;;26165:22;;26124:212;;;26303:17;;;;26264:15;;26241:19;;;;26264:35;;;26241:59;:79;;-1:-1:-1;26124:212:0;26373:30;26354:16;:49;26350:969;;;26614:17;;;;26636:1;;26581:50;;;26493:63;;;:83;;;26441:47;;;;;26440:137;:192;26750:19;-1:-1:-1;;26763:5:0;;26750:19;;;;;:12;:19;;;;;:26;26439:198;;;26424:213;;;;;26750:26;-1:-1:-1;26656:50:0;;;;;26350:969;;;26821:30;26802:16;:49;26798:521;;;27006:17;;;;27028:1;;26987:36;;;26927:35;;;:55;;;26889:33;;;;;26888:95;:136;26887:142;;26798:521;27243:17;;;;27265:1;;27224:36;;;27164:35;;;:55;;;27126:33;;;;;27125:95;:136;27124:142;;26798:521;-1:-1:-1;;25993:3:0;25958:1372;;9063:463;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9249:8;:14;;;;9274:9;:15;;;;9300:17;:28;;;;9339:14;:27;;;9377:21;;;9339:27;9377:21;-1:-1:-1;;9339:27:0;;;;-1:-1:-1;;9339:27:0;;;;9377:21;;;;;;;9409:24;:31;9451:21;:28;9490:15;:28;9063:463::o;31237:143::-;8531:10;31324:7;8516:26;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31350:22:0;;;;;:12;:22;;;;;;;31237:143::o;38603:122::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38690:13;:27;38603:122::o;6397:36::-;;;;:::o;30055:189::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30141:21:0;;;;;;:14;:21;;;;;;;;:29;;:21;:29;;30133:64;;;;;-1:-1:-1;;;;;30133:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30208:21:0;;;;;:14;:21;;;;;:28;;-1:-1:-1;;30208:28:0;30232:4;30208:28;;;30055:189::o;29819:99::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29905:4;-1:-1:-1;;;;;29892:18:0;;5505:46;;;;;;;;;;;;;;-1:-1:-1;;;;;5505:46:0;;;;:::o;10246:356::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10351:21:0;;;;;;:14;:21;;;;;;10340:32;;;10332:86;;;;-1:-1:-1;;;;;10332:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10429:21:0;;;;;;:14;:21;;;;;;;;:32;;;;;;;10472:16;:27;;;;;;;10510:9;:16;;;;;;:27;;;;;;10577:16;;10553:41;;;;;;;;;;;;;;;;;;;;;;10246:356;;:::o;11411:236::-;11478:1;11468:7;:11;11460:46;;;;;-1:-1:-1;;;;;11460:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11546:10;11536:21;;;;:9;:21;;;;;;11525:32;;;11517:81;;;;-1:-1:-1;;;;;11517:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11609:28;11617:10;11629:7;11609;:28::i;:::-;11411:236;:::o;31124:105::-;31210:10;31171:7;31197:24;;;:12;:24;;;;;;31124:105;:::o;11198:85::-;11271:4;11198:85;:::o;33156:337::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33299:11;;-1:-1:-1;;;;;33299:11:0;33289:22;;;;:9;:22;;;;;;33278:33;;;33270:69;;;;;-1:-1:-1;;;;;33270:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33350:16:0;;;;;;;:9;:16;;;;;;;;:27;;;;;;33398:11;;;;;33388:22;;;;;;:33;;;;;;;33437:48;;;;;;;;;;;;;33350:16;;33437:48;;;;;;;;;33156:337;;;:::o;24661:230::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24798:16;;-1:-1:-1;;;;;24798:16:0;24786:29;;;;:11;:29;;;;;;24770:45;;;24762:75;;;;;-1:-1:-1;;;;;24762:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24848:19:0;;;;;;;:12;:19;;;;;:35;;;;;;;24661:230::o;11291:112::-;11353:42;11365:10;11377:6;11385:9;11353:11;:42::i;38498:97::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38571:8;:16;;-1:-1:-1;;38571:16:0;;;;;;;;;;38498:97::o;6169:28::-;;;;;;;;;:::o;33787:257::-;8531:10;8516:26;;;;:14;:26;;;;;;;;8508:84;;;;-1:-1:-1;;;;;8508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33877:11;;-1:-1:-1;;;;;33877:23:0;;;:11;;:23;;33869:56;;;;;-1:-1:-1;;;;;33869:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33968:11;;;-1:-1:-1;;;;;33968:11:0;;;33958:22;;;;:9;:22;;;;;;;33936:19;;;;;;;;:44;;;34001:11;;;;;33991:22;;;:45;;;;;;;;33787:257::o;6204:39::-;6241:2;6204:39;:::o;37486:209::-;37573:41;;-1:-1:-1;;;;;37573:32:0;;;:41;;;;;37606:7;;37573:41;;;;37606:7;37573:32;:41;;;;;;;37568:120;;37631:45;;-1:-1:-1;;;;;37631:36:0;;;:45;;;;;37668:7;;37631:45;;;;37668:7;37631:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37631:45:0;37486:209;;:::o;11655:796::-;11723:18;11744:19;11755:7;11744:10;:19::i;:::-;-1:-1:-1;;;;;11774:16:0;;;;;;:9;:16;;;;;:27;;;;;;;11849:14;;11723:40;;-1:-1:-1;11774:16:0;11834:41;;11869:5;;11834:30;;11723:40;;11834:30;:14;:30;:::i;:::-;:34;:41;:34;:41;:::i;:::-;11812:63;-1:-1:-1;11886:31:0;11920:27;:10;11812:63;11920:27;:14;:27;:::i;:::-;12024:3;;-1:-1:-1;;;;;12024:3:0;;;11958:15;12011:17;;;:12;:17;;;;;;;:28;;11996:4;11990:3;11976:17;;:24;12011:28;;;;;;12115:16;;;;12103:29;;:11;:29;;;;;;:40;;12087:5;12082:2;12068:16;;:24;12103:40;;;;;;12154:15;:52;;12174:21;;;12173:33;;;12154:52;;;12224:39;;;;;;;11886:61;;-1:-1:-1;11976:24:0;;12068;;12248:4;;12224:39;;;;-1:-1:-1;;;;;;;;;;;12224:39:0;;;;;;;12285:8;;12295:9;;12306:17;;12279:45;;;;;;;;;;;;;;;;;;;;;;;;;;;12340:43;;;12364:4;12340:43;;;;;;;;;;;;;;;;;;;;;12394:49;12412:5;12419:23;12394:17;:49::i;:::-;11655:796;;;;;;;:::o;12459:2462::-;12572:11;;12561:7;:22;;12553:63;;;;;-1:-1:-1;;;;;12553:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12666:12;;12645:17;;12635:7;:27;:43;;12627:80;;;;;-1:-1:-1;;;;;12627:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12741:7;12726:12;:22;12718:57;;;;;-1:-1:-1;;;;;12718:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12794:8;;;;12790:274;;;12819:24;12846:58;12858:45;12898:4;12858:35;12870:22;;12858:7;:11;;:35;;;;:::i;:45::-;12846:7;;:58;:11;:58;:::i;:::-;13015:13;;-1:-1:-1;;;;;12989:22:0;;;;;;:15;:22;;;;;;;;;12946:14;:21;;;;;;12927:9;:16;;;;;;12819:85;;-1:-1:-1;12927:40:0;;;;:59;;:84;;;:101;;12919:133;;;;;-1:-1:-1;;;;;12919:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12790:274;;13130:18;;13177:9;;;;13169:42;;;;;-1:-1:-1;;;;;13169:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13224:19;13246:46;13286:5;13246:35;13263:17;;13246:12;:16;;:35;;;;:::i;:46::-;13224:68;-1:-1:-1;13340:26:0;;;13303:34;13402:51;13417:7;13340:26;13402:14;:51::i;:::-;13584:3;;-1:-1:-1;;;;;13584:3:0;;;13464:15;13571:17;;;:12;:17;;;;;;;:28;;13502:4;13496:3;13482:17;;:24;;;13571:28;;;;;;13622:16;;;;;13610:29;;:11;:29;;;;;:40;;13555:5;13549:3;13535:17;;:25;13610:40;;;;;;13661:15;:52;;13681:21;;;13680:33;;;13661:52;;;13763:22;;13377:76;;-1:-1:-1;13482:24:0;;13751:45;;13502:4;13751:35;;:7;;:11;:35::i;:45::-;13881:8;;13724:72;;-1:-1:-1;13840:26:0;;;;13881:8;;13877:821;;;13906:22;13931:54;13980:4;13931:44;13958:16;;13931:22;:26;;:44;;;;:::i;:54::-;14010:16;;-1:-1:-1;;;;;14010:16:0;;;14000:27;;;;:9;:27;;;;;;:47;;;;;;14062:16;;;;;;:59;;14082:39;;;14062:59;;;13906:79;-1:-1:-1;14136:32:0;14072:5;13906:79;14136:9;:32::i;:::-;-1:-1:-1;;;;;14190:74:0;;14207:4;-1:-1:-1;;;;;;;;;;;14221:42:0;:22;14248:14;14221:42;:26;:42;:::i;:::-;14190:74;;;;;;;;;;;;;;;14290:8;;14300:9;;14311:17;;14284:45;;;;;;;;;;;;;;;;;;;;;;;;;;;14349:44;;;;;;;;14371:4;;-1:-1:-1;;;;;14349:44:0;;;;;;;;;;;;13877:821;;;;14440:16;;-1:-1:-1;;;;;14440:16:0;;;14430:27;;;;:9;:27;;;;;;:47;;;;;;14492:16;;;;;;;;;:46;;14512:26;;;14492:46;;;14577:4;-1:-1:-1;;;;;;;;;;;14591:29:0;14512:7;14461:16;14591:29;:11;:29;:::i;:::-;14560:61;;;;;;;;;;;;;;;14647:8;;14657:9;;14668:17;;14641:45;;;;;;;;;;;;;;;;;;;;;;;;;;;13877:821;14713:43;;;14737:4;14713:43;;;;;;;;;;;;;;;;;;;;;14790:26;14773:14;:43;14769:145;;;14833:69;14851:5;14887:14;14858:26;:43;14833:17;:69::i;:::-;12459:2462;;;;;;;;;;;:::o;14931:4647::-;14985:18;;15060:23;;:::i;:::-;-1:-1:-1;15099:11:0;;;;;;;15086:25;;;;:12;:25;;;;;;;;15060:51;;;;;;;;;;;;;15099:11;15060:51;;;;;;;;;;;;;;;;;;;;15157:21;;15278:25;;;;;;;15267:36;;;;;;;;;;;;;;;;;;;;;;;;15157:21;15318:40;;;15314:1752;;;15494:1;15472:8;:17;;;15462:7;:27;15440:8;:17;;;15430:7;15420;:17;:37;15408:7;15396:9;;15392:1;:13;:23;15391:67;:99;15390:105;;;;;15613:17;;;;15524:19;;;;;15548:40;;;;15547:62;;;15524:86;;:106;;;15512:9;:118;15714:1;15680:46;15679:68;;15656:92;;;:112;;;;15645:8;:123;15783:21;:32;;;;;;;;;15830:24;:48;15893:17;:28;;;;;;;-1:-1:-1;15953:11:0;;;;;;;-1:-1:-1;;15936:28:0;;;;;;15390:105;;;;15375:120;;;;;-1:-1:-1;15979:18:0;;-1:-1:-1;15979:18:0;15314:1752;16032:30;16021:7;:41;16017:1049;;;16198:1;16176:8;:17;;;16166:7;:27;16144:8;:17;;;16134:7;16124;:17;:37;16112:7;16100:9;;16096:1;:13;:23;16095:67;:99;16094:105;;;;;16218:11;;16094:105;;;16079:120;;;;;16218:11;;;;;;;:16;16214:765;;;16280:1;16267:15;;;;:12;:15;;:26;;16255:9;:38;;;16312:8;:37;16368:14;:18;;-1:-1:-1;;16368:18:0;;;;;;;16405:21;:25;;;16449:24;:28;16214:765;;;16668:11;;;-1:-1:-1;;16668:11:0;;;;;;;:15;;;16655:29;;;;;;:12;:29;;;;;;:38;;;;16574:36;;16682:1;16530:40;;;;16574:77;;;16530:122;:163;16518:9;:175;16723:25;;;;;;:36;;16712:8;:47;-1:-1:-1;;16778:28:0;;;;;;16825:16;;;;;;;;;;;;-1:-1:-1;;16825:16:0;;;;;;;;;;;16897:11;;;;;;16884:25;;;;:32;16860:21;:56;16935:24;:28;16214:765;-1:-1:-1;;16993:17:0;:28;;;;;;;-1:-1:-1;17043:11:0;-1:-1:-1;17036:18:0;;16017:1049;17180:11;;17105:7;;17078:24;;17180:11;;;;;17165:2406;17193:5;;;;17165:2406;;17231:15;;;;;;;;:12;:15;;;;;;;;;17220:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17340:11;;17220:26;;-1:-1:-1;17294:22:0;;-1:-1:-1;17340:11:0;;;;;;17335:16;17331:212;;;17385:9;;17372:22;;17331:212;;;17510:17;;;;17471:15;;17448:19;;;;17471:35;;;17448:59;:79;;-1:-1:-1;17331:212:0;17580:30;17561:16;:49;17557:2003;;;17821:17;;;;17843:1;;17788:50;;;17700:63;;;:83;;;17648:47;;;;;17647:137;:192;17957:19;-1:-1:-1;;17970:5:0;;17957:19;;;;;:12;:19;;;;;:26;17646:198;;;17631:213;;;;;17957:26;-1:-1:-1;17863:50:0;;;;;17557:2003;;;18028:30;18009:16;:49;18005:1555;;;18213:17;;;;18269:19;;;;;18293:49;;;;18292:71;;;18269:95;;:115;;;18257:9;:127;18472:1;18438:55;;18437:77;;18414:101;;;:121;;;18403:8;:132;18554:21;:73;;;18646:24;:48;;;;18235:1;18715:28;;;;;;;-1:-1:-1;18762:18:0;;-1:-1:-1;;18762:18:0;;;;;;;;-1:-1:-1;;18799:15:0;18762:18;18799:15;;;;;;;;;;;18194:36;;;18134:35;;;:55;;;18096:33;;;;18095:95;:136;;;;18094:142;;;;18079:157;;;;;-1:-1:-1;18833:18:0;;-1:-1:-1;18833:18:0;18005:1555;19028:17;;;;;-1:-1:-1;;19192:5:0;;19179:19;;;;;;;;:12;:19;;;;;19050:1;19179:28;;;;19118:26;;19196:1;19084:30;;;;19118:57;;;19084:92;:123;19072:9;:135;19237:15;;;;;;;;;:26;;;;19226:8;:37;19282:11;:19;;-1:-1:-1;;19282:19:0;;;;;;;;;19357:11;;;;;;19344:25;;;;;:32;19320:21;:56;19395:24;:28;19442;;;;;;;-1:-1:-1;;19489:18:0;;;;;;;19009:36;;;18949:35;;;:55;;;18911:33;;;;;;18910:95;:136;;;;18909:142;;;;18894:157;;;;;-1:-1:-1;19526:18:0;;-1:-1:-1;;19526:18:0;18005:1555;-1:-1:-1;;17200:3:0;17165:2406;;2229:471;2287:7;2532:6;2528:47;;-1:-1:-1;2562:1:0;2555:8;;2528:47;2599:5;;;2603:1;2599;:5;:1;2623:5;;;;;:10;2615:56;;;;-1:-1:-1;;;;;2615:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2691:1;-1:-1:-1;2229:471:0;;;;;:::o;3176:132::-;3234:7;3261:39;3265:1;3268;3261:39;;;;;;;;;;;;;;;;;:3;:39::i;1339:136::-;1397:7;1424:43;1428:1;1431;1424:43;;;;;;;;;;;;;;;;;:3;:43::i;19586:5067::-;19668:22;;19751:23;;:::i;:::-;-1:-1:-1;19790:14:0;;;;19777:28;;;;:12;:28;;;;;;;;19751:54;;;;;;;;;;;;19790:14;19751:54;;;;;;;;;;;;;;;;;;;;;;19854:24;;19751:54;;19854:24;;19932:43;;:135;;20024:15;;:43;;;19932:135;;;20006:15;;19978:43;;19932:135;19891:176;;20092:30;20082:7;:40;20078:1428;;;20261:1;20239:8;:17;;;20229:7;:27;20207:8;:17;;;20197:7;20187;:17;:37;20175:7;20164:8;;20160:1;:12;:22;20159:66;:98;20158:104;;;;;;20139:123;;;;20304:14;20285:15;:33;;20277:86;;;;-1:-1:-1;;;;;20277:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20435:17:0;;;20392:8;;;20404:27;;;20392:40;:60;;;20380:9;:72;20467:51;20535:24;:35;;;;;;;;20585:21;:48;20648:17;:28;;;;;;-1:-1:-1;20705:14:0;;;;;;20691:28;-1:-1:-1;;20691:28:0;;;;;;20741:15;-1:-1:-1;20734:22:0;;20078:1428;20791:30;20780:7;:41;20776:730;;;20960:1;20938:8;:17;;;20928:7;:27;20906:8;:17;;;20896:7;20886;:17;:37;20874:7;20863:8;;20859:1;:12;:22;20858:66;:98;20857:104;;;;;;20838:123;;;;21003:14;20984:15;:33;;20976:86;;;;-1:-1:-1;;;;;20976:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21134:17:0;;;;;21091:8;;;21103:27;;;21091:40;:60;;;;21079:9;:72;21190:14;;;;;;;;:18;;;21177:32;;-1:-1:-1;21177:32:0;;;:12;:32;;;;;:43;;;;21166:54;;;21235:24;:28;;;21302;;;;;;;:35;21278:21;:59;-1:-1:-1;;21352:19:0;;;;21400:14;;;21190;21386:28;-1:-1:-1;;21386:28:0;;;;;;;;;-1:-1:-1;21429:28:0;;;;;;21479:15;-1:-1:-1;21472:22:0;;20776:730;21620:14;;21546:7;;21520:23;;21620:14;;21605:3039;6241:2;21636:17;;;;21605:3039;;21686:15;;;;;;;:12;:15;;;;;;;;;21675:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21749:43:0;;:135;;21841:15;;:43;;;21749:135;;;21823:15;;21795:43;;21749:135;21908:14;;21716:168;;-1:-1:-1;21908:14:0;21903:19;;;21908:14;;21903:19;21899:152;;;21955:8;;21943:20;;21899:152;;;22016:8;:19;;;22004:31;;21899:152;22087:30;22069:15;:48;22065:2568;;;22353:1;22331:8;:17;;;22298:30;:50;22276:8;:17;;;22243:30;22210;:63;:83;22175:30;22163:9;22159:1;:13;:46;22158:136;:191;22157:197;;;;;;22138:216;;;;22400:14;22381:15;:33;;22373:86;;;;-1:-1:-1;;;;;22373:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22497:30;22478:49;;;;22574:1;22546:29;;22065:2568;;;22621:30;22603:15;:48;22599:2034;;;22827:1;22805:8;:17;;;22787:15;:35;22765:8;:17;;;22747:15;22729;:33;:53;22709:15;22697:9;22693:1;:13;:31;22692:91;:131;22691:137;;;;;;22672:156;;;;22874:14;22855:15;:33;;22847:86;;;;-1:-1:-1;;;;;22847:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22956:15;22975:1;22956:20;22952:741;;;-1:-1:-1;;23121:5:0;;23108:19;;;;;;;;:12;:19;;;;;;:28;;;;;23047:26;;23125:1;23013:30;;;;23047:57;;;23013:92;;;:123;;;;23001:9;:135;23218:15;;;;;;;;:24;;;;23170:26;;;;;23200:42;;;23170:73;23159:8;:84;23290:19;;;:26;;23266:21;:50;23339:11;:19;;-1:-1:-1;;23339:19:0;;;;;;;;;;;22952:741;;;23471:17;;;;23432:35;;;23419:49;;:69;;;23407:9;:81;23511:8;:60;23594:21;:39;;;23656:11;:15;;-1:-1:-1;;23656:15:0;;;;;;;;;22952:741;23713:14;:18;;-1:-1:-1;;23713:18:0;;;;;;;;;;;;-1:-1:-1;23750:24:0;:42;-1:-1:-1;;23811:17:0;:28;;;;;;-1:-1:-1;23865:15:0;-1:-1:-1;23858:22:0;;22599:2034;24076:1;24054:8;:17;;;24036:15;:35;24014:8;:17;;;23996:15;23978;:33;:53;23958:15;23946:9;23942:1;:13;:31;23941:91;:131;23940:137;;;;;;23921:156;;;;24123:14;24104:15;:33;;24096:86;;;;-1:-1:-1;;;;;24096:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24265:17;;;;;24226:35;;;24213:49;;;;:69;;;;24201:9;:81;24329:1;24325:5;;;24312:19;;;;;;;;:12;:19;;;;;:30;;;;24301:8;:41;24361:24;:28;;;24432:15;;;;;;;;:22;24408:21;:46;24473:17;:28;;;;;;-1:-1:-1;24520:22:0;;-1:-1:-1;;24520:22:0;;;;-1:-1:-1;;24561:15:0;24520:22;24561:15;;;;;;;;;;-1:-1:-1;24602:15:0;;-1:-1:-1;24595:22:0;;-1:-1:-1;24595:22:0;22599:2034;21655:3;;21605:3039;;;;19586:5067;;;;;;;;;;:::o;10610:150::-;-1:-1:-1;;;;;10680:22:0;;;;;;;:15;:22;;;;;:33;;;;;;10724:17;:28;;;;;;;10610:150::o;3804:278::-;3890:7;3925:12;3918:5;3910:28;;;;-1:-1:-1;;;;;3910:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3910:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:9;3965:1;3961;:5;;;;;;;3804:278;-1:-1:-1;;;;;3804:278:0:o;1778:192::-;1864:7;1900:12;1892:6;;;;1884:29;;;;-1:-1:-1;;;;;1884:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1884:29:0;-1:-1:-1;;;1936:5:0;;;1778:192::o;5335:33640::-;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://2107ca4d623de56dad972d0d196ccc3076db7dada87df55252bf6fe6ff9b5238
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.