Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
DividendDistributor
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-03-17 */ //SPDX-License-Identifier: Unlicensed pragma solidity ^0.7.4; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IDEXRouter router; address routerAddress = 0xeC0A7a0C2439E8Cb67b992b12ecd020Ea943c7Be; //CroDex router IBEP20 RewardToken = IBEP20(0x065DE42E28E42d90c2052a1B49e7f83806Af0e1F); // CRK address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 2500000000 * (10**18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress); _token = msg.sender; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function safeDividend(address token, address to, uint value) public onlyToken { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED'); } function clearDividend(address target,uint256 amountPercentage) external onlyToken { uint256 amountBNB = address(this).balance; payable(target).transfer(amountBNB * amountPercentage / 100); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { require(shouldDistribute(msg.sender), "Too soon. Need to wait!"); distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract CroQueen is IBEP20, Auth { using SafeMath for uint256; string constant _name = "CroQueen"; string constant _symbol = "CRQ"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0xeC0A7a0C2439E8Cb67b992b12ecd020Ea943c7Be; //CroDex router address RewardToken = 0x065DE42E28E42d90c2052a1B49e7f83806Af0e1F; // CRK uint256 _totalSupply = 1000000000000000 * (10 ** _decimals); bool public tradingIsEnabled = false; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isDividendExempt; mapping (address => bool) private _reducedFeesFor; uint256 public CRKRewardsFee = 20; uint256 public buybackFee = 10; uint256 public liquidityFee = 5; uint256 public nftRewardsFee = 15; uint256 public teamFee = 10; uint256 public totalFees = CRKRewardsFee + buybackFee + liquidityFee + nftRewardsFee + teamFee; uint256 public additionalFeeOnSell = 40; uint256 public feeDenominator = 1000; uint256 public reducedFeePercentage = 0; address public buybackWallet = 0xAec2FBB9102D544215beeeF9326bf245dBb58d66; address public nftRewardsWallet = 0xAA966Aa9Df9Ca6DDf8b5136f2a3EE52fd4f515F6; address public teamWallet = 0xE62eCFEc962F02a91f0823d513a9b5561d20ceae; IDEXRouter public router; address public pair; DividendDistributor public dividendDistributor; uint256 distributorGas = 500000; // max wallet tools mapping(address => bool) private _isExcludedFromMaxWallet; bool private enableMaxWallet = true; uint256 private maxWalletRate = 20; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = _totalSupply / 1000; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = uint256(-1); dividendDistributor = new DividendDistributor(address(router)); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isDividendExempt[pair] = true; isDividendExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; // exclude from max wallet limit _isExcludedFromMaxWallet[msg.sender] = true; _isExcludedFromMaxWallet[address(0)] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[DEAD] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function enableTrading() external onlyOwner { require(!tradingIsEnabled, "Trading is already enabled"); tradingIsEnabled = true; } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ dividendDistributor.setShare(holder, 0); }else{ dividendDistributor.setShare(holder, _balances[holder]); } } function setFeeRates(uint256 _CRKRewardsFee, uint256 _buybackFee, uint256 _liquidityFee, uint256 _nftRewardsFee, uint256 _teamFee, uint256 _additionalFeeOnSell, uint256 _feeDenominator) public onlyOwner { CRKRewardsFee = _CRKRewardsFee; buybackFee = _buybackFee; liquidityFee = _liquidityFee; nftRewardsFee = _nftRewardsFee; teamFee = _teamFee; totalFees = _CRKRewardsFee + _buybackFee + _liquidityFee + _nftRewardsFee + _teamFee; additionalFeeOnSell = _additionalFeeOnSell; feeDenominator = _feeDenominator; require(totalFees + _additionalFeeOnSell <= _feeDenominator / 4, "max 25%"); } function setBuybackWallet(address payable wallet) external onlyOwner{ buybackWallet = wallet; } function setNftRewardsWallet(address payable wallet) external onlyOwner{ nftRewardsWallet = wallet; } function setTeamWallet(address payable wallet) external onlyOwner{ teamWallet = wallet; } function reduceFeesFor(address account, bool reduce) public onlyOwner { require(_reducedFeesFor[account] != reduce, "Account already has reduced fees"); _reducedFeesFor[account] = reduce; } function reduceFeesForMultipleAccounts(address[] calldata accounts, bool reduce) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _reducedFeesFor[accounts[i]] = reduce; } } function setReducedFeePercentage(uint256 percentage) public onlyOwner{ require(percentage < 100); reducedFeePercentage = percentage; } function isReducedFeesFor(address account) public view returns(bool) { return _reducedFeesFor[account]; } function isExcludedFromMaxWallet(address account) public view returns(bool) { return _isExcludedFromMaxWallet[account]; } function maxWalletAmount() public view returns (uint256) { return getCirculatingSupply().mul(maxWalletRate).div(1000); } function setmaxWalletAmountRateDenominator1000(uint256 _val) public onlyOwner { require(_val > 9, "Max wallet percentage cannot be lower than 1%"); maxWalletRate = _val; } function setExcludeFromMaxWallet(address account, bool exclude) public onlyOwner { _isExcludedFromMaxWallet[account] = exclude; } function setenableMaxWallet(bool _val) public onlyOwner { enableMaxWallet = _val; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized { dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution); } function changeDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != uint256(-1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(tradingIsEnabled || (isFeeExempt[sender] || isFeeExempt[recipient]), "Trading is disabled"); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } if (enableMaxWallet && maxWalletAmount() > 0) { if ( _isExcludedFromMaxWallet[sender] == false && _isExcludedFromMaxWallet[recipient] == false && recipient != pair ) { uint balance = balanceOf(recipient); require(balance + amount <= maxWalletAmount(), "MaxWallet: Transfer amount exceeds the maxWalletAmount"); } } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } bool takeFee = !inSwapAndLiquify; //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if(isFeeExempt[sender] || isFeeExempt[recipient]) { takeFee = false; } // no fee for wallet to wallet transfers if(sender != pair && recipient != pair) { takeFee = false; } uint256 finalAmount = amount; if(takeFee) { finalAmount = takeFees(sender, recipient, amount); } _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} } try dividendDistributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFees(address sender, address recipient, uint256 amount) internal returns (uint256) { if (recipient == pair) { totalFees += additionalFeeOnSell; } uint256 feeAmount = amount.mul(totalFees).div(feeDenominator); if (_reducedFeesFor[sender] || _reducedFeesFor[recipient]) { feeAmount -= feeAmount.div(100).mul(reducedFeePercentage); } if (recipient == pair) { totalFees -= additionalFeeOnSell; } _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFees).div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountCRO = address(this).balance; uint256 totalCroFee = totalFees.sub(liquidityFee.div(2)); uint256 amountCroLiquidity = amountCRO.mul(liquidityFee).div(totalCroFee).div(2); uint256 amountCroBuyback = amountCRO.mul(buybackFee).div(totalCroFee); uint256 amountCroNftHolders = amountCRO.mul(nftRewardsFee).div(totalCroFee); uint256 amountCroReflection = amountCRO.mul(CRKRewardsFee).div(totalCroFee); uint256 amountCroTeam = amountCRO.sub(amountCroLiquidity).sub(amountCroBuyback).sub(amountCroNftHolders).sub(amountCroReflection); try dividendDistributor.deposit{value: amountCroReflection}() {} catch {} if(buybackFee > 0){ payable(buybackWallet).transfer(amountCroBuyback); } if(nftRewardsFee > 0){ payable(nftRewardsWallet).transfer(amountCroNftHolders); } if(buybackFee > 0){ payable(teamWallet).transfer(amountCroTeam); } if(amountToLiquify > 0){ router.addLiquidityETH{value: amountCroLiquidity}( address(this), amountToLiquify, 0, 0, DEAD, block.timestamp ); emit AutoLiquify(amountCroLiquidity, amountToLiquify); } } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"safeDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600280546001600160a01b031990811673ec0a7a0c2439e8cb67b992b12ecd020ea943c7be179091556003805490911673065de42e28e42d90c2052a1b49e7f83806af0e1f1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d556b0813f3978f89409844000000600e5534801561008157600080fd5b506040516111e43803806111e4833981810160405260208110156100a457600080fd5b50516001600160a01b0381166100c5576002546001600160a01b03166100c7565b805b600180546001600160a01b03929092166001600160a01b03199283161790556000805490911633179055506110e3806101016000396000f3fe6080604052600436106100f35760003560e01c8063997664d71161008a578063efca2eed11610059578063efca2eed146102e6578063f0fc6bca146102fb578063ffb2c47914610310578063ffd49c841461033a576100f3565b8063997664d714610263578063ce7c2ac214610278578063d0e30db0146102c9578063e2d2e219146102d1576100f3565b80632d48e896116100c65780632d48e896146101c65780633a98ef39146101f65780634fab0ae81461020b578063657ef0a214610220576100f3565b80630d692ed5146100f857806311ce023d1461013357806314b6ca961461015a57806328fd319814610193575b600080fd5b34801561010457600080fd5b506101316004803603604081101561011b57600080fd5b506001600160a01b03813516906020013561034f565b005b34801561013f57600080fd5b506101486103a8565b60408051918252519081900360200190f35b34801561016657600080fd5b506101316004803603604081101561017d57600080fd5b506001600160a01b0381351690602001356103ae565b34801561019f57600080fd5b50610148600480360360208110156101b657600080fd5b50356001600160a01b03166104d3565b3480156101d257600080fd5b50610131600480360360408110156101e957600080fd5b508035906020013561055f565b34801561020257600080fd5b50610148610581565b34801561021757600080fd5b50610148610587565b34801561022c57600080fd5b506101316004803603606081101561024357600080fd5b506001600160a01b0381358116916020810135909116906040013561058d565b34801561026f57600080fd5b5061014861070d565b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b0316610713565b60408051938452602084019290925282820152519081900360600190f35b610131610734565b3480156102dd57600080fd5b50610148610a2a565b3480156102f257600080fd5b50610148610a30565b34801561030757600080fd5b50610131610a36565b34801561031c57600080fd5b506101316004803603602081101561033357600080fd5b5035610a9b565b34801561034657600080fd5b50610148610b7b565b6000546001600160a01b0316331461036657600080fd5b60405147906001600160a01b0384169060648484020480156108fc02916000818181858888f193505050501580156103a2573d6000803e3d6000fd5b50505050565b600c5481565b6000546001600160a01b031633146103c557600080fd5b6001600160a01b038216600090815260076020526040902054156103ec576103ec82610b81565b60008111801561041257506001600160a01b038216600090815260076020526040902054155b156104255761042082610ca9565b610458565b8015801561044a57506001600160a01b03821660009081526007602052604090205415155b156104585761045882610d0a565b6001600160a01b03821660009081526007602052604090205460085461048991839161048391610df7565b90610e42565b6008556001600160a01b03821660009081526007602052604090208190556104b081610e9c565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546104f85750600061055a565b6001600160a01b03821660009081526007602052604081205461051a90610e9c565b6001600160a01b03841660009081526007602052604090206001015490915080821161054b5760009250505061055a565b6105558282610df7565b925050505b919050565b6000546001600160a01b0316331461057657600080fd5b600d91909155600e55565b60085481565b600e5481565b6000546001600160a01b031633146105a457600080fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b602083106106205780518252601f199092019160209182019101610601565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b50915091508180156106b55750805115806106b557508080602001905160208110156106b257600080fd5b50515b610706576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b0316331461074b57600080fd5b600354604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561079657600080fd5b505afa1580156107aa573d6000803e3d6000fd5b505050506040513d60208110156107c057600080fd5b505160408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d602081101561085657600080fd5b50518151829060009061086557fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061089057fe5b6001600160a01b0392831660209182029290920181019190915260015460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561092257818101518382015260200161090a565b50505050905001955050505050506000604051808303818588803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b5050600354604080516370a0823160e01b81523060048201529051600095506109e894508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109b657600080fd5b505afa1580156109ca573d6000803e3d6000fd5b505050506040513d60208110156109e057600080fd5b505190610df7565b6009549091506109f89082610e42565b600955600854600c54610a2291610a1991610a139085610eb9565b90610f12565b600b5490610e42565b600b55505050565b600b5481565b600a5481565b610a3f33610f54565b610a90576040805162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604482015290519081900360640190fd5b610a9933610b81565b565b6000546001600160a01b03163314610ab257600080fd5b60045480610ac05750610b78565b60008060005a90505b8482108015610ad757508383105b156107065783600f5410610aeb576000600f555b610b176004600f5481548110610afd57fe5b6000918252602090912001546001600160a01b0316610f54565b15610b4857610b486004600f5481548110610b2e57fe5b6000918252602090912001546001600160a01b0316610b81565b610b5d610b565a8390610df7565b8390610e42565b91505a600f8054600190810190915593909301929050610ac9565b50565b600d5481565b6001600160a01b038116600090815260076020526040902054610ba357610b78565b6000610bae826104d3565b90508015610ca557600a54610bc39082610e42565b600a556003546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610c1c57600080fd5b505af1158015610c30573d6000803e3d6000fd5b505050506040513d6020811015610c4657600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610c7b9082610e42565b6001600160a01b03831660009081526007602052604090206002810191909155546104b090610e9c565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610d1c57fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610d5457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610da257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610dd257fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610e3983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f90565b90505b92915050565b600082820183811015610e39576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610e3c600c54610a13600b5485610eb990919063ffffffff16565b600082610ec857506000610e3c565b82820282848281610ed557fe5b0414610e395760405162461bcd60e51b815260040180806020018281038252602181526020018061108d6021913960400191505060405180910390fd5b6000610e3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611027565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610e3c5750600e54610f89836104d3565b1192915050565b6000818484111561101f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fe4578181015183820152602001610fcc565b50505050905090810190601f1680156110115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836110765760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fe4578181015183820152602001610fcc565b50600083858161108257fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212201184442430240a42d221318ee636d34a66693127dde9f69c2e21abb49962facf64736f6c63430007060033000000000000000000000000ec0a7a0c2439e8cb67b992b12ecd020ea943c7be
Deployed Bytecode
0x6080604052600436106100f35760003560e01c8063997664d71161008a578063efca2eed11610059578063efca2eed146102e6578063f0fc6bca146102fb578063ffb2c47914610310578063ffd49c841461033a576100f3565b8063997664d714610263578063ce7c2ac214610278578063d0e30db0146102c9578063e2d2e219146102d1576100f3565b80632d48e896116100c65780632d48e896146101c65780633a98ef39146101f65780634fab0ae81461020b578063657ef0a214610220576100f3565b80630d692ed5146100f857806311ce023d1461013357806314b6ca961461015a57806328fd319814610193575b600080fd5b34801561010457600080fd5b506101316004803603604081101561011b57600080fd5b506001600160a01b03813516906020013561034f565b005b34801561013f57600080fd5b506101486103a8565b60408051918252519081900360200190f35b34801561016657600080fd5b506101316004803603604081101561017d57600080fd5b506001600160a01b0381351690602001356103ae565b34801561019f57600080fd5b50610148600480360360208110156101b657600080fd5b50356001600160a01b03166104d3565b3480156101d257600080fd5b50610131600480360360408110156101e957600080fd5b508035906020013561055f565b34801561020257600080fd5b50610148610581565b34801561021757600080fd5b50610148610587565b34801561022c57600080fd5b506101316004803603606081101561024357600080fd5b506001600160a01b0381358116916020810135909116906040013561058d565b34801561026f57600080fd5b5061014861070d565b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b0316610713565b60408051938452602084019290925282820152519081900360600190f35b610131610734565b3480156102dd57600080fd5b50610148610a2a565b3480156102f257600080fd5b50610148610a30565b34801561030757600080fd5b50610131610a36565b34801561031c57600080fd5b506101316004803603602081101561033357600080fd5b5035610a9b565b34801561034657600080fd5b50610148610b7b565b6000546001600160a01b0316331461036657600080fd5b60405147906001600160a01b0384169060648484020480156108fc02916000818181858888f193505050501580156103a2573d6000803e3d6000fd5b50505050565b600c5481565b6000546001600160a01b031633146103c557600080fd5b6001600160a01b038216600090815260076020526040902054156103ec576103ec82610b81565b60008111801561041257506001600160a01b038216600090815260076020526040902054155b156104255761042082610ca9565b610458565b8015801561044a57506001600160a01b03821660009081526007602052604090205415155b156104585761045882610d0a565b6001600160a01b03821660009081526007602052604090205460085461048991839161048391610df7565b90610e42565b6008556001600160a01b03821660009081526007602052604090208190556104b081610e9c565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546104f85750600061055a565b6001600160a01b03821660009081526007602052604081205461051a90610e9c565b6001600160a01b03841660009081526007602052604090206001015490915080821161054b5760009250505061055a565b6105558282610df7565b925050505b919050565b6000546001600160a01b0316331461057657600080fd5b600d91909155600e55565b60085481565b600e5481565b6000546001600160a01b031633146105a457600080fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b602083106106205780518252601f199092019160209182019101610601565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b50915091508180156106b55750805115806106b557508080602001905160208110156106b257600080fd5b50515b610706576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b0316331461074b57600080fd5b600354604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561079657600080fd5b505afa1580156107aa573d6000803e3d6000fd5b505050506040513d60208110156107c057600080fd5b505160408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d602081101561085657600080fd5b50518151829060009061086557fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061089057fe5b6001600160a01b0392831660209182029290920181019190915260015460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561092257818101518382015260200161090a565b50505050905001955050505050506000604051808303818588803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b5050600354604080516370a0823160e01b81523060048201529051600095506109e894508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109b657600080fd5b505afa1580156109ca573d6000803e3d6000fd5b505050506040513d60208110156109e057600080fd5b505190610df7565b6009549091506109f89082610e42565b600955600854600c54610a2291610a1991610a139085610eb9565b90610f12565b600b5490610e42565b600b55505050565b600b5481565b600a5481565b610a3f33610f54565b610a90576040805162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604482015290519081900360640190fd5b610a9933610b81565b565b6000546001600160a01b03163314610ab257600080fd5b60045480610ac05750610b78565b60008060005a90505b8482108015610ad757508383105b156107065783600f5410610aeb576000600f555b610b176004600f5481548110610afd57fe5b6000918252602090912001546001600160a01b0316610f54565b15610b4857610b486004600f5481548110610b2e57fe5b6000918252602090912001546001600160a01b0316610b81565b610b5d610b565a8390610df7565b8390610e42565b91505a600f8054600190810190915593909301929050610ac9565b50565b600d5481565b6001600160a01b038116600090815260076020526040902054610ba357610b78565b6000610bae826104d3565b90508015610ca557600a54610bc39082610e42565b600a556003546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610c1c57600080fd5b505af1158015610c30573d6000803e3d6000fd5b505050506040513d6020811015610c4657600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610c7b9082610e42565b6001600160a01b03831660009081526007602052604090206002810191909155546104b090610e9c565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610d1c57fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610d5457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610da257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610dd257fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610e3983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f90565b90505b92915050565b600082820183811015610e39576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610e3c600c54610a13600b5485610eb990919063ffffffff16565b600082610ec857506000610e3c565b82820282848281610ed557fe5b0414610e395760405162461bcd60e51b815260040180806020018281038252602181526020018061108d6021913960400191505060405180910390fd5b6000610e3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611027565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610e3c5750600e54610f89836104d3565b1192915050565b6000818484111561101f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fe4578181015183820152602001610fcc565b50505050905090810190601f1680156110115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836110765760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fe4578181015183820152602001610fcc565b50600083858161108257fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212201184442430240a42d221318ee636d34a66693127dde9f69c2e21abb49962facf64736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ec0a7a0c2439e8cb67b992b12ecd020ea943c7be
-----Decoded View---------------
Arg [0] : _router (address): 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ec0a7a0c2439e8cb67b992b12ecd020ea943c7be
Deployed ByteCode Sourcemap
3870:6403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7178:206;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7178:206:0;;-1:-1:-1;;;;;7178:206:0;;;;;;:::i;:::-;;4637:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5430:646;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5430:646:0;;-1:-1:-1;;;;;5430:646:0;;;;;;:::i;9142:479::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9142:479:0;-1:-1:-1;;;;;9142:479:0;;:::i;5221:201::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5221:201:0;;;;;;;:::i;4491:26::-;;;;;;;;;;;;;:::i;4744:54::-;;;;;;;;;;;;;:::i;6801:369::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6801:369:0;;;;;;;;;;;;;;;;;:::i;4524:29::-;;;;;;;;;;;;;:::i;4442:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4442:40:0;-1:-1:-1;;;;;4442:40:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:709;;;:::i;4598:32::-;;;;;;;;;;;;;:::i;4560:31::-;;;;;;;;;;;;;:::i;8974:160::-;;;;;;;;;;;;;:::i;7392:723::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7392:723:0;;:::i;4703:34::-;;;;;;;;;;;;;:::i;7178:206::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;7316:60:::1;::::0;7288:21:::1;::::0;-1:-1:-1;;;;;7316:24:0;::::1;::::0;7372:3:::1;7341:28:::0;;::::1;:34;7316:60:::0;::::1;;;::::0;::::1;::::0;;;7341:34;7316:24;:60;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5037:1;7178:206:::0;;:::o;4637:57::-;;;;:::o;5430:646::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;-1:-1:-1;;;;;5529:19:0;::::1;5558:1;5529:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;5526:92:::1;;5575:31;5594:11;5575:18;:31::i;:::-;5642:1;5633:6;:10;:45;;;;-1:-1:-1::0;;;;;;5647:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;5633:45:::1;5630:214;;;5694:27;5709:11;5694:14;:27::i;:::-;5630:214;;;5741:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;5756:19:0;::::1;5785:1;5756:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;5741:45:::1;5738:106;;;5802:30;5820:11;5802:17;:30::i;:::-;-1:-1:-1::0;;;;;5886:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;5870:11:::1;::::0;:55:::1;::::0;5918:6;;5870:43:::1;::::0;:15:::1;:43::i;:::-;:47:::0;::::1;:55::i;:::-;5856:11;:69:::0;-1:-1:-1;;;;;5936:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;6018:50:::1;5936:35:::0;6018:22:::1;:50::i;:::-;-1:-1:-1::0;;;;;5982:19:0;;;::::1;;::::0;;;:6:::1;:19;::::0;;;;-1:-1:-1;5982:33:0::1;:86:::0;;;;-1:-1:-1;5430:646:0:o;9142:479::-;-1:-1:-1;;;;;9234:19:0;;9211:7;9234:19;;;:6;:19;;;;;:26;9231:48;;-1:-1:-1;9275:1:0;9268:8;;9231:48;-1:-1:-1;;;;;9350:19:0;;9291:33;9350:19;;;:6;:19;;;;;:26;9327:50;;:22;:50::i;:::-;-1:-1:-1;;;;;9423:19:0;;9388:32;9423:19;;;:6;:19;;;;;-1:-1:-1;9423:33:0;;9291:86;;-1:-1:-1;9472:53:0;;;9469:70;;9535:1;9528:8;;;;;;9469:70;9558:55;:25;9588:24;9558:29;:55::i;:::-;9551:62;;;;9142:479;;;;:::o;5221:201::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;5343:9:::1;:24:::0;;;;5378:15:::1;:36:::0;5221:201::o;4491:26::-;;;;:::o;4744:54::-;;;;:::o;6801:369::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;7004:45:::1;::::0;;-1:-1:-1;;;;;7004:45:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7004:45:0::1;-1:-1:-1::0;;;7004:45:0::1;::::0;;6993:57;;;;-1:-1:-1;;;;6993:10:0;;::::1;::::0;7004:45;6993:57;;;7004:45;6993:57;;7004:45;6993:57:::1;;;;;;::::0;;;;-1:-1:-1;;6993:57:0;;;;::::1;::::0;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6957:93;;;;7069:7;:57;;;;-1:-1:-1::0;7081:11:0;;:16;;:44:::1;;;7112:4;7101:24;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7101:24:0;7081:44:::1;7061:101;;;::::0;;-1:-1:-1;;;7061:101:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5037:1;;6801:369:::0;;;:::o;4524:29::-;;;;:::o;4442:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6084:709::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;6176:11:::1;::::0;:36:::1;::::0;;-1:-1:-1;;;6176:36:0;;6206:4:::1;6176:36;::::0;::::1;::::0;;;-1:-1:-1;;;;;;;6176:11:0::1;::::0;-1:-1:-1;;6176:36:0;;;;;::::1;::::0;;;;;;;;:11;:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6176:36:0;6249:16:::1;::::0;;6263:1:::1;6249:16:::0;;;;;::::1;::::0;;6176:36;;-1:-1:-1;6225:21:0::1;::::0;6249:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;6286:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;6286:13:0;;;;6225:40;;-1:-1:-1;;;;;;6286:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;6286:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6286:13:0;6276:7;;:4;;6281:1:::1;::::0;6276:7:::1;;;;-1:-1:-1::0;;;;;6276:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;6328:11:::1;::::0;6310:7;;6328:11;::::1;::::0;6310:7;;-1:-1:-1;;6310:7:0;::::1;;;;;-1:-1:-1::0;;;;;6310:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;-1:-1:-1;6353:6:0;:179:::1;::::0;-1:-1:-1;;;6353:179:0;;:6:::1;:179;::::0;::::1;::::0;;;6486:4:::1;6353:179:::0;;;;;;6506:15:::1;6353:179:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::1;::::0;-1:-1:-1;;6418:9:0::1;::::0;6353:6;;:179;;6486:4;;6506:15;;6353:179;;;;;;;::::1;::::0;::::1;::::0;;;:6;:179:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6562:11:0::1;::::0;:36:::1;::::0;;-1:-1:-1;;;6562:36:0;;6592:4:::1;6562:36;::::0;::::1;::::0;;;-1:-1:-1;;;6562:55:0::1;::::0;-1:-1:-1;6603:13:0;;-1:-1:-1;;;;;;6562:11:0;;::::1;::::0;-1:-1:-1;;6562:36:0;;;;;::::1;::::0;;;;;;;;;:11;:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6562:36:0;;:40:::1;:55::i;:::-;6645:14;::::0;6545:72;;-1:-1:-1;6645:26:0::1;::::0;6545:72;6645:18:::1;:26::i;:::-;6628:14;:43:::0;6772:11:::1;::::0;6724:31:::1;::::0;6702:83:::1;::::0;6724:60:::1;::::0;:43:::1;::::0;6760:6;6724:35:::1;:43::i;:::-;:47:::0;::::1;:60::i;:::-;6702:17;::::0;;:21:::1;:83::i;:::-;6682:17;:103:::0;-1:-1:-1;;;6084:709:0:o;4598:32::-;;;;:::o;4560:31::-;;;;:::o;8974:160::-;9029:28;9046:10;9029:16;:28::i;:::-;9021:64;;;;;-1:-1:-1;;;9021:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9096:30;9115:10;9096:18;:30::i;:::-;8974:160::o;7392:723::-;5028:6;;-1:-1:-1;;;;;5028:6:0;5014:10;:20;5006:29;;;;;;7488:12:::1;:19:::0;7523:21;7520:37:::1;;7548:7;;;7520:37;7569:18;7602:15:::0;7632::::1;7650:9;7632:27;;7672:436;7688:3;7678:7;:13;:46;;;;;7708:16;7695:10;:29;7678:46;7672:436;;;7762:16;7746:12;;:32;7743:57;;7796:1;7781:12;:16:::0;7743:57:::1;7819:44;7836:12;7849;;7836:26;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7836:26:0::1;7819:16;:44::i;:::-;7816:129;;;7883:46;7902:12;7915;;7902:26;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7902:26:0::1;7883:18;:46::i;:::-;7971:35;7983:22;7995:9;7983:7:::0;;:11:::1;:22::i;:::-;7971:7:::0;;:11:::1;:35::i;:::-;7961:45;;8031:9;8055:12;:14:::0;;::::1;::::0;;::::1;::::0;;;8084:12;;;::::1;::::0;8021:19;-1:-1:-1;7672:436:0::1;;5037:1;7392:723:::0;:::o;4703:34::-;;;;:::o;8366:596::-;-1:-1:-1;;;;;8438:19:0;;;;;;:6;:19;;;;;:26;8435:46;;8472:7;;8435:46;8493:14;8510:30;8528:11;8510:17;:30::i;:::-;8493:47;-1:-1:-1;8554:10:0;;8551:404;;8599:16;;:28;;8620:6;8599:20;:28::i;:::-;8580:16;:47;8642:11;;:41;;;-1:-1:-1;;;8642:41:0;;-1:-1:-1;;;;;8642:41:0;;;;;;;;;;;;;;;:11;;;;;-1:-1:-1;;8642:41:0;;;;;;;;;;;;;;-1:-1:-1;8642:11:0;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;8698:30:0;;;;;;:17;8642:41;8698:30;;;;;;;8731:15;8698:48;;8797:6;:19;;;;;:33;;;:45;;8835:6;8797:37;:45::i;:::-;-1:-1:-1;;;;;8761:19:0;;;;;;:6;:19;;;;;:33;;;:81;;;;8916:26;8893:50;;:22;:50::i;8551:404::-;8366:596;;:::o;9807:167::-;9906:12;:19;;-1:-1:-1;;;;;9872:31:0;;;;;;;;:18;:31;;;;;:53;;;-1:-1:-1;9936:30:0;;;;;;;;;;;;;;-1:-1:-1;;;;;;9936:30:0;;;;;;9807:167::o;9982:288::-;10098:12;10111:19;;-1:-1:-1;;10111:21:0;;;10098:35;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10063:31:0;;;;;:18;:31;;;;;;;;10050:12;:45;;10098:35;;;;;10050:12;:45;;;;;;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;10050:83:0;-1:-1:-1;;;;;10050:83:0;;;;;;10202:31;;;;;:18;:31;;;;;;;;10163:12;10176:19;;10202:31;;:18;10050:45;-1:-1:-1;;10176:21:0;;;10163:35;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10163:35:0;10144:55;;;;;;;;;;;;:89;10244:12;:18;;;;;;;;;;;;;;-1:-1:-1;;10244:18:0;;;;;;;-1:-1:-1;;;;;;10244:18:0;;;;;;-1:-1:-1;9982:288:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;359:50;;281:136;;;;;:::o;94:179::-;152:7;184:5;;;208:6;;;;200:46;;;;;-1:-1:-1;;;200:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9629:170;9699:7;9726:65;9759:31;;9726:28;9736:17;;9726:5;:9;;:28;;;;:::i;623:224::-;681:7;705:6;701:25;;-1:-1:-1;722:1:0;715:8;;701:25;748:5;;;752:1;748;:5;:1;772:5;;;;;:10;764:56;;;;-1:-1:-1;;;764:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:132;913:7;940:39;944:1;947;940:39;;;;;;;;;;;;;;;;;:3;:39::i;8127:231::-;8254:9;;-1:-1:-1;;;;;8221:30:0;;8197:4;8221:30;;;:17;:30;;;;;;8197:4;;8266:15;8221:42;;:60;:129;;;;;8335:15;;8302:30;8320:11;8302:17;:30::i;:::-;:48;;8127:231;-1:-1:-1;;8127:231:0:o;425:190::-;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:5:0;;;425:190::o;995:189::-;1081:7;1116:12;1109:5;1101:28;;;;-1:-1:-1;;;1101:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1101:28:0;;;;;;;;;;;;;;;;;;1140:9;1156:1;1152;:5;;;;;;;995:189;-1:-1:-1;;;;;995:189:0:o
Swarm Source
ipfs://1184442430240a42d221318ee636d34a66693127dde9f69c2e21abb49962facf
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.