ERC-20
Overview
Max Total Supply
99,999,999,999,999 GM
Holders
19
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,399,933,832,667.61380959 GMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GoodMorning
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-09 */ /* Twitter: https://twitter.com/GMCoinErc */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; 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); } 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; } } 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 GoodMorning is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Good Morning"; string constant _symbol = "GM"; uint8 constant _decimals = 9; uint256 _totalSupply = 99999999999999 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).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 projectDevelopmentFee = 3; uint256 private teamFee = 0; uint256 private nftfundFee = 1; uint256 private burnFee = 0; uint256 public totalFee = nftfundFee + projectDevelopmentFee + liquidityFee + teamFee + burnFee; uint256 private feeDenominator = 100; uint256 sellmultiplier = 900; uint256 buymultiplier = 600; uint256 transfertax = 800; address private autoLiquidityReceiver; address private projectDevelopmentFeeReceiver; address private teamFeeReceiver; address private nftfundFeeReceiver; address private burnFeeReceiver; uint256 targetLiquidity = 30; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 60 / 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[teamFeeReceiver] = true; isTxLimitexempt[msg.sender] = true; isTxLimitexempt[pair] = true; isTxLimitexempt[teamFeeReceiver] = true; isTxLimitexempt[projectDevelopmentFeeReceiver] = true; isTxLimitexempt[address(this)] = true; autoLiquidityReceiver = msg.sender; projectDevelopmentFeeReceiver = msg.sender; teamFeeReceiver = msg.sender; nftfundFeeReceiver = 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 disableAllLimits() 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 (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != projectDevelopmentFeeReceiver && !isTxLimitexempt[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _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 = transfertax; if(recipient == pair) { percent = sellmultiplier; } else if(sender == pair) { percent = buymultiplier; } 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 manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function removeForeignERC20(address tokenAddress, uint256 tokens) public returns (bool) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setBreakdown(uint256 _issell, uint256 _isbuy, uint256 _wallet) external onlyOwner { sellmultiplier = _issell; buymultiplier = _isbuy; transfertax = _wallet; } function setMaxWalletAmount(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxSellAmount(uint256 maxTXPercent) external onlyOwner { require(maxTXPercent >= 1); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function tradingAllowed() public onlyOwner { TradingOpen = true; } function setBacking(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } 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 amountETHprojectDevelopment = amountETH.mul(projectDevelopmentFee).div(totalETHFee); uint256 amountETHnftfund = amountETH.mul(nftfundFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(teamFee).div(totalETHFee); (bool tmpSuccess,) = payable(projectDevelopmentFeeReceiver).call{value: amountETHprojectDevelopment}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(nftfundFeeReceiver).call{value: amountETHnftfund}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setTaxFee(uint256 _liquidityFee, uint256 _nftfundFee, uint256 _projectDevelopmentFee, uint256 _teamFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; nftfundFee = _nftfundFee; projectDevelopmentFee = _projectDevelopmentFee; teamFee = _teamFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_nftfundFee).add(_projectDevelopmentFee).add(_teamFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function setReceivers(address _autoLiquidityReceiver, address _projectDevelopmentFeeReceiver, address _teamFeeReceiver, address _burnFeeReceiver, address _nftfundFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; projectDevelopmentFeeReceiver = _projectDevelopmentFeeReceiver; teamFeeReceiver = _teamFeeReceiver; burnFeeReceiver = _burnFeeReceiver; nftfundFeeReceiver = _nftfundFeeReceiver; } function setSwapandLiquify(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } 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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableAllLimits","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":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setBacking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_issell","type":"uint256"},{"internalType":"uint256","name":"_isbuy","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_projectDevelopmentFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_nftfundFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_nftfundFee","type":"uint256"},{"internalType":"uint256","name":"_projectDevelopmentFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTaxFee","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":"tradingAllowed","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006aa565b6200004490655af3107a3fff620006bb565b600581905562000065906064906200005e9060026200047a565b9062000511565b60065560055462000080906064906200005e9060026200047a565b6007556001600c556003600d556000600e556001600f556000601055601054600e54600c54600d54600f54620000b79190620006d5565b620000c39190620006d5565b620000cf9190620006d5565b620000db9190620006d5565b60115560646012819055610384601355610258601455610320601555601e601b55601c55601f805461ffff60a01b1916600160a81b1790556005546103e8906200012790603c620006bb565b620001339190620006eb565b6020553480156200014357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022991906200070e565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae91906200070e565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032691906200070e565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616811790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000789565b6000826000036200048e575060006200050b565b60006200049c8385620006bb565b905082620004ab8583620006eb565b14620005085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200050883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055b60201b60201c565b600081836200057f5760405162461bcd60e51b8152600401620004ff919062000739565b5060006200058e8486620006eb565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005ee578160001904821115620005d257620005d262000597565b80851615620005e057918102915b93841c9390800290620005b2565b509250929050565b60008262000607575060016200050b565b8162000616575060006200050b565b81600181146200062f57600281146200063a576200065a565b60019150506200050b565b60ff8411156200064e576200064e62000597565b50506001821b6200050b565b5060208310610133831016604e8410600b84101617156200067f575081810a6200050b565b6200068b8383620005ad565b8060001904821115620006a257620006a262000597565b029392505050565b60006200050860ff841683620005f6565b80820281158282048414176200050b576200050b62000597565b808201808211156200050b576200050b62000597565b6000826200070957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072157600080fd5b81516001600160a01b03811681146200050857600080fd5b600060208083528351808285015260005b8181101562000768578581018301518582016040015282016200074a565b506000604082860101526040601f19601f8301168501019250505092915050565b611f3180620007996000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461063c578063e99c9d0914610682578063f2fde38b146106a2578063f4293890146106c2578063f887ea40146106d757600080fd5b8063a9059cbb1461059c578063b2bdfa7b146105bc578063cc798a5c146105dc578063d405ae8f146105fc578063d51ed1c81461061c57600080fd5b8063893d20e8116100f2578063893d20e8146104e15780638afe5fcb146105135780638da5cb5b1461053357806395d89b4114610551578063a8aa1b311461057c57600080fd5b806370a082311461046a578063715018a6146104a057806378109e54146104b55780637d1db4a5146104cb57600080fd5b806323b872dd116101a65780633554dd3c116101755780633554dd3c146103d45780633748cba8146103f457806353371be014610414578063571ac8b0146104295780636ddd17131461044957600080fd5b806323b872dd1461036357806327a14fc2146103835780632b112e49146103a3578063313ce567146103b857600080fd5b806308fd3d05116101ed57806308fd3d05146102c7578063095ea7b3146102f85780631161ae391461031857806318160ddd146103385780631df4ccfc1461034d57600080fd5b80629a4bea1461022957806303f907711461024b5780630445b6671461026057806306fdde031461028957600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611aed565b6106f7565b005b34801561025757600080fd5b506102496107c6565b34801561026c57600080fd5b5061027660205481565b6040519081526020015b60405180910390f35b34801561029557600080fd5b5060408051808201909152600c81526b476f6f64204d6f726e696e6760a01b60208201525b6040516102809190611b30565b3480156102d357600080fd5b50601f546102e890600160a01b900460ff1681565b6040519015158152602001610280565b34801561030457600080fd5b506102e8610313366004611b9a565b6107fd565b34801561032457600080fd5b506102e8610333366004611bc4565b61086a565b34801561034457600080fd5b50600554610276565b34801561035957600080fd5b5061027660115481565b34801561036f57600080fd5b506102e861037e366004611be6565b61087e565b34801561038f57600080fd5b5061024961039e366004611c22565b610940565b3480156103af57600080fd5b50610276610999565b3480156103c457600080fd5b5060405160098152602001610280565b3480156103e057600080fd5b506102496103ef366004611c3b565b6109eb565b34801561040057600080fd5b5061024961040f366004611ca0565b610a74565b34801561042057600080fd5b50610249610aac565b34801561043557600080fd5b506102e8610444366004611ccc565b610aeb565b34801561045557600080fd5b50601f546102e890600160a81b900460ff1681565b34801561047657600080fd5b50610276610485366004611ccc565b6001600160a01b031660009081526008602052604090205490565b3480156104ac57600080fd5b50610249610af9565b3480156104c157600080fd5b5061027660075481565b3480156104d757600080fd5b5061027660065481565b3480156104ed57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610280565b34801561051f57600080fd5b506102e861052e366004611b9a565b610b6d565b34801561053f57600080fd5b506000546001600160a01b03166104fb565b34801561055d57600080fd5b50604080518082019091526002815261474d60f01b60208201526102ba565b34801561058857600080fd5b50601f546104fb906001600160a01b031681565b3480156105a857600080fd5b506102e86105b7366004611b9a565b610c59565b3480156105c857600080fd5b506000546104fb906001600160a01b031681565b3480156105e857600080fd5b506102496105f7366004611bc4565b610c66565b34801561060857600080fd5b50610249610617366004611cf5565b610c9b565b34801561062857600080fd5b50610276610637366004611c22565b610ce7565b34801561064857600080fd5b50610276610657366004611d13565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561068e57600080fd5b5061024961069d366004611c22565b610d2e565b3480156106ae57600080fd5b506102496106bd366004611ccc565b610d87565b3480156106ce57600080fd5b50610249610e71565b3480156106e357600080fd5b50601d546104fb906001600160a01b031681565b6000546001600160a01b0316331461072a5760405162461bcd60e51b815260040161072190611d46565b60405180910390fd5b600c869055600f859055600d849055600e839055601082905561075b82610755858188818c8c610ead565b90610ead565b601155601281905561076e600582611d91565b601154106107be5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610721565b505050505050565b6000546001600160a01b031633146107f05760405162461bcd60e51b815260040161072190611d46565b6005546006819055600755565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108589086815260200190565b60405180910390a35060015b92915050565b60008261087683610ce7565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461092b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610906918490610f0c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610936848484610f46565b90505b9392505050565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161072190611d46565b600181101561097857600080fd5b6103e8816005546109899190611db3565b6109939190611d91565b60075550565b6004546001600160a01b03166000908152600860205260408120546109e6906003546001600160a01b03166000908152600860205260409020546109e090600554906112ac565b906112ac565b905090565b6000546001600160a01b03163314610a155760405162461bcd60e51b815260040161072190611d46565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610a9e5760405162461bcd60e51b815260040161072190611d46565b601392909255601455601555565b6000546001600160a01b03163314610ad65760405162461bcd60e51b815260040161072190611d46565b601f805460ff60a01b1916600160a01b179055565b6000610864826000196107fd565b6000546001600160a01b03163314610b235760405162461bcd60e51b815260040161072190611d46565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610be2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf9190611dca565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190611de3565b6000610939338484610f46565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260040161072190611d46565b601b91909155601c55565b6000546001600160a01b03163314610cc55760405162461bcd60e51b815260040161072190611d46565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000610864610cf4610999565b601f546001600160a01b0316600090815260086020526040902054610d2890610d21906002905b906112ee565b85906112ee565b90611370565b6000546001600160a01b03163314610d585760405162461bcd60e51b815260040161072190611d46565b6001811015610d6657600080fd5b6103e881600554610d779190611db3565b610d819190611d91565b60065550565b6000546001600160a01b03163314610db15760405162461bcd60e51b815260040161072190611d46565b6001600160a01b038116610e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610721565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610eaa573d6000803e3d6000fd5b50565b600080610eba8385611e00565b9050838110156109395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610721565b60008184841115610f305760405162461bcd60e51b81526004016107219190611b30565b506000610f3d8486611e13565b95945050505050565b60215460009060ff1615610f6657610f5f8484846113b2565b9050610939565b6001600160a01b03841660009081526001602052604090205460ff16158015610fa857506001600160a01b03831660009081526001602052604090205460ff16155b15610ffd57601f54600160a01b900460ff16610ffd5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610721565b6001600160a01b03841660009081526001602052604090205460ff1615801561102f57506001600160a01b0383163014155b801561104957506003546001600160a01b03848116911614155b80156110635750601f546001600160a01b03848116911614155b801561107d5750601a546001600160a01b03848116911614155b801561109757506017546001600160a01b03848116911614155b80156110bc57506001600160a01b0383166000908152600b602052604090205460ff16155b1561115d576001600160a01b0383166000908152600860205260409020546007546110e78483611e00565b111561115b5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610721565b505b6111678483611486565b61116f6114f3565b1561117c5761117c61154b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546111ce918490610f0c565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061121b57506001600160a01b0384166000908152600a602052604090205460ff165b61122f5761122a858486611932565b611231565b825b6001600160a01b0385166000908152600860205260409020549091506112579082610ead565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611edc833981519152906112999085815260200190565b60405180910390a3506001949350505050565b600061093983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f0c565b60008260000361130057506000610864565b600061130c8385611db3565b9050826113198583611d91565b146109395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610721565b600061093983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611abf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611403918490610f0c565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546114329083610ead565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611edc833981519152906114749086815260200190565b60405180910390a35060019392505050565b600654811115806114af57506001600160a01b0382166000908152600b602052604090205460ff165b6114ef5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610721565b5050565b601f546000906001600160a01b03163314801590611514575060215460ff16155b80156115295750601f54600160a81b900460ff165b80156109e6575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c5460009161156a9161086a565b61157657600c54611579565b60005b9050600061159d6002610d28601154610d28866020546112ee90919063ffffffff16565b905060006115b6826020546112ac90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115f0576115f0611e26565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061162157611621611e26565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061166b908690600090879030904290600401611e3c565b600060405180830381600087803b15801561168557600080fd5b505af1158015611699573d6000803e3d6000fd5b5050505060006116b282476112ac90919063ffffffff16565b905060006116cd6116c4886002611370565b601154906112ac565b905060006116e26002610d288481878d6112ee565b905060006116ff83610d28600d54876112ee90919063ffffffff16565b9050600061171c84610d28600f54886112ee90919063ffffffff16565b9050600061173985610d28600e54896112ee90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461178b576040519150601f19603f3d011682016040523d82523d6000602084013e611790565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611835576040519150601f19603f3d011682016040523d82523d6000602084013e61183a565b606091505b5060009250508b15905061191a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118dd9190611ead565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b03908116908416036119585750601354611973565b601f546001600160a01b039081169086160361197357506014545b60006119a060125460646119879190611db3565b610d2884610d1b6011548a6112ee90919063ffffffff16565b905060006119bf601154610d28601054856112ee90919063ffffffff16565b905060006119cd83836112ac565b306000908152600860205260409020549091506119ea9082610ead565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a189083610ead565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611edc833981519152910160405180910390a38115611aa957600554611a7290836112ac565b6005556004546040518381526001600160a01b03918216918a1690600080516020611edc8339815191529060200160405180910390a35b611ab387846112ac565b98975050505050505050565b60008183611ae05760405162461bcd60e51b81526004016107219190611b30565b506000610f3d8486611d91565b60008060008060008060c08789031215611b0657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611b5d57858101830151858201604001528201611b41565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b9557600080fd5b919050565b60008060408385031215611bad57600080fd5b611bb683611b7e565b946020939093013593505050565b60008060408385031215611bd757600080fd5b50508035926020909101359150565b600080600060608486031215611bfb57600080fd5b611c0484611b7e565b9250611c1260208501611b7e565b9150604084013590509250925092565b600060208284031215611c3457600080fd5b5035919050565b600080600080600060a08688031215611c5357600080fd5b611c5c86611b7e565b9450611c6a60208701611b7e565b9350611c7860408701611b7e565b9250611c8660608701611b7e565b9150611c9460808701611b7e565b90509295509295909350565b600080600060608486031215611cb557600080fd5b505081359360208301359350604090920135919050565b600060208284031215611cde57600080fd5b61093982611b7e565b8015158114610eaa57600080fd5b60008060408385031215611d0857600080fd5b8235611bb681611ce7565b60008060408385031215611d2657600080fd5b611d2f83611b7e565b9150611d3d60208401611b7e565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611dae57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761086457610864611d7b565b600060208284031215611ddc57600080fd5b5051919050565b600060208284031215611df557600080fd5b815161093981611ce7565b8082018082111561086457610864611d7b565b8181038181111561086457610864611d7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e8c5784516001600160a01b031683529383019391830191600101611e67565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ec257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220420857ddad78bae0b2b6c2b7cf38556d84a0fa008aef01a0b444fa460f2f286c64736f6c63430008130033
Deployed Bytecode
0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461063c578063e99c9d0914610682578063f2fde38b146106a2578063f4293890146106c2578063f887ea40146106d757600080fd5b8063a9059cbb1461059c578063b2bdfa7b146105bc578063cc798a5c146105dc578063d405ae8f146105fc578063d51ed1c81461061c57600080fd5b8063893d20e8116100f2578063893d20e8146104e15780638afe5fcb146105135780638da5cb5b1461053357806395d89b4114610551578063a8aa1b311461057c57600080fd5b806370a082311461046a578063715018a6146104a057806378109e54146104b55780637d1db4a5146104cb57600080fd5b806323b872dd116101a65780633554dd3c116101755780633554dd3c146103d45780633748cba8146103f457806353371be014610414578063571ac8b0146104295780636ddd17131461044957600080fd5b806323b872dd1461036357806327a14fc2146103835780632b112e49146103a3578063313ce567146103b857600080fd5b806308fd3d05116101ed57806308fd3d05146102c7578063095ea7b3146102f85780631161ae391461031857806318160ddd146103385780631df4ccfc1461034d57600080fd5b80629a4bea1461022957806303f907711461024b5780630445b6671461026057806306fdde031461028957600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611aed565b6106f7565b005b34801561025757600080fd5b506102496107c6565b34801561026c57600080fd5b5061027660205481565b6040519081526020015b60405180910390f35b34801561029557600080fd5b5060408051808201909152600c81526b476f6f64204d6f726e696e6760a01b60208201525b6040516102809190611b30565b3480156102d357600080fd5b50601f546102e890600160a01b900460ff1681565b6040519015158152602001610280565b34801561030457600080fd5b506102e8610313366004611b9a565b6107fd565b34801561032457600080fd5b506102e8610333366004611bc4565b61086a565b34801561034457600080fd5b50600554610276565b34801561035957600080fd5b5061027660115481565b34801561036f57600080fd5b506102e861037e366004611be6565b61087e565b34801561038f57600080fd5b5061024961039e366004611c22565b610940565b3480156103af57600080fd5b50610276610999565b3480156103c457600080fd5b5060405160098152602001610280565b3480156103e057600080fd5b506102496103ef366004611c3b565b6109eb565b34801561040057600080fd5b5061024961040f366004611ca0565b610a74565b34801561042057600080fd5b50610249610aac565b34801561043557600080fd5b506102e8610444366004611ccc565b610aeb565b34801561045557600080fd5b50601f546102e890600160a81b900460ff1681565b34801561047657600080fd5b50610276610485366004611ccc565b6001600160a01b031660009081526008602052604090205490565b3480156104ac57600080fd5b50610249610af9565b3480156104c157600080fd5b5061027660075481565b3480156104d757600080fd5b5061027660065481565b3480156104ed57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610280565b34801561051f57600080fd5b506102e861052e366004611b9a565b610b6d565b34801561053f57600080fd5b506000546001600160a01b03166104fb565b34801561055d57600080fd5b50604080518082019091526002815261474d60f01b60208201526102ba565b34801561058857600080fd5b50601f546104fb906001600160a01b031681565b3480156105a857600080fd5b506102e86105b7366004611b9a565b610c59565b3480156105c857600080fd5b506000546104fb906001600160a01b031681565b3480156105e857600080fd5b506102496105f7366004611bc4565b610c66565b34801561060857600080fd5b50610249610617366004611cf5565b610c9b565b34801561062857600080fd5b50610276610637366004611c22565b610ce7565b34801561064857600080fd5b50610276610657366004611d13565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561068e57600080fd5b5061024961069d366004611c22565b610d2e565b3480156106ae57600080fd5b506102496106bd366004611ccc565b610d87565b3480156106ce57600080fd5b50610249610e71565b3480156106e357600080fd5b50601d546104fb906001600160a01b031681565b6000546001600160a01b0316331461072a5760405162461bcd60e51b815260040161072190611d46565b60405180910390fd5b600c869055600f859055600d849055600e839055601082905561075b82610755858188818c8c610ead565b90610ead565b601155601281905561076e600582611d91565b601154106107be5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610721565b505050505050565b6000546001600160a01b031633146107f05760405162461bcd60e51b815260040161072190611d46565b6005546006819055600755565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108589086815260200190565b60405180910390a35060015b92915050565b60008261087683610ce7565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461092b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610906918490610f0c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610936848484610f46565b90505b9392505050565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161072190611d46565b600181101561097857600080fd5b6103e8816005546109899190611db3565b6109939190611d91565b60075550565b6004546001600160a01b03166000908152600860205260408120546109e6906003546001600160a01b03166000908152600860205260409020546109e090600554906112ac565b906112ac565b905090565b6000546001600160a01b03163314610a155760405162461bcd60e51b815260040161072190611d46565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610a9e5760405162461bcd60e51b815260040161072190611d46565b601392909255601455601555565b6000546001600160a01b03163314610ad65760405162461bcd60e51b815260040161072190611d46565b601f805460ff60a01b1916600160a01b179055565b6000610864826000196107fd565b6000546001600160a01b03163314610b235760405162461bcd60e51b815260040161072190611d46565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610be2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf9190611dca565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190611de3565b6000610939338484610f46565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260040161072190611d46565b601b91909155601c55565b6000546001600160a01b03163314610cc55760405162461bcd60e51b815260040161072190611d46565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000610864610cf4610999565b601f546001600160a01b0316600090815260086020526040902054610d2890610d21906002905b906112ee565b85906112ee565b90611370565b6000546001600160a01b03163314610d585760405162461bcd60e51b815260040161072190611d46565b6001811015610d6657600080fd5b6103e881600554610d779190611db3565b610d819190611d91565b60065550565b6000546001600160a01b03163314610db15760405162461bcd60e51b815260040161072190611d46565b6001600160a01b038116610e165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610721565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610eaa573d6000803e3d6000fd5b50565b600080610eba8385611e00565b9050838110156109395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610721565b60008184841115610f305760405162461bcd60e51b81526004016107219190611b30565b506000610f3d8486611e13565b95945050505050565b60215460009060ff1615610f6657610f5f8484846113b2565b9050610939565b6001600160a01b03841660009081526001602052604090205460ff16158015610fa857506001600160a01b03831660009081526001602052604090205460ff16155b15610ffd57601f54600160a01b900460ff16610ffd5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610721565b6001600160a01b03841660009081526001602052604090205460ff1615801561102f57506001600160a01b0383163014155b801561104957506003546001600160a01b03848116911614155b80156110635750601f546001600160a01b03848116911614155b801561107d5750601a546001600160a01b03848116911614155b801561109757506017546001600160a01b03848116911614155b80156110bc57506001600160a01b0383166000908152600b602052604090205460ff16155b1561115d576001600160a01b0383166000908152600860205260409020546007546110e78483611e00565b111561115b5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610721565b505b6111678483611486565b61116f6114f3565b1561117c5761117c61154b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546111ce918490610f0c565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061121b57506001600160a01b0384166000908152600a602052604090205460ff165b61122f5761122a858486611932565b611231565b825b6001600160a01b0385166000908152600860205260409020549091506112579082610ead565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611edc833981519152906112999085815260200190565b60405180910390a3506001949350505050565b600061093983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f0c565b60008260000361130057506000610864565b600061130c8385611db3565b9050826113198583611d91565b146109395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610721565b600061093983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611abf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611403918490610f0c565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546114329083610ead565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611edc833981519152906114749086815260200190565b60405180910390a35060019392505050565b600654811115806114af57506001600160a01b0382166000908152600b602052604090205460ff165b6114ef5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610721565b5050565b601f546000906001600160a01b03163314801590611514575060215460ff16155b80156115295750601f54600160a81b900460ff165b80156109e6575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c5460009161156a9161086a565b61157657600c54611579565b60005b9050600061159d6002610d28601154610d28866020546112ee90919063ffffffff16565b905060006115b6826020546112ac90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115f0576115f0611e26565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061162157611621611e26565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061166b908690600090879030904290600401611e3c565b600060405180830381600087803b15801561168557600080fd5b505af1158015611699573d6000803e3d6000fd5b5050505060006116b282476112ac90919063ffffffff16565b905060006116cd6116c4886002611370565b601154906112ac565b905060006116e26002610d288481878d6112ee565b905060006116ff83610d28600d54876112ee90919063ffffffff16565b9050600061171c84610d28600f54886112ee90919063ffffffff16565b9050600061173985610d28600e54896112ee90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461178b576040519150601f19603f3d011682016040523d82523d6000602084013e611790565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611835576040519150601f19603f3d011682016040523d82523d6000602084013e61183a565b606091505b5060009250508b15905061191a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118dd9190611ead565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b03908116908416036119585750601354611973565b601f546001600160a01b039081169086160361197357506014545b60006119a060125460646119879190611db3565b610d2884610d1b6011548a6112ee90919063ffffffff16565b905060006119bf601154610d28601054856112ee90919063ffffffff16565b905060006119cd83836112ac565b306000908152600860205260409020549091506119ea9082610ead565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a189083610ead565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611edc833981519152910160405180910390a38115611aa957600554611a7290836112ac565b6005556004546040518381526001600160a01b03918216918a1690600080516020611edc8339815191529060200160405180910390a35b611ab387846112ac565b98975050505050505050565b60008183611ae05760405162461bcd60e51b81526004016107219190611b30565b506000610f3d8486611d91565b60008060008060008060c08789031215611b0657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611b5d57858101830151858201604001528201611b41565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b9557600080fd5b919050565b60008060408385031215611bad57600080fd5b611bb683611b7e565b946020939093013593505050565b60008060408385031215611bd757600080fd5b50508035926020909101359150565b600080600060608486031215611bfb57600080fd5b611c0484611b7e565b9250611c1260208501611b7e565b9150604084013590509250925092565b600060208284031215611c3457600080fd5b5035919050565b600080600080600060a08688031215611c5357600080fd5b611c5c86611b7e565b9450611c6a60208701611b7e565b9350611c7860408701611b7e565b9250611c8660608701611b7e565b9150611c9460808701611b7e565b90509295509295909350565b600080600060608486031215611cb557600080fd5b505081359360208301359350604090920135919050565b600060208284031215611cde57600080fd5b61093982611b7e565b8015158114610eaa57600080fd5b60008060408385031215611d0857600080fd5b8235611bb681611ce7565b60008060408385031215611d2657600080fd5b611d2f83611b7e565b9150611d3d60208401611b7e565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611dae57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761086457610864611d7b565b600060208284031215611ddc57600080fd5b5051919050565b600060208284031215611df557600080fd5b815161093981611ce7565b8082018082111561086457610864611d7b565b8181038181111561086457610864611d7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e8c5784516001600160a01b031683529383019391830191600101611e67565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ec257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220420857ddad78bae0b2b6c2b7cf38556d84a0fa008aef01a0b444fa460f2f286c64736f6c63430008130033
Deployed Bytecode Sourcemap
5034:12961:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16183:606;;;;;;;;;;-1:-1:-1;16183:606:0;;;;;:::i;:::-;;:::i;:::-;;9641:142;;;;;;;;;;;;;:::i;6825:55::-;;;;;;;;;;;;;;;;;;;688:25:1;;;676:2;661:18;6825:55:0;;;;;;;;8319:80;;;;;;;;;;-1:-1:-1;8391:5:0;;;;;;;;;;;;-1:-1:-1;;;8391:5:0;;;;8319:80;;;;;;;:::i;6745:31::-;;;;;;;;;;-1:-1:-1;6745:31:0;;;;-1:-1:-1;;;6745:31:0;;;;;;;;;1442:14:1;;1435:22;1417:41;;1405:2;1390:18;6745:31:0;1277:187:1;8741:216:0;;;;;;;;;;-1:-1:-1;8741:216:0;;;;;:::i;:::-;;:::i;17771:150::-;;;;;;;;;;-1:-1:-1;17771:150:0;;;;;:::i;:::-;;:::i;8049:88::-;;;;;;;;;;-1:-1:-1;8122:12:0;;8049:88;;6062:112;;;;;;;;;;;;;;;;9259:370;;;;;;;;;;-1:-1:-1;9259:370:0;;;;;:::i;:::-;;:::i;13546:206::-;;;;;;;;;;-1:-1:-1;13546:206:0;;;;;:::i;:::-;;:::i;17446:142::-;;;;;;;;;;;;;:::i;8143:80::-;;;;;;;;;;-1:-1:-1;8143:80:0;;5379:1;2819:36:1;;2807:2;2792:18;8143:80:0;2677:184:1;16797:473:0;;;;;;;;;;-1:-1:-1;16797:473:0;;;;;:::i;:::-;;:::i;13322:215::-;;;;;;;;;;-1:-1:-1;13322:215:0;;;;;:::i;:::-;;:::i;13945:95::-;;;;;;;;;;;;;:::i;8965:122::-;;;;;;;;;;-1:-1:-1;8965:122:0;;;;;:::i;:::-;;:::i;6788:30::-;;;;;;;;;;-1:-1:-1;6788:30:0;;;;-1:-1:-1;;;6788:30:0;;;;;;8489:105;;;;;;;;;;-1:-1:-1;8489:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8573:18:0;8555:7;8573:18;;;:9;:18;;;;;;;8489:105;3091:148;;;;;;;;;;;;;:::i;5521:61::-;;;;;;;;;;;;;;;;5456:58;;;;;;;;;;;;;;;;8405:78;;;;;;;;;;-1:-1:-1;8457:7:0;2942:6;-1:-1:-1;;;;;2942:6:0;8405:78;;;-1:-1:-1;;;;;4031:32:1;;;4013:51;;4001:2;3986:18;8405:78:0;3867:203:1;13029:285:0;;;;;;;;;;-1:-1:-1;13029:285:0;;;;;:::i;:::-;;:::i;2877:79::-;;;;;;;;;;-1:-1:-1;2915:7:0;2942:6;-1:-1:-1;;;;;2942:6:0;2877:79;;8229:84;;;;;;;;;;-1:-1:-1;8303:7:0;;;;;;;;;;;;-1:-1:-1;;;8303:7:0;;;;8229:84;;6713:19;;;;;;;;;;-1:-1:-1;6713:19:0;;;;-1:-1:-1;;;;;6713:19:0;;;9095:156;;;;;;;;;;-1:-1:-1;9095:156:0;;;;;:::i;:::-;;:::i;2497:21::-;;;;;;;;;;-1:-1:-1;2497:21:0;;;;-1:-1:-1;;;;;2497:21:0;;;14049:174;;;;;;;;;;-1:-1:-1;14049:174:0;;;;;:::i;:::-;;:::i;17278:153::-;;;;;;;;;;-1:-1:-1;17278:153:0;;;;;:::i;:::-;;:::i;17596:167::-;;;;;;;;;;-1:-1:-1;17596:167:0;;;;;:::i;:::-;;:::i;8600:133::-;;;;;;;;;;-1:-1:-1;8600:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8702:19:0;;;8684:7;8702:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8600:133;13760:177;;;;;;;;;;-1:-1:-1;13760:177:0;;;;;:::i;:::-;;:::i;3247:244::-;;;;;;;;;;-1:-1:-1;3247:244:0;;;;;:::i;:::-;;:::i;12900:119::-;;;;;;;;;;;;;:::i;6643:24::-;;;;;;;;;;-1:-1:-1;6643:24:0;;;;-1:-1:-1;;;;;6643:24:0;;;16183:606;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;;;;;;;;;16369:12:::1;:28:::0;;;16408:10:::1;:24:::0;;;16443:21:::1;:46:::0;;;16500:7:::1;:18:::0;;;16529:7:::1;:18:::0;;;16569:86:::1;16539:8:::0;16569:72:::1;16510:8:::0;16569:72;16467:22;16569:72;16384:13;16421:11;16569:17:::1;:30::i;:::-;:34:::0;::::1;:58::i;:86::-;16558:8;:97:::0;16666:14:::1;:32:::0;;;16728:18:::1;16745:1;16683:15:::0;16728:18:::1;:::i;:::-;16717:8;;:29;16709:71;;;::::0;-1:-1:-1;;;16709:71:0;;5920:2:1;16709:71:0::1;::::0;::::1;5902:21:1::0;5959:2;5939:18;;;5932:30;5998:31;5978:18;;;5971:59;6047:18;;16709:71:0::1;5718:353:1::0;16709:71:0::1;16183:606:::0;;;;;;:::o;9641:142::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;9718:12:::1;::::0;9703::::1;:27:::0;;;9745:15:::1;:30:::0;9641:142::o;8741:216::-;8845:10;8816:4;8833:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8833:32:0;;;;;;;;;;:41;;;8890:37;8816:4;;8833:32;;8890:37;;;;8868:6;688:25:1;;676:2;661:18;;542:177;8890:37:0;;;;;;;;-1:-1:-1;8945:4:0;8741:216;;;;;:::o;17771:150::-;17851:4;17907:6;17875:29;17895:8;17875:19;:29::i;:::-;:38;;17771:150;-1:-1:-1;;;17771:150:0:o;9259:370::-;-1:-1:-1;;;;;9379:19:0;;9359:4;9379:19;;;:11;:19;;;;;;;;9399:10;9379:31;;;;;;;;-1:-1:-1;;9379:52:0;9376:186;;9481:69;;;;;;;;;;;-1:-1:-1;;;9481:69:0;;;;;;;;-1:-1:-1;;;;;9481:19:0;;-1:-1:-1;9481:19:0;;;:11;:19;;;;;9501:10;9481:31;;;;;;;;;;:69;;9517:6;;9481:35;:69::i;:::-;-1:-1:-1;;;;;9447:19:0;;;;;;:11;:19;;;;;;;;9467:10;9447:31;;;;;;;:103;9376:186;9581:40;9595:6;9603:9;9614:6;9581:13;:40::i;:::-;9574:47;;9259:370;;;;;;:::o;13546:206::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13655:1:::1;13637:14;:19;;13629:28;;;::::0;::::1;;13722:4;13703:14;13688:12;;:29;;;;:::i;:::-;13687:39;;;;:::i;:::-;13669:15;:57:::0;-1:-1:-1;13546:206:0:o;17446:142::-;17574:4;;-1:-1:-1;;;;;17574:4:0;17499:7;8573:18;;;:9;:18;;;;;;17526:54;;17553:4;;-1:-1:-1;;;;;17553:4:0;8555:7;8573:18;;;:9;:18;;;;;;17526:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17519:61;;17446:142;:::o;16797:473::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;17002:21:::1;:46:::0;;-1:-1:-1;;;;;;17002:46:0;;::::1;-1:-1:-1::0;;;;;17002:46:0;;::::1;;::::0;;;17059:29:::1;:62:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17132:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17177:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17222:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;16797:473::o;13322:215::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13424:14:::1;:24:::0;;;;13459:13:::1;:22:::0;13492:11:::1;:21:::0;13322:215::o;13945:95::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13999:11:::1;:18:::0;;-1:-1:-1;;;;13999:18:0::1;-1:-1:-1::0;;;13999:18:0::1;::::0;;13945:95::o;8965:122::-;9020:4;9044:35;9052:7;-1:-1:-1;;9044:7:0;:35::i;3091:148::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;3198:1:::1;3182:6:::0;;3161:40:::1;::::0;-1:-1:-1;;;;;3182:6:0;;::::1;::::0;3161:40:::1;::::0;3198:1;;3161:40:::1;3229:1;3212:19:::0;;-1:-1:-1;;;;;;3212:19:0::1;::::0;;3091:148::o;13029:285::-;13111:4;13138:6;13148:1;13138:11;13135:95;;13174:44;;-1:-1:-1;;;13174:44:0;;13212:4;13174:44;;;4013:51:1;-1:-1:-1;;;;;13174:29:0;;;;;3986:18:1;;13174:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13165:53;;13135:95;13276:21;;13247:59;;-1:-1:-1;;;13247:59:0;;-1:-1:-1;;;;;13276:21:0;;;13247:59;;;6612:51:1;6679:18;;;6672:34;;;13247:28:0;;;;;;6585:18:1;;13247:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9095:156::-;9175:4;9199:44;9213:10;9225:9;9236:6;9199:13;:44::i;14049:174::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;14138:15:::1;:25:::0;;;;14174:26:::1;:41:::0;14049:174::o;17278:153::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;17367:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17367:22:0::1;-1:-1:-1::0;;;;17367:22:0;;::::1;::::0;;;::::1;::::0;;;17400:13:::1;:23:::0;17278:153::o;17596:167::-;17664:7;17691:64;17732:22;:20;:22::i;:::-;17714:4;;-1:-1:-1;;;;;17714:4:0;8555:7;8573:18;;;:9;:18;;;;;;17691:36;;17704:22;;17724:1;;17704:15;:19;;:22::i;:::-;17691:8;;:12;:36::i;:::-;:40;;:64::i;13760:177::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13863:1:::1;13847:12;:17;;13839:26;;;::::0;::::1;;13925:4;13908:12;13893;;:27;;;;:::i;:::-;13892:37;;;;:::i;:::-;13877:12;:52:::0;-1:-1:-1;13760:177:0:o;3247:244::-;3004:6;;-1:-1:-1;;;;;3004:6:0;2314:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3336:22:0;::::1;3328:73;;;::::0;-1:-1:-1;;;3328:73:0;;7169:2:1;3328:73:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:34;7227:18;;;7220:62;-1:-1:-1;;;7298:18:1;;;7291:36;7344:19;;3328:73:0::1;6967:402:1::0;3328:73:0::1;3438:6;::::0;;3417:38:::1;::::0;-1:-1:-1;;;;;3417:38:0;;::::1;::::0;3438:6;::::1;::::0;3417:38:::1;::::0;::::1;3466:6;:17:::0;;-1:-1:-1;;;;;;3466:17:0::1;-1:-1:-1::0;;;;;3466:17:0;;;::::1;::::0;;;::::1;::::0;;3247:244::o;12900:119::-;12947:21;;12939:62;;-1:-1:-1;;;;;12947:21:0;;;;12979;12939:62;;;;;12947:21;12939:62;12947:21;12939:62;12979:21;12947;12939:62;;;;;;;;;;;;;;;;;;;;;12900:119::o;1058:181::-;1116:7;;1148:5;1152:1;1148;:5;:::i;:::-;1136:17;;1177:1;1172;:6;;1164:46;;;;-1:-1:-1;;;1164:46:0;;7706:2:1;1164:46:0;;;7688:21:1;7745:2;7725:18;;;7718:30;7784:29;7764:18;;;7757:57;7831:18;;1164:46:0;7504:351:1;1387:192:0;1473:7;1509:12;1501:6;;;;1493:29;;;;-1:-1:-1;;;1493:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1533:9:0;1545:5;1549:1;1545;:5;:::i;:::-;1533:17;1387:192;-1:-1:-1;;;;;1387:192:0:o;9797:1252::-;9909:6;;9889:4;;9909:6;;9906:63;;;9925:41;9940:6;9948:9;9959:6;9925:14;:41::i;:::-;9918:48;;;;9906:63;-1:-1:-1;;;;;9985:22:0;;;;;;:14;:22;;;;;;;;9984:23;:53;;;;-1:-1:-1;;;;;;10012:25:0;;;;;;:14;:25;;;;;;;;10011:26;9984:53;9981:139;;;10061:11;;-1:-1:-1;;;10061:11:0;;;;10053:43;;;;-1:-1:-1;;;10053:43:0;;8195:2:1;10053:43:0;;;8177:21:1;8234:2;8214:18;;;8207:30;-1:-1:-1;;;8253:18:1;;;8246:50;8313:18;;10053:43:0;7993:344:1;10053:43:0;-1:-1:-1;;;;;10162:22:0;;;;;;:14;:22;;;;;;;;10161:23;:53;;;;-1:-1:-1;;;;;;10188:26:0;;10209:4;10188:26;;10161:53;:84;;;;-1:-1:-1;10240:4:0;;-1:-1:-1;;;;;10219:26:0;;;10240:4;;10219:26;;10161:84;:105;;;;-1:-1:-1;10262:4:0;;-1:-1:-1;;;;;10249:17:0;;;10262:4;;10249:17;;10161:105;:137;;;;-1:-1:-1;10283:15:0;;-1:-1:-1;;;;;10270:28:0;;;10283:15;;10270:28;;10161:137;:183;;;;-1:-1:-1;10315:29:0;;-1:-1:-1;;;;;10302:42:0;;;10315:29;;10302:42;;10161:183;:214;;;;-1:-1:-1;;;;;;10349:26:0;;;;;;:15;:26;;;;;;;;10348:27;10161:214;10157:406;;;-1:-1:-1;;;;;8573:18:0;;10391;8573;;;:9;:18;;;;;;10480:15;;10456:19;10469:6;8573:18;10456:19;:::i;:::-;10455:40;;10447:114;;;;-1:-1:-1;;;10447:114:0;;8544:2:1;10447:114:0;;;8526:21:1;8583:2;8563:18;;;8556:30;8622:34;8602:18;;;8595:62;8693:32;8673:18;;;8666:60;8743:19;;10447:114:0;8342:426:1;10447:114:0;10376:187;10157:406;10585:28;10598:6;10606;10585:12;:28::i;:::-;10630:16;:14;:16::i;:::-;10627:35;;;10649:10;:8;:10::i;:::-;10700:53;;;;;;;;;;;-1:-1:-1;;;10700:53:0;;;;;;;;-1:-1:-1;;;;;10700:17:0;;-1:-1:-1;10700:17:0;;;:9;:17;;;;;;;;:53;;10722:6;;10700:21;:53::i;:::-;-1:-1:-1;;;;;10680:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10792:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10815:22:0;;;;;;:11;:22;;;;;;;;10792:45;10791:93;;10850:34;10858:6;10866;10874:9;10850:7;:34::i;:::-;10791:93;;;10841:6;10791:93;-1:-1:-1;;;;;10918:20:0;;;;;;:9;:20;;;;;;10766:118;;-1:-1:-1;10918:40:0;;10766:118;10918:24;:40::i;:::-;-1:-1:-1;;;;;10895:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10976:43;;;;;;-1:-1:-1;;;;;;;;;;;10976:43:0;;;11004:14;688:25:1;;676:2;661:18;;542:177;10976:43:0;;;;;;;;-1:-1:-1;11037:4:0;;9797:1252;-1:-1:-1;;;;9797:1252:0:o;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;1585:250::-;1643:7;1667:1;1672;1667:6;1663:47;;-1:-1:-1;1697:1:0;1690:8;;1663:47;1722:9;1734:5;1738:1;1734;:5;:::i;:::-;1722:17;-1:-1:-1;1767:1:0;1758:5;1762:1;1722:17;1758:5;:::i;:::-;:10;1750:56;;;;-1:-1:-1;;;1750:56:0;;8975:2:1;1750:56:0;;;8957:21:1;9014:2;8994:18;;;8987:30;9053:34;9033:18;;;9026:62;-1:-1:-1;;;9104:18:1;;;9097:31;9145:19;;1750:56:0;8773:397:1;1841:132:0;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;11061:330::-;11191:53;;;;;;;;;;;-1:-1:-1;;;11191:53:0;;;;;;;;-1:-1:-1;;;;;11191:17:0;;11154:4;11191:17;;;:9;:17;;;;;;;:53;;11213:6;;11191:21;:53::i;:::-;-1:-1:-1;;;;;11171:17:0;;;;;;;:9;:17;;;;;;:73;;;;11278:20;;;;;;;:32;;11303:6;11278:24;:32::i;:::-;-1:-1:-1;;;;;11255:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11326:35;;;;;;-1:-1:-1;;;;;;;;;;;11326:35:0;;;11354:6;688:25:1;;676:2;661:18;;542:177;11326:35:0;;;;;;;;-1:-1:-1;11379:4:0;11061:330;;;;;:::o;11399:166::-;11496:12;;11486:6;:22;;:49;;;-1:-1:-1;;;;;;11512:23:0;;;;;;:15;:23;;;;;;;;11486:49;11478:79;;;;-1:-1:-1;;;11478:79:0;;9377:2:1;11478:79:0;;;9359:21:1;9416:2;9396:18;;;9389:30;-1:-1:-1;;;9435:18:1;;;9428:47;9492:18;;11478:79:0;9175:341:1;11478:79:0;11399:166;;:::o;12691:197::-;12778:4;;12740;;-1:-1:-1;;;;;12778:4:0;12764:10;:18;;;;:38;;-1:-1:-1;12796:6:0;;;;12795:7;12764:38;:62;;;;-1:-1:-1;12815:11:0;;-1:-1:-1;;;12815:11:0;;;;12764:62;:116;;;;-1:-1:-1;;12867:13:0;;;12857:4;12839:24;;;;:9;:24;;;;;;;;:41;;;12691:197::o;14258:1911::-;6928:6;:13;;-1:-1:-1;;6928:13:0;6937:4;6928:13;;;14353:15:::1;::::0;14370:26:::1;::::0;6928:6;;14337:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14404:12;;14337:79;;;14400:1;14337:79;14307:109;;14427:23;14453:59;14510:1;14453:52;14496:8;;14453:38;14471:19;14453:13;;:17;;:38;;;;:::i;:59::-;14427:85;;14523:20;14546:34;14564:15;14546:13;;:17;;:34;;;;:::i;:::-;14617:16;::::0;;14631:1:::1;14617:16:::0;;;;;::::1;::::0;;14523:57;;-1:-1:-1;14593:21:0::1;::::0;14617:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14617:16:0::1;14593:40;;14662:4;14644;14649:1;14644:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14644:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14688:4:::1;::::0;14678:7;;14688:4;::::1;::::0;14678;;14688;;14678:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14678:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14763:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14763:188:0;;14729:21:::1;::::0;14763:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14835:12;;14705:21:::1;::::0;14878:4;;14905::::1;::::0;14925:15:::1;::::0;14763:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14964:17;14984:40;15010:13;14984:21;:25;;:40;;;;:::i;:::-;14964:60:::0;-1:-1:-1;15037:19:0::1;15059:40;15072:26;:19:::0;15096:1:::1;15072:23;:26::i;:::-;15059:8;::::0;;:12:::1;:40::i;:::-;15037:62:::0;-1:-1:-1;15120:26:0::1;15149:58;15205:1;15149:51;15037:62:::0;15149:51;:9;15163:19;15149:13:::1;:34::i;:58::-;15120:87;;15218:35;15256:53;15297:11;15256:36;15270:21;;15256:9;:13;;:36;;;;:::i;:53::-;15218:91;;15320:24;15347:42;15377:11;15347:25;15361:10;;15347:9;:13;;:25;;;;:::i;:42::-;15320:69;;15400:20;15423:39;15450:11;15423:22;15437:7;;15423:9;:13;;:22;;;;:::i;:39::-;15504:29;::::0;15496:83:::1;::::0;15400:62;;-1:-1:-1;15476:15:0::1;::::0;-1:-1:-1;;;;;15504:29:0;;::::1;::::0;15547:27;;15476:15;15496:83;15476:15;15496:83;15547:27;15504:29;15496:83:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15614:15:0::1;::::0;15606:54:::1;::::0;15475:104;;-1:-1:-1;;;;;;15614:15:0::1;::::0;15643:12;;15606:54:::1;::::0;;;15643:12;15614:15;15606:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15695:18:0::1;::::0;15687:61:::1;::::0;15590:70;;-1:-1:-1;;;;;;15695:18:0::1;::::0;15727:16;;15687:61:::1;::::0;;;15727:16;15695:18;15687:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15782:5:0::1;::::0;-1:-1:-1;;15803:19:0;;;-1:-1:-1;15800:362:0::1;;15838:6;::::0;16012:21:::1;::::0;15838:244:::1;::::0;-1:-1:-1;;;15838:244:0;;15914:4:::1;15838:244;::::0;::::1;11321:34:1::0;11371:18;;;11364:34;;;15838:6:0::1;11414:18:1::0;;;11407:34;;;11457:18;;;11450:34;-1:-1:-1;;;;;16012:21:0;;::::1;11500:19:1::0;;;11493:44;16052:15:0::1;11553:19:1::0;;;11546:35;15838:6:0;::::1;::::0;:22:::1;::::0;15868:18;;11255:19:1;;15838:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16102:48:0::1;::::0;;12077:25:1;;;12133:2;12118:18;;12111:34;;;16102:48:0::1;::::0;-1:-1:-1;12050:18:1;16102:48:0::1;;;;;;;15800:362;-1:-1:-1::0;;6946:6:0;:14;;-1:-1:-1;;6946:14:0;;;-1:-1:-1;;;;;;;;;;14258:1911:0:o;11695:988::-;11829:11;;11869:4;;11781:7;;11829:11;-1:-1:-1;;;;;11869:4:0;;;11856:17;;;;11853:148;;-1:-1:-1;11900:14:0;;11853:148;;;11945:4;;-1:-1:-1;;;;;11945:4:0;;;11935:14;;;;11932:69;;-1:-1:-1;11976:13:0;;11932:69;12013:17;12033:59;12071:14;;12088:3;12071:20;;;;:::i;:::-;12033:33;12058:7;12033:20;12044:8;;12033:6;:10;;:20;;;;:::i;:59::-;12013:79;;12103:18;12124:36;12151:8;;12124:22;12138:7;;12124:9;:13;;:22;;;;:::i;:36::-;12103:57;-1:-1:-1;12171:22:0;12196:25;:9;12103:57;12196:13;:25::i;:::-;12279:4;12261:24;;;;:9;:24;;;;;;12171:50;;-1:-1:-1;12261:44:0;;12171:50;12261:28;:44::i;:::-;12252:4;12234:24;;;;:9;:24;;;;;;:71;;;;12355:15;;-1:-1:-1;;;;;12355:15:0;12345:26;;;;:42;;12376:10;12345:30;:42::i;:::-;12326:15;;-1:-1:-1;;;;;12326:15:0;;;12316:26;;;;:9;:26;;;;;;;;;:71;;;;12403:47;688:25:1;;;12428:4:0;;12403:47;;;;-1:-1:-1;;;;;;;;;;;12403:47:0;661:18:1;12403:47:0;;;;;;;12484:14;;12481:154;;12529:12;;:28;;12546:10;12529:16;:28::i;:::-;12514:12;:43;12594:4;;12577:34;;688:25:1;;;-1:-1:-1;;;;;12594:4:0;;;;12577:34;;;-1:-1:-1;;;;;;;;;;;12577:34:0;676:2:1;661:18;12577:34:0;;;;;;;12481:154;12654:21;:6;12665:9;12654:10;:21::i;:::-;12647:28;11695:988;-1:-1:-1;;;;;;;;11695:988:0:o;1979:189::-;2065:7;2100:12;2093:5;2085:28;;;;-1:-1:-1;;;2085:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2124:9:0;2136:5;2140:1;2136;:5;:::i;14:523:1:-;118:6;126;134;142;150;158;211:3;199:9;190:7;186:23;182:33;179:53;;;228:1;225;218:12;179:53;-1:-1:-1;;251:23:1;;;321:2;306:18;;293:32;;-1:-1:-1;372:2:1;357:18;;344:32;;423:2;408:18;;395:32;;-1:-1:-1;474:3:1;459:19;;446:33;;-1:-1:-1;526:3:1;511:19;498:33;;-1:-1:-1;14:523:1;-1:-1:-1;14:523:1:o;724:548::-;836:4;865:2;894;883:9;876:21;926:6;920:13;969:6;964:2;953:9;949:18;942:34;994:1;1004:140;1018:6;1015:1;1012:13;1004:140;;;1113:14;;;1109:23;;1103:30;1079:17;;;1098:2;1075:26;1068:66;1033:10;;1004:140;;;1008:3;1193:1;1188:2;1179:6;1168:9;1164:22;1160:31;1153:42;1263:2;1256;1252:7;1247:2;1239:6;1235:15;1231:29;1220:9;1216:45;1212:54;1204:62;;;;724:548;;;;:::o;1469:173::-;1537:20;;-1:-1:-1;;;;;1586:31:1;;1576:42;;1566:70;;1632:1;1629;1622:12;1566:70;1469:173;;;:::o;1647:254::-;1715:6;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1815:29;1834:9;1815:29;:::i;:::-;1805:39;1891:2;1876:18;;;;1863:32;;-1:-1:-1;;;1647:254:1:o;1906:248::-;1974:6;1982;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;-1:-1:-1;;2074:23:1;;;2144:2;2129:18;;;2116:32;;-1:-1:-1;1906:248:1:o;2159:328::-;2236:6;2244;2252;2305:2;2293:9;2284:7;2280:23;2276:32;2273:52;;;2321:1;2318;2311:12;2273:52;2344:29;2363:9;2344:29;:::i;:::-;2334:39;;2392:38;2426:2;2415:9;2411:18;2392:38;:::i;:::-;2382:48;;2477:2;2466:9;2462:18;2449:32;2439:42;;2159:328;;;;;:::o;2492:180::-;2551:6;2604:2;2592:9;2583:7;2579:23;2575:32;2572:52;;;2620:1;2617;2610:12;2572:52;-1:-1:-1;2643:23:1;;2492:180;-1:-1:-1;2492:180:1:o;2866:484::-;2961:6;2969;2977;2985;2993;3046:3;3034:9;3025:7;3021:23;3017:33;3014:53;;;3063:1;3060;3053:12;3014:53;3086:29;3105:9;3086:29;:::i;:::-;3076:39;;3134:38;3168:2;3157:9;3153:18;3134:38;:::i;:::-;3124:48;;3191:38;3225:2;3214:9;3210:18;3191:38;:::i;:::-;3181:48;;3248:38;3282:2;3271:9;3267:18;3248:38;:::i;:::-;3238:48;;3305:39;3339:3;3328:9;3324:19;3305:39;:::i;:::-;3295:49;;2866:484;;;;;;;;:::o;3355:316::-;3432:6;3440;3448;3501:2;3489:9;3480:7;3476:23;3472:32;3469:52;;;3517:1;3514;3507:12;3469:52;-1:-1:-1;;3540:23:1;;;3610:2;3595:18;;3582:32;;-1:-1:-1;3661:2:1;3646:18;;;3633:32;;3355:316;-1:-1:-1;3355:316:1:o;3676:186::-;3735:6;3788:2;3776:9;3767:7;3763:23;3759:32;3756:52;;;3804:1;3801;3794:12;3756:52;3827:29;3846:9;3827:29;:::i;4075:118::-;4161:5;4154:13;4147:21;4140:5;4137:32;4127:60;;4183:1;4180;4173:12;4198:309;4263:6;4271;4324:2;4312:9;4303:7;4299:23;4295:32;4292:52;;;4340:1;4337;4330:12;4292:52;4379:9;4366:23;4398:28;4420:5;4398:28;:::i;4512:260::-;4580:6;4588;4641:2;4629:9;4620:7;4616:23;4612:32;4609:52;;;4657:1;4654;4647:12;4609:52;4680:29;4699:9;4680:29;:::i;:::-;4670:39;;4728:38;4762:2;4751:9;4747:18;4728:38;:::i;:::-;4718:48;;4512:260;;;;;:::o;5003:356::-;5205:2;5187:21;;;5224:18;;;5217:30;5283:34;5278:2;5263:18;;5256:62;5350:2;5335:18;;5003:356::o;5364:127::-;5425:10;5420:3;5416:20;5413:1;5406:31;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5496:217;5536:1;5562;5552:132;;5606:10;5601:3;5597:20;5594:1;5587:31;5641:4;5638:1;5631:15;5669:4;5666:1;5659:15;5552:132;-1:-1:-1;5698:9:1;;5496:217::o;6076:168::-;6149:9;;;6180;;6197:15;;;6191:22;;6177:37;6167:71;;6218:18;;:::i;6249:184::-;6319:6;6372:2;6360:9;6351:7;6347:23;6343:32;6340:52;;;6388:1;6385;6378:12;6340:52;-1:-1:-1;6411:16:1;;6249:184;-1:-1:-1;6249:184:1:o;6717:245::-;6784:6;6837:2;6825:9;6816:7;6812:23;6808:32;6805:52;;;6853:1;6850;6843:12;6805:52;6885:9;6879:16;6904:28;6926:5;6904:28;:::i;7374:125::-;7439:9;;;7460:10;;;7457:36;;;7473:18;;:::i;7860:128::-;7927:9;;;7948:11;;;7945:37;;;7962:18;;:::i;9653:127::-;9714:10;9709:3;9705:20;9702:1;9695:31;9745:4;9742:1;9735:15;9769:4;9766:1;9759:15;9785:980;10047:4;10095:3;10084:9;10080:19;10126:6;10115:9;10108:25;10152:2;10190:6;10185:2;10174:9;10170:18;10163:34;10233:3;10228:2;10217:9;10213:18;10206:31;10257:6;10292;10286:13;10323:6;10315;10308:22;10361:3;10350:9;10346:19;10339:26;;10400:2;10392:6;10388:15;10374:29;;10421:1;10431:195;10445:6;10442:1;10439:13;10431:195;;;10510:13;;-1:-1:-1;;;;;10506:39:1;10494:52;;10601:15;;;;10566:12;;;;10542:1;10460:9;10431:195;;;-1:-1:-1;;;;;;;10682:32:1;;;;10677:2;10662:18;;10655:60;-1:-1:-1;;;10746:3:1;10731:19;10724:35;10643:3;9785:980;-1:-1:-1;;;9785:980:1:o;11592:306::-;11680:6;11688;11696;11749:2;11737:9;11728:7;11724:23;11720:32;11717:52;;;11765:1;11762;11755:12;11717:52;11794:9;11788:16;11778:26;;11844:2;11833:9;11829:18;11823:25;11813:35;;11888:2;11877:9;11873:18;11867:25;11857:35;;11592:306;;;;;:::o
Swarm Source
ipfs://420857ddad78bae0b2b6c2b7cf38556d84a0fa008aef01a0b444fa460f2f286c
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.