Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,469,788,824,775.076624548845255129 gm2.0
Holders
158
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,439,284,566,863.088744258773763406 gm2.0Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GM20
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// Created by gm2.0 http://gmwagmi2.com/ // https://t.me/gmwagmi2 // https://twitter.com/gmwagmi2 // SPDX-License-Identifier: MIT pragma solidity 0.8.20; 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; } 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; } } contract GM20 is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "gm2.0"; string constant _symbol = "gm2.0"; uint8 constant _decimals = 18; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 420690000000000 * 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) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 0; uint256 private marketingFee = 5; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 100; uint256 buypercent = 100; uint256 transferpercent = 100; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 70 / 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; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x6f64Cf5Adad699BE590601720243F77d64B82cb6; devFeeReceiver = msg.sender; buybackFeeReceiver = 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 maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } 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 (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[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 = (isexemptfromfees[sender] || isexemptfromfees[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 || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[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 manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner { sellpercent = _percentonsell; buypercent = _percentonbuy; transferpercent = _wallettransfer; } function startTrading() public onlyOwner { TradingOpen = true; buypercent = 1400; sellpercent = 800; transferpercent = 1000; } function reduceFee() public onlyOwner { buypercent = 400; sellpercent = 700; transferpercent = 500; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); set_fees(); } function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","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":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","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":[],"name":"reduceFee","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":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","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":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","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":"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":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","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":[{"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
60806040526012600a62000014919062000cfd565b66017e9d8602b40062000028919062000d4d565b60035562000058606462000049600160035462000a2d60201b90919060201c565b62000aad60201b90919060201c565b60045562000088606462000079600160035462000a2d60201b90919060201c565b62000aad60201b90919060201c565b6005555f600a556005600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000bb919062000d97565b620000c7919062000d97565b620000d3919062000d97565b620000df919062000d97565b600f556064601055606460115560646012556064601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e8604660035462000149919062000d4d565b62000155919062000dfe565b601e5534801562000164575f80fd5b505f6200017662000afe60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036b919062000e9a565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000415573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043b919062000e9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049892919062000edb565b6020604051808303815f875af1158015620004b5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004db919062000e9a565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736f64cf5adad699be590601720243f77d64b82cb660155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a1f919062000f17565b60405180910390a36200107c565b5f80830362000a3f575f905062000aa7565b5f828462000a4e919062000d4d565b905082848262000a5f919062000dfe565b1462000aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a999062000fb6565b60405180910390fd5b809150505b92915050565b5f62000af683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b0560201b60201c565b905092915050565b5f33905090565b5f808311829062000b4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4591906200105a565b60405180910390fd5b505f838562000b5e919062000dfe565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bf55780860481111562000bcd5762000bcc62000b6b565b5b600185161562000bdd5780820291505b808102905062000bed8562000b98565b945062000bad565b94509492505050565b5f8262000c0f576001905062000ce1565b8162000c1e575f905062000ce1565b816001811462000c37576002811462000c425762000c78565b600191505062000ce1565b60ff84111562000c575762000c5662000b6b565b5b8360020a91508482111562000c715762000c7062000b6b565b5b5062000ce1565b5060208310610133831016604e8410600b841016171562000cb25782820a90508381111562000cac5762000cab62000b6b565b5b62000ce1565b62000cc1848484600162000ba4565b9250905081840481111562000cdb5762000cda62000b6b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d098262000ce8565b915062000d168362000cf1565b925062000d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bfe565b905092915050565b5f62000d598262000ce8565b915062000d668362000ce8565b925082820262000d768162000ce8565b9150828204841483151762000d905762000d8f62000b6b565b5b5092915050565b5f62000da38262000ce8565b915062000db08362000ce8565b925082820190508082111562000dcb5762000dca62000b6b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e0a8262000ce8565b915062000e178362000ce8565b92508262000e2a5762000e2962000dd1565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e648262000e39565b9050919050565b62000e768162000e58565b811462000e81575f80fd5b50565b5f8151905062000e948162000e6b565b92915050565b5f6020828403121562000eb25762000eb162000e35565b5b5f62000ec18482850162000e84565b91505092915050565b62000ed58162000e58565b82525050565b5f60408201905062000ef05f83018562000eca565b62000eff602083018462000eca565b9392505050565b62000f118162000ce8565b82525050565b5f60208201905062000f2c5f83018462000f06565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000f9e60218362000f32565b915062000fab8262000f42565b604082019050919050565b5f6020820190508181035f83015262000fcf8162000f90565b9050919050565b5f81519050919050565b5f5b8381101562000fff57808201518184015260208101905062000fe2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010268262000fd6565b62001032818562000f32565b93506200104481856020860162000fe0565b6200104f816200100a565b840191505092915050565b5f6020820190508181035f8301526200107481846200101a565b905092915050565b6140a6806200108a5f395ff3fe608060405260043610610212575f3560e01c806377b54bad11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461076b578063df20fd49146107a7578063f2fde38b146107cf578063f4293890146107f7578063f887ea401461080d57610219565b8063a9059cbb146106a1578063b2bdfa7b146106dd578063c0cbdea414610707578063dd62ed3e1461072f57610219565b8063893d20e8116100e6578063893d20e8146105e35780638da5cb5b1461060d57806395d89b4114610637578063a70419d214610661578063a8aa1b311461067757610219565b806377b54bad1461052b57806378109e54146105675780637d1db4a51461059157806382528791146105bb57610219565b806330c9a6a01161019a5780635d83e1d5116101695780635d83e1d5146104715780636ddd17131461049957806370a08231146104c3578063715018a6146104ff578063751039fc1461051557610219565b806330c9a6a0146103a5578063313ce567146103e1578063552656691461040b578063571ac8b01461043557610219565b806318160ddd116101e157806318160ddd146102d75780631df4ccfc1461030157806323b872dd1461032b578063282c874914610367578063293230b81461038f57610219565b80630445b6671461021d57806306fdde031461024757806308fd3d0514610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610837565b60405161023e919061322a565b60405180910390f35b348015610252575f80fd5b5061025b61083d565b60405161026891906132cd565b60405180910390f35b34801561027c575f80fd5b5061028561087a565b6040516102929190613307565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906133a8565b61088d565b6040516102ce9190613307565b60405180910390f35b3480156102e2575f80fd5b506102eb61097a565b6040516102f8919061322a565b60405180910390f35b34801561030c575f80fd5b50610315610983565b604051610322919061322a565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c91906133e6565b610989565b60405161035e9190613307565b60405180910390f35b348015610372575f80fd5b5061038d60048036038101906103889190613436565b610b7c565b005b34801561039a575f80fd5b506103a3610ceb565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906134bf565b610db7565b6040516103d8919061322a565b60405180910390f35b3480156103ec575f80fd5b506103f5610e27565b6040516104029190613505565b60405180910390f35b348015610416575f80fd5b5061041f610e2f565b60405161042c919061322a565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061351e565b610e6e565b6040516104689190613307565b60405180910390f35b34801561047c575f80fd5b50610497600480360381019061049291906134bf565b610ea0565b005b3480156104a4575f80fd5b506104ad610f9e565b6040516104ba9190613307565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e4919061351e565b610fb1565b6040516104f6919061322a565b60405180910390f35b34801561050a575f80fd5b50610513610ff7565b005b348015610520575f80fd5b50610529611145565b005b348015610536575f80fd5b50610551600480360381019061054c91906133a8565b6111ed565b60405161055e9190613307565b60405180910390f35b348015610572575f80fd5b5061057b61134d565b604051610588919061322a565b60405180910390f35b34801561059c575f80fd5b506105a5611353565b6040516105b2919061322a565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc9190613549565b611359565b005b3480156105ee575f80fd5b506105f76115f5565b60405161060491906135cf565b60405180910390f35b348015610618575f80fd5b50610621611603565b60405161062e91906135cf565b60405180910390f35b348015610642575f80fd5b5061064b61162a565b60405161065891906132cd565b60405180910390f35b34801561066c575f80fd5b50610675611667565b005b348015610682575f80fd5b5061068b611718565b60405161069891906135cf565b60405180910390f35b3480156106ac575f80fd5b506106c760048036038101906106c291906133a8565b61173d565b6040516106d49190613307565b60405180910390f35b3480156106e8575f80fd5b506106f1611751565b6040516106fe91906135cf565b60405180910390f35b348015610712575f80fd5b5061072d600480360381019061072891906135e8565b611774565b005b34801561073a575f80fd5b5061075560048036038101906107509190613638565b611822565b604051610762919061322a565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190613676565b6118a4565b60405161079e9190613307565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c891906136de565b6118b8565b005b3480156107da575f80fd5b506107f560048036038101906107f0919061351e565b6119bb565b005b348015610802575f80fd5b5061080b611b78565b005b348015610818575f80fd5b50610821611bdf565b60405161082e9190613777565b60405180910390f35b601e5481565b60606040518060400160405280600581526020017f676d322e30000000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610968919061322a565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b6857610aeb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b73848484611c66565b90509392505050565b610b8461229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906137da565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c7c82610c6e85610c6088610c528b8d6122a490919063ffffffff16565b6122a490919063ffffffff16565b6122a490919063ffffffff16565b6122a490919063ffffffff16565b600f81905550806010819055506002601054610c989190613852565b600f5410610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906138cc565b60405180910390fd5b610ce3612301565b505050505050565b610cf361229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906137da565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506105786012819055506103206011819055506103e8601381905550565b5f610e20610dc3610e2f565b610e12610e036002610df5601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fb1565b6123b990919063ffffffff16565b856123b990919063ffffffff16565b61243090919063ffffffff16565b9050919050565b5f6012905090565b5f610e69610e3c5f610fb1565b610e5b610e4a61dead610fb1565b60035461247990919063ffffffff16565b61247990919063ffffffff16565b905090565b5f610e99827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61088d565b9050919050565b610ea861229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906137da565b60405180910390fd5b6001811015610f41575f80fd5b6103e881600354610f5291906138ea565b610f5c9190613852565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f93919061322a565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fff61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906137da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61114d61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d0906137da565b60405180910390fd5b600354600481905550600354600581905550565b5f808203611270578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161122e91906135cf565b602060405180830381865afa158015611249573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126d919061393f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112a192919061396a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161130592919061396a565b6020604051808303815f875af1158015611321573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134591906139a5565b905092915050565b60055481565b60045481565b61136161229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e4906137da565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115e694939291906139d0565b60405180910390a15050505050565b5f6115fe611603565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f676d322e30000000000000000000000000000000000000000000000000000000815250905090565b61166f61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f2906137da565b60405180910390fd5b6101906012819055506102bc6011819055506101f4601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611749338484611c66565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61177c61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff906137da565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826118af83610db7565b11905092915050565b6118c061229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906137da565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516119af929190613a13565b60405180910390a15050565b6119c361229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a46906137da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab490613aaa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611bdc573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4291906132cd565b60405180910390fd5b505f8385611c599190613ac8565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611c8d57611c868484846124c2565b9050612296565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d2b575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d8057601d60149054906101000a900460ff16611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7690613b45565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e0357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e3d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e965750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eef575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f48575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9b575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ffe575f611faa84610fb1565b90506005548382611fbb9190613b63565b1115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613c06565b60405180910390fd5b505b612008848361268c565b612010612726565b1561201e5761201d6127f8565b5b6120a5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612182575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61219657612191858486612df3565b612198565b825b90506121ea8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612288919061322a565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846122b29190613b63565b9050838110156122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90613c6e565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061234c606461233e601254600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6123766064612368601154600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6123a06064612392601354600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6040516123af93929190613c8c565b60405180910390a1565b5f8083036123c9575f905061242a565b5f82846123d691906138ea565b90508284826123e59190613852565b14612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90613d31565b60405180910390fd5b809150505b92915050565b5f61247183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b1565b905092915050565b5f6124ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c04565b905092915050565b5f61254a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125db8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612679919061322a565b60405180910390a3600190509392505050565b600454811115806126e3575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271990613d99565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156127905750601f5f9054906101000a900460ff16155b80156127a85750601d60159054906101000a900460ff165b80156127f35750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f612821601954601a546118a4565b61282d57600a5461282f565b5f5b90505f61286e6002612860600f5461285286601e546123b990919063ffffffff16565b61243090919063ffffffff16565b61243090919063ffffffff16565b90505f61288682601e5461247990919063ffffffff16565b90505f600267ffffffffffffffff8111156128a4576128a3613db7565b5b6040519080825280602002602001820160405280156128d25781602001602082028036833780820191505090505b50905030815f815181106128e9576128e8613de4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061295957612958613de4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b81526004016129f9959493929190613f01565b5f604051808303815f87803b158015612a10575f80fd5b505af1158015612a22573d5f803e3d5ffd5b505050505f612a3a824761247990919063ffffffff16565b90505f612a65612a5460028961243090919063ffffffff16565b600f5461247990919063ffffffff16565b90505f612aa06002612a9284612a848c886123b990919063ffffffff16565b61243090919063ffffffff16565b61243090919063ffffffff16565b90505f612aca83612abc600b54876123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612af484612ae6600d54886123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612b1e85612b10600c54896123b990919063ffffffff16565b61243090919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612b6690613f86565b5f6040518083038185875af1925050503d805f8114612ba0576040519150601f19603f3d011682016040523d82523d5f602084013e612ba5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612bee90613f86565b5f6040518083038185875af1925050503d805f8114612c28576040519150601f19603f3d011682016040523d82523d5f602084013e612c2d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c7890613f86565b5f6040518083038185875af1925050503d805f8114612cb2576040519150601f19603f3d011682016040523d82523d5f602084013e612cb7565b606091505b5050809150505f90505f8b1115612dcc57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d4e96959493929190613f9a565b60606040518083038185885af1158015612d6a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613ff9565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612dc3929190614049565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e58576011549050612eb3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612eb25760125490505b5b5f612efb6064601054612ec691906138ea565b612eed84612edf600f548a6123b990919063ffffffff16565b6123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612f27600f54612f19600e54856123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612f3d828461247990919063ffffffff16565b9050612f8f8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130418260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613100919061322a565b60405180910390a35f821115613191576131258260035461247990919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613188919061322a565b60405180910390a35b6131a4838861247990919063ffffffff16565b9450505050509392505050565b5f80831182906131f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ee91906132cd565b60405180910390fd5b505f83856132059190613852565b9050809150509392505050565b5f819050919050565b61322481613212565b82525050565b5f60208201905061323d5f83018461321b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561327a57808201518184015260208101905061325f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61329f82613243565b6132a9818561324d565b93506132b981856020860161325d565b6132c281613285565b840191505092915050565b5f6020820190508181035f8301526132e58184613295565b905092915050565b5f8115159050919050565b613301816132ed565b82525050565b5f60208201905061331a5f8301846132f8565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61334d82613324565b9050919050565b61335d81613343565b8114613367575f80fd5b50565b5f8135905061337881613354565b92915050565b61338781613212565b8114613391575f80fd5b50565b5f813590506133a28161337e565b92915050565b5f80604083850312156133be576133bd613320565b5b5f6133cb8582860161336a565b92505060206133dc85828601613394565b9150509250929050565b5f805f606084860312156133fd576133fc613320565b5b5f61340a8682870161336a565b935050602061341b8682870161336a565b925050604061342c86828701613394565b9150509250925092565b5f805f805f8060c087890312156134505761344f613320565b5b5f61345d89828a01613394565b965050602061346e89828a01613394565b955050604061347f89828a01613394565b945050606061349089828a01613394565b93505060806134a189828a01613394565b92505060a06134b289828a01613394565b9150509295509295509295565b5f602082840312156134d4576134d3613320565b5b5f6134e184828501613394565b91505092915050565b5f60ff82169050919050565b6134ff816134ea565b82525050565b5f6020820190506135185f8301846134f6565b92915050565b5f6020828403121561353357613532613320565b5b5f6135408482850161336a565b91505092915050565b5f805f805f60a0868803121561356257613561613320565b5b5f61356f8882890161336a565b95505060206135808882890161336a565b94505060406135918882890161336a565b93505060606135a28882890161336a565b92505060806135b38882890161336a565b9150509295509295909350565b6135c981613343565b82525050565b5f6020820190506135e25f8301846135c0565b92915050565b5f805f606084860312156135ff576135fe613320565b5b5f61360c86828701613394565b935050602061361d86828701613394565b925050604061362e86828701613394565b9150509250925092565b5f806040838503121561364e5761364d613320565b5b5f61365b8582860161336a565b925050602061366c8582860161336a565b9150509250929050565b5f806040838503121561368c5761368b613320565b5b5f61369985828601613394565b92505060206136aa85828601613394565b9150509250929050565b6136bd816132ed565b81146136c7575f80fd5b50565b5f813590506136d8816136b4565b92915050565b5f80604083850312156136f4576136f3613320565b5b5f613701858286016136ca565b925050602061371285828601613394565b9150509250929050565b5f819050919050565b5f61373f61373a61373584613324565b61371c565b613324565b9050919050565b5f61375082613725565b9050919050565b5f61376182613746565b9050919050565b61377181613757565b82525050565b5f60208201905061378a5f830184613768565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137c460208361324d565b91506137cf82613790565b602082019050919050565b5f6020820190508181035f8301526137f1816137b8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61385c82613212565b915061386783613212565b925082613877576138766137f8565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6138b6601d8361324d565b91506138c182613882565b602082019050919050565b5f6020820190508181035f8301526138e3816138aa565b9050919050565b5f6138f482613212565b91506138ff83613212565b925082820261390d81613212565b9150828204841483151761392457613923613825565b5b5092915050565b5f815190506139398161337e565b92915050565b5f6020828403121561395457613953613320565b5b5f6139618482850161392b565b91505092915050565b5f60408201905061397d5f8301856135c0565b61398a602083018461321b565b9392505050565b5f8151905061399f816136b4565b92915050565b5f602082840312156139ba576139b9613320565b5b5f6139c784828501613991565b91505092915050565b5f6080820190506139e35f8301876135c0565b6139f060208301866135c0565b6139fd60408301856135c0565b613a0a60608301846135c0565b95945050505050565b5f604082019050613a265f83018561321b565b613a3360208301846132f8565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a9460268361324d565b9150613a9f82613a3a565b604082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b5f613ad282613212565b9150613add83613212565b9250828203905081811115613af557613af4613825565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613b2f60148361324d565b9150613b3a82613afb565b602082019050919050565b5f6020820190508181035f830152613b5c81613b23565b9050919050565b5f613b6d82613212565b9150613b7883613212565b9250828201905080821115613b9057613b8f613825565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613bf0603e8361324d565b9150613bfb82613b96565b604082019050919050565b5f6020820190508181035f830152613c1d81613be4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c58601b8361324d565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f606082019050613c9f5f8301866134f6565b613cac60208301856134f6565b613cb960408301846134f6565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d1b60218361324d565b9150613d2682613cc1565b604082019050919050565b5f6020820190508181035f830152613d4881613d0f565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613d8360118361324d565b9150613d8e82613d4f565b602082019050919050565b5f6020820190508181035f830152613db081613d77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613e34613e2f613e2a84613e11565b61371c565b613212565b9050919050565b613e4481613e1a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e7c81613343565b82525050565b5f613e8d8383613e73565b60208301905092915050565b5f602082019050919050565b5f613eaf82613e4a565b613eb98185613e54565b9350613ec483613e64565b805f5b83811015613ef4578151613edb8882613e82565b9750613ee683613e99565b925050600181019050613ec7565b5085935050505092915050565b5f60a082019050613f145f83018861321b565b613f216020830187613e3b565b8181036040830152613f338186613ea5565b9050613f4260608301856135c0565b613f4f608083018461321b565b9695505050505050565b5f81905092915050565b50565b5f613f715f83613f59565b9150613f7c82613f63565b5f82019050919050565b5f613f9082613f66565b9150819050919050565b5f60c082019050613fad5f8301896135c0565b613fba602083018861321b565b613fc76040830187613e3b565b613fd46060830186613e3b565b613fe160808301856135c0565b613fee60a083018461321b565b979650505050505050565b5f805f606084860312156140105761400f613320565b5b5f61401d8682870161392b565b935050602061402e8682870161392b565b925050604061403f8682870161392b565b9150509250925092565b5f60408201905061405c5f83018561321b565b614069602083018461321b565b939250505056fea26469706673582212209ebdc20828fc61dbeab8c6453384f9cfe58ee2f1602b7c7525607a6fd57e805e64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610212575f3560e01c806377b54bad11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461076b578063df20fd49146107a7578063f2fde38b146107cf578063f4293890146107f7578063f887ea401461080d57610219565b8063a9059cbb146106a1578063b2bdfa7b146106dd578063c0cbdea414610707578063dd62ed3e1461072f57610219565b8063893d20e8116100e6578063893d20e8146105e35780638da5cb5b1461060d57806395d89b4114610637578063a70419d214610661578063a8aa1b311461067757610219565b806377b54bad1461052b57806378109e54146105675780637d1db4a51461059157806382528791146105bb57610219565b806330c9a6a01161019a5780635d83e1d5116101695780635d83e1d5146104715780636ddd17131461049957806370a08231146104c3578063715018a6146104ff578063751039fc1461051557610219565b806330c9a6a0146103a5578063313ce567146103e1578063552656691461040b578063571ac8b01461043557610219565b806318160ddd116101e157806318160ddd146102d75780631df4ccfc1461030157806323b872dd1461032b578063282c874914610367578063293230b81461038f57610219565b80630445b6671461021d57806306fdde031461024757806308fd3d0514610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610837565b60405161023e919061322a565b60405180910390f35b348015610252575f80fd5b5061025b61083d565b60405161026891906132cd565b60405180910390f35b34801561027c575f80fd5b5061028561087a565b6040516102929190613307565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906133a8565b61088d565b6040516102ce9190613307565b60405180910390f35b3480156102e2575f80fd5b506102eb61097a565b6040516102f8919061322a565b60405180910390f35b34801561030c575f80fd5b50610315610983565b604051610322919061322a565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c91906133e6565b610989565b60405161035e9190613307565b60405180910390f35b348015610372575f80fd5b5061038d60048036038101906103889190613436565b610b7c565b005b34801561039a575f80fd5b506103a3610ceb565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906134bf565b610db7565b6040516103d8919061322a565b60405180910390f35b3480156103ec575f80fd5b506103f5610e27565b6040516104029190613505565b60405180910390f35b348015610416575f80fd5b5061041f610e2f565b60405161042c919061322a565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061351e565b610e6e565b6040516104689190613307565b60405180910390f35b34801561047c575f80fd5b50610497600480360381019061049291906134bf565b610ea0565b005b3480156104a4575f80fd5b506104ad610f9e565b6040516104ba9190613307565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e4919061351e565b610fb1565b6040516104f6919061322a565b60405180910390f35b34801561050a575f80fd5b50610513610ff7565b005b348015610520575f80fd5b50610529611145565b005b348015610536575f80fd5b50610551600480360381019061054c91906133a8565b6111ed565b60405161055e9190613307565b60405180910390f35b348015610572575f80fd5b5061057b61134d565b604051610588919061322a565b60405180910390f35b34801561059c575f80fd5b506105a5611353565b6040516105b2919061322a565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc9190613549565b611359565b005b3480156105ee575f80fd5b506105f76115f5565b60405161060491906135cf565b60405180910390f35b348015610618575f80fd5b50610621611603565b60405161062e91906135cf565b60405180910390f35b348015610642575f80fd5b5061064b61162a565b60405161065891906132cd565b60405180910390f35b34801561066c575f80fd5b50610675611667565b005b348015610682575f80fd5b5061068b611718565b60405161069891906135cf565b60405180910390f35b3480156106ac575f80fd5b506106c760048036038101906106c291906133a8565b61173d565b6040516106d49190613307565b60405180910390f35b3480156106e8575f80fd5b506106f1611751565b6040516106fe91906135cf565b60405180910390f35b348015610712575f80fd5b5061072d600480360381019061072891906135e8565b611774565b005b34801561073a575f80fd5b5061075560048036038101906107509190613638565b611822565b604051610762919061322a565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190613676565b6118a4565b60405161079e9190613307565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c891906136de565b6118b8565b005b3480156107da575f80fd5b506107f560048036038101906107f0919061351e565b6119bb565b005b348015610802575f80fd5b5061080b611b78565b005b348015610818575f80fd5b50610821611bdf565b60405161082e9190613777565b60405180910390f35b601e5481565b60606040518060400160405280600581526020017f676d322e30000000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610968919061322a565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b6857610aeb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b73848484611c66565b90509392505050565b610b8461229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906137da565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c7c82610c6e85610c6088610c528b8d6122a490919063ffffffff16565b6122a490919063ffffffff16565b6122a490919063ffffffff16565b6122a490919063ffffffff16565b600f81905550806010819055506002601054610c989190613852565b600f5410610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906138cc565b60405180910390fd5b610ce3612301565b505050505050565b610cf361229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906137da565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506105786012819055506103206011819055506103e8601381905550565b5f610e20610dc3610e2f565b610e12610e036002610df5601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fb1565b6123b990919063ffffffff16565b856123b990919063ffffffff16565b61243090919063ffffffff16565b9050919050565b5f6012905090565b5f610e69610e3c5f610fb1565b610e5b610e4a61dead610fb1565b60035461247990919063ffffffff16565b61247990919063ffffffff16565b905090565b5f610e99827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61088d565b9050919050565b610ea861229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906137da565b60405180910390fd5b6001811015610f41575f80fd5b6103e881600354610f5291906138ea565b610f5c9190613852565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f93919061322a565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fff61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906137da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61114d61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d0906137da565b60405180910390fd5b600354600481905550600354600581905550565b5f808203611270578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161122e91906135cf565b602060405180830381865afa158015611249573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126d919061393f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112a192919061396a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161130592919061396a565b6020604051808303815f875af1158015611321573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134591906139a5565b905092915050565b60055481565b60045481565b61136161229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e4906137da565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115e694939291906139d0565b60405180910390a15050505050565b5f6115fe611603565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f676d322e30000000000000000000000000000000000000000000000000000000815250905090565b61166f61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f2906137da565b60405180910390fd5b6101906012819055506102bc6011819055506101f4601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611749338484611c66565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61177c61229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff906137da565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826118af83610db7565b11905092915050565b6118c061229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906137da565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516119af929190613a13565b60405180910390a15050565b6119c361229d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a46906137da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab490613aaa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611bdc573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4291906132cd565b60405180910390fd5b505f8385611c599190613ac8565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611c8d57611c868484846124c2565b9050612296565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d2b575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d8057601d60149054906101000a900460ff16611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7690613b45565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e0357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e3d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e965750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eef575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f48575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9b575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ffe575f611faa84610fb1565b90506005548382611fbb9190613b63565b1115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613c06565b60405180910390fd5b505b612008848361268c565b612010612726565b1561201e5761201d6127f8565b5b6120a5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612182575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61219657612191858486612df3565b612198565b825b90506121ea8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612288919061322a565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846122b29190613b63565b9050838110156122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90613c6e565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061234c606461233e601254600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6123766064612368601154600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6123a06064612392601354600f546123b990919063ffffffff16565b61243090919063ffffffff16565b6040516123af93929190613c8c565b60405180910390a1565b5f8083036123c9575f905061242a565b5f82846123d691906138ea565b90508284826123e59190613852565b14612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90613d31565b60405180910390fd5b809150505b92915050565b5f61247183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b1565b905092915050565b5f6124ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c04565b905092915050565b5f61254a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c049092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125db8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612679919061322a565b60405180910390a3600190509392505050565b600454811115806126e3575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271990613d99565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156127905750601f5f9054906101000a900460ff16155b80156127a85750601d60159054906101000a900460ff165b80156127f35750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f612821601954601a546118a4565b61282d57600a5461282f565b5f5b90505f61286e6002612860600f5461285286601e546123b990919063ffffffff16565b61243090919063ffffffff16565b61243090919063ffffffff16565b90505f61288682601e5461247990919063ffffffff16565b90505f600267ffffffffffffffff8111156128a4576128a3613db7565b5b6040519080825280602002602001820160405280156128d25781602001602082028036833780820191505090505b50905030815f815181106128e9576128e8613de4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061295957612958613de4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b81526004016129f9959493929190613f01565b5f604051808303815f87803b158015612a10575f80fd5b505af1158015612a22573d5f803e3d5ffd5b505050505f612a3a824761247990919063ffffffff16565b90505f612a65612a5460028961243090919063ffffffff16565b600f5461247990919063ffffffff16565b90505f612aa06002612a9284612a848c886123b990919063ffffffff16565b61243090919063ffffffff16565b61243090919063ffffffff16565b90505f612aca83612abc600b54876123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612af484612ae6600d54886123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612b1e85612b10600c54896123b990919063ffffffff16565b61243090919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612b6690613f86565b5f6040518083038185875af1925050503d805f8114612ba0576040519150601f19603f3d011682016040523d82523d5f602084013e612ba5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612bee90613f86565b5f6040518083038185875af1925050503d805f8114612c28576040519150601f19603f3d011682016040523d82523d5f602084013e612c2d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c7890613f86565b5f6040518083038185875af1925050503d805f8114612cb2576040519150601f19603f3d011682016040523d82523d5f602084013e612cb7565b606091505b5050809150505f90505f8b1115612dcc57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d4e96959493929190613f9a565b60606040518083038185885af1158015612d6a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613ff9565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612dc3929190614049565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e58576011549050612eb3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612eb25760125490505b5b5f612efb6064601054612ec691906138ea565b612eed84612edf600f548a6123b990919063ffffffff16565b6123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612f27600f54612f19600e54856123b990919063ffffffff16565b61243090919063ffffffff16565b90505f612f3d828461247990919063ffffffff16565b9050612f8f8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130418260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a490919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613100919061322a565b60405180910390a35f821115613191576131258260035461247990919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613188919061322a565b60405180910390a35b6131a4838861247990919063ffffffff16565b9450505050509392505050565b5f80831182906131f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ee91906132cd565b60405180910390fd5b505f83856132059190613852565b9050809150509392505050565b5f819050919050565b61322481613212565b82525050565b5f60208201905061323d5f83018461321b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561327a57808201518184015260208101905061325f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61329f82613243565b6132a9818561324d565b93506132b981856020860161325d565b6132c281613285565b840191505092915050565b5f6020820190508181035f8301526132e58184613295565b905092915050565b5f8115159050919050565b613301816132ed565b82525050565b5f60208201905061331a5f8301846132f8565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61334d82613324565b9050919050565b61335d81613343565b8114613367575f80fd5b50565b5f8135905061337881613354565b92915050565b61338781613212565b8114613391575f80fd5b50565b5f813590506133a28161337e565b92915050565b5f80604083850312156133be576133bd613320565b5b5f6133cb8582860161336a565b92505060206133dc85828601613394565b9150509250929050565b5f805f606084860312156133fd576133fc613320565b5b5f61340a8682870161336a565b935050602061341b8682870161336a565b925050604061342c86828701613394565b9150509250925092565b5f805f805f8060c087890312156134505761344f613320565b5b5f61345d89828a01613394565b965050602061346e89828a01613394565b955050604061347f89828a01613394565b945050606061349089828a01613394565b93505060806134a189828a01613394565b92505060a06134b289828a01613394565b9150509295509295509295565b5f602082840312156134d4576134d3613320565b5b5f6134e184828501613394565b91505092915050565b5f60ff82169050919050565b6134ff816134ea565b82525050565b5f6020820190506135185f8301846134f6565b92915050565b5f6020828403121561353357613532613320565b5b5f6135408482850161336a565b91505092915050565b5f805f805f60a0868803121561356257613561613320565b5b5f61356f8882890161336a565b95505060206135808882890161336a565b94505060406135918882890161336a565b93505060606135a28882890161336a565b92505060806135b38882890161336a565b9150509295509295909350565b6135c981613343565b82525050565b5f6020820190506135e25f8301846135c0565b92915050565b5f805f606084860312156135ff576135fe613320565b5b5f61360c86828701613394565b935050602061361d86828701613394565b925050604061362e86828701613394565b9150509250925092565b5f806040838503121561364e5761364d613320565b5b5f61365b8582860161336a565b925050602061366c8582860161336a565b9150509250929050565b5f806040838503121561368c5761368b613320565b5b5f61369985828601613394565b92505060206136aa85828601613394565b9150509250929050565b6136bd816132ed565b81146136c7575f80fd5b50565b5f813590506136d8816136b4565b92915050565b5f80604083850312156136f4576136f3613320565b5b5f613701858286016136ca565b925050602061371285828601613394565b9150509250929050565b5f819050919050565b5f61373f61373a61373584613324565b61371c565b613324565b9050919050565b5f61375082613725565b9050919050565b5f61376182613746565b9050919050565b61377181613757565b82525050565b5f60208201905061378a5f830184613768565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137c460208361324d565b91506137cf82613790565b602082019050919050565b5f6020820190508181035f8301526137f1816137b8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61385c82613212565b915061386783613212565b925082613877576138766137f8565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6138b6601d8361324d565b91506138c182613882565b602082019050919050565b5f6020820190508181035f8301526138e3816138aa565b9050919050565b5f6138f482613212565b91506138ff83613212565b925082820261390d81613212565b9150828204841483151761392457613923613825565b5b5092915050565b5f815190506139398161337e565b92915050565b5f6020828403121561395457613953613320565b5b5f6139618482850161392b565b91505092915050565b5f60408201905061397d5f8301856135c0565b61398a602083018461321b565b9392505050565b5f8151905061399f816136b4565b92915050565b5f602082840312156139ba576139b9613320565b5b5f6139c784828501613991565b91505092915050565b5f6080820190506139e35f8301876135c0565b6139f060208301866135c0565b6139fd60408301856135c0565b613a0a60608301846135c0565b95945050505050565b5f604082019050613a265f83018561321b565b613a3360208301846132f8565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a9460268361324d565b9150613a9f82613a3a565b604082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b5f613ad282613212565b9150613add83613212565b9250828203905081811115613af557613af4613825565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613b2f60148361324d565b9150613b3a82613afb565b602082019050919050565b5f6020820190508181035f830152613b5c81613b23565b9050919050565b5f613b6d82613212565b9150613b7883613212565b9250828201905080821115613b9057613b8f613825565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613bf0603e8361324d565b9150613bfb82613b96565b604082019050919050565b5f6020820190508181035f830152613c1d81613be4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c58601b8361324d565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f606082019050613c9f5f8301866134f6565b613cac60208301856134f6565b613cb960408301846134f6565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d1b60218361324d565b9150613d2682613cc1565b604082019050919050565b5f6020820190508181035f830152613d4881613d0f565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613d8360118361324d565b9150613d8e82613d4f565b602082019050919050565b5f6020820190508181035f830152613db081613d77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613e34613e2f613e2a84613e11565b61371c565b613212565b9050919050565b613e4481613e1a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e7c81613343565b82525050565b5f613e8d8383613e73565b60208301905092915050565b5f602082019050919050565b5f613eaf82613e4a565b613eb98185613e54565b9350613ec483613e64565b805f5b83811015613ef4578151613edb8882613e82565b9750613ee683613e99565b925050600181019050613ec7565b5085935050505092915050565b5f60a082019050613f145f83018861321b565b613f216020830187613e3b565b8181036040830152613f338186613ea5565b9050613f4260608301856135c0565b613f4f608083018461321b565b9695505050505050565b5f81905092915050565b50565b5f613f715f83613f59565b9150613f7c82613f63565b5f82019050919050565b5f613f9082613f66565b9150819050919050565b5f60c082019050613fad5f8301896135c0565b613fba602083018861321b565b613fc76040830187613e3b565b613fd46060830186613e3b565b613fe160808301856135c0565b613fee60a083018461321b565b979650505050505050565b5f805f606084860312156140105761400f613320565b5b5f61401d8682870161392b565b935050602061402e8682870161392b565b925050604061403f8682870161392b565b9150509250925092565b5f60408201905061405c5f83018561321b565b614069602083018461321b565b939250505056fea26469706673582212209ebdc20828fc61dbeab8c6453384f9cfe58ee2f1602b7c7525607a6fd57e805e64736f6c63430008140033
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.