Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 eDOGE
Holders
259
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 2 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ElonDoge
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-04 */ /* http://ed-token.com https://medium.com/@eDOGE/elon-doge-d5a6227e114a https://t.me/ElonDoge_ERC https://twitter.com/ElonDogeETH Elon Musk’s influence on Dogecoin has been instrumental in driving its popularity and value in the market. */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.19; 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 ERC20 { 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 InterfaceLP { function sync() external; } contract ElonDoge is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "ElonDoge"; string constant _symbol = "eDOGE"; uint8 constant _decimals = 2; uint256 _totalSupply = 1 * 10**15 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); uint256 public _maxWalletToken = _totalSupply.mul(1).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeexempt; mapping (address => bool) isTxLimitexempt; uint256 private liquidityFee = 1; uint256 private marketingFee = 2; uint256 private devFee = 1; uint256 private utilityFee = 1; uint256 private burnFee = 0; uint256 public totalFee = utilityFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 1600; uint256 buypercent = 1600; uint256 transferpercent = 100; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private utilityFeeReceiver; address private burnFeeReceiver; uint256 targetLiquidity = 30; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public whitelistMode = false; mapping (address => bool) public iswhitelisted; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 25 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isFeeexempt[msg.sender] = true; isFeeexempt[devFeeReceiver] = true; isTxLimitexempt[msg.sender] = true; isTxLimitexempt[pair] = true; isTxLimitexempt[devFeeReceiver] = true; isTxLimitexempt[marketingFeeReceiver] = true; isTxLimitexempt[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0xcC882EC82ACDe2d415568F7B28eF9a061d5409f5; devFeeReceiver = 0x13331eE13580D9cC961DCa5De3D8d50e332c18Da; utilityFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} 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, type(uint256).max); } 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] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function editMaxHolding(uint256 maxWallPercent) external onlyOwner { require(_maxWalletToken >= _totalSupply / 1000); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxSellAmount(uint256 maxTXPercent) external onlyOwner { require(_maxTxAmount >= _totalSupply / 1000); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function removelimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); if(whitelistMode){ require(iswhitelisted[recipient],"Not whitelisted"); } } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} // Checks max transaction limit checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeexempt[sender] || isFeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitexempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeexempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function removeStuckETH(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(utilityFeeReceiver).transfer(amountETH * amountPercentage / 100); } function unclogContract() external onlyOwner { swapBack(); } function transfer() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function updateFeeSpread(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner { sellpercent = _sell; buypercent = _buy; transferpercent = _trans; } function enableWhitelist(bool _status) public onlyOwner { whitelistMode = _status; } function setIsWhitelisted(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { iswhitelisted[addresses[i]] = status; } } function openTrade() public onlyOwner { TradingOpen = true; } function dogeToTheMoon() public onlyOwner { buypercent = 550; sellpercent = 1000; transferpercent = 1500; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setInternalAddress(address holder, bool exempt) external onlyOwner { isFeeexempt[holder] = exempt; isTxLimitexempt[holder] = exempt; } function updateFees(uint256 _liquidityFee, uint256 _utilityFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; utilityFee = _utilityFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_utilityFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _utilityFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; utilityFeeReceiver = _utilityFeeReceiver; } function setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountTokens); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dogeToTheMoon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"iswhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclogContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updateFeeSpread","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326002600a620006d8565b620000459066038d7ea4c68000620006e9565b600581905562000066906064906200005f906001620004a8565b906200053f565b60065560055462000081906064906200005f906001620004a8565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000b8919062000703565b620000c4919062000703565b620000d0919062000703565b620000dc919062000703565b6011556064601281905561064060138190556014556015819055601e601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200012d906019620006e9565b62000139919062000719565b6022553480156200014957600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200073c565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b491906200073c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000306573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032c91906200073c565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673cc882ec82acde2d415568f7b28ef9a061d5409f517909455855485167313331ee13580d9cc961dca5de3d8d50e332c18da1790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b7565b600082600003620004bc5750600062000539565b6000620004ca8385620006e9565b905082620004d9858362000719565b14620005365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058960201b60201c565b60008183620005ad5760405162461bcd60e51b81526004016200052d919062000767565b506000620005bc848662000719565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061c578160001904821115620006005762000600620005c5565b808516156200060e57918102915b93841c9390800290620005e0565b509250929050565b600082620006355750600162000539565b81620006445750600062000539565b81600181146200065d5760028114620006685762000688565b600191505062000539565b60ff8411156200067c576200067c620005c5565b50506001821b62000539565b5060208310610133831016604e8410600b8410161715620006ad575081810a62000539565b620006b98383620005db565b8060001904821115620006d057620006d0620005c5565b029392505050565b60006200053660ff84168362000624565b8082028115828204841417620005395762000539620005c5565b80820180821115620005395762000539620005c5565b6000826200073757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074f57600080fd5b81516001600160a01b03811681146200053657600080fd5b600060208083528351808285015260005b81811015620007965785810183015185820160400152820162000778565b506000604082860101526040601f19601f8301168501019250505092915050565b61238780620007c76000396000f3fe6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610297578063095ea7b3146102c8578063115db610146102e85780631161ae391461031757806318160ddd146103375780631df4ccfc1461034c578063201e79911461036257806323b872dd1461038257806328f4d2a0146103a25780632ad75672146103b75780632b112e49146103d7578063313ce567146103ec578063571ac8b0146104085780635e4ae81b1461042857806360c898871461043d5780636ddd17131461045d57806370a082311461047757806370c757ec14610497578063715018a6146104b857806378109e54146104cd5780637d1db4a5146104e35780637fa4a5bb146104f95780638821004f14610519578063893d20e8146105395780638a4068dd1461055b5780638da5cb5b1461057057806395d89b4114610585578063992c58e4146105b3578063a8aa1b31146105d3578063a9059cbb146105f3578063aba1193d14610613578063b2bdfa7b14610633578063d17b71f914610653578063d51ed1c814610673578063dd62ed3e14610693578063e5e52d7c146106d9578063e99c9d09146106f9578063f0a9e36514610719578063f282022914610739578063f2fde38b1461074e578063f887ea401461076e578063fb201b1d1461078e57600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e2b565b6107a3565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526008815267456c6f6e446f676560c01b60208201525b6040516102549190611e48565b3480156102a357600080fd5b50601f546102b890600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d457600080fd5b506102b86102e3366004611eb2565b6107f4565b3480156102f457600080fd5b506102b8610303366004611edc565b602080526000908152604090205460ff1681565b34801561032357600080fd5b506102b8610332366004611ef7565b610861565b34801561034357600080fd5b5060055461024a565b34801561035857600080fd5b5061024a60115481565b34801561036e57600080fd5b5061023261037d366004611ef7565b610875565b34801561038e57600080fd5b506102b861039d366004611f19565b6108aa565b3480156103ae57600080fd5b5061023261096c565b3480156103c357600080fd5b506102326103d2366004611f55565b6109a0565b3480156103e357600080fd5b5061024a610a29565b3480156103f857600080fd5b5060405160028152602001610254565b34801561041457600080fd5b506102b8610423366004611edc565b610a72565b34801561043457600080fd5b50610232610a80565b34801561044957600080fd5b50610232610458366004611fba565b610ab7565b34801561046957600080fd5b506021546102b89060ff1681565b34801561048357600080fd5b5061024a610492366004611edc565b610b56565b3480156104a357600080fd5b50601f546102b890600160a81b900460ff1681565b3480156104c457600080fd5b50610232610b71565b3480156104d957600080fd5b5061024a60075481565b3480156104ef57600080fd5b5061024a60065481565b34801561050557600080fd5b5061023261051436600461203f565b610bd3565b34801561052557600080fd5b50610232610534366004612076565b610c3b565b34801561054557600080fd5b5061054e610c8f565b604051610254919061208f565b34801561056757600080fd5b50610232610c99565b34801561057c57600080fd5b5061054e610cd5565b34801561059157600080fd5b5060408051808201909152600581526465444f474560d81b602082015261028a565b3480156105bf57600080fd5b506102326105ce3660046120a3565b610ce4565b3480156105df57600080fd5b50601f5461054e906001600160a01b031681565b3480156105ff57600080fd5b506102b861060e366004611eb2565b610daa565b34801561061f57600080fd5b5061023261062e3660046120e6565b610db7565b34801561063f57600080fd5b5060005461054e906001600160a01b031681565b34801561065f57600080fd5b5061023261066e366004612076565b610df8565b34801561067f57600080fd5b5061024a61068e366004612076565b610e61565b34801561069f57600080fd5b5061024a6106ae366004612104565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106e557600080fd5b506102326106f4366004612137565b610ea1565b34801561070557600080fd5b50610232610714366004612076565b610edc565b34801561072557600080fd5b506102b8610734366004611eb2565b610f45565b34801561074557600080fd5b50610232611036565b34801561075a57600080fd5b50610232610769366004611edc565b611074565b34801561077a57600080fd5b50601d5461054e906001600160a01b031681565b34801561079a57600080fd5b5061023261114c565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016107cd90612163565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061084f9086815260200190565b60405180910390a35060015b92915050565b60008261086d83610e61565b119392505050565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016107cd90612163565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610957576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093291849061118b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109628484846111c5565b90505b9392505050565b6000546001600160a01b031633146109965760405162461bcd60e51b81526004016107cd90612163565b61099e61158b565b565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016107cd90612163565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a6d90610a45906001600160a01b0316610b56565b600354610a6790610a5e906001600160a01b0316610b56565b60055490611972565b90611972565b905090565b600061085b826000196107f4565b6000546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107cd90612163565b6005546006819055600755565b6000546001600160a01b03163314610ae15760405162461bcd60e51b81526004016107cd90612163565b60005b82811015610b50578160206000868685818110610b0357610b03612198565b9050602002016020810190610b189190611edc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b49816121c4565b9050610ae4565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b9b5760405162461bcd60e51b81526004016107cd90612163565b600080546040516001600160a01b0390911690600080516020612312833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c5885856121dd565b610c6291906121f4565b6040518115909202916000818181858888f19350505050158015610c8a573d6000803e3d6000fd5b505050565b6000610a6d610cd5565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610cd2573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016107cd90612163565b600c869055600f859055600d849055600e8390556010829055610d3f82610d39858188818c8c6119b4565b906119b4565b6011556012819055610d526005826121f4565b60115410610da25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cd565b505050505050565b60006109653384846111c5565b6000546001600160a01b03163314610de15760405162461bcd60e51b81526004016107cd90612163565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e225760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610e3291906121f4565b6007541015610e4057600080fd5b6103e881600554610e5191906121dd565b610e5b91906121f4565b60075550565b600061085b610e6e610a29565b601f54610e9b90610e9490600290610e8e906001600160a01b0316610b56565b90611a11565b8590611a11565b90611a93565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016107cd90612163565b601391909155601491909155601555565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610f1691906121f4565b6006541015610f2457600080fd5b6103e881600554610f3591906121dd565b610f3f91906121f4565b60065550565b600081600003610fbf576040516370a0823160e01b81526001600160a01b038416906370a0823190610f7b90309060040161208f565b602060405180830381865afa158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612216565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061222f565b6000546001600160a01b031633146110605760405162461bcd60e51b81526004016107cd90612163565b6102266014556103e86013556105dc601555565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cd565b600080546040516001600160a01b038085169392169160008051602061231283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111765760405162461bcd60e51b81526004016107cd90612163565b601f805460ff60a01b1916600160a01b179055565b600081848411156111af5760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc848661224c565b95945050505050565b60235460009060ff16156111e5576111de848484611ad2565b9050610965565b6001600160a01b03841660009081526001602052604090205460ff1615801561122757506001600160a01b03831660009081526001602052604090205460ff16155b156112e757601f54600160a01b900460ff1661127c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cd565b601f54600160a81b900460ff16156112e7576001600160a01b038316600090815260208052604090205460ff166112e75760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107cd565b6001600160a01b03841660009081526001602052604090205460ff1615801561131957506001600160a01b0383163014155b801561133357506003546001600160a01b03848116911614155b801561134d5750601f546001600160a01b03848116911614155b80156113675750601a546001600160a01b03848116911614155b801561138157506017546001600160a01b03848116911614155b80156113a657506001600160a01b0383166000908152600b602052604090205460ff16155b1561143c5760006113b684610b56565b6007549091506113c6848361225f565b111561143a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cd565b505b6114468483611ba6565b61144e611c13565b1561145b5761145b61158b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114ad91849061118b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806114fa57506001600160a01b0384166000908152600a602052604090205460ff165b61150e57611509858486611c62565b611510565b825b6001600160a01b03851660009081526008602052604090205490915061153690826119b4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612332833981519152906115789085815260200190565b60405180910390a3506001949350505050565b6023805460ff19166001179055601b54601c546000916115aa91610861565b6115b657600c546115b9565b60005b905060006115dd6002610e9b601154610e9b86602254611a1190919063ffffffff16565b905060006115f68260225461197290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630612198565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061166157611661612198565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116ab908690600090879030904290600401612272565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b5050505060006116f2824761197290919063ffffffff16565b9050600061170d611704886002611a93565b60115490611972565b905060006117226002610e9b8481878d611a11565b9050600061173f83610e9b600d5487611a1190919063ffffffff16565b9050600061175c84610e9b600f5488611a1190919063ffffffff16565b9050600061177985610e9b600e5489611a1190919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117cb576040519150601f19603f3d011682016040523d82523d6000602084013e6117d0565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611875576040519150601f19603f3d011682016040523d82523d6000602084013e61187a565b606091505b5060009250508b15905061195a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191d91906122e3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600061096583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118b565b6000806119c1838561225f565b9050838110156109655760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107cd565b600082600003611a235750600061085b565b6000611a2f83856121dd565b905082611a3c85836121f4565b146109655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cd565b600061096583836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611def565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2391849061118b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5290836119b4565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061233283398151915290611b949086815260200190565b60405180910390a35060019392505050565b60065481111580611bcf57506001600160a01b0382166000908152600b602052604090205460ff165b611c0f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cd565b5050565b601f546000906001600160a01b03163314801590611c34575060235460ff16155b8015611c42575060215460ff165b8015610a6d57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c885750601354611ca3565b601f546001600160a01b0390811690861603611ca357506014545b6000611cd06012546064611cb791906121dd565b610e9b84610e8e6011548a611a1190919063ffffffff16565b90506000611cef601154610e9b60105485611a1190919063ffffffff16565b90506000611cfd8383611972565b30600090815260086020526040902054909150611d1a90826119b4565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d4890836119b4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612332833981519152910160405180910390a38115611dd957600554611da29083611972565b6005556004546040518381526001600160a01b03918216918a16906000805160206123328339815191529060200160405180910390a35b611de38784611972565b98975050505050505050565b60008183611e105760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc84866121f4565b8015158114610cd257600080fd5b600060208284031215611e3d57600080fd5b813561096581611e1d565b600060208083528351808285015260005b81811015611e7557858101830151858201604001528201611e59565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ead57600080fd5b919050565b60008060408385031215611ec557600080fd5b611ece83611e96565b946020939093013593505050565b600060208284031215611eee57600080fd5b61096582611e96565b60008060408385031215611f0a57600080fd5b50508035926020909101359150565b600080600060608486031215611f2e57600080fd5b611f3784611e96565b9250611f4560208501611e96565b9150604084013590509250925092565b600080600080600060a08688031215611f6d57600080fd5b611f7686611e96565b9450611f8460208701611e96565b9350611f9260408701611e96565b9250611fa060608701611e96565b9150611fae60808701611e96565b90509295509295909350565b600080600060408486031215611fcf57600080fd5b83356001600160401b0380821115611fe657600080fd5b818601915086601f830112611ffa57600080fd5b81358181111561200957600080fd5b8760208260051b850101111561201e57600080fd5b6020928301955093505084013561203481611e1d565b809150509250925092565b6000806040838503121561205257600080fd5b61205b83611e96565b9150602083013561206b81611e1d565b809150509250929050565b60006020828403121561208857600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120bc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120f957600080fd5b8235611ece81611e1d565b6000806040838503121561211757600080fd5b61212083611e96565b915061212e60208401611e96565b90509250929050565b60008060006060848603121561214c57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121d6576121d66121ae565b5060010190565b808202811582820484141761085b5761085b6121ae565b60008261221157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561222857600080fd5b5051919050565b60006020828403121561224157600080fd5b815161096581611e1d565b8181038181111561085b5761085b6121ae565b8082018082111561085b5761085b6121ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122c25784516001600160a01b03168352938301939183019160010161229d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f857600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220331bc6601226586d65467fccb2c178b537804454a23b1de71c5e4bd1d52eaf9964736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610297578063095ea7b3146102c8578063115db610146102e85780631161ae391461031757806318160ddd146103375780631df4ccfc1461034c578063201e79911461036257806323b872dd1461038257806328f4d2a0146103a25780632ad75672146103b75780632b112e49146103d7578063313ce567146103ec578063571ac8b0146104085780635e4ae81b1461042857806360c898871461043d5780636ddd17131461045d57806370a082311461047757806370c757ec14610497578063715018a6146104b857806378109e54146104cd5780637d1db4a5146104e35780637fa4a5bb146104f95780638821004f14610519578063893d20e8146105395780638a4068dd1461055b5780638da5cb5b1461057057806395d89b4114610585578063992c58e4146105b3578063a8aa1b31146105d3578063a9059cbb146105f3578063aba1193d14610613578063b2bdfa7b14610633578063d17b71f914610653578063d51ed1c814610673578063dd62ed3e14610693578063e5e52d7c146106d9578063e99c9d09146106f9578063f0a9e36514610719578063f282022914610739578063f2fde38b1461074e578063f887ea401461076e578063fb201b1d1461078e57600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e2b565b6107a3565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526008815267456c6f6e446f676560c01b60208201525b6040516102549190611e48565b3480156102a357600080fd5b50601f546102b890600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d457600080fd5b506102b86102e3366004611eb2565b6107f4565b3480156102f457600080fd5b506102b8610303366004611edc565b602080526000908152604090205460ff1681565b34801561032357600080fd5b506102b8610332366004611ef7565b610861565b34801561034357600080fd5b5060055461024a565b34801561035857600080fd5b5061024a60115481565b34801561036e57600080fd5b5061023261037d366004611ef7565b610875565b34801561038e57600080fd5b506102b861039d366004611f19565b6108aa565b3480156103ae57600080fd5b5061023261096c565b3480156103c357600080fd5b506102326103d2366004611f55565b6109a0565b3480156103e357600080fd5b5061024a610a29565b3480156103f857600080fd5b5060405160028152602001610254565b34801561041457600080fd5b506102b8610423366004611edc565b610a72565b34801561043457600080fd5b50610232610a80565b34801561044957600080fd5b50610232610458366004611fba565b610ab7565b34801561046957600080fd5b506021546102b89060ff1681565b34801561048357600080fd5b5061024a610492366004611edc565b610b56565b3480156104a357600080fd5b50601f546102b890600160a81b900460ff1681565b3480156104c457600080fd5b50610232610b71565b3480156104d957600080fd5b5061024a60075481565b3480156104ef57600080fd5b5061024a60065481565b34801561050557600080fd5b5061023261051436600461203f565b610bd3565b34801561052557600080fd5b50610232610534366004612076565b610c3b565b34801561054557600080fd5b5061054e610c8f565b604051610254919061208f565b34801561056757600080fd5b50610232610c99565b34801561057c57600080fd5b5061054e610cd5565b34801561059157600080fd5b5060408051808201909152600581526465444f474560d81b602082015261028a565b3480156105bf57600080fd5b506102326105ce3660046120a3565b610ce4565b3480156105df57600080fd5b50601f5461054e906001600160a01b031681565b3480156105ff57600080fd5b506102b861060e366004611eb2565b610daa565b34801561061f57600080fd5b5061023261062e3660046120e6565b610db7565b34801561063f57600080fd5b5060005461054e906001600160a01b031681565b34801561065f57600080fd5b5061023261066e366004612076565b610df8565b34801561067f57600080fd5b5061024a61068e366004612076565b610e61565b34801561069f57600080fd5b5061024a6106ae366004612104565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106e557600080fd5b506102326106f4366004612137565b610ea1565b34801561070557600080fd5b50610232610714366004612076565b610edc565b34801561072557600080fd5b506102b8610734366004611eb2565b610f45565b34801561074557600080fd5b50610232611036565b34801561075a57600080fd5b50610232610769366004611edc565b611074565b34801561077a57600080fd5b50601d5461054e906001600160a01b031681565b34801561079a57600080fd5b5061023261114c565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016107cd90612163565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061084f9086815260200190565b60405180910390a35060015b92915050565b60008261086d83610e61565b119392505050565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016107cd90612163565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610957576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093291849061118b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109628484846111c5565b90505b9392505050565b6000546001600160a01b031633146109965760405162461bcd60e51b81526004016107cd90612163565b61099e61158b565b565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016107cd90612163565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a6d90610a45906001600160a01b0316610b56565b600354610a6790610a5e906001600160a01b0316610b56565b60055490611972565b90611972565b905090565b600061085b826000196107f4565b6000546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107cd90612163565b6005546006819055600755565b6000546001600160a01b03163314610ae15760405162461bcd60e51b81526004016107cd90612163565b60005b82811015610b50578160206000868685818110610b0357610b03612198565b9050602002016020810190610b189190611edc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b49816121c4565b9050610ae4565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b9b5760405162461bcd60e51b81526004016107cd90612163565b600080546040516001600160a01b0390911690600080516020612312833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c5885856121dd565b610c6291906121f4565b6040518115909202916000818181858888f19350505050158015610c8a573d6000803e3d6000fd5b505050565b6000610a6d610cd5565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610cd2573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016107cd90612163565b600c869055600f859055600d849055600e8390556010829055610d3f82610d39858188818c8c6119b4565b906119b4565b6011556012819055610d526005826121f4565b60115410610da25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cd565b505050505050565b60006109653384846111c5565b6000546001600160a01b03163314610de15760405162461bcd60e51b81526004016107cd90612163565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e225760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610e3291906121f4565b6007541015610e4057600080fd5b6103e881600554610e5191906121dd565b610e5b91906121f4565b60075550565b600061085b610e6e610a29565b601f54610e9b90610e9490600290610e8e906001600160a01b0316610b56565b90611a11565b8590611a11565b90611a93565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016107cd90612163565b601391909155601491909155601555565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610f1691906121f4565b6006541015610f2457600080fd5b6103e881600554610f3591906121dd565b610f3f91906121f4565b60065550565b600081600003610fbf576040516370a0823160e01b81526001600160a01b038416906370a0823190610f7b90309060040161208f565b602060405180830381865afa158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612216565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061222f565b6000546001600160a01b031633146110605760405162461bcd60e51b81526004016107cd90612163565b6102266014556103e86013556105dc601555565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cd565b600080546040516001600160a01b038085169392169160008051602061231283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111765760405162461bcd60e51b81526004016107cd90612163565b601f805460ff60a01b1916600160a01b179055565b600081848411156111af5760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc848661224c565b95945050505050565b60235460009060ff16156111e5576111de848484611ad2565b9050610965565b6001600160a01b03841660009081526001602052604090205460ff1615801561122757506001600160a01b03831660009081526001602052604090205460ff16155b156112e757601f54600160a01b900460ff1661127c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cd565b601f54600160a81b900460ff16156112e7576001600160a01b038316600090815260208052604090205460ff166112e75760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107cd565b6001600160a01b03841660009081526001602052604090205460ff1615801561131957506001600160a01b0383163014155b801561133357506003546001600160a01b03848116911614155b801561134d5750601f546001600160a01b03848116911614155b80156113675750601a546001600160a01b03848116911614155b801561138157506017546001600160a01b03848116911614155b80156113a657506001600160a01b0383166000908152600b602052604090205460ff16155b1561143c5760006113b684610b56565b6007549091506113c6848361225f565b111561143a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cd565b505b6114468483611ba6565b61144e611c13565b1561145b5761145b61158b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114ad91849061118b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806114fa57506001600160a01b0384166000908152600a602052604090205460ff165b61150e57611509858486611c62565b611510565b825b6001600160a01b03851660009081526008602052604090205490915061153690826119b4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612332833981519152906115789085815260200190565b60405180910390a3506001949350505050565b6023805460ff19166001179055601b54601c546000916115aa91610861565b6115b657600c546115b9565b60005b905060006115dd6002610e9b601154610e9b86602254611a1190919063ffffffff16565b905060006115f68260225461197290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630612198565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061166157611661612198565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116ab908690600090879030904290600401612272565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b5050505060006116f2824761197290919063ffffffff16565b9050600061170d611704886002611a93565b60115490611972565b905060006117226002610e9b8481878d611a11565b9050600061173f83610e9b600d5487611a1190919063ffffffff16565b9050600061175c84610e9b600f5488611a1190919063ffffffff16565b9050600061177985610e9b600e5489611a1190919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117cb576040519150601f19603f3d011682016040523d82523d6000602084013e6117d0565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611875576040519150601f19603f3d011682016040523d82523d6000602084013e61187a565b606091505b5060009250508b15905061195a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191d91906122e3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600061096583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118b565b6000806119c1838561225f565b9050838110156109655760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107cd565b600082600003611a235750600061085b565b6000611a2f83856121dd565b905082611a3c85836121f4565b146109655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cd565b600061096583836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611def565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2391849061118b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5290836119b4565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061233283398151915290611b949086815260200190565b60405180910390a35060019392505050565b60065481111580611bcf57506001600160a01b0382166000908152600b602052604090205460ff165b611c0f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cd565b5050565b601f546000906001600160a01b03163314801590611c34575060235460ff16155b8015611c42575060215460ff165b8015610a6d57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c885750601354611ca3565b601f546001600160a01b0390811690861603611ca357506014545b6000611cd06012546064611cb791906121dd565b610e9b84610e8e6011548a611a1190919063ffffffff16565b90506000611cef601154610e9b60105485611a1190919063ffffffff16565b90506000611cfd8383611972565b30600090815260086020526040902054909150611d1a90826119b4565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d4890836119b4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612332833981519152910160405180910390a38115611dd957600554611da29083611972565b6005556004546040518381526001600160a01b03918216918a16906000805160206123328339815191529060200160405180910390a35b611de38784611972565b98975050505050505050565b60008183611e105760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc84866121f4565b8015158114610cd257600080fd5b600060208284031215611e3d57600080fd5b813561096581611e1d565b600060208083528351808285015260005b81811015611e7557858101830151858201604001528201611e59565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ead57600080fd5b919050565b60008060408385031215611ec557600080fd5b611ece83611e96565b946020939093013593505050565b600060208284031215611eee57600080fd5b61096582611e96565b60008060408385031215611f0a57600080fd5b50508035926020909101359150565b600080600060608486031215611f2e57600080fd5b611f3784611e96565b9250611f4560208501611e96565b9150604084013590509250925092565b600080600080600060a08688031215611f6d57600080fd5b611f7686611e96565b9450611f8460208701611e96565b9350611f9260408701611e96565b9250611fa060608701611e96565b9150611fae60808701611e96565b90509295509295909350565b600080600060408486031215611fcf57600080fd5b83356001600160401b0380821115611fe657600080fd5b818601915086601f830112611ffa57600080fd5b81358181111561200957600080fd5b8760208260051b850101111561201e57600080fd5b6020928301955093505084013561203481611e1d565b809150509250925092565b6000806040838503121561205257600080fd5b61205b83611e96565b9150602083013561206b81611e1d565b809150509250929050565b60006020828403121561208857600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120bc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120f957600080fd5b8235611ece81611e1d565b6000806040838503121561211757600080fd5b61212083611e96565b915061212e60208401611e96565b90509250929050565b60008060006060848603121561214c57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121d6576121d66121ae565b5060010190565b808202811582820484141761085b5761085b6121ae565b60008261221157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561222857600080fd5b5051919050565b60006020828403121561224157600080fd5b815161096581611e1d565b8181038181111561085b5761085b6121ae565b8082018082111561085b5761085b6121ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122c25784516001600160a01b03168352938301939183019160010161229d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f857600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220331bc6601226586d65467fccb2c178b537804454a23b1de71c5e4bd1d52eaf9964736f6c63430008130033
Deployed Bytecode Sourcemap
5249:14037:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14703:98;;;;;;;;;;-1:-1:-1;14703:98:0;;;;;:::i;:::-;;:::i;:::-;;7045:55;;;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;7045:55:0;;;;;;;;8582:80;;;;;;;;;;-1:-1:-1;8654:5:0;;;;;;;;;;;;-1:-1:-1;;;8654:5:0;;;;8582:80;;;;;;;:::i;6869:31::-;;;;;;;;;;-1:-1:-1;6869:31:0;;;;-1:-1:-1;;;6869:31:0;;;;;;;;;1283:14:1;;1276:22;1258:41;;1246:2;1231:18;6869:31:0;1118:187:1;9004:216:0;;;;;;;;;;-1:-1:-1;9004:216:0;;;;;:::i;:::-;;:::i;6950:46::-;;;;;;;;;;-1:-1:-1;6950:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19064:150;;;;;;;;;;-1:-1:-1;19064:150:0;;;;;:::i;:::-;;:::i;8312:88::-;;;;;;;;;;-1:-1:-1;8385:12:0;;8312:88;;6224:93;;;;;;;;;;;;;;;;18545:182;;;;;;;;;;-1:-1:-1;18545:182:0;;;;;:::i;:::-;;:::i;9522:370::-;;;;;;;;;;-1:-1:-1;9522:370:0;;;;;:::i;:::-;;:::i;13978:83::-;;;;;;;;;;;;;:::i;17925:449::-;;;;;;;;;;-1:-1:-1;17925:449:0;;;;;:::i;:::-;;:::i;18739:142::-;;;;;;;;;;;;;:::i;8406:80::-;;;;;;;;;;-1:-1:-1;8406:80:0;;5590:1;3155:36:1;;3143:2;3128:18;8406:80:0;3013:184:1;9228:122:0;;;;;;;;;;-1:-1:-1;9228:122:0;;;;;:::i;:::-;;:::i;10336:139::-;;;;;;;;;;;;;:::i;14809:210::-;;;;;;;;;;-1:-1:-1;14809:210:0;;;;;:::i;:::-;;:::i;7008:30::-;;;;;;;;;;-1:-1:-1;7008:30:0;;;;;;;;8752:105;;;;;;;;;;-1:-1:-1;8752:105:0;;;;;:::i;:::-;;:::i;6910:33::-;;;;;;;;;;-1:-1:-1;6910:33:0;;;;-1:-1:-1;;;6910:33:0;;;;;;3306:148;;;;;;;;;;;;;:::i;5728:61::-;;;;;;;;;;;;;;;;5663:58;;;;;;;;;;;;;;;;17170:166;;;;;;;;;;-1:-1:-1;17170:166:0;;;;;:::i;:::-;;:::i;13767:202::-;;;;;;;;;;-1:-1:-1;13767:202:0;;;;;:::i;:::-;;:::i;8668:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14070:118::-;;;;;;;;;;;;;:::i;3092:79::-;;;;;;;;;;;;;:::i;8492:84::-;;;;;;;;;;-1:-1:-1;8566:7:0;;;;;;;;;;;;-1:-1:-1;;;8566:7:0;;;;8492:84;;17350:567;;;;;;;;;;-1:-1:-1;17350:567:0;;;;;:::i;:::-;;:::i;6837:19::-;;;;;;;;;;-1:-1:-1;6837:19:0;;;;-1:-1:-1;;;;;6837:19:0;;;9358:156;;;;;;;;;;-1:-1:-1;9358:156:0;;;;;:::i;:::-;;:::i;18382:155::-;;;;;;;;;;-1:-1:-1;18382:155:0;;;;;:::i;:::-;;:::i;2712:21::-;;;;;;;;;;-1:-1:-1;2712:21:0;;;;-1:-1:-1;;;;;2712:21:0;;;9904:221;;;;;;;;;;-1:-1:-1;9904:221:0;;;;;:::i;:::-;;:::i;18889:167::-;;;;;;;;;;-1:-1:-1;18889:167:0;;;;;:::i;:::-;;:::i;8863:133::-;;;;;;;;;;-1:-1:-1;8863:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8965:19:0;;;8947:7;8965:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8863:133;14488:206;;;;;;;;;;-1:-1:-1;14488:206:0;;;;;:::i;:::-;;:::i;10133:195::-;;;;;;;;;;-1:-1:-1;10133:195:0;;;;;:::i;:::-;;:::i;14196:284::-;;;;;;;;;;-1:-1:-1;14196:284:0;;;;;:::i;:::-;;:::i;15121:139::-;;;;;;;;;;;;;:::i;3462:244::-;;;;;;;;;;-1:-1:-1;3462:244:0;;;;;:::i;:::-;;:::i;6767:24::-;;;;;;;;;;-1:-1:-1;6767:24:0;;;;-1:-1:-1;;;;;6767:24:0;;;15027:85;;;;;;;;;;;;;:::i;14703:98::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;;;;;;;;;14770:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14770:23:0::1;-1:-1:-1::0;;;;14770:23:0;;::::1;::::0;;;::::1;::::0;;14703:98::o;9004:216::-;9108:10;9079:4;9096:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9096:32:0;;;;;;;;;;:41;;;9153:37;9079:4;;9096:32;;9153:37;;;;9131:6;529:25:1;;517:2;502:18;;383:177;9153:37:0;;;;;;;;-1:-1:-1;9208:4:0;9004:216;;;;;:::o;19064:150::-;19144:4;19200:6;19168:29;19188:8;19168:19;:29::i;:::-;:38;;19064:150;-1:-1:-1;;;19064:150:0:o;18545:182::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18642:15:::1;:25:::0;;;;18678:26:::1;:41:::0;18545:182::o;9522:370::-;-1:-1:-1;;;;;9642:19:0;;9622:4;9642:19;;;:11;:19;;;;;;;;9662:10;9642:31;;;;;;;;-1:-1:-1;;9642:52:0;9639:186;;9744:69;;;;;;;;;;;-1:-1:-1;;;9744:69:0;;;;;;;;-1:-1:-1;;;;;9744:19:0;;-1:-1:-1;9744:19:0;;;:11;:19;;;;;9764:10;9744:31;;;;;;;;;;:69;;9780:6;;9744:35;:69::i;:::-;-1:-1:-1;;;;;9710:19:0;;;;;;:11;:19;;;;;;;;9730:10;9710:31;;;;;;;:103;9639:186;9844:40;9858:6;9866:9;9877:6;9844:13;:40::i;:::-;9837:47;;9522:370;;;;;;:::o;13978:83::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14037:10:::1;:8;:10::i;:::-;13978:83::o:0;17925:449::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18126:21:::1;:46:::0;;-1:-1:-1;;;;;;18126:46:0;;::::1;-1:-1:-1::0;;;;;18126:46:0;;::::1;;::::0;;;18183:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18238:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18281:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18326:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17925:449::o;18739:142::-;18867:4;;18792:7;;18819:54;;18857:15;;-1:-1:-1;;;;;18867:4:0;18857:9;:15::i;:::-;18846:4;;18819:33;;18836:15;;-1:-1:-1;;;;;18846:4:0;18836:9;:15::i;:::-;18819:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18812:61;;18739:142;:::o;9228:122::-;9283:4;9307:35;9315:7;-1:-1:-1;;9307:7:0;:35::i;10336:139::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10410:12:::1;::::0;10395::::1;:27:::0;;;10437:15:::1;:30:::0;10336:139::o;14809:210::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14911:9:::1;14906:106;14922:20:::0;;::::1;14906:106;;;14994:6;14964:13;:27;14978:9;;14988:1;14978:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14964:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14964:27:0;:36;;-1:-1:-1;;14964:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14944:3:::1;::::0;::::1;:::i;:::-;;;14906:106;;;;14809:210:::0;;;:::o;8752:105::-;-1:-1:-1;;;;;8836:18:0;8818:7;8836:18;;;:9;:18;;;;;;;8752:105::o;3306:148::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;3413:1:::1;3397:6:::0;;3376:40:::1;::::0;-1:-1:-1;;;;;3397:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3376:40:0;3413:1;;3376:40:::1;3444:1;3427:19:::0;;-1:-1:-1;;;;;;3427:19:0::1;::::0;;3306:148::o;17170:166::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17257:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17257:28:0;;::::1;::::0;::::1;::::0;;;17296:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17170:166::o;13767:202::-;13897:18;;13857:21;;-1:-1:-1;;;;;13897:18:0;13889:72;13957:3;13926:28;13938:16;13857:21;13926:28;:::i;:::-;:34;;;;:::i;:::-;13889:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13826:143;13767:202;:::o;8668:78::-;8720:7;8737;:5;:7::i;14070:118::-;14124:21;;14116:62;;-1:-1:-1;;;;;14124:21:0;;;;14156;14116:62;;;;;14124:21;14116:62;14124:21;14116:62;14156:21;14124;14116:62;;;;;;;;;;;;;;;;;;;;;14070:118::o;3092:79::-;3130:7;3157:6;-1:-1:-1;;;;;3157:6:0;;3092:79::o;17350:567::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;17527:12:::1;:28:::0;;;17566:10:::1;:24:::0;;;17601:12:::1;:28:::0;;;17640:6:::1;:16:::0;;;17667:7:::1;:18:::0;;;17707:76:::1;17677:8:::0;17707:62:::1;17649:7:::0;17707:62;17616:13;17707:62;17542:13;17579:11;17707:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17696:8;:87:::0;17794:14:::1;:32:::0;;;17856:18:::1;17873:1;17811:15:::0;17856:18:::1;:::i;:::-;17845:8;;:29;17837:71;;;::::0;-1:-1:-1;;;17837:71:0;;7686:2:1;17837:71:0::1;::::0;::::1;7668:21:1::0;7725:2;7705:18;;;7698:30;7764:31;7744:18;;;7737:59;7813:18;;17837:71:0::1;7484:353:1::0;17837:71:0::1;17350:567:::0;;;;;;:::o;9358:156::-;9438:4;9462:44;9476:10;9488:9;9499:6;9462:13;:44::i;18382:155::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18473:11:::1;:22:::0;;-1:-1:-1;;18473:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18506:13:::1;:23:::0;18382:155::o;9904:221::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10025:4:::1;10010:12;;:19;;;;:::i;:::-;9991:15;;:38;;9983:47;;;::::0;::::1;;10095:4;10076:14;10061:12;;:29;;;;:::i;:::-;10060:39;;;;:::i;:::-;10042:15;:57:::0;-1:-1:-1;9904:221:0:o;18889:167::-;18957:7;18984:64;19025:22;:20;:22::i;:::-;19007:4;;18984:36;;18997:22;;19017:1;;18997:15;;-1:-1:-1;;;;;19007:4:0;18997:9;:15::i;:::-;:19;;:22::i;:::-;18984:8;;:12;:36::i;:::-;:40;;:64::i;14488:206::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14588:11:::1;:19:::0;;;;14618:10:::1;:17:::0;;;;14646:15:::1;:24:::0;14488:206::o;10133:195::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10251:4:::1;10236:12;;:19;;;;:::i;:::-;10220:12;;:35;;10212:44;;;::::0;::::1;;10316:4;10299:12;10284;;:27;;;;:::i;:::-;10283:37;;;;:::i;:::-;10268:12;:52:::0;-1:-1:-1;10133:195:0:o;14196:284::-;14277:4;14304:6;14314:1;14304:11;14301:95;;14340:44;;-1:-1:-1;;;14340:44:0;;-1:-1:-1;;;;;14340:29:0;;;;;:44;;14378:4;;14340:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14331:53;;14301:95;14442:21;;14413:59;;-1:-1:-1;;;14413:59:0;;-1:-1:-1;;;;;14442:21:0;;;14413:59;;;8205:51:1;8272:18;;;8265:34;;;14413:28:0;;;;;;8178:18:1;;14413:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15121:139::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;15187:3:::1;15174:10;:16:::0;15215:4:::1;15201:11;:18:::0;15248:4:::1;15230:15;:22:::0;15121:139::o;3462:244::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3551:22:0;::::1;3543:73;;;::::0;-1:-1:-1;;;3543:73:0;;8762:2:1;3543:73:0::1;::::0;::::1;8744:21:1::0;8801:2;8781:18;;;8774:30;8840:34;8820:18;;;8813:62;-1:-1:-1;;;8891:18:1;;;8884:36;8937:19;;3543:73:0::1;8560:402:1::0;3543:73:0::1;3653:6;::::0;;3632:38:::1;::::0;-1:-1:-1;;;;;3632:38:0;;::::1;::::0;3653:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3632:38:0;::::1;3681:6;:17:::0;;-1:-1:-1;;;;;;3681:17:0::1;-1:-1:-1::0;;;;;3681:17:0;;;::::1;::::0;;;::::1;::::0;;3462:244::o;15027:85::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;15076:11:::1;:18:::0;;-1:-1:-1;;;;15076:18:0::1;-1:-1:-1::0;;;15076:18:0::1;::::0;;15027:85::o;693:192::-;779:7;815:12;807:6;;;;799:29;;;;-1:-1:-1;;;799:29:0;;;;;;;;:::i;:::-;-1:-1:-1;839:9:0;851:5;855:1;851;:5;:::i;:::-;839:17;693:192;-1:-1:-1;;;;;693:192:0:o;10489:1433::-;10601:6;;10581:4;;10601:6;;10598:63;;;10617:41;10632:6;10640:9;10651:6;10617:14;:41::i;:::-;10610:48;;;;10598:63;-1:-1:-1;;;;;10677:22:0;;;;;;:14;:22;;;;;;;;10676:23;:53;;;;-1:-1:-1;;;;;;10704:25:0;;;;;;:14;:25;;;;;;;;10703:26;10676:53;10673:254;;;10753:11;;-1:-1:-1;;;10753:11:0;;;;10745:43;;;;-1:-1:-1;;;10745:43:0;;9302:2:1;10745:43:0;;;9284:21:1;9341:2;9321:18;;;9314:30;-1:-1:-1;;;9360:18:1;;;9353:50;9420:18;;10745:43:0;9100:344:1;10745:43:0;10817:13;;-1:-1:-1;;;10817:13:0;;;;10814:102;;;-1:-1:-1;;;;;10858:24:0;;;;;;:13;:24;;;;;;;;10850:51;;;;-1:-1:-1;;;10850:51:0;;9651:2:1;10850:51:0;;;9633:21:1;9690:2;9670:18;;;9663:30;-1:-1:-1;;;9709:18:1;;;9702:45;9764:18;;10850:51:0;9449:339:1;10850:51:0;-1:-1:-1;;;;;10959:22:0;;;;;;:14;:22;;;;;;;;10958:23;:53;;;;-1:-1:-1;;;;;;10985:26:0;;11006:4;10985:26;;10958:53;:84;;;;-1:-1:-1;11037:4:0;;-1:-1:-1;;;;;11016:26:0;;;11037:4;;11016:26;;10958:84;:105;;;;-1:-1:-1;11059:4:0;;-1:-1:-1;;;;;11046:17:0;;;11059:4;;11046:17;;10958:105;:137;;;;-1:-1:-1;11080:15:0;;-1:-1:-1;;;;;11067:28:0;;;11080:15;;11067:28;;10958:137;:174;;;;-1:-1:-1;11112:20:0;;-1:-1:-1;;;;;11099:33:0;;;11112:20;;11099:33;;10958:174;:205;;;;-1:-1:-1;;;;;;11137:26:0;;;;;;:15;:26;;;;;;;;11136:27;10958:205;10954:397;;;11179:18;11200:20;11210:9;11200;:20::i;:::-;11268:15;;11179:41;;-1:-1:-1;11244:19:0;11257:6;11179:41;11244:19;:::i;:::-;11243:40;;11235:114;;;;-1:-1:-1;;;11235:114:0;;10125:2:1;11235:114:0;;;10107:21:1;10164:2;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;10274:32;10254:18;;;10247:60;10324:19;;11235:114:0;9923:426:1;11235:114:0;11164:187;10954:397;11416:28;11429:6;11437;11416:12;:28::i;:::-;11461:16;:14;:16::i;:::-;11458:35;;;11480:10;:8;:10::i;:::-;11573:53;;;;;;;;;;;-1:-1:-1;;;11573:53:0;;;;;;;;-1:-1:-1;;;;;11573:17:0;;-1:-1:-1;11573:17:0;;;:9;:17;;;;;;;;:53;;11595:6;;11573:21;:53::i;:::-;-1:-1:-1;;;;;11553:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11665:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11688:22:0;;;;;;:11;:22;;;;;;;;11665:45;11664:93;;11723:34;11731:6;11739;11747:9;11723:7;:34::i;:::-;11664:93;;;11714:6;11664:93;-1:-1:-1;;;;;11791:20:0;;;;;;:9;:20;;;;;;11639:118;;-1:-1:-1;11791:40:0;;11639:118;11791:24;:40::i;:::-;-1:-1:-1;;;;;11768:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11849:43;;;;;;-1:-1:-1;;;;;;;;;;;11849:43:0;;;11877:14;529:25:1;;517:2;502:18;;383:177;11849:43:0;;;;;;;;-1:-1:-1;11910:4:0;;10489:1433;-1:-1:-1;;;;10489:1433:0:o;15289:1873::-;7148:6;:13;;-1:-1:-1;;7148:13:0;7157:4;7148:13;;;15384:15:::1;::::0;15401:26:::1;::::0;7148:6;;15368:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15435:12;;15368:79;;;15431:1;15368:79;15338:109;;15458:23;15484:59;15541:1;15484:52;15527:8;;15484:38;15502:19;15484:13;;:17;;:38;;;;:::i;:59::-;15458:85;;15554:20;15577:34;15595:15;15577:13;;:17;;:34;;;;:::i;:::-;15648:16;::::0;;15662:1:::1;15648:16:::0;;;;;::::1;::::0;;15554:57;;-1:-1:-1;15624:21:0::1;::::0;15648:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15648:16:0::1;15624:40;;15693:4;15675;15680:1;15675:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15675:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15719:4:::1;::::0;15709:7;;15719:4;::::1;::::0;15709;;15719;;15709:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15709:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15794:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15794:188:0;;15760:21:::1;::::0;15794:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15866:12;;15736:21:::1;::::0;15909:4;;15936::::1;::::0;15956:15:::1;::::0;15794:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15995:17;16015:40;16041:13;16015:21;:25;;:40;;;;:::i;:::-;15995:60:::0;-1:-1:-1;16068:19:0::1;16090:40;16103:26;:19:::0;16127:1:::1;16103:23;:26::i;:::-;16090:8;::::0;;:12:::1;:40::i;:::-;16068:62:::0;-1:-1:-1;16151:26:0::1;16180:58;16236:1;16180:51;16068:62:::0;16180:51;:9;16194:19;16180:13:::1;:34::i;:58::-;16151:87;;16249:26;16278:44;16310:11;16278:27;16292:12;;16278:9;:13;;:27;;;;:::i;:44::-;16249:73;;16333:24;16360:42;16390:11;16360:25;16374:10;;16360:9;:13;;:25;;;;:::i;:42::-;16333:69;;16413:20;16436:38;16462:11;16436:21;16450:6;;16436:9;:13;;:21;;;;:::i;:38::-;16516:20;::::0;16508:65:::1;::::0;16413:61;;-1:-1:-1;16488:15:0::1;::::0;-1:-1:-1;;;;;16516:20:0;;::::1;::::0;16550:18;;16488:15;16508:65;16488:15;16508:65;16550:18;16516:20;16508:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16608:14:0::1;::::0;16600:53:::1;::::0;16487:86;;-1:-1:-1;;;;;;16608:14:0::1;::::0;16636:12;;16600:53:::1;::::0;;;16636:12;16608:14;16600:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16688:18:0::1;::::0;16680:61:::1;::::0;16584:69;;-1:-1:-1;;;;;;16688:18:0::1;::::0;16720:16;;16680:61:::1;::::0;;;16720:16;16688:18;16680:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16775:5:0::1;::::0;-1:-1:-1;;16796:19:0;;;-1:-1:-1;16793:362:0::1;;16831:6;::::0;17005:21:::1;::::0;16831:244:::1;::::0;-1:-1:-1;;;16831:244:0;;16907:4:::1;16831:244;::::0;::::1;12022:34:1::0;12072:18;;;12065:34;;;16831:6:0::1;12115:18:1::0;;;12108:34;;;12158:18;;;12151:34;-1:-1:-1;;;;;17005:21:0;;::::1;12201:19:1::0;;;12194:44;17045:15:0::1;12254:19:1::0;;;12247:35;16831:6:0;::::1;::::0;:22:::1;::::0;16861:18;;11956:19:1;;16831:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17095:48:0::1;::::0;;12778:25:1;;;12834:2;12819:18;;12812:34;;;17095:48:0::1;::::0;-1:-1:-1;12751:18:1;17095:48:0::1;;;;;;;16793:362;-1:-1:-1::0;;7166:6:0;:14;;-1:-1:-1;;7166:14:0;;;-1:-1:-1;;;;;;;;;;15289:1873:0:o;551:136::-;609:7;636:43;640:1;643;636:43;;;;;;;;;;;;;;;;;:3;:43::i;364:181::-;422:7;;454:5;458:1;454;:5;:::i;:::-;442:17;;483:1;478;:6;;470:46;;;;-1:-1:-1;;;470:46:0;;13059:2:1;470:46:0;;;13041:21:1;13098:2;13078:18;;;13071:30;-1:-1:-1;;;13117:18:1;;;13110:57;13184:18;;470:46:0;12857:351:1;891:250:0;949:7;973:1;978;973:6;969:47;;-1:-1:-1;1003:1:0;996:8;;969:47;1028:9;1040:5;1044:1;1040;:5;:::i;:::-;1028:17;-1:-1:-1;1073:1:0;1064:5;1068:1;1028:17;1064:5;:::i;:::-;:10;1056:56;;;;-1:-1:-1;;;1056:56:0;;13415:2:1;1056:56:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:34;13473:18;;;13466:62;-1:-1:-1;;;13544:18:1;;;13537:31;13585:19;;1056:56:0;13213:397:1;1147:132:0;1205:7;1232:39;1236:1;1239;1232:39;;;;;;;;;;;;;-1:-1:-1;;;1232:39:0;;;:3;:39::i;11934:330::-;12064:53;;;;;;;;;;;-1:-1:-1;;;12064:53:0;;;;;;;;-1:-1:-1;;;;;12064:17:0;;12027:4;12064:17;;;:9;:17;;;;;;;:53;;12086:6;;12064:21;:53::i;:::-;-1:-1:-1;;;;;12044:17:0;;;;;;;:9;:17;;;;;;:73;;;;12151:20;;;;;;;:32;;12176:6;12151:24;:32::i;:::-;-1:-1:-1;;;;;12128:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12199:35;;;;;;-1:-1:-1;;;;;;;;;;;12199:35:0;;;12227:6;529:25:1;;517:2;502:18;;383:177;12199:35:0;;;;;;;;-1:-1:-1;12252:4:0;11934:330;;;;;:::o;12272:166::-;12369:12;;12359:6;:22;;:49;;;-1:-1:-1;;;;;;12385:23:0;;;;;;:15;:23;;;;;;;;12359:49;12351:79;;;;-1:-1:-1;;;12351:79:0;;13817:2:1;12351:79:0;;;13799:21:1;13856:2;13836:18;;;13829:30;-1:-1:-1;;;13875:18:1;;;13868:47;13932:18;;12351:79:0;13615:341:1;12351:79:0;12272:166;;:::o;13562:197::-;13649:4;;13611;;-1:-1:-1;;;;;13649:4:0;13635:10;:18;;;;:38;;-1:-1:-1;13667:6:0;;;;13666:7;13635:38;:62;;;;-1:-1:-1;13686:11:0;;;;13635:62;:116;;;;-1:-1:-1;;13738:13:0;;13728:4;13710:24;;;;:9;:24;;;;;;:41;;;13562:197::o;12568:986::-;12702:15;;12746:4;;12654:7;;12702:15;-1:-1:-1;;;;;12746:4:0;;;12733:17;;;;12730:142;;-1:-1:-1;12777:11:0;;12730:142;;;12819:4;;-1:-1:-1;;;;;12819:4:0;;;12809:14;;;;12806:66;;-1:-1:-1;12850:10:0;;12806:66;12884:17;12904:59;12942:14;;12959:3;12942:20;;;;:::i;:::-;12904:33;12929:7;12904:20;12915:8;;12904:6;:10;;:20;;;;:::i;:59::-;12884:79;;12974:18;12995:36;13022:8;;12995:22;13009:7;;12995:9;:13;;:22;;;;:::i;:36::-;12974:57;-1:-1:-1;13042:22:0;13067:25;:9;12974:57;13067:13;:25::i;:::-;13150:4;13132:24;;;;:9;:24;;;;;;13042:50;;-1:-1:-1;13132:44:0;;13042:50;13132:28;:44::i;:::-;13123:4;13105:24;;;;:9;:24;;;;;;:71;;;;13226:15;;-1:-1:-1;;;;;13226:15:0;13216:26;;;;:42;;13247:10;13216:30;:42::i;:::-;13197:15;;-1:-1:-1;;;;;13197:15:0;;;13187:26;;;;:9;:26;;;;;;;;;:71;;;;13274:47;529:25:1;;;13299:4:0;;13274:47;;;;-1:-1:-1;;;;;;;;;;;13274:47:0;502:18:1;13274:47:0;;;;;;;13355:14;;13352:154;;13400:12;;:28;;13417:10;13400:16;:28::i;:::-;13385:12;:43;13465:4;;13448:34;;529:25:1;;;-1:-1:-1;;;;;13465:4:0;;;;13448:34;;;-1:-1:-1;;;;;;;;;;;13448:34:0;517:2:1;502:18;13448:34:0;;;;;;;13352:154;13525:21;:6;13536:9;13525:10;:21::i;:::-;13518:28;12568:986;-1:-1:-1;;;;;;;;12568:986:0:o;1285:189::-;1371:7;1406:12;1399:5;1391:28;;;;-1:-1:-1;;;1391:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1430:9:0;1442:5;1446:1;1442;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:241;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;565:548::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;849:3;1034:1;1029:2;1020:6;1009:9;1005:22;1001:31;994:42;1104:2;1097;1093:7;1088:2;1080:6;1076:15;1072:29;1061:9;1057:45;1053:54;1045:62;;;;565:548;;;;:::o;1310:173::-;1378:20;;-1:-1:-1;;;;;1427:31:1;;1417:42;;1407:70;;1473:1;1470;1463:12;1407:70;1310:173;;;:::o;1488:254::-;1556:6;1564;1617:2;1605:9;1596:7;1592:23;1588:32;1585:52;;;1633:1;1630;1623:12;1585:52;1656:29;1675:9;1656:29;:::i;:::-;1646:39;1732:2;1717:18;;;;1704:32;;-1:-1:-1;;;1488:254:1:o;1747:186::-;1806:6;1859:2;1847:9;1838:7;1834:23;1830:32;1827:52;;;1875:1;1872;1865:12;1827:52;1898:29;1917:9;1898:29;:::i;1938:248::-;2006:6;2014;2067:2;2055:9;2046:7;2042:23;2038:32;2035:52;;;2083:1;2080;2073:12;2035:52;-1:-1:-1;;2106:23:1;;;2176:2;2161:18;;;2148:32;;-1:-1:-1;1938:248:1:o;2191:328::-;2268:6;2276;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;2376:29;2395:9;2376:29;:::i;:::-;2366:39;;2424:38;2458:2;2447:9;2443:18;2424:38;:::i;:::-;2414:48;;2509:2;2498:9;2494:18;2481:32;2471:42;;2191:328;;;;;:::o;2524:484::-;2619:6;2627;2635;2643;2651;2704:3;2692:9;2683:7;2679:23;2675:33;2672:53;;;2721:1;2718;2711:12;2672:53;2744:29;2763:9;2744:29;:::i;:::-;2734:39;;2792:38;2826:2;2815:9;2811:18;2792:38;:::i;:::-;2782:48;;2849:38;2883:2;2872:9;2868:18;2849:38;:::i;:::-;2839:48;;2906:38;2940:2;2929:9;2925:18;2906:38;:::i;:::-;2896:48;;2963:39;2997:3;2986:9;2982:19;2963:39;:::i;:::-;2953:49;;2524:484;;;;;;;;:::o;3202:750::-;3294:6;3302;3310;3363:2;3351:9;3342:7;3338:23;3334:32;3331:52;;;3379:1;3376;3369:12;3331:52;3406:23;;-1:-1:-1;;;;;3478:14:1;;;3475:34;;;3505:1;3502;3495:12;3475:34;3543:6;3532:9;3528:22;3518:32;;3588:7;3581:4;3577:2;3573:13;3569:27;3559:55;;3610:1;3607;3600:12;3559:55;3650:2;3637:16;3676:2;3668:6;3665:14;3662:34;;;3692:1;3689;3682:12;3662:34;3747:7;3740:4;3730:6;3727:1;3723:14;3719:2;3715:23;3711:34;3708:47;3705:67;;;3768:1;3765;3758:12;3705:67;3799:4;3791:13;;;;-1:-1:-1;3823:6:1;-1:-1:-1;;3864:20:1;;3851:34;3894:28;3851:34;3894:28;:::i;:::-;3941:5;3931:15;;;3202:750;;;;;:::o;3957:315::-;4022:6;4030;4083:2;4071:9;4062:7;4058:23;4054:32;4051:52;;;4099:1;4096;4089:12;4051:52;4122:29;4141:9;4122:29;:::i;:::-;4112:39;;4201:2;4190:9;4186:18;4173:32;4214:28;4236:5;4214:28;:::i;:::-;4261:5;4251:15;;;3957:315;;;;;:::o;4277:180::-;4336:6;4389:2;4377:9;4368:7;4364:23;4360:32;4357:52;;;4405:1;4402;4395:12;4357:52;-1:-1:-1;4428:23:1;;4277:180;-1:-1:-1;4277:180:1:o;4462:203::-;-1:-1:-1;;;;;4626:32:1;;;;4608:51;;4596:2;4581:18;;4462:203::o;4670:523::-;4774:6;4782;4790;4798;4806;4814;4867:3;4855:9;4846:7;4842:23;4838:33;4835:53;;;4884:1;4881;4874:12;4835:53;-1:-1:-1;;4907:23:1;;;4977:2;4962:18;;4949:32;;-1:-1:-1;5028:2:1;5013:18;;5000:32;;5079:2;5064:18;;5051:32;;-1:-1:-1;5130:3:1;5115:19;;5102:33;;-1:-1:-1;5182:3:1;5167:19;5154:33;;-1:-1:-1;4670:523:1;-1:-1:-1;4670:523:1:o;5198:309::-;5263:6;5271;5324:2;5312:9;5303:7;5299:23;5295:32;5292:52;;;5340:1;5337;5330:12;5292:52;5379:9;5366:23;5398:28;5420:5;5398:28;:::i;5512:260::-;5580:6;5588;5641:2;5629:9;5620:7;5616:23;5612:32;5609:52;;;5657:1;5654;5647:12;5609:52;5680:29;5699:9;5680:29;:::i;:::-;5670:39;;5728:38;5762:2;5751:9;5747:18;5728:38;:::i;:::-;5718:48;;5512:260;;;;;:::o;5777:316::-;5854:6;5862;5870;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;-1:-1:-1;;5962:23:1;;;6032:2;6017:18;;6004:32;;-1:-1:-1;6083:2:1;6068:18;;;6055:32;;5777:316;-1:-1:-1;5777:316:1:o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:127;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:135;6988:3;7009:17;;;7006:43;;7029:18;;:::i;:::-;-1:-1:-1;7076:1:1;7065:13;;6949:135::o;7089:168::-;7162:9;;;7193;;7210:15;;;7204:22;;7190:37;7180:71;;7231:18;;:::i;7262:217::-;7302:1;7328;7318:132;;7372:10;7367:3;7363:20;7360:1;7353:31;7407:4;7404:1;7397:15;7435:4;7432:1;7425:15;7318:132;-1:-1:-1;7464:9:1;;7262:217::o;7842:184::-;7912:6;7965:2;7953:9;7944:7;7940:23;7936:32;7933:52;;;7981:1;7978;7971:12;7933:52;-1:-1:-1;8004:16:1;;7842:184;-1:-1:-1;7842:184:1:o;8310:245::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;8478:9;8472:16;8497:28;8519:5;8497:28;:::i;8967:128::-;9034:9;;;9055:11;;;9052:37;;;9069:18;;:::i;9793:125::-;9858:9;;;9879:10;;;9876:36;;;9892:18;;:::i;10486:980::-;10748:4;10796:3;10785:9;10781:19;10827:6;10816:9;10809:25;10853:2;10891:6;10886:2;10875:9;10871:18;10864:34;10934:3;10929:2;10918:9;10914:18;10907:31;10958:6;10993;10987:13;11024:6;11016;11009:22;11062:3;11051:9;11047:19;11040:26;;11101:2;11093:6;11089:15;11075:29;;11122:1;11132:195;11146:6;11143:1;11140:13;11132:195;;;11211:13;;-1:-1:-1;;;;;11207:39:1;11195:52;;11302:15;;;;11267:12;;;;11243:1;11161:9;11132:195;;;-1:-1:-1;;;;;;;11383:32:1;;;;11378:2;11363:18;;11356:60;-1:-1:-1;;;11447:3:1;11432:19;11425:35;11344:3;10486:980;-1:-1:-1;;;10486:980:1:o;12293:306::-;12381:6;12389;12397;12450:2;12438:9;12429:7;12425:23;12421:32;12418:52;;;12466:1;12463;12456:12;12418:52;12495:9;12489:16;12479:26;;12545:2;12534:9;12530:18;12524:25;12514:35;;12589:2;12578:9;12574:18;12568:25;12558:35;;12293:306;;;;;:::o
Swarm Source
ipfs://331bc6601226586d65467fccb2c178b537804454a23b1de71c5e4bd1d52eaf99
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.