More Info
Private Name Tags
ContractCreator
TokenTracker
Multi Chain
Multichain Addresses
9 addresses found via
Latest 25 from a total of 12,349 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Stake Start | 17389468 | 11 hrs 44 mins ago | IN | 0 ETH | 0.00489913 | ||||
Stake End | 17389463 | 11 hrs 45 mins ago | IN | 0 ETH | 0.02750078 | ||||
Withdraw | 17366032 | 3 days 18 hrs ago | IN | 0 ETH | 0.00353381 | ||||
Sell | 17366028 | 3 days 18 hrs ago | IN | 0 ETH | 0.00359792 | ||||
Withdraw | 17365503 | 3 days 20 hrs ago | IN | 0 ETH | 0.00427575 | ||||
Sell | 17365500 | 3 days 20 hrs ago | IN | 0 ETH | 0.00448675 | ||||
Stake End | 17365495 | 3 days 20 hrs ago | IN | 0 ETH | 0.0567059 | ||||
Stake End | 17365492 | 3 days 20 hrs ago | IN | 0 ETH | 0.05590065 | ||||
Stake End | 17365389 | 3 days 21 hrs ago | IN | 0 ETH | 0.05417503 | ||||
Stake End | 17346547 | 6 days 12 hrs ago | IN | 0 ETH | 0.04561646 | ||||
Withdraw | 17314862 | 10 days 23 hrs ago | IN | 0 ETH | 0.00344767 | ||||
Withdraw | 17308873 | 11 days 19 hrs ago | IN | 0 ETH | 0.0040224 | ||||
Roll | 17308714 | 11 days 20 hrs ago | IN | 0 ETH | 0.0069115 | ||||
Withdraw | 17305582 | 12 days 6 hrs ago | IN | 0 ETH | 0.00265512 | ||||
Withdraw | 17270243 | 17 days 6 hrs ago | IN | 0 ETH | 0.00495439 | ||||
Withdraw | 17261551 | 18 days 11 hrs ago | IN | 0 ETH | 0.00351751 | ||||
Withdraw | 17248181 | 20 days 9 hrs ago | IN | 0 ETH | 0.00400363 | ||||
Withdraw | 17236032 | 22 days 3 hrs ago | IN | 0 ETH | 0.00985008 | ||||
Withdraw | 17225584 | 23 days 14 hrs ago | IN | 0 ETH | 0.00932113 | ||||
Sell | 17225581 | 23 days 14 hrs ago | IN | 0 ETH | 0.01014005 | ||||
Stake End | 17225578 | 23 days 14 hrs ago | IN | 0 ETH | 0.1300169 | ||||
Stake End | 17225576 | 23 days 14 hrs ago | IN | 0 ETH | 0.13068841 | ||||
Stake End | 17225562 | 23 days 14 hrs ago | IN | 0 ETH | 0.12470155 | ||||
Withdraw | 17185795 | 29 days 4 hrs ago | IN | 0 ETH | 0.00468336 | ||||
Withdraw | 17162331 | 32 days 11 hrs ago | IN | 0 ETH | 0.00391153 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
HTI
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-05-23 */ pragma solidity ^0.5.13; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract DIST { function accounting() public; } contract EXCH { function appreciateTokenPrice(uint256 _amount) public; } contract TOKEN { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external; function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external; function stakeCount(address stakerAddr) external view returns (uint256); function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool); function currentDay() external view returns (uint256); } contract Ownable { address public owner; constructor() public { owner = address(0x583A013373A9e91fB64CBFFA999668bEdfdcf87C); } modifier onlyOwner() { require(msg.sender == owner); _; } } contract HTI is Ownable { using SafeMath for uint256; uint256 ACTIVATION_TIME = 1590274800; modifier isActivated { require(now >= ACTIVATION_TIME); if (now <= (ACTIVATION_TIME + 2 minutes)) { require(tx.gasprice <= 0.2 szabo); } _; } modifier onlyCustodian() { require(msg.sender == custodianAddress); _; } modifier hasDripped { if (dividendPool > 0) { uint256 secondsPassed = SafeMath.sub(now, lastDripTime); uint256 dividends = secondsPassed.mul(dividendPool).div(dailyRate); if (dividends > dividendPool) { dividends = dividendPool; } profitPerShare = SafeMath.add(profitPerShare, (dividends * divMagnitude) / tokenSupply); dividendPool = dividendPool.sub(dividends); lastDripTime = now; } if (hexToSendFund("hexmax") >= 10000e8) { payFund("hexmax"); } if (hexToSendFund("stableth") >= 10000e8) { payFund("stableth"); } _; } modifier onlyTokenHolders { require(myTokens(true) > 0); _; } modifier onlyDivis { require(myDividends(true) > 0); _; } modifier isStakeActivated { require(stakeActivated == true); _; } event onDonation( address indexed customerAddress, uint256 tokens ); event Transfer( address indexed from, address indexed to, uint256 tokens ); event onTokenPurchase( address indexed customerAddress, uint256 incomingHEX, uint256 tokensMinted, address indexed referredBy, uint256 timestamp ); event onTokenSell( address indexed customerAddress, uint256 tokensBurned, uint256 hexEarned, uint256 timestamp ); event onRoll( address indexed customerAddress, uint256 hexRolled, uint256 tokensMinted ); event onWithdraw( address indexed customerAddress, uint256 hexWithdrawn ); event onStakeStart( address indexed customerAddress, uint256 uniqueID, uint256 timestamp ); event onStakeEnd( address indexed customerAddress, uint256 uniqueID, uint256 returnAmount, uint256 timestamp ); string public name = "Infinihex"; string public symbol = "HEX5"; uint8 constant public decimals = 8; uint256 constant private divMagnitude = 2 ** 64; uint8 public percentage1 = 2; uint8 public percentage2 = 2; uint32 public dailyRate = 4320000; uint8 constant private buyInFee = 40; uint8 constant private rewardFee = 5; uint8 constant private referralFee = 1; uint8 constant private devFee = 1; uint8 constant private hexMaxFee = 1; uint8 constant private stableETHFee = 2; uint8 constant private sellOutFee = 9; uint8 constant private transferFee = 1; mapping(address => uint256) private tokenBalanceLedger; mapping(address => uint256) public lockedTokenBalanceLedger; mapping(address => uint256) private referralBalance; mapping(address => int256) private payoutsTo; struct Stats { uint256 deposits; uint256 withdrawals; uint256 staked; uint256 activeStakes; } mapping(address => Stats) public playerStats; uint256 public dividendPool = 0; uint256 public lastDripTime = ACTIVATION_TIME; uint256 public referralRequirement = 1000e8; uint256 public totalStakeBalance = 0; uint256 public totalPlayer = 0; uint256 public totalDonation = 0; uint256 public totalStableFundReceived = 0; uint256 public totalStableFundCollected = 0; uint256 public totalMaxFundReceived = 0; uint256 public totalMaxFundCollected = 0; uint256 private tokenSupply = 0; uint256 private profitPerShare = 0; address public uniswapAddress; address public approvedAddress1; address public approvedAddress2; address public distributionAddress; address public custodianAddress; EXCH hexmax; DIST stablethdist; TOKEN erc20; struct StakeStore { uint40 stakeID; uint256 hexAmount; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool started; bool ended; } bool stakeActivated = true; bool feedActivated = true; mapping(address => mapping(uint256 => StakeStore)) public stakeLists; constructor() public { custodianAddress = address(0x24B23bB643082026227e945C7833B81426057b10); hexmax = EXCH(address(0xd52dca990CFC3760e0Cb0A60D96BE0da43fEbf19)); uniswapAddress = address(0x05cDe89cCfa0adA8C88D5A23caaa79Ef129E7883); distributionAddress = address(0x699C01b92f2b036A1879416fC1977f60153A1729); stablethdist = DIST(distributionAddress); erc20 = TOKEN(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39)); } function() payable external { revert(); } function checkAndTransferHEX(uint256 _amount) private { require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed"); } function distribute(uint256 _amount) isActivated public { require(_amount > 0, "must be a positive value"); checkAndTransferHEX(_amount); totalDonation += _amount; profitPerShare = SafeMath.add(profitPerShare, (_amount * divMagnitude) / tokenSupply); emit onDonation(msg.sender, _amount); } function distributePool(uint256 _amount) public { require(_amount > 0 && tokenSupply > 0, "must be a positive value and have supply"); checkAndTransferHEX(_amount); totalDonation += _amount; dividendPool = dividendPool.add(_amount); emit onDonation(msg.sender, _amount); } function payFund(bytes32 exchange) public { if (exchange == "hexmax") { uint256 _hexToPay = totalMaxFundCollected.sub(totalMaxFundReceived); require(_hexToPay > 0); totalMaxFundReceived = totalMaxFundReceived.add(_hexToPay); erc20.approve(address(0xd52dca990CFC3760e0Cb0A60D96BE0da43fEbf19), _hexToPay); hexmax.appreciateTokenPrice(_hexToPay); } else if (exchange == "stableth") { uint256 _hexToPay = totalStableFundCollected.sub(totalStableFundReceived); require(_hexToPay > 0); totalStableFundReceived = totalStableFundReceived.add(_hexToPay); if (feedActivated && uniswapAddress.balance >= 500e18) { erc20.transfer(distributionAddress, _hexToPay); uint256 _balance = erc20.balanceOf(distributionAddress); if (_balance >= 10000e8) { stablethdist.accounting(); } } else { profitPerShare = SafeMath.add(profitPerShare, (_hexToPay * divMagnitude) / tokenSupply); } } } function roll() hasDripped onlyDivis public { address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); payoutsTo[_customerAddress] += (int256) (_dividends * divMagnitude); _dividends += referralBalance[_customerAddress]; referralBalance[_customerAddress] = 0; uint256 _tokens = purchaseTokens(address(0), _customerAddress, _dividends); emit onRoll(_customerAddress, _dividends, _tokens); } function withdraw() hasDripped onlyDivis public { address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); payoutsTo[_customerAddress] += (int256) (_dividends * divMagnitude); _dividends += referralBalance[_customerAddress]; referralBalance[_customerAddress] = 0; erc20.transfer(_customerAddress, _dividends); playerStats[_customerAddress].withdrawals += _dividends; emit onWithdraw(_customerAddress, _dividends); } function buy(address _referredBy, uint256 _amount) hasDripped public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(_referredBy, msg.sender, _amount); } function buyFor(address _referredBy, address _customerAddress, uint256 _amount) hasDripped public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(_referredBy, _customerAddress, _amount); } function _purchaseTokens(address _customerAddress, uint256 _incomingHEX, uint256 _rewards) private returns(uint256) { uint256 _amountOfTokens = _incomingHEX; uint256 _fee = _rewards * divMagnitude; require(_amountOfTokens > 0 && _amountOfTokens.add(tokenSupply) > tokenSupply); if (tokenSupply > 0) { tokenSupply = tokenSupply.add(_amountOfTokens); profitPerShare += (_rewards * divMagnitude / tokenSupply); _fee = _fee - (_fee - (_amountOfTokens * (_rewards * divMagnitude / tokenSupply))); } else { tokenSupply = _amountOfTokens; } tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].add(_amountOfTokens); int256 _updatedPayouts = (int256) (profitPerShare * _amountOfTokens - _fee); payoutsTo[_customerAddress] += _updatedPayouts; emit Transfer(address(0), _customerAddress, _amountOfTokens); return _amountOfTokens; } function purchaseTokens(address _referredBy, address _customerAddress, uint256 _incomingHEX) isActivated private returns (uint256) { if (playerStats[_customerAddress].deposits == 0) { totalPlayer++; } playerStats[_customerAddress].deposits += _incomingHEX; require(_incomingHEX > 0); uint256 _dividendFee = _incomingHEX.mul(buyInFee).div(100); uint256 _rewardFee = _incomingHEX.mul(rewardFee).div(100); uint256 _referralBonus = _incomingHEX.mul(referralFee).div(100); uint256 _devFee = _incomingHEX.mul(devFee).div(100); uint256 _hexMaxFee = _incomingHEX.mul(hexMaxFee).div(100); uint256 _stableETHFee = _incomingHEX.mul(stableETHFee).div(100); uint256 _entryFee = _incomingHEX.mul(50).div(100); uint256 _taxedHEX = _incomingHEX.sub(_entryFee); _purchaseTokens(owner, _devFee, 0); if (_referredBy != address(0) && _referredBy != _customerAddress && tokenBalanceLedger[_referredBy] >= referralRequirement) { referralBalance[_referredBy] = referralBalance[_referredBy].add(_referralBonus); } else { _rewardFee = _rewardFee.add(_referralBonus); } uint256 _amountOfTokens = _purchaseTokens(_customerAddress, _taxedHEX, _rewardFee); dividendPool = dividendPool.add(_dividendFee); totalMaxFundCollected = totalMaxFundCollected.add(_hexMaxFee); totalStableFundCollected = totalStableFundCollected.add(_stableETHFee); emit onTokenPurchase(_customerAddress, _incomingHEX, _amountOfTokens, _referredBy, now); return _amountOfTokens; } function sell(uint256 _amountOfTokens) isActivated hasDripped onlyTokenHolders public { address _customerAddress = msg.sender; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(lockedTokenBalanceLedger[_customerAddress])); uint256 _dividendFee = _amountOfTokens.mul(sellOutFee).div(100); uint256 _devFee = _amountOfTokens.mul(devFee).div(100); uint256 _taxedHEX = _amountOfTokens.sub(_dividendFee).sub(_devFee); _purchaseTokens(owner, _devFee, 0); tokenSupply = tokenSupply.sub(_amountOfTokens); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); int256 _updatedPayouts = (int256) (profitPerShare * _amountOfTokens + (_taxedHEX * divMagnitude)); payoutsTo[_customerAddress] -= _updatedPayouts; dividendPool = dividendPool.add(_dividendFee); emit Transfer(_customerAddress, address(0), _amountOfTokens); emit onTokenSell(_customerAddress, _amountOfTokens, _taxedHEX, now); } function transfer(address _toAddress, uint256 _amountOfTokens) isActivated hasDripped onlyTokenHolders external returns (bool) { address _customerAddress = msg.sender; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(lockedTokenBalanceLedger[_customerAddress])); if (myDividends(true) > 0) { withdraw(); } uint256 _tokenFee = _amountOfTokens.mul(transferFee).div(100); uint256 _taxedTokens = _amountOfTokens.sub(_tokenFee); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); tokenBalanceLedger[_toAddress] = tokenBalanceLedger[_toAddress].add(_taxedTokens); tokenBalanceLedger[owner] = tokenBalanceLedger[owner].add(_tokenFee); payoutsTo[_customerAddress] -= (int256) (profitPerShare * _amountOfTokens); payoutsTo[_toAddress] += (int256) (profitPerShare * _taxedTokens); payoutsTo[owner] += (int256) (profitPerShare * _tokenFee); emit Transfer(_customerAddress, owner, _tokenFee); emit Transfer(_customerAddress, _toAddress, _taxedTokens); return true; } function stakeStart(uint256 _amount, uint256 _days) public isStakeActivated { require(_amount <= 4722366482869645213695); require(balanceOf(msg.sender, true) >= _amount); erc20.stakeStart(_amount, _days); // revert or succeed uint256 _stakeIndex; uint40 _stakeID; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; _stakeIndex = erc20.stakeCount(address(this)); _stakeIndex = SafeMath.sub(_stakeIndex, 1); (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = erc20.stakeLists(address(this), _stakeIndex); uint256 _uniqueID = uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); // unique enough require(stakeLists[msg.sender][_uniqueID].started == false); // still check for collision stakeLists[msg.sender][_uniqueID].started = true; stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false); totalStakeBalance = SafeMath.add(totalStakeBalance, _amount); playerStats[msg.sender].activeStakes += 1; playerStats[msg.sender].staked += _amount; lockedTokenBalanceLedger[msg.sender] = SafeMath.add(lockedTokenBalanceLedger[msg.sender], _amount); emit onStakeStart(msg.sender, _uniqueID, now); } function _stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) private view returns (uint16){ uint40 _stakeID; uint72 _stakedHearts; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; uint16 _unlockedDay; (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = erc20.stakeLists(address(this), _stakeIndex); require(stakeLists[msg.sender][_uniqueID].started == true && stakeLists[msg.sender][_uniqueID].ended == false); require(stakeLists[msg.sender][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID); require(stakeLists[msg.sender][_uniqueID].hexAmount == uint256(_stakedHearts)); require(stakeLists[msg.sender][_uniqueID].stakeShares == _stakeShares); require(stakeLists[msg.sender][_uniqueID].lockedDay == _lockedDay); require(stakeLists[msg.sender][_uniqueID].stakedDays == _stakedDays); return _unlockedDay; } function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) hasDripped public { uint16 _unlockedDay = _stakeEnd(_stakeIndex, _stakeIdParam, _uniqueID); if (_unlockedDay == 0){ stakeLists[msg.sender][_uniqueID].unlockedDay = uint16(erc20.currentDay()); // no penalty/penalty/reward } else { stakeLists[msg.sender][_uniqueID].unlockedDay = _unlockedDay; } uint256 _balance = erc20.balanceOf(address(this)); erc20.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned. stakeLists[msg.sender][_uniqueID].ended = true; uint256 _amount = SafeMath.sub(erc20.balanceOf(address(this)), _balance); uint256 _stakedAmount = stakeLists[msg.sender][_uniqueID].hexAmount; uint256 _difference; if (_amount <= _stakedAmount) { _difference = SafeMath.sub(_stakedAmount, _amount); tokenSupply = SafeMath.sub(tokenSupply, _difference); tokenBalanceLedger[msg.sender] = SafeMath.sub(tokenBalanceLedger[msg.sender], _difference); int256 _updatedPayouts = (int256) (profitPerShare * _difference); payoutsTo[msg.sender] -= _updatedPayouts; emit Transfer(msg.sender, address(0), _difference); } else if (_amount > _stakedAmount) { _difference = SafeMath.sub(_amount, _stakedAmount); _difference = purchaseTokens(address(0), msg.sender, _difference); } totalStakeBalance = SafeMath.sub(totalStakeBalance, _stakedAmount); playerStats[msg.sender].activeStakes -= 1; lockedTokenBalanceLedger[msg.sender] = SafeMath.sub(lockedTokenBalanceLedger[msg.sender], _stakedAmount); emit onStakeEnd(msg.sender, _uniqueID, _amount, now); } function setName(string memory _name) onlyOwner public { name = _name; } function setSymbol(string memory _symbol) onlyOwner public { symbol = _symbol; } function setHexStaking(bool _stakeActivated) onlyOwner public { stakeActivated = _stakeActivated; } function setFeeding(bool _feedActivated) onlyOwner public { feedActivated = _feedActivated; } function setUniswapAddress(address _proposedAddress) onlyOwner public { uniswapAddress = _proposedAddress; } function approveAddress1(address _proposedAddress) onlyOwner public { approvedAddress1 = _proposedAddress; } function approveAddress2(address _proposedAddress) onlyCustodian public { approvedAddress2 = _proposedAddress; } function setDistributionAddress() public { require(approvedAddress1 != address(0) && approvedAddress1 == approvedAddress2); distributionAddress = approvedAddress1; stablethdist = DIST(approvedAddress1); } function approveDrip1(uint8 _percentage) onlyOwner public { require(_percentage > 1 && _percentage < 6); percentage1 = _percentage; } function approveDrip2(uint8 _percentage) onlyCustodian public { require(_percentage > 1 && _percentage < 6); percentage2 = _percentage; } function setDripPercentage() public { require(percentage1 == percentage2); dailyRate = 86400 / percentage1 * 100; } function totalHexBalance() public view returns (uint256) { return erc20.balanceOf(address(this)); } function totalSupply() public view returns(uint256) { return tokenSupply; } function myTokens(bool _stakeable) public view returns (uint256) { address _customerAddress = msg.sender; return balanceOf(_customerAddress, _stakeable); } function myEstimateDividends(bool _includeReferralBonus, bool _dayEstimate) public view returns (uint256) { address _customerAddress = msg.sender; return _includeReferralBonus ? estimateDividendsOf(_customerAddress, _dayEstimate) + referralBalance[_customerAddress] : estimateDividendsOf(_customerAddress, _dayEstimate) ; } function estimateDividendsOf(address _customerAddress, bool _dayEstimate) public view returns (uint256) { uint256 _profitPerShare = profitPerShare; if (dividendPool > 0) { uint256 secondsPassed = 0; if (_dayEstimate == true){ secondsPassed = 86400; } else { secondsPassed = SafeMath.sub(now, lastDripTime); } uint256 dividends = secondsPassed.mul(dividendPool).div(dailyRate); if (dividends > dividendPool) { dividends = dividendPool; } _profitPerShare = SafeMath.add(_profitPerShare, (dividends * divMagnitude) / tokenSupply); } return (uint256) ((int256) (_profitPerShare * tokenBalanceLedger[_customerAddress]) - payoutsTo[_customerAddress]) / divMagnitude; } function myDividends(bool _includeReferralBonus) public view returns (uint256) { address _customerAddress = msg.sender; return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance[_customerAddress] : dividendsOf(_customerAddress) ; } function dividendsOf(address _customerAddress) public view returns (uint256) { return (uint256) ((int256) (profitPerShare * tokenBalanceLedger[_customerAddress]) - payoutsTo[_customerAddress]) / divMagnitude; } function balanceOf(address _customerAddress, bool _stakeable) public view returns (uint256) { if (_stakeable == false) { return tokenBalanceLedger[_customerAddress]; } else if (_stakeable == true) { return (tokenBalanceLedger[_customerAddress].sub(lockedTokenBalanceLedger[_customerAddress])); } } function sellPrice() public view returns (uint256) { uint256 _hex = 1e8; uint256 _dividendFee = _hex.mul(sellOutFee).div(100); uint256 _devFee = _hex.mul(devFee).div(100); return (_hex.sub(_dividendFee).sub(_devFee)); } function buyPrice() public view returns(uint256) { uint256 _hex = 1e8; uint256 _entryFee = _hex.mul(50).div(100); return (_hex.add(_entryFee)); } function calculateTokensReceived(uint256 _tronToSpend) public view returns (uint256) { uint256 _entryFee = _tronToSpend.mul(50).div(100); uint256 _amountOfTokens = _tronToSpend.sub(_entryFee); return _amountOfTokens; } function calculateHexReceived(uint256 _tokensToSell) public view returns (uint256) { require(_tokensToSell <= tokenSupply); uint256 _exitFee = _tokensToSell.mul(10).div(100); uint256 _taxedHEX = _tokensToSell.sub(_exitFee); return _taxedHEX; } function hexToSendFund(bytes32 exchange) public view returns(uint256) { if (exchange == "hexmax") { return totalMaxFundCollected.sub(totalMaxFundReceived); } else if (exchange == "stableth") { return totalStableFundCollected.sub(totalStableFundReceived); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"onDonation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"hexRolled","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onRoll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingHEX","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"hexEarned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"hexWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"approveAddress1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"approveAddress2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"_percentage","type":"uint8"}],"name":"approveDrip1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"_percentage","type":"uint8"}],"name":"approveDrip2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"approvedAddress1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"approvedAddress2","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"},{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buyFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateHexReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tronToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"custodianAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyRate","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"distributePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"distributionAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dividendPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_dayEstimate","type":"bool"}],"name":"estimateDividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"exchange","type":"bytes32"}],"name":"hexToSendFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockedTokenBalanceLedger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"},{"internalType":"bool","name":"_dayEstimate","type":"bool"}],"name":"myEstimateDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"exchange","type":"bytes32"}],"name":"payFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"percentage1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentage2","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerStats","outputs":[{"internalType":"uint256","name":"deposits","type":"uint256"},{"internalType":"uint256","name":"withdrawals","type":"uint256"},{"internalType":"uint256","name":"staked","type":"uint256"},{"internalType":"uint256","name":"activeStakes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referralRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"roll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setDistributionAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setDripPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_feedActivated","type":"bool"}],"name":"setFeeding","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"setUniswapAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_stakeIndex","type":"uint256"},{"internalType":"uint40","name":"_stakeIdParam","type":"uint40"},{"internalType":"uint256","name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"internalType":"uint40","name":"stakeID","type":"uint40"},{"internalType":"uint256","name":"hexAmount","type":"uint256"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"},{"internalType":"uint16","name":"unlockedDay","type":"uint16"},{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"stakeStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHexBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMaxFundCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMaxFundReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStableFundCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStableFundReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"uniswapAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
635ec9aaf060015560c0604052600960808190527f496e66696e69686578000000000000000000000000000000000000000000000060a09081526200004891600291906200022f565b506040805180820190915260048082527f484558350000000000000000000000000000000000000000000000000000000060209092019182526200008f916003916200022f565b5060048054600260ff199091161761ff0019166102001765ffffffff000019166441eb0000001790556000600a819055600154600b5564174876e800600c55600d819055600e819055600f81905560108190556011819055601281905560138190556014819055601555601d805475010000000000000000000000000000000000000000007401000000000000000000000000000000000000000060ff60a01b199092169190911760ff60a81b19161790553480156200014e57600080fd5b50600080546001600160a01b031990811673583a013373a9e91fb64cbffa999668bedfdcf87c17909155601a805482167324b23bb643082026227e945c7833b81426057b10179055601b8054821673d52dca990cfc3760e0cb0a60d96be0da43febf191790556016805482167305cde89ccfa0ada8c88d5a23caaa79ef129e788317905560198054821673699c01b92f2b036a1879416fc1977f60153a17291790819055601c805483166001600160a01b0392909216919091179055601d8054909116732b591e99afe9f32eaa6214f7b7629768c40eeb39179055620002d4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027257805160ff1916838001178555620002a2565b82800160010185558215620002a2579182015b82811115620002a257825182559160200191906001019062000285565b50620002b0929150620002b4565b5090565b620002d191905b80821115620002b05760008155600101620002bb565b90565b613ada80620002e46000396000f3fe6080604052600436106103955760003560e01c806374df19c3116101dc578063b84c824611610102578063cd5e3c5d116100a0578063ee2ac05f1161006f578063ee2ac05f14610dca578063f24c367514610ddf578063fba1f7b014610df4578063feed18ff14610e0957610395565b8063cd5e3c5d14610d08578063cdafbbb614610d1d578063e4849b3214610d76578063edcc8bee14610da057610395565b8063c47f0027116100dc578063c47f002714610bf2578063c494a08014610ca5578063c913e13014610cba578063cce7ec1314610ccf57610395565b8063b84c824614610b15578063b8f82c8514610bc8578063c32c885914610bdd57610395565b806395d89b411161017a578063a33124f611610149578063a33124f614610a6b578063a66e4e5f14610a80578063a9059cbb14610a95578063af8cfd1914610ae257610395565b806395d89b41146109cb5780639d60c201146109e05780639e2131c6146109f5578063a200dd4514610a2857610395565b80637c180a68116101b65780637c180a68146109445780638620410b146109775780638da5cb5b1461098c57806391c05b0b146109a157610395565b806374df19c3146108a8578063772865e2146108d65780637884e7c61461091157610395565b806330d172d5116102c15780634b7503341161025f5780635af788331161022e5780635af788331461080f57806362cc2cfe146108245780636403ba0a14610850578063688abbf71461087c57610395565b80634b750334146107745780634b82cab71461078957806352a438b8146107b557806356a5adc8146107e557610395565b806337fb7e211161029b57806337fb7e211461070b5780633ccfd60b146107205780633eaeef1b14610735578063487af2001461074a57610395565b806330d172d5146106cc578063313ce567146106e157806334949cc1146106f657610395565b80630e2feb0511610339578063254602a011610308578063254602a0146105c45780632607443b146105f85780632ae93f501461068c5780632f21f7ef146106b757610395565b80630e2feb051461052757806310d0ffdd146105585780631421a35f1461058257806318160ddd146105af57610395565b806305ab40601161037557806305ab40601461043157806306fdde031461045e5780630a0ab492146104e85780630b9c51b11461051257610395565b80621a17791461039a57806265318b146103e757806304b69a4a1461041a575b600080fd5b3480156103a657600080fd5b506103d5600480360360408110156103bd57600080fd5b506001600160a01b0381351690602001351515610e46565b60408051918252519081900360200190f35b3480156103f357600080fd5b506103d56004803603602081101561040a57600080fd5b50356001600160a01b0316610f17565b34801561042657600080fd5b5061042f610f50565b005b34801561043d57600080fd5b5061042f6004803603602081101561045457600080fd5b503560ff16610fa5565b34801561046a57600080fd5b50610473610ff7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104ad578181015183820152602001610495565b50505050905090810190601f1680156104da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f457600080fd5b506103d56004803603602081101561050b57600080fd5b5035611082565b34801561051e57600080fd5b506103d56110d9565b34801561053357600080fd5b5061053c611156565b604080516001600160a01b039092168252519081900360200190f35b34801561056457600080fd5b506103d56004803603602081101561057b57600080fd5b5035611165565b34801561058e57600080fd5b5061042f600480360360208110156105a557600080fd5b503560ff1661119a565b3480156105bb57600080fd5b506103d56111e6565b3480156105d057600080fd5b506103d5600480360360408110156105e757600080fd5b5080351515906020013515156111ec565b34801561060457600080fd5b506106316004803603604081101561061b57600080fd5b506001600160a01b03813516906020013561122f565b6040805164ffffffffff909916895260208901979097526001600160481b039095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561069857600080fd5b506106a16112a2565b6040805160ff9092168252519081900360200190f35b3480156106c357600080fd5b506103d56112ab565b3480156106d857600080fd5b506103d56112b1565b3480156106ed57600080fd5b506106a16112b7565b34801561070257600080fd5b506103d56112bc565b34801561071757600080fd5b5061053c6112c2565b34801561072c57600080fd5b5061042f6112d1565b34801561074157600080fd5b506103d56114e9565b34801561075657600080fd5b506103d56004803603602081101561076d57600080fd5b50356114ef565b34801561078057600080fd5b506103d5611518565b34801561079557600080fd5b5061042f600480360360208110156107ac57600080fd5b5035151561157a565b3480156107c157600080fd5b5061042f600480360360408110156107d857600080fd5b50803590602001356115af565b3480156107f157600080fd5b5061042f6004803603602081101561080857600080fd5b5035611a9a565b34801561081b57600080fd5b5061053c611b47565b34801561083057600080fd5b506103d56004803603602081101561084757600080fd5b50351515611b56565b34801561085c57600080fd5b5061042f6004803603602081101561087357600080fd5b50351515611b6a565b34801561088857600080fd5b506103d56004803603602081101561089f57600080fd5b50351515611b9f565b3480156108b457600080fd5b506108bd611bdf565b6040805163ffffffff9092168252519081900360200190f35b3480156108e257600080fd5b506103d5600480360360408110156108f957600080fd5b506001600160a01b0381351690602001351515611bf1565b34801561091d57600080fd5b5061042f6004803603602081101561093457600080fd5b50356001600160a01b0316611c5d565b34801561095057600080fd5b5061042f6004803603602081101561096757600080fd5b50356001600160a01b0316611c96565b34801561098357600080fd5b506103d5611ccf565b34801561099857600080fd5b5061053c611d06565b3480156109ad57600080fd5b5061042f600480360360208110156109c457600080fd5b5035611d15565b3480156109d757600080fd5b50610473611dfd565b3480156109ec57600080fd5b506103d5611e58565b348015610a0157600080fd5b5061042f60048036036020811015610a1857600080fd5b50356001600160a01b0316611e5e565b348015610a3457600080fd5b506103d560048036036060811015610a4b57600080fd5b506001600160a01b03813581169160208101359091169060400135611e97565b348015610a7757600080fd5b506103d5611f9a565b348015610a8c57600080fd5b5061053c611fa0565b348015610aa157600080fd5b50610ace60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611faf565b604080519115158252519081900360200190f35b348015610aee57600080fd5b506103d560048036036020811015610b0557600080fd5b50356001600160a01b03166122da565b348015610b2157600080fd5b5061042f60048036036020811015610b3857600080fd5b810190602081018135640100000000811115610b5357600080fd5b820183602082011115610b6557600080fd5b80359060200191846001830284011164010000000083111715610b8757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122ec945050505050565b348015610bd457600080fd5b5061053c61231a565b348015610be957600080fd5b506103d5612329565b348015610bfe57600080fd5b5061042f60048036036020811015610c1557600080fd5b810190602081018135640100000000811115610c3057600080fd5b820183602082011115610c4257600080fd5b80359060200191846001830284011164010000000083111715610c6457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061232f945050505050565b348015610cb157600080fd5b506103d5612359565b348015610cc657600080fd5b5061042f61235f565b348015610cdb57600080fd5b506103d560048036036040811015610cf257600080fd5b506001600160a01b0381351690602001356123c1565b348015610d1457600080fd5b5061042f6124c4565b348015610d2957600080fd5b50610d5060048036036020811015610d4057600080fd5b50356001600160a01b0316612666565b604080519485526020850193909352838301919091526060830152519081900360800190f35b348015610d8257600080fd5b5061042f60048036036020811015610d9957600080fd5b503561268d565b348015610dac57600080fd5b5061042f60048036036020811015610dc357600080fd5b5035612983565b348015610dd657600080fd5b506103d5612cf8565b348015610deb57600080fd5b506106a1612cfe565b348015610e0057600080fd5b506103d5612d0c565b348015610e1557600080fd5b5061042f60048036036060811015610e2c57600080fd5b5080359064ffffffffff6020820135169060400135612d12565b601554600a546000919015610ee057600060018415151415610e6c575062015180610e7b565b610e7842600b5461320d565b90505b600454600a54600091610eaf9163ffffffff62010000909204821691610ea391869161321f16565b9063ffffffff61324416565b9050600a54811115610ec05750600a545b610edb83601454600160401b840281610ed557fe5b04613257565b925050505b6001600160a01b038416600090815260086020908152604080832054600590925290912054600160401b9202030490505b92915050565b6001600160a01b0381166000908152600860209081526040808320546005909252822054601554600160401b929102030490505b919050565b60045460ff8082166101009092041614610f6957600080fd5b60045460ff166201518081610f7a57fe5b0460640262ffffff16600460026101000a81548163ffffffff021916908363ffffffff160217905550565b601a546001600160a01b03163314610fbc57600080fd5b60018160ff16118015610fd2575060068160ff16105b610fdb57600080fd5b6004805460ff9092166101000261ff0019909216919091179055565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561107a5780601f1061104f5761010080835404028352916020019161107a565b820191906000526020600020905b81548152906001019060200180831161105d57829003601f168201915b505050505081565b600081650d0caf0dac2f60d31b14156110b1576012546013546110aa9163ffffffff61320d16565b9050610f4b565b81670e6e8c2c4d8cae8d60c31b1415610f4b576010546011546110aa9163ffffffff61320d16565b601d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561112457600080fd5b505afa158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b505190505b90565b6016546001600160a01b031681565b60008061117e6064610ea385603263ffffffff61321f16565b90506000611192848363ffffffff61320d16565b949350505050565b6000546001600160a01b031633146111b157600080fd5b60018160ff161180156111c7575060068160ff16105b6111d057600080fd5b6004805460ff191660ff92909216919091179055565b60145490565b60003383611203576111fe8184610e46565b611192565b6001600160a01b0381166000908152600760205260409020546112268285610e46565b01949350505050565b601e60209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff90911691906001600160481b0381169061ffff600160481b8204811691600160581b8104821691600160681b8204169060ff600160781b8204811691600160801b90041688565b60045460ff1681565b60105481565b600a5481565b600881565b600d5481565b6019546001600160a01b031681565b600a541561135b5760006112e742600b5461320d565b600454600a549192506000916113139163ffffffff62010000909104811691610ea39186919061321f16565b9050600a548111156113245750600a545b61133b601554601454600160401b840281610ed557fe5b601555600a54611351908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000611373650d0caf0dac2f60d31b611082565b1061138a5761138a650d0caf0dac2f60d31b612983565b64e8d4a510006113a4670e6e8c2c4d8cae8d60c31b611082565b106113bd576113bd670e6e8c2c4d8cae8d60c31b612983565b60006113c96001611b9f565b116113d357600080fd5b3360006113df81611b9f565b6001600160a01b0380841660008181526008602090815260408083208054600160401b880201905560078252808320805490849055601d54825163a9059cbb60e01b815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561146357600080fd5b505af1158015611477573d6000803e3d6000fd5b505050506040513d602081101561148d57600080fd5b50506001600160a01b038216600081815260096020908152604091829020600101805485019055815184815291517fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc9281900390910190a25050565b600c5481565b600060145482111561150057600080fd5b600061117e6064610ea385600a63ffffffff61321f16565b60006305f5e100816115366064610ea384600963ffffffff61321f16565b905060006115506064610ea385600163ffffffff61321f16565b905061157281611566858563ffffffff61320d16565b9063ffffffff61320d16565b935050505090565b6000546001600160a01b0316331461159157600080fd5b601d8054911515600160a01b0260ff60a01b19909216919091179055565b601d54600160a01b900460ff1615156001146115ca57600080fd5b6001600160481b038211156115de57600080fd5b816115ea336001611bf1565b10156115f557600080fd5b601d5460408051630a54871760e31b8152600481018590526024810184905290516001600160a01b03909216916352a438b89160448082019260009290919082900301818387803b15801561164957600080fd5b505af115801561165d573d6000803e3d6000fd5b5050601d546040805163033060d960e41b81523060048201529051600094508493508392839283926001600160a01b03909216916333060d9091602480820192602092909190829003018186803b1580156116b757600080fd5b505afa1580156116cb573d6000803e3d6000fd5b505050506040513d60208110156116e157600080fd5b505194506116f085600161320d565b601d5460408051632607443b60e01b81523060048201526024810184905290519297506001600160a01b0390911691632607443b9160448082019260e092909190829003018186803b15801561174557600080fd5b505afa158015611759573d6000803e3d6000fd5b505050506040513d60e081101561176f57600080fd5b5080516040808301516060840151608090940151825160d885901b6001600160d81b03191660208083019190915260b884901b6001600160b81b03191660258301528451808303600e018152602e9092018552815191810191909120336000908152601e835285812082825290925293902060020154939850909650929450919250600160781b900460ff161561180557600080fd5b6001601e6000336001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff0219169083151502179055506040518061010001604052808664ffffffffff168152602001898152602001856001600160481b031681526020018461ffff1681526020018361ffff168152602001600061ffff16815260200160011515815260200160001515815250601e6000336001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816001600160481b0302191690836001600160481b0316021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff021916908315150217905550905050611a02600d5489613257565b600d55336000908152600960209081526040808320600381018054600101905560020180548c0190556006909152902054611a3d9089613257565b336000818152600660209081526040918290209390935580518481524293810193909352805191927ffcb8123dad95f24c74ef07cb7e9635f8bfabd8882383ff341ce8999eb7aa3860929081900390910190a25050505050505050565b600081118015611aac57506000601454115b611ae75760405162461bcd60e51b8152600401808060200182810382526028815260200180613a7e6028913960400191505060405180910390fd5b611af081613264565b600f805482019055600a54611b0b908263ffffffff61325716565b600a5560408051828152905133917fabff69012e8615729dfcbe25d4c003cf6ce7c59d5ec16530f8d51b1b24646944919081900360200190a250565b6018546001600160a01b031681565b600033611b638184611bf1565b9392505050565b6000546001600160a01b03163314611b8157600080fd5b601d8054911515600160a81b0260ff60a81b19909216919091179055565b60003382611bb557611bb081610f17565b611b63565b6001600160a01b038116600090815260076020526040902054611bd782610f17565b019392505050565b60045462010000900463ffffffff1681565b600081611c1757506001600160a01b038216600090815260056020526040902054610f11565b60018215151415610f11576001600160a01b038316600090815260066020908152604080832054600590925290912054611c569163ffffffff61320d16565b9050610f11565b6000546001600160a01b03163314611c7457600080fd5b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611cad57600080fd5b601780546001600160a01b0319166001600160a01b0392909216919091179055565b60006305f5e10081611ced6064610ea384603263ffffffff61321f16565b9050611cff828263ffffffff61325716565b9250505090565b6000546001600160a01b031681565b600154421015611d2457600080fd5b6001546078014211611d4257642e90edd0003a1115611d4257600080fd5b60008111611d97576040805162461bcd60e51b815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b611da081613264565b600f805482019055601554601454611dc19190600160401b840281610ed557fe5b60155560408051828152905133917fabff69012e8615729dfcbe25d4c003cf6ce7c59d5ec16530f8d51b1b24646944919081900360200190a250565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561107a5780601f1061104f5761010080835404028352916020019161107a565b60135481565b601a546001600160a01b03163314611e7557600080fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600a5460009015611f24576000611eb042600b5461320d565b600454600a54919250600091611edc9163ffffffff62010000909104811691610ea39186919061321f16565b9050600a54811115611eed5750600a545b611f04601554601454600160401b840281610ed557fe5b601555600a54611f1a908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000611f3c650d0caf0dac2f60d31b611082565b10611f5357611f53650d0caf0dac2f60d31b612983565b64e8d4a51000611f6d670e6e8c2c4d8cae8d60c31b611082565b10611f8657611f86670e6e8c2c4d8cae8d60c31b612983565b611f8f82613264565b611192848484613338565b60125481565b601a546001600160a01b031681565b6000600154421015611fc057600080fd5b6001546078014211611fde57642e90edd0003a1115611fde57600080fd5b600a5415612068576000611ff442600b5461320d565b600454600a549192506000916120209163ffffffff62010000909104811691610ea39186919061321f16565b9050600a548111156120315750600a545b612048601554601454600160401b840281610ed557fe5b601555600a5461205e908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000612080650d0caf0dac2f60d31b611082565b1061209757612097650d0caf0dac2f60d31b612983565b64e8d4a510006120b1670e6e8c2c4d8cae8d60c31b611082565b106120ca576120ca670e6e8c2c4d8cae8d60c31b612983565b60006120d66001611b56565b116120e057600080fd5b33821580159061212357506001600160a01b03811660009081526006602090815260408083205460059092529091205461211f9163ffffffff61320d16565b8311155b61212c57600080fd5b60006121386001611b9f565b1115612146576121466112d1565b600061215e6064610ea386600163ffffffff61321f16565b90506000612172858363ffffffff61320d16565b6001600160a01b03841660009081526005602052604090205490915061219e908663ffffffff61320d16565b6001600160a01b0380851660009081526005602052604080822093909355908816815220546121d3908263ffffffff61325716565b6001600160a01b038088166000908152600560205260408082209390935580549091168152205461220a908363ffffffff61325716565b600080546001600160a01b0390811682526005602090815260408084209490945560158054888416808652600884528686208054928d0290920390915581548c8516865286862080549189029091019055905484548416855285852080549189029091019055925484518781529451921693600080516020613a5e833981519152929081900390910190a3856001600160a01b0316836001600160a01b0316600080516020613a5e833981519152836040518082815260200191505060405180910390a350600195945050505050565b60066020526000908152604090205481565b6000546001600160a01b0316331461230357600080fd5b80516123169060039060208401906139c5565b5050565b6017546001600160a01b031681565b60115481565b6000546001600160a01b0316331461234657600080fd5b80516123169060029060208401906139c5565b600e5481565b6017546001600160a01b03161580159061238957506018546017546001600160a01b039081169116145b61239257600080fd5b601754601980546001600160a01b039092166001600160a01b03199283168117909155601c8054909216179055565b600a546000901561244e5760006123da42600b5461320d565b600454600a549192506000916124069163ffffffff62010000909104811691610ea39186919061321f16565b9050600a548111156124175750600a545b61242e601554601454600160401b840281610ed557fe5b601555600a54612444908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000612466650d0caf0dac2f60d31b611082565b1061247d5761247d650d0caf0dac2f60d31b612983565b64e8d4a51000612497670e6e8c2c4d8cae8d60c31b611082565b106124b0576124b0670e6e8c2c4d8cae8d60c31b612983565b6124b982613264565b611b63833384613338565b600a541561254e5760006124da42600b5461320d565b600454600a549192506000916125069163ffffffff62010000909104811691610ea39186919061321f16565b9050600a548111156125175750600a545b61252e601554601454600160401b840281610ed557fe5b601555600a54612544908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000612566650d0caf0dac2f60d31b611082565b1061257d5761257d650d0caf0dac2f60d31b612983565b64e8d4a51000612597670e6e8c2c4d8cae8d60c31b611082565b106125b0576125b0670e6e8c2c4d8cae8d60c31b612983565b60006125bc6001611b9f565b116125c657600080fd5b3360006125d281611b9f565b6001600160a01b03831660009081526008602090815260408083208054600160401b8602019055600790915281208054908290559091019150612616818484613338565b9050826001600160a01b03167fe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c8383604051808381526020018281526020019250505060405180910390a2505050565b60096020526000908152604090208054600182015460028301546003909301549192909184565b60015442101561269c57600080fd5b60015460780142116126ba57642e90edd0003a11156126ba57600080fd5b600a54156127445760006126d042600b5461320d565b600454600a549192506000916126fc9163ffffffff62010000909104811691610ea39186919061321f16565b9050600a5481111561270d5750600a545b612724601554601454600160401b840281610ed557fe5b601555600a5461273a908263ffffffff61320d16565b600a55505042600b555b64e8d4a5100061275c650d0caf0dac2f60d31b611082565b1061277357612773650d0caf0dac2f60d31b612983565b64e8d4a5100061278d670e6e8c2c4d8cae8d60c31b611082565b106127a6576127a6670e6e8c2c4d8cae8d60c31b612983565b60006127b26001611b56565b116127bc57600080fd5b3381158015906127ff57506001600160a01b0381166000908152600660209081526040808320546005909252909120546127fb9163ffffffff61320d16565b8211155b61280857600080fd5b60006128206064610ea385600963ffffffff61321f16565b9050600061283a6064610ea386600163ffffffff61321f16565b9050600061285282611566878663ffffffff61320d16565b6000805491925061286e916001600160a01b031690849061360a565b50601454612882908663ffffffff61320d16565b6014556001600160a01b0384166000908152600560205260409020546128ae908663ffffffff61320d16565b6001600160a01b03851660009081526005602090815260408083209390935560155460089091529190208054918702600160401b840201918290039055600a546128fe908563ffffffff61325716565b600a556040805187815290516000916001600160a01b03881691600080516020613a5e8339815191529181900360200190a36040805187815260208101849052428183015290516001600160a01b038716917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a2505050505050565b80650d0caf0dac2f60d31b1415612ad15760006129ad60125460135461320d90919063ffffffff16565b9050600081116129bc57600080fd5b6012546129cf908263ffffffff61325716565b601255601d546040805163095ea7b360e01b815273d52dca990cfc3760e0cb0a60d96be0da43febf1960048201526024810184905290516001600160a01b039092169163095ea7b3916044808201926020929091908290030181600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d6020811015612a6457600080fd5b5050601b54604080516320b4851760e01b81526004810184905290516001600160a01b03909216916320b485179160248082019260009290919082900301818387803b158015612ab357600080fd5b505af1158015612ac7573d6000803e3d6000fd5b5050505050612cf5565b80670e6e8c2c4d8cae8d60c31b1415612cf5576000612afd60105460115461320d90919063ffffffff16565b905060008111612b0c57600080fd5b601054612b1f908263ffffffff61325716565b601055601d54600160a81b900460ff168015612b525750601654681b1ae4d6e2ef5000006001600160a01b039091163110155b15612cd957601d546019546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612bb057600080fd5b505af1158015612bc4573d6000803e3d6000fd5b505050506040513d6020811015612bda57600080fd5b5050601d54601954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b158015612c3057600080fd5b505afa158015612c44573d6000803e3d6000fd5b505050506040513d6020811015612c5a57600080fd5b5051905064e8d4a510008110612cd357601c60009054906101000a90046001600160a01b03166001600160a01b0316639624e83e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050505b50612316565b612cf0601554601454600160401b840281610ed557fe5b601555505b50565b600f5481565b600454610100900460ff1681565b600b5481565b600a5415612d9c576000612d2842600b5461320d565b600454600a54919250600091612d549163ffffffff62010000909104811691610ea39186919061321f16565b9050600a54811115612d655750600a545b612d7c601554601454600160401b840281610ed557fe5b601555600a54612d92908263ffffffff61320d16565b600a55505042600b555b64e8d4a51000612db4650d0caf0dac2f60d31b611082565b10612dcb57612dcb650d0caf0dac2f60d31b612983565b64e8d4a51000612de5670e6e8c2c4d8cae8d60c31b611082565b10612dfe57612dfe670e6e8c2c4d8cae8d60c31b612983565b6000612e0b848484613724565b905061ffff8116612ed057601d60009054906101000a90046001600160a01b03166001600160a01b0316635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b158015612e6457600080fd5b505afa158015612e78573d6000803e3d6000fd5b505050506040513d6020811015612e8e57600080fd5b5051336000908152601e602090815260408083208684529091529020600201805461ffff909216600160681b0261ffff60681b19909216919091179055612f06565b336000908152601e602090815260408083208584529091529020600201805461ffff60681b1916600160681b61ffff8416021790555b601d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015612f5157600080fd5b505afa158015612f65573d6000803e3d6000fd5b505050506040513d6020811015612f7b57600080fd5b5051601d5460408051631a1804d160e11b81526004810189905264ffffffffff8816602482015290519293506001600160a01b039091169163343009a29160448082019260009290919082900301818387803b158015612fda57600080fd5b505af1158015612fee573d6000803e3d6000fd5b5050336000908152601e602090815260408083208884528252808320600201805460ff60801b1916600160801b179055601d5481516370a0823160e01b8152306004820152915193955061309c94506001600160a01b0316926370a0823192602480840193919291829003018186803b15801561306a57600080fd5b505afa15801561307e573d6000803e3d6000fd5b505050506040513d602081101561309457600080fd5b50518361320d565b336000908152601e6020908152604080832088845290915281206001015491925081831161314d576130ce828461320d565b90506130dc6014548261320d565b601455336000908152600560205260409020546130f9908261320d565b33600081815260056020908152604080832094909455601554600882528483208054918702918290039055845186815294519094929392600080516020613a5e83398151915292908290030190a350613170565b818311156131705761315f838361320d565b905061316d60003383613338565b90505b61317c600d548361320d565b600d55336000908152600960209081526040808320600301805460001901905560069091529020546131ae908361320d565b3360008181526006602090815260409182902093909355805189815292830186905242838201525190917fcc843967ff4436c366c668a40b02034eec1fa39c6b6e1ff48c682d04f8a35f25919081900360600190a25050505050505050565b60008282111561321957fe5b50900390565b60008261322e57506000610f11565b508181028183828161323c57fe5b0414610f1157fe5b600081838161324f57fe5b049392505050565b81810182811015610f1157fe5b601d54604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156132be57600080fd5b505af11580156132d2573d6000803e3d6000fd5b505050506040513d60208110156132e857600080fd5b50511515600114612cf5576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881b5d5cdd081cdd58d8d95959605a1b604482015290519081900360640190fd5b600060015442101561334957600080fd5b600154607801421161336757642e90edd0003a111561336757600080fd5b6001600160a01b03831660009081526009602052604090205461338e57600e805460010190555b6001600160a01b0383166000908152600960205260409020805483019055816133b657600080fd5b60006133ce6064610ea385602863ffffffff61321f16565b905060006133e86064610ea386600563ffffffff61321f16565b905060006134026064610ea387600163ffffffff61321f16565b9050600061341c6064610ea388600163ffffffff61321f16565b905060006134366064610ea389600163ffffffff61321f16565b905060006134506064610ea38a600263ffffffff61321f16565b9050600061346a6064610ea38b603263ffffffff61321f16565b9050600061347e8a8363ffffffff61320d16565b6000805491925061349a916001600160a01b031690879061360a565b506001600160a01b038c16158015906134c557508a6001600160a01b03168c6001600160a01b031614155b80156134eb5750600c546001600160a01b038d1660009081526005602052604090205410155b15613537576001600160a01b038c16600090815260076020526040902054613519908763ffffffff61325716565b6001600160a01b038d1660009081526007602052604090205561354a565b613547878763ffffffff61325716565b96505b60006135578c838a61360a565b600a5490915061356d908a63ffffffff61325716565b600a55601354613583908663ffffffff61325716565b601355601154613599908563ffffffff61325716565b6011819055508c6001600160a01b03168c6001600160a01b03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d844260405180848152602001838152602001828152602001935050505060405180910390a39c9b505050505050505050505050565b600082600160401b830281158015906136335750601454613631838263ffffffff61325716565b115b61363c57600080fd5b6014541561369457601454613657908363ffffffff61325716565b6014819055600160401b85028161366a57fe5b60158054929091049091019055601454600160401b85028161368857fe5b0482028103900361369a565b60148290555b6001600160a01b0386166000908152600560205260409020546136c3908363ffffffff61325716565b6001600160a01b0387166000818152600560209081526040808320949094556015546008825284832080549188028790039182019055845187815294519094600080516020613a5e83398151915292908290030190a3509095945050505050565b601d5460408051632607443b60e01b81523060048201526024810186905290516000928392839283928392839283926001600160a01b031691632607443b9160448083019260e0929190829003018186803b15801561378257600080fd5b505afa158015613796573d6000803e3d6000fd5b505050506040513d60e08110156137ac57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b50505050505050601e6000336001600160a01b03166001600160a01b031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff161515600115151480156138915750336000908152601e602090815260408083208b8452909152902060020154600160801b900460ff16155b61389a57600080fd5b336000908152601e602090815260408083208b845290915290205464ffffffffff8a811691161480156138da57508564ffffffffff168964ffffffffff16145b6138e357600080fd5b336000908152601e602090815260408083208b84529091529020600101546001600160481b0386161461391557600080fd5b336000908152601e602090815260408083208b84529091529020600201546001600160481b0385811691161461394a57600080fd5b336000908152601e602090815260408083208b845290915290206002015461ffff848116600160481b909204161461398157600080fd5b336000908152601e602090815260408083208b845290915290206002015461ffff838116600160581b90920416146139b857600080fd5b9998505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a0657805160ff1916838001178555613a33565b82800160010185558215613a33579182015b82811115613a33578251825591602001919060010190613a18565b50613a3f929150613a43565b5090565b61115391905b80821115613a3f5760008155600101613a4956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6d757374206265206120706f7369746976652076616c756520616e64206861766520737570706c79a265627a7a723158200c3a0e08bae2c92473d4a5ac651f0aa3b44faba9dc59a3abfa9f1f068bc1c58564736f6c634300050d0032
Deployed ByteCode Sourcemap
1947:23436:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7216:8;;;22322:842;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22322:842:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22322:842:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;23455:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23455:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23455:224:0;-1:-1:-1;;;;;23455:224:0;;:::i;21413:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21413:143:0;;;:::i;:::-;;21240:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21240:165:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21240:165:0;;;;:::i;4468:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4468:32: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;4468:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25068:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25068:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25068:312:0;;:::i;21564:113::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21564:113:0;;;:::i;6064:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6064:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6064:29:0;;;;;;;;;;;;;;24514:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24514:252:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24514:252:0;;:::i;21071:161::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21071:161:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21071:161:0;;;;:::i;21685:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21685:89:0;;;:::i;21968:346::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21968:346:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21968:346:0;;;;;;;;;;;:::i;6614:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6614:68:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6614:68:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6614:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4640:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5789:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:42:0;;;:::i;5530:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5530:31:0;;;:::i;4543:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4543:34:0;;;:::i;5670:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5670:36:0;;;:::i;6176:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6176:34:0;;;:::i;9696:515::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9696:515:0;;;:::i;5620:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:43:0;;;:::i;24774:286::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24774:286:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24774:286:0;;:::i;24059:262::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24059:262:0;;;:::i;20170:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20170:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20170:118:0;;;;:::i;15704:1384::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15704:1384:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15704:1384:0;;;;;;;:::i;7765:322::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7765:322:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7765:322:0;;:::i;6138:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6138:31:0;;;:::i;21782:178::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21782:178:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21782:178:0;;;;:::i;20296:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20296:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20296:112:0;;;;:::i;23172:275::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23172:275:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23172:275:0;;;;:::i;4710:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4710:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23687:364;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23687:364:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23687:364:0;;;;;;;;;;:::i;20416:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20416:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20416:126:0;-1:-1:-1;;;;;20416:126:0;;:::i;20550:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20550:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20550:126:0;-1:-1:-1;;;;;20550:126:0;;:::i;24329:177::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24329:177:0;;;:::i;1730:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1730:20:0;;;:::i;7417:340::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7417:340:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7417:340:0;;:::i;4507:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4507:29:0;;;:::i;5934:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5934:40:0;;;:::i;20684:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20684:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20684:130:0;-1:-1:-1;;;;;20684:130:0;;:::i;10427:235::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10427:235:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10427:235:0;;;;;;;;;;;;;;;;;:::i;5888:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5888:39:0;;;:::i;6217:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6217:31:0;;;:::i;14488:1208::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14488:1208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14488:1208:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5162:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5162:59:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5162:59:0;-1:-1:-1;;;;;5162:59:0;;:::i;20063:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20063:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20063:99:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;20063:99:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20063:99:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20063:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;20063:99:0;;-1:-1:-1;20063:99:0;;-1:-1:-1;;;;;20063:99:0:i;6100:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6100:31:0;;;:::i;5838:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5838:43:0;;;:::i;19964:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19964:91:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19964:91:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;19964:91:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19964:91:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19964:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19964:91:0;;-1:-1:-1;19964:91:0;;-1:-1:-1;;;;;19964:91:0:i;5713:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5713:30:0;;;:::i;20822:241::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20822:241:0;;;:::i;10219:200::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10219:200:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10219:200:0;;;;;;;;:::i;9207:481::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9207:481:0;;;:::i;5477:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5477:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5477:44:0;-1:-1:-1;;;;;5477:44:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13385:1095;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13385:1095:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13385:1095:0;;:::i;8095:1104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8095:1104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8095:1104:0;;:::i;5750:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5750:32:0;;;:::i;4675:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4675:28:0;;;:::i;5568:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5568:45:0;;;:::i;18116:1840::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18116:1840:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18116:1840:0;;;;;;;;;;;;;;:::i;22322:842::-;22463:14;;22494:12;;22417:7;;22463:14;22494:16;22490:525;;22525:21;22585:4;22569:20;;;;22565:157;;;-1:-1:-1;22621:5:0;22565:157;;;22677:31;22690:3;22695:12;;22677;:31::i;:::-;22661:47;;22565:157;22792:9;;22774:12;;22736:17;;22756:46;;22792:9;;;;;;;;22756:31;;:13;;:17;:31;:::i;:::-;:35;:46;:35;:46;:::i;:::-;22736:66;;22833:12;;22821:9;:24;22817:83;;;-1:-1:-1;22874:12:0;;22817:83;22932:71;22945:15;22991:11;;-1:-1:-1;;;22963:9:0;:24;22962:40;;;;;;22932:12;:71::i;:::-;22914:89;;22490:525;;;-1:-1:-1;;;;;23113:27:0;;;;;;:9;:27;;;;;;;;;23073:18;:36;;;;;;;-1:-1:-1;;;23055:54:0;;23045:95;23034:122;;-1:-1:-1;22322:842:0;;;;;:::o;23455:224::-;-1:-1:-1;;;;;23628:27:0;;23523:7;23628:27;;;:9;:27;;;;;;;;;23588:18;:36;;;;;;23571:14;;-1:-1:-1;;;4624:7:0;23571:53;;23561:94;23550:121;23543:128;;23455:224;;;;:::o;21413:143::-;21488:11;;;21473;;;21488;;;;;21473:26;21465:35;;;;;;21531:11;;;;21523:5;21531:11;21523:19;;;;;21545:3;21523:25;21511:37;;:9;;:37;;;;;;;;;;;;;;;;;;21413:143::o;21240:165::-;2321:16;;-1:-1:-1;;;;;2321:16:0;2307:10;:30;2299:39;;;;;;21340:1;21326:11;:15;;;:34;;;;;21359:1;21345:11;:15;;;21326:34;21318:43;;;;;;21372:11;:25;;;;;;;;-1:-1:-1;;21372:25:0;;;;;;;;;21240:165::o;4468:32::-;;;;;;;;;;;;;;-1:-1:-1;;4468:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25068:312::-;25129:7;25153:8;-1:-1:-1;;;25153:20:0;25149:224;;;25221:20;;25195:21;;:47;;;:25;:47;:::i;:::-;25188:54;;;;25149:224;25264:8;-1:-1:-1;;;25264:22:0;25260:113;;;25337:23;;25308:24;;:53;;;:28;:53;:::i;21564:113::-;21639:5;;:30;;;-1:-1:-1;;;21639:30:0;;21663:4;21639:30;;;;;;21612:7;;-1:-1:-1;;;;;21639:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21639:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21639:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21639:30:0;;-1:-1:-1;21564:113:0;;:::o;6064:29::-;;;-1:-1:-1;;;;;6064:29:0;;:::o;24514:252::-;24590:7;;24630:29;24655:3;24630:20;:12;24647:2;24630:20;:16;:20;:::i;:29::-;24610:49;-1:-1:-1;24670:23:0;24696:27;:12;24610:49;24696:27;:16;:27;:::i;:::-;24670:53;24514:252;-1:-1:-1;;;;24514:252:0:o;21071:161::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;21167:1;21153:11;:15;;;:34;;;;;21186:1;21172:11;:15;;;21153:34;21145:43;;;;;;21199:11;:25;;-1:-1:-1;;21199:25:0;;;;;;;;;;;;21071:161::o;21685:89::-;21755:11;;21685:89;:::o;21968:346::-;22065:7;22112:10;22140:21;:165;;22254:51;22274:16;22292:12;22254:19;:51::i;:::-;22140:165;;;-1:-1:-1;;;;;22218:33:0;;;;;;:15;:33;;;;;;22164:51;22234:16;22202:12;22164:19;:51::i;:::-;:87;22133:172;21968:346;-1:-1:-1;;;;21968:346:0:o;6614:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6614:68:0;;;;-1:-1:-1;;;6614:68:0;;;;;-1:-1:-1;;;6614:68:0;;;;;-1:-1:-1;;;6614:68:0;;;;;-1:-1:-1;;;6614:68:0;;;;;-1:-1:-1;;;6614:68:0;;;;:::o;4640:28::-;;;;;;:::o;5789:42::-;;;;:::o;5530:31::-;;;;:::o;4543:34::-;4576:1;4543:34;:::o;5670:36::-;;;;:::o;6176:34::-;;;-1:-1:-1;;;;;6176:34:0;;:::o;9696:515::-;2401:12;;:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;3236:1;3216:17;3228:4;3216:11;:17::i;:::-;:21;3208:30;;;;;;9782:10;9755:24;9824:18;9755:24;9824:11;:18::i;:::-;-1:-1:-1;;;;;9853:27:0;;;;;;;:9;:27;;;;;;;;:67;;-1:-1:-1;;;9894:25:0;;9853:67;;;9945:15;:33;;;;;;;9989:37;;;;10037:5;;:44;;-1:-1:-1;;;10037:44:0;;;;;;;;;9931:47;;10037:44;;;;;;;;9931:47;;-1:-1:-1;10037:5:0;;;;;:14;;:44;;;;;9853:27;;10037:44;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;10037:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10037:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;10092:29:0;;;;;;:11;10037:44;10092:29;;;;;;;;:41;;:55;;;;;;10163:40;;;;;;;;;;;;;;;;;3249:1;;9696:515::o;5620:43::-;;;;:::o;24774:286::-;24848:7;24893:11;;24876:13;:28;;24868:37;;;;;;24916:16;24935:30;24961:3;24935:21;:13;24953:2;24935:21;:17;:21;:::i;24059:262::-;24101:7;24136:3;24101:7;24173:29;24198:3;24173:20;24136:3;5046:1;24173:20;:8;:20;:::i;:29::-;24150:52;-1:-1:-1;24213:15:0;24231:25;24252:3;24231:16;:4;4913:1;24231:16;:8;:16;:::i;:25::-;24213:43;-1:-1:-1;24277:35:0;24213:43;24277:22;:4;24286:12;24277:22;:8;:22;:::i;:::-;:26;:35;:26;:35;:::i;:::-;24269:44;;;;;24059:262;:::o;20170:118::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20248:14;:32;;;;;-1:-1:-1;;;20248:32:0;-1:-1:-1;;;;20248:32:0;;;;;;;;;20170:118::o;15704:1384::-;3311:14;;-1:-1:-1;;;3311:14:0;;;;:22;;3329:4;3311:22;3303:31;;;;;;-1:-1:-1;;;;;15799:7:0;:33;;15791:42;;;;;;15883:7;15852:27;15862:10;15874:4;15852:9;:27::i;:::-;:38;;15844:47;;;;;;15904:5;;:32;;;-1:-1:-1;;;15904:32:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15904:5:0;;;;:16;;:32;;;;;:5;;:32;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;15904:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16129:5:0;;:31;;;-1:-1:-1;;;16129:31:0;;16154:4;16129:31;;;;;;15970:19;;-1:-1:-1;15970:19:0;;-1:-1:-1;15970:19:0;;;;;;-1:-1:-1;;;;;16129:5:0;;;;:16;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;16129:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16129:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16129:31:0;;-1:-1:-1;16185:28:0;16129:31;16211:1;16185:12;:28::i;:::-;16278:5;;:44;;;-1:-1:-1;;;16278:44:0;;16303:4;16278:44;;;;;;;;;;;;16171:42;;-1:-1:-1;;;;;;16278:5:0;;;;:16;;:44;;;;;;;;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;16278:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16278:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;16278:44:0;;;;;;;;;;;;;;;;16374:40;;;;;;-1:-1:-1;;;;;;16374:40:0;16278:44;16374:40;;;;;;;;;;;-1:-1:-1;;;;;;16374:40:0;;;;;;;26:21:-1;;;22:32;;6:49;;16374:40:0;;;;;;16364:51;;;;;;;;;16463:10;-1:-1:-1;16452:22:0;;;:10;:22;;;;;:33;;;;;;;;;:41;;;16278:44;;-1:-1:-1;16278:44:0;;-1:-1:-1;16278:44:0;;-1:-1:-1;16278:44:0;;-1:-1:-1;;;;16452:41:0;;;;:50;16444:59;;;;;;16587:4;16543:10;:22;16554:10;-1:-1:-1;;;;;16543:22:0;-1:-1:-1;;;;;16543:22:0;;;;;;;;;;;;:33;16566:9;16543:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;16640:92;;;;;;;;16651:8;16640:92;;;;;;16661:7;16640:92;;;;16670:12;-1:-1:-1;;;;;16640:92:0;;;;;16684:10;16640:92;;;;;;16696:11;16640:92;;;;;;16716:1;16640:92;;;;;;16720:4;16640:92;;;;;;16726:5;16640:92;;;;;16604:10;:22;16615:10;-1:-1:-1;;;;;16604:22:0;-1:-1:-1;;;;;16604:22:0;;;;;;;;;;;;:33;16627:9;16604:33;;;;;;;;;;;:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16604:128:0;;;;;-1:-1:-1;;;;;16604:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16765:40;16778:17;;16797:7;16765:12;:40::i;:::-;16745:17;:60;16830:10;16818:23;;;;:11;:23;;;;;;;;:36;;;:41;;16858:1;16818:41;;;16870:30;;:41;;;;;;16976:24;:36;;;;;;16963:59;;16904:7;16963:12;:59::i;:::-;16949:10;16924:36;;;;:24;:36;;;;;;;;;:98;;;;17040:40;;;;;17076:3;17040:40;;;;;;;;;16949:10;;17040:40;;;;;;;;;;;3345:1;;;;;;15704:1384;;:::o;7765:322::-;7842:1;7832:7;:11;:30;;;;;7861:1;7847:11;;:15;7832:30;7824:83;;;;-1:-1:-1;;;7824:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7918:28;7938:7;7918:19;:28::i;:::-;7957:13;:24;;;;;;8007:12;;:25;;7974:7;8007:25;:16;:25;:::i;:::-;7992:12;:40;8048:31;;;;;;;;8059:10;;8048:31;;;;;;;;;;7765:322;:::o;6138:31::-;;;-1:-1:-1;;;;;6138:31:0;;:::o;21782:178::-;21838:7;21885:10;21913:39;21885:10;21941;21913:9;:39::i;:::-;21906:46;21782:178;-1:-1:-1;;;21782:178:0:o;20296:112::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20370:13;:30;;;;;-1:-1:-1;;;20370:30:0;-1:-1:-1;;;;20370:30:0;;;;;;;;;20296:112::o;23172:275::-;23242:7;23289:10;23317:21;:121;;23409:29;23421:16;23409:11;:29::i;:::-;23317:121;;;-1:-1:-1;;;;;23373:33:0;;;;;;:15;:33;;;;;;23341:29;23389:16;23341:11;:29::i;:::-;:65;;23172:275;-1:-1:-1;;;23172:275:0:o;4710:33::-;;;;;;;;;:::o;23687:364::-;23770:7;23794:19;23790:254;;-1:-1:-1;;;;;;23837:36:0;;;;;;:18;:36;;;;;;23830:43;;23790:254;23918:4;23904:18;;;;23900:144;;;-1:-1:-1;;;;;23988:42:0;;;;;;:24;:42;;;;;;;;;23947:18;:36;;;;;;;:84;;;:40;:84;:::i;:::-;23939:93;;;;20416:126;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20501:14;:33;;-1:-1:-1;;;;;;20501:33:0;-1:-1:-1;;;;;20501:33:0;;;;;;;;;;20416:126::o;20550:::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20633:16;:35;;-1:-1:-1;;;;;;20633:35:0;-1:-1:-1;;;;;20633:35:0;;;;;;;;;;20550:126::o;24329:177::-;24369:7;24404:3;24369:7;24438:21;24455:3;24438:12;24404:3;24447:2;24438:12;:8;:12;:::i;:21::-;24418:41;-1:-1:-1;24478:19:0;:4;24418:41;24478:19;:8;:19;:::i;:::-;24470:28;;;;24329:177;:::o;1730:20::-;;;-1:-1:-1;;;;;1730:20:0;;:::o;7417:340::-;2105:15;;2098:3;:22;;2090:31;;;;;;2146:15;;2164:9;2146:27;2138:3;:36;2134:102;;2214:9;2199:11;:24;;2191:33;;;;;;7502:1;7492:7;:11;7484:48;;;;;-1:-1:-1;;;7484:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:28;7563:7;7543:19;:28::i;:::-;7582:13;:24;;;;;;7647:14;;7690:11;;7634:68;;7647:14;-1:-1:-1;;;7664:22:0;;7690:11;7663:38;;;7634:68;7617:14;:85;7718:31;;;;;;;;7729:10;;7718:31;;;;;;;;;;7417:340;:::o;4507:29::-;;;;;;;;;;;;;;;-1:-1:-1;;4507:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5934:40;;;;:::o;20684:130::-;2321:16;;-1:-1:-1;;;;;2321:16:0;2307:10;:30;2299:39;;;;;;20771:16;:35;;-1:-1:-1;;;;;;20771:35:0;-1:-1:-1;;;;;20771:35:0;;;;;;;;;;20684:130::o;10427:235::-;2401:12;;10534:7;;2401:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;10554:28;10574:7;10554:19;:28::i;:::-;10600:54;10615:11;10628:16;10646:7;10600:14;:54::i;5888:39::-;;;;:::o;6217:31::-;;;-1:-1:-1;;;;;6217:31:0;;:::o;14488:1208::-;14609:4;2105:15;;2098:3;:22;;2090:31;;;;;;2146:15;;2164:9;2146:27;2138:3;:36;2134:102;;2214:9;2199:11;:24;;2191:33;;;;;;2401:12;;:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;3148:1;3131:14;3140:4;3131:8;:14::i;:::-;:18;3123:27;;;;;;14653:10;14682:19;;;;;:126;;-1:-1:-1;;;;;;14765:42:0;;;;;;:24;:42;;;;;;;;;14724:18;:36;;;;;;;:84;;;:40;:84;:::i;:::-;14705:15;:103;;14682:126;14674:135;;;;;;14846:1;14826:17;14838:4;14826:11;:17::i;:::-;:21;14822:64;;;14864:10;:8;:10::i;:::-;14898:17;14918:41;14955:3;14918:32;:15;5091:1;14918:32;:19;:32;:::i;:41::-;14898:61;-1:-1:-1;14970:20:0;14993:30;:15;14898:61;14993:30;:19;:30;:::i;:::-;-1:-1:-1;;;;;15075:36:0;;;;;;:18;:36;;;;;;14970:53;;-1:-1:-1;15075:57:0;;15116:15;15075:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;15036:36:0;;;;;;;:18;:36;;;;;;:96;;;;15176:30;;;;;;;:48;;15211:12;15176:48;:34;:48;:::i;:::-;-1:-1:-1;;;;;15143:30:0;;;;;;;:18;:30;;;;;;:81;;;;15282:5;;;;;15263:25;;;;:40;;15293:9;15263:40;:29;:40;:::i;:::-;15235:25;15254:5;;-1:-1:-1;;;;;15254:5:0;;;15235:25;;:18;:25;;;;;;;;:68;;;;15357:14;;;15316:27;;;;;;:9;:27;;;;;:74;;15357:32;;;15316:74;;;;;;15436:14;;15401:21;;;;;;;;:65;;15436:29;;;15401:65;;;;;15507:14;;15487:5;;;;15477:16;;;;;:57;;15507:26;;;15477:57;;;;;15579:5;;15552:44;;;;;;;15579:5;;;-1:-1:-1;;;;;;;;;;;15552:44:0;;;;;;;;;;15639:10;-1:-1:-1;;;;;15612:52:0;15621:16;-1:-1:-1;;;;;15612:52:0;-1:-1:-1;;;;;;;;;;;15651:12:0;15612:52;;;;;;;;;;;;;;;;;;-1:-1:-1;15684:4:0;;14488:1208;-1:-1:-1;;;;;14488:1208:0:o;5162:59::-;;;;;;;;;;;;;:::o;20063:99::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20138:16;;;;:6;;:16;;;;;:::i;:::-;;20063:99;:::o;6100:31::-;;;-1:-1:-1;;;;;6100:31:0;;:::o;5838:43::-;;;;:::o;19964:91::-;1916:5;;-1:-1:-1;;;;;1916:5:0;1902:10;:19;1894:28;;;;;;20035:12;;;;:4;;:12;;;;;:::i;5713:30::-;;;;:::o;20822:241::-;20887:16;;-1:-1:-1;;;;;20887:16:0;:30;;;;:70;;-1:-1:-1;20941:16:0;;20921;;-1:-1:-1;;;;;20921:16:0;;;20941;;20921:36;20887:70;20879:79;;;;;;20991:16;;20969:19;:38;;-1:-1:-1;;;;;20991:16:0;;;-1:-1:-1;;;;;;20969:38:0;;;;;;;;21018:12;:37;;;;;;;;20822:241::o;10219:200::-;2401:12;;10297:7;;2401:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;10317:28;10337:7;10317:19;:28::i;:::-;10363:48;10378:11;10391:10;10403:7;10363:14;:48::i;9207:481::-;2401:12;;:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;3236:1;3216:17;3228:4;3216:11;:17::i;:::-;:21;3208:30;;;;;;9289:10;9262:24;9331:18;9262:24;9331:11;:18::i;:::-;-1:-1:-1;;;;;9360:27:0;;;;;;:9;:27;;;;;;;;:68;;-1:-1:-1;;;9402:25:0;;9360:68;;;9453:15;:33;;;;;;;9497:37;;;;9439:47;;;;-1:-1:-1;9563:56:0;9360:27;9370:16;9439:47;9563:14;:56::i;:::-;9545:74;;9642:16;-1:-1:-1;;;;;9635:45:0;;9660:10;9672:7;9635:45;;;;;;;;;;;;;;;;;;;;;;;;3249:1;;;9207:481::o;5477:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13385:1095::-;2105:15;;2098:3;:22;;2090:31;;;;;;2146:15;;2164:9;2146:27;2138:3;:36;2134:102;;2214:9;2199:11;:24;;2191:33;;;;;;2401:12;;:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;3148:1;3131:14;3140:4;3131:8;:14::i;:::-;:18;3123:27;;;;;;13509:10;13538:19;;;;;:126;;-1:-1:-1;;;;;;13621:42:0;;;;;;:24;:42;;;;;;;;;13580:18;:36;;;;;;;:84;;;:40;:84;:::i;:::-;13561:15;:103;;13538:126;13530:135;;;;;;13678:20;13701:40;13737:3;13701:31;:15;5046:1;13701:31;:19;:31;:::i;:40::-;13678:63;-1:-1:-1;13752:15:0;13770:36;13802:3;13770:27;:15;4913:1;13770:27;:19;:27;:::i;:36::-;13752:54;-1:-1:-1;13817:17:0;13837:46;13752:54;13837:33;:15;13857:12;13837:33;:19;:33;:::i;:46::-;13912:5;;;13817:66;;-1:-1:-1;13896:34:0;;-1:-1:-1;;;;;13912:5:0;;13919:7;;13896:15;:34::i;:::-;-1:-1:-1;13957:11:0;;:32;;13973:15;13957:32;:15;:32;:::i;:::-;13943:11;:46;-1:-1:-1;;;;;14039:36:0;;;;;;:18;:36;;;;;;:57;;14080:15;14039:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;14000:36:0;;;;;;:18;:36;;;;;;;;:96;;;;14144:14;;14217:9;:27;;;;;;:46;;14144:32;;;-1:-1:-1;;;14180:24:0;;14144:61;14217:46;;;;;;14291:12;;:30;;14308:12;14291:30;:16;:30;:::i;:::-;14276:12;:45;14339:55;;;;;;;;14374:1;;-1:-1:-1;;;;;14339:55:0;;;-1:-1:-1;;;;;;;;;;;14339:55:0;;;;;;;;14410:62;;;;;;;;;;;;14468:3;14410:62;;;;;;-1:-1:-1;;;;;14410:62:0;;;;;;;;;;;;;3161:1;;;;;13385:1095;:::o;8095:1104::-;8152:8;-1:-1:-1;;;8152:20:0;8148:1044;;;8187:17;8207:47;8233:20;;8207:21;;:25;;:47;;;;:::i;:::-;8187:67;;8287:1;8275:9;:13;8267:22;;;;;;8325:20;;:35;;8350:9;8325:35;:24;:35;:::i;:::-;8302:20;:58;8373:5;;:77;;;-1:-1:-1;;;8373:77:0;;8395:42;8373:77;;;;;;;;;;;;-1:-1:-1;;;;;8373:5:0;;;;:13;;:77;;;;;;;;;;;;;;;:5;;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;8373:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8373:77:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8463:6:0;;:38;;;-1:-1:-1;;;8463:38:0;;;;;;;;;;-1:-1:-1;;;;;8463:6:0;;;;:27;;:38;;;;;:6;;:38;;;;;;;;:6;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;8463:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8463:38:0;;;;8148:1044;;;;8523:8;-1:-1:-1;;;8523:22:0;8519:673;;;8560:17;8580:53;8609:23;;8580:24;;:28;;:53;;;;:::i;:::-;8560:73;;8666:1;8654:9;:13;8646:22;;;;;;8707:23;;:38;;8735:9;8707:38;:27;:38;:::i;:::-;8681:23;:64;8764:13;;-1:-1:-1;;;8764:13:0;;;;:49;;;;-1:-1:-1;8781:14:0;;8807:6;-1:-1:-1;;;;;8781:14:0;;;:22;:32;;8764:49;8760:421;;;8830:5;;8845:19;;8830:46;;;-1:-1:-1;;;8830:46:0;;-1:-1:-1;;;;;8845:19:0;;;8830:46;;;;;;;;;;;;:5;;;;;:14;;:46;;;;;;;;;;;;;;:5;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;8830:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8830:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8910:5:0;;8926:19;;8910:36;;;-1:-1:-1;;;8910:36:0;;-1:-1:-1;;;;;8926:19:0;;;8910:36;;;;;;8891:16;;8910:5;;;;;:15;;:36;;;;;8830:46;;8910:36;;;;;;;;:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;8910:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8910:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8910:36:0;;-1:-1:-1;8979:7:0;8967:19;;8963:83;;9005:12;;;;;;;;;-1:-1:-1;;;;;9005:12:0;-1:-1:-1;;;;;9005:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9005:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9005:25:0;;;;8963:83;8760:421;;;;9097:70;9110:14;;9155:11;;-1:-1:-1;;;9127:9:0;:24;9126:40;;;;9097:70;9080:14;:87;8519:673;;8095:1104;:::o;5750:32::-;;;;:::o;4675:28::-;;;;;;;;;:::o;5568:45::-;;;;:::o;18116:1840::-;2401:12;;:16;2397:466;;2432:21;2456:31;2469:3;2474:12;;2456;:31::i;:::-;2556:9;;2538:12;;2432:55;;-1:-1:-1;2500:17:0;;2520:46;;2556:9;;;;;;;;2520:31;;2432:55;;2538:12;2520:17;:31;:::i;:46::-;2500:66;;2597:12;;2585:9;:24;2581:83;;;-1:-1:-1;2638:12:0;;2581:83;2695:70;2708:14;;2753:11;;-1:-1:-1;;;2725:9:0;:24;2724:40;;;;2695:70;2678:14;:87;2793:12;;:27;;2810:9;2793:27;:16;:27;:::i;:::-;2778:12;:42;-1:-1:-1;;2848:3:0;2833:12;:18;2397:466;2906:7;2879:23;-1:-1:-1;;;2879:13:0;:23::i;:::-;:34;2875:84;;2930:17;-1:-1:-1;;;2930:7:0;:17::i;:::-;3004:7;2975:25;-1:-1:-1;;;2975:13:0;:25::i;:::-;:36;2971:88;;3028:19;-1:-1:-1;;;3028:7:0;:19::i;:::-;18225;18247:48;18257:11;18270:13;18285:9;18247;:48::i;:::-;18225:70;-1:-1:-1;18312:17:0;;;18308:241;;18398:5;;;;;;;;;-1:-1:-1;;;;;18398:5:0;-1:-1:-1;;;;;18398:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18398:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18398:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18398:18:0;18354:10;18343:22;;;;:10;18398:18;18343:22;;;;;;;:33;;;;;;;;:45;;:74;;;;;;-1:-1:-1;;;18343:74:0;-1:-1:-1;;;;18343:74:0;;;;;;;;;18308:241;;;18488:10;18477:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;:60;;-1:-1:-1;;;;18477:60:0;-1:-1:-1;;;18477:60:0;;;;;;;18308:241;18580:5;;:30;;;-1:-1:-1;;;18580:30:0;;18604:4;18580:30;;;;;;18561:16;;-1:-1:-1;;;;;18580:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18580:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18580:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18580:30:0;18623:5;;:42;;;-1:-1:-1;;;18623:42:0;;;;;;;;;;;;;;;;;18580:30;;-1:-1:-1;;;;;;18623:5:0;;;;:14;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;18623:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18741:10:0;18730:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;:46;;-1:-1:-1;;;;18730:46:0;-1:-1:-1;;;18730:46:0;;;18820:5;;:30;;-1:-1:-1;;;18820:30:0;;18844:4;18820:30;;;;;;18730:22;;-1:-1:-1;18807:54:0;;-1:-1:-1;;;;;;18820:5:0;;:15;;:30;;;;;18730:22;;18820:30;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18820:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18820:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18820:30:0;18852:8;18807:12;:54::i;:::-;18907:10;18872:21;18896:22;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;18789:72;;-1:-1:-1;18986:24:0;;;18982:654;;19039:36;19052:13;19067:7;19039:12;:36::i;:::-;19025:50;;19102:38;19115:11;;19128;19102:12;:38::i;:::-;19088:11;:52;19218:10;19199:30;;;;:18;:30;;;;;;19186:57;;19231:11;19186:12;:57::i;:::-;19172:10;19153:30;;;;:18;:30;;;;;;;;:90;;;;19291:14;;19333:9;:21;;;;;:40;;19291:28;;;19333:40;;;;;;19391:45;;;;;;;19291:28;;19153:30;;19172:10;-1:-1:-1;;;;;;;;;;;19391:45:0;;;;;;;;18982:654;;;;19468:13;19458:7;:23;19454:182;;;19510:36;19523:7;19532:13;19510:12;:36::i;:::-;19496:50;;19573:51;19596:1;19600:10;19612:11;19573:14;:51::i;:::-;19559:65;;19454:182;19668:46;19681:17;;19700:13;19668:12;:46::i;:::-;19648:17;:66;19737:10;19725:23;;;;:11;:23;;;;;;;;:36;;:41;;-1:-1:-1;;19725:41:0;;;19831:24;:36;;;;;;19818:65;;19869:13;19818:12;:65::i;:::-;19804:10;19779:36;;;;:24;:36;;;;;;;;;:104;;;;19901:47;;;;;;;;;;;19944:3;19901:47;;;;;19804:10;;19901:47;;;;;;;;;;3069:1;;;;;18116:1840;;;:::o;352:119::-;410:7;440:1;435;:6;;428:14;;;;-1:-1:-1;458:5:0;;;352:119::o;52:188::-;110:9;134:6;130:41;;-1:-1:-1;160:1:0;153:8;;130:41;-1:-1:-1;183:5:0;;;187:1;183;:5;:1;204:5;;;;;:10;197:18;;;248:96;306:7;335:1;331;:5;;;;;;;248:96;-1:-1:-1;;;248:96:0:o;479:135::-;561:5;;;582:6;;;;575:14;;;7240:169;7313:5;;:54;;;-1:-1:-1;;;7313:54:0;;7332:10;7313:54;;;;7352:4;7313:54;;;;;;;;;;;;-1:-1:-1;;;;;7313:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;7313:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7313:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7313:54:0;:62;;7371:4;7313:62;7305:96;;;;;-1:-1:-1;;;7305:96:0;;;;;;;;;;;;-1:-1:-1;;;7305:96:0;;;;;;;;;;;;;;11691:1686;11813:7;2105:15;;2098:3;:22;;2090:31;;;;;;2146:15;;2164:9;2146:27;2138:3;:36;2134:102;;2214:9;2199:11;:24;;2191:33;;;;;;-1:-1:-1;;;;;11837:29:0;;;;;;:11;:29;;;;;:38;11833:89;;11897:11;:13;;;;;;11833:89;-1:-1:-1;;;;;11934:29:0;;;;;;:11;:29;;;;;:54;;;;;;12009:16;12001:25;;;;;;12039:20;12062:35;12093:3;12062:26;:12;4784:2;12062:26;:16;:26;:::i;:35::-;12039:58;-1:-1:-1;12108:18:0;12129:36;12161:3;12129:27;:12;4828:1;12129:27;:16;:27;:::i;:36::-;12108:57;-1:-1:-1;12176:22:0;12201:38;12235:3;12201:29;:12;4873:1;12201:29;:16;:29;:::i;:38::-;12176:63;-1:-1:-1;12250:15:0;12268:33;12297:3;12268:24;:12;4913:1;12268:24;:16;:24;:::i;:33::-;12250:51;-1:-1:-1;12312:18:0;12333:36;12365:3;12333:27;:12;4956:1;12333:27;:16;:27;:::i;:36::-;12312:57;-1:-1:-1;12380:21:0;12404:39;12439:3;12404:30;:12;5002:1;12404:30;:16;:30;:::i;:39::-;12380:63;-1:-1:-1;12456:17:0;12476:29;12501:3;12476:20;:12;12493:2;12476:20;:16;:20;:::i;:29::-;12456:49;-1:-1:-1;12516:17:0;12536:27;:12;12456:49;12536:27;:16;:27;:::i;:::-;12592:5;;;12516:47;;-1:-1:-1;12576:34:0;;-1:-1:-1;;;;;12592:5:0;;12599:7;;12576:15;:34::i;:::-;-1:-1:-1;;;;;;12627:25:0;;;;;;:60;;;12671:16;-1:-1:-1;;;;;12656:31:0;:11;-1:-1:-1;;;;;12656:31:0;;;12627:60;:118;;;;-1:-1:-1;12726:19:0;;-1:-1:-1;;;;;12691:31:0;;;;;;:18;:31;;;;;;:54;;12627:118;12623:306;;;-1:-1:-1;;;;;12793:28:0;;;;;;:15;:28;;;;;;:48;;12826:14;12793:48;:32;:48;:::i;:::-;-1:-1:-1;;;;;12762:28:0;;;;;;:15;:28;;;;;:79;12623:306;;;12887:30;:10;12902:14;12887:30;:14;:30;:::i;:::-;12874:43;;12623:306;12941:23;12967:56;12983:16;13001:9;13012:10;12967:15;:56::i;:::-;13051:12;;12941:82;;-1:-1:-1;13051:30:0;;13068:12;13051:30;:16;:30;:::i;:::-;13036:12;:45;13116:21;;:37;;13142:10;13116:37;:25;:37;:::i;:::-;13092:21;:61;13191:24;;:43;;13220:13;13191:43;:28;:43;:::i;:::-;13164:24;:70;;;;13317:11;-1:-1:-1;;;;;13252:82:0;13268:16;-1:-1:-1;;;;;13252:82:0;;13286:12;13300:15;13330:3;13252:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13354:15;11691:1686;-1:-1:-1;;;;;;;;;;;;11691:1686:0:o;10670:1013::-;10777:7;10823:12;-1:-1:-1;;;10861:23:0;;10905:19;;;;;:69;;-1:-1:-1;10963:11:0;;10928:32;:15;10963:11;10928:32;:19;:32;:::i;:::-;:46;10905:69;10897:78;;;;;;10992:11;;:15;10988:325;;11038:11;;:32;;11054:15;11038:32;:15;:32;:::i;:::-;11024:11;:46;;;-1:-1:-1;;;11104:23:0;;11024:46;11104:37;;;;11085:14;:57;;11104:37;;;;11085:57;;;;;11225:11;;-1:-1:-1;;;11199:23:0;;11225:11;11199:37;;;;;11180:57;;11172:66;;11164:75;;10988:325;;;11272:11;:29;;;10988:325;-1:-1:-1;;;;;11365:36:0;;;;;;:18;:36;;;;;;:57;;11406:15;11365:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;11325:36:0;;;;;;:18;:36;;;;;;;;:97;;;;11470:14;;11521:9;:27;;;;;:46;;11470:32;;;:39;;;11521:46;;;;;11585:55;;;;;;;11470:39;;-1:-1:-1;;;;;;;;;;;11585:55:0;;;;;;;;-1:-1:-1;11660:15:0;;10670:1013;-1:-1:-1;;;;;10670:1013:0:o;17096:1012::-;17470:5;;:44;;;-1:-1:-1;;;17470:44:0;;17495:4;17470:44;;;;;;;;;;;;17199:6;;;;;;;;;;;;;;-1:-1:-1;;;;;17470:5:0;;:16;;:44;;;;;;;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17470:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17470:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17470:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17393:121;;;;;;;;;;;;;;;;;;;;;;;;;17533:10;:22;17544:10;-1:-1:-1;;;;;17533:22:0;-1:-1:-1;;;;;17533:22:0;;;;;;;;;;;;:33;17556:9;17533:33;;;;;;;;;;;:41;;;;;;;;;;;;:49;;17578:4;17533:49;;;:101;;;;-1:-1:-1;17597:10:0;17586:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;;-1:-1:-1;;;17586:39:0;;;;:48;17533:101;17525:110;;;;;;17665:10;17654:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:41;:58;;;;:41;;:58;:87;;;;;17733:8;17716:25;;:13;:25;;;17654:87;17646:96;;;;;;17772:10;17761:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;-1:-1:-1;;;;;17808:22:0;;17761:69;17753:78;;;;;;17861:10;17850:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;;-1:-1:-1;;;;;17850:61:0;;;:45;;:61;17842:70;;;;;;17942:10;17931:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;:57;;;;-1:-1:-1;;;17931:43:0;;;;:57;17923:66;;;;;;18019:10;18008:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:44;;;:59;;;;-1:-1:-1;;;18008:44:0;;;;:59;18000:68;;;;;;18088:12;17096:1012;-1:-1:-1;;;;;;;;;17096:1012:0:o;1947:23436::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1947:23436:0;;;-1:-1:-1;1947:23436:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://0c3a0e08bae2c92473d4a5ac651f0aa3b44faba9dc59a3abfa9f1f068bc1c585
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.