Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,690,000,000 RIGHT
Holders
20
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,884,184,577.014559127801330246 RIGHTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RightCurveCoin
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-05 */ // SPDX-License-Identifier: MIT // $RIGHT CURVE COIN: "right curve see coin, right curve buy coin" // https://t.me/RightCoinERC pragma solidity ^0.7.6; 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; } } /** * BEP20 standard interface. */ interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Auth { address public owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract RightCurveCoin is IBEP20, Auth { using SafeMath for uint256; // WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address DEV; string constant _name = "Right Curve Coin"; string constant _symbol = "RIGHT"; uint8 constant _decimals = 18; uint256 _totalSupply = 420_690_000_000 * 1e18; uint256 public _maxTxAmount = _totalSupply; uint256 public _maxWalletToken = (_totalSupply * 2) / 100; // 2% of total supply mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; bool public blacklistMode = false; mapping(address => bool) public isBlacklisted; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; mapping(address => bool) isTimelockExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 30; uint256 public devFee = 0; uint256 public totalFee = marketingFee + liquidityFee + devFee; uint256 public feeDenominator = 100; uint256 public sellMultiplier = 0; address public autoLiquidityReceiver; address public marketingFeeReceiver; address public devFeeReceiver; uint256 targetLiquidity = 20; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; bool public tradingOpen = false; bool public buyCooldownEnabled = false; uint8 public cooldownTimerInterval = 1; mapping(address => uint256) private cooldownTimer; bool public swapEnabled = true; uint256 public swapThreshold = (_totalSupply * 30) / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() Auth(msg.sender) { DEV = msg.sender; // Uniswap V2 - 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WBNB, address(this)); _allowances[address(this)][address(router)] = uint256(-1); isFeeExempt[msg.sender] = true; isFeeExempt[address(DEV)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(DEV)] = true; isTimelockExempt[msg.sender] = true; isTimelockExempt[address(DEV)] = true; isTimelockExempt[DEAD] = true; isTimelockExempt[address(this)] = true; isTimelockExempt[address(DEV)] = true; autoLiquidityReceiver = address(DEV); marketingFeeReceiver = address(DEV); devFeeReceiver = address(DEV); _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, uint256(-1)); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != uint256(-1)) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner { _maxWalletToken = (_totalSupply * maxWallPercent_base1000) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner { _maxTxAmount = (_totalSupply * maxTXPercentage_base1000) / 1000; } function setTxLimit(uint256 amount) external authorized { _maxTxAmount = amount; } function setSwapPair(address _pair) external authorized { pair = _pair; } 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"); } // Blacklist if (blacklistMode) { require( !isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted" ); } if ( !authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != devFeeReceiver && recipient != autoLiquidityReceiver ) { uint256 heldTokens = balanceOf(recipient); require( (heldTokens + amount) <= _maxWalletToken, "Total Holding is currently limited, you can not buy that much." ); } if ( sender == pair && buyCooldownEnabled && !isTimelockExempt[recipient] ) { require( cooldownTimer[recipient] < block.timestamp, "Please wait for 1min between two buys" ); cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval; } // Checks max transaction limit checkTxLimit(sender, amount); if (shouldSwapBack()) { swapBack(); } //Exchange tokens _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount, (recipient == pair)) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee( address sender, uint256 amount, bool isSell ) internal returns (uint256) { uint256 multiplier = isSell ? sellMultiplier : 100; uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div( feeDenominator * 100 ); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external authorized { uint256 amountBNB = address(this).balance; payable(marketingFeeReceiver).transfer( (amountBNB * amountPercentage) / 100 ); } function clearStuckBalance_sender(uint256 amountPercentage) external authorized { uint256 amountBNB = address(this).balance; payable(msg.sender).transfer((amountBNB * amountPercentage) / 100); } function set_sell_multiplier(uint256 _multiplier) public onlyOwner { sellMultiplier = _multiplier; } // switch Trading function tradingStatus(bool _status) public onlyOwner { tradingOpen = _status; } // enable cooldown between trades function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner { buyCooldownEnabled = _status; cooldownTimerInterval = _interval; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified( targetLiquidity, targetLiquidityDenominator ) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold .mul(dynamicLiquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WBNB; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB .mul(dynamicLiquidityFee) .div(totalBNBFee) .div(2); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div( totalBNBFee ); uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee); (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{ value: amountBNBMarketing, gas: 30000 }(""); (tmpSuccess, ) = payable(devFeeReceiver).call{ value: amountBNBDev, gas: 30000 }(""); // Supress warning msg tmpSuccess = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setIsTimelockExempt(address holder, bool exempt) external authorized { isTimelockExempt[holder] = exempt; } function setFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator ) external authorized { liquidityFee = _liquidityFee; marketingFee = _marketingFee; devFee = 0; totalFee = _liquidityFee.add(_marketingFee).add(devFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 3, "Fees cannot be more than 33%"); } function setFeeReceivers( address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver ) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","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":"_pair","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c054f529ca52576bc68920000006006556006546007556064600260065402816200010557fe5b046008556000600b60006101000a81548160ff0219169083151502179055506000601055601e601155600060125560125460105460115401016013556064601455600060155560146019556064601a556000601c60146101000a81548160ff0219169083151502179055506000601c60156101000a81548160ff0219169083151502179055506001601c60166101000a81548160ff021916908360ff1602179055506001601e60006101000a81548160ff021916908315150217905550612710601e6006540281620001d357fe5b04601f55348015620001e457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037d57600080fd5b505afa15801562000392573d6000803e3d6000fd5b505050506040513d6020811015620003a957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200046357600080fd5b505af115801562000478573d6000803e3d6000fd5b505050506040513d60208110156200048f57600080fd5b8101908080519060200190929190505050601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a36146588062000b4c6000396000f3fe6080604052600436106103855760003560e01c806378109e54116101d1578063d51ed1c811610102578063f0b37c04116100a0578063fe575a871161006f578063fe575a871461135d578063fe9fbb80146113c4578063fed0d2a11461142b578063ffb54a99146114565761038c565b8063f0b37c041461121d578063f2fde38b1461126e578063f84ba65d146112bf578063f887ea401461131c5761038c565b8063dd62ed3e116100dc578063dd62ed3e146110d5578063df20fd491461115a578063e96fada2146111a1578063ec72d65f146111e25761038c565b8063d51ed1c814610fb4578063d7c0103214611003578063dab84ee7146110945761038c565b806398118cb41161016f578063b6a5d7de11610149578063b6a5d7de14610e98578063bd9ab53714610ee9578063ca33e64c14610f24578063cec10c1114610f655761038c565b806398118cb414610dbb578063a8aa1b3114610de6578063a9059cbb14610e275761038c565b8063896648c1116101ab578063896648c114610c2b5780638da5cb5b14610c585780638e2eee8414610c9957806395d89b4114610d2b5761038c565b806378109e5414610b945780637d1db4a514610bbf578063893d20e814610bea5761038c565b80632f54bf6e116102b6578063617fe0ed116102545780636ddd1713116102235780636ddd171314610a8357806370a0823114610ab0578063722b62ad14610b1557806373a432bb14610b435761038c565b8063617fe0ed146109a3578063658d4b7f146109d05780636827e76414610a2d5780636b67c4df14610a585761038c565b806350db71fb1161029057806350db71fb14610867578063571ac8b0146108c45780635c85974f1461092b5780635e562f3b146109665761038c565b80632f54bf6e14610797578063313ce567146107fe57806344a33fd21461082c5761038c565b806318160ddd11610323578063201e7991116102fd578063201e79911461064c57806323b872dd146106915780632b112e49146107225780632d5945671461074d5761038c565b806318160ddd146105bb5780631da1db5e146105e65780631df4ccfc146106215761038c565b8063095ea7b31161035f578063095ea7b3146104875780630d295980146104f85780631161ae3914610535578063180b0d7e146105905761038c565b80630445b6671461039157806306fdde03146103bc57806309302dc61461044c5761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6611483565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b506103d1611489565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104115780820151818401526020810190506103f6565b50505050905090810190601f16801561043e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045857600080fd5b506104856004803603602081101561046f57600080fd5b81019080803590602001909291905050506114c6565b005b34801561049357600080fd5b506104e0600480360360408110156104aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061155a565b60405180821515815260200191505060405180910390f35b34801561050457600080fd5b506105336004803603602081101561051b57600080fd5b8101908080351515906020019092919050505061164c565b005b34801561054157600080fd5b506105786004803603604081101561055857600080fd5b8101908080359060200190929190803590602001909291905050506116e4565b60405180821515815260200191505060405180910390f35b34801561059c57600080fd5b506105a56116f9565b6040518082815260200191505060405180910390f35b3480156105c757600080fd5b506105d06116ff565b6040518082815260200191505060405180910390f35b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b8101908080359060200190929190505050611709565b005b34801561062d57600080fd5b50610636611802565b6040518082815260200191505060405180910390f35b34801561065857600080fd5b5061068f6004803603604081101561066f57600080fd5b810190808035906020019092919080359060200190929190505050611808565b005b34801561069d57600080fd5b5061070a600480360360608110156106b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611895565b60405180821515815260200191505060405180910390f35b34801561072e57600080fd5b50610737611a95565b6040518082815260200191505060405180910390f35b34801561075957600080fd5b506107956004803603604081101561077057600080fd5b81019080803515159060200190929190803560ff169060200190929190505050611b17565b005b3480156107a357600080fd5b506107e6600480360360208110156107ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b60405180821515815260200191505060405180910390f35b34801561080a57600080fd5b50610813611c24565b604051808260ff16815260200191505060405180910390f35b34801561083857600080fd5b506108656004803603602081101561084f57600080fd5b8101908080359060200190929190505050611c2d565b005b34801561087357600080fd5b506108c26004803603604081101561088a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d04565b005b3480156108d057600080fd5b50610913600480360360208110156108e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dda565b60405180821515815260200191505060405180910390f35b34801561093757600080fd5b506109646004803603602081101561094e57600080fd5b8101908080359060200190929190505050611e0d565b005b34801561097257600080fd5b506109a16004803603602081101561098957600080fd5b81019080803515159060200190929190505050611e92565b005b3480156109af57600080fd5b506109b8611f2a565b60405180821515815260200191505060405180910390f35b3480156109dc57600080fd5b50610a2b600480360360408110156109f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f3d565b005b348015610a3957600080fd5b50610a42612013565b6040518082815260200191505060405180910390f35b348015610a6457600080fd5b50610a6d612019565b6040518082815260200191505060405180910390f35b348015610a8f57600080fd5b50610a9861201f565b60405180821515815260200191505060405180910390f35b348015610abc57600080fd5b50610aff60048036036020811015610ad357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612032565b6040518082815260200191505060405180910390f35b348015610b2157600080fd5b50610b2a61207b565b604051808260ff16815260200191505060405180910390f35b348015610b4f57600080fd5b50610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208e565b005b348015610ba057600080fd5b50610ba961214d565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610bd4612153565b6040518082815260200191505060405180910390f35b348015610bf657600080fd5b50610bff612159565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3757600080fd5b50610c40612182565b60405180821515815260200191505060405180910390f35b348015610c6457600080fd5b50610c6d612195565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca557600080fd5b50610d2960048036036040811015610cbc57600080fd5b8101908080359060200190640100000000811115610cd957600080fd5b820183602082011115610ceb57600080fd5b80359060200191846020830284011164010000000083111715610d0d57600080fd5b90919293919293908035151590602001909291905050506121b9565b005b348015610d3757600080fd5b50610d406122d2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d80578082015181840152602081019050610d65565b50505050905090810190601f168015610dad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dc757600080fd5b50610dd061230f565b6040518082815260200191505060405180910390f35b348015610df257600080fd5b50610dfb612315565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e3357600080fd5b50610e8060048036036040811015610e4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233b565b60405180821515815260200191505060405180910390f35b348015610ea457600080fd5b50610ee760048036036020811015610ebb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612350565b005b348015610ef557600080fd5b50610f2260048036036020811015610f0c57600080fd5b8101908080359060200190929190505050612425565b005b348015610f3057600080fd5b50610f396124b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7157600080fd5b50610fb260048036036060811015610f8857600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506124df565b005b348015610fc057600080fd5b50610fed60048036036020811015610fd757600080fd5b810190808035906020019092919050505061262c565b6040518082815260200191505060405180910390f35b34801561100f57600080fd5b506110926004803603606081101561102657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061269e565b005b3480156110a057600080fd5b506110a96127e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110e157600080fd5b50611144600480360360408110156110f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612807565b6040518082815260200191505060405180910390f35b34801561116657600080fd5b5061119f6004803603604081101561117d57600080fd5b810190808035151590602001909291908035906020019092919050505061288e565b005b3480156111ad57600080fd5b506111b661292e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111ee57600080fd5b5061121b6004803603602081101561120557600080fd5b8101908080359060200190929190505050612954565b005b34801561122957600080fd5b5061126c6004803603602081101561124057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d9565b005b34801561127a57600080fd5b506112bd6004803603602081101561129157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aaf565b005b3480156112cb57600080fd5b5061131a600480360360408110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c11565b005b34801561132857600080fd5b50611331612ce7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561136957600080fd5b506113ac6004803603602081101561138057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d0d565b60405180821515815260200191505060405180910390f35b3480156113d057600080fd5b50611413600480360360208110156113e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2d565b60405180821515815260200191505060405180910390f35b34801561143757600080fd5b50611440612d83565b6040518082815260200191505060405180910390f35b34801561146257600080fd5b5061146b612d89565b60405180821515815260200191505060405180910390f35b601f5481565b60606040518060400160405280601081526020017f526967687420437572766520436f696e00000000000000000000000000000000815250905090565b6114cf33611bcb565b611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161155057fe5b0460088190555050565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b61165533611bcb565b6116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601c60146101000a81548160ff02191690831515021790555050565b6000826116f08361262c565b11905092915050565b60145481565b6000600654905090565b61171233612d2d565b611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816117d157fe5b049081150290604051600060405180830381858888f193505050501580156117fd573d6000803e3d6000fd5b505050565b60135481565b61181133612d2d565b611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160198190555080601a819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611a8157611a00826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611a8c848484612e5c565b90509392505050565b6000611b12611ac5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b611b04611af3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b6006546137b090919063ffffffff16565b6137b090919063ffffffff16565b905090565b611b2033611bcb565b611b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601c60156101000a81548160ff02191690831515021790555080601c60166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611c3633612d2d565b611ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611cd357fe5b049081150290604051600060405180830381858888f19350505050158015611cff573d6000803e3d6000fd5b505050565b611d0d33612d2d565b611d7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611e06827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61155a565b9050919050565b611e1633612d2d565b611e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b611e9b33611bcb565b611f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b601c60159054906101000a900460ff1681565b611f4633612d2d565b611fb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b60115481565b601e60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c60169054906101000a900460ff1681565b61209733612d2d565b612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121c233611bcb565b612234576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156122cc5781600c600086868581811061225357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050612237565b50505050565b60606040518060400160405280600581526020017f5249474854000000000000000000000000000000000000000000000000000000815250905090565b60105481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612348338484612e5c565b905092915050565b61235933611bcb565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61242e33611bcb565b6124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e88160065402816124af57fe5b0460078190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124e833612d2d565b61255a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260108190555081601181905550600060128190555061259760125461258984866137fa90919063ffffffff16565b6137fa90919063ffffffff16565b601381905550806014819055506003601454816125b057fe5b0460135410612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b6000612697612639611a95565b61268961267a600261266c601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b61388290919063ffffffff16565b8561388290919063ffffffff16565b61390890919063ffffffff16565b9050919050565b6126a733612d2d565b612719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61289733612d2d565b612909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601f819055505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61295d33611bcb565b6129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060158190555050565b6129e233611bcb565b612a54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612ab833611bcb565b612b2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c1a33612d2d565b612c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60155481565b601c60149054906101000a900460ff1681565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602060009054906101000a900460ff1615612e8557612e7e848484613952565b90506137a9565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f295750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fb157601c60149054906101000a900460ff16612fb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600b60009054906101000a900460ff16156130dd57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561306a5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6130dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561316357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131bd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132175750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132715750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132cb5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133255750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561339657600061333584612032565b90506008548382011115613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806145e5603e913960400191505060405180910390fd5b505b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156133ff5750601c60159054906101000a900460ff165b80156134555750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561354a5742601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106134f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061459f6025913960400191505060405180910390fd5b601c60169054906101000a900460ff1660ff164201601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6135548483613b25565b61355c613bf5565b1561356a57613569613ccc565b5b6135f3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061364185614312565b61364b57826136a7565b6136a68584601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614614369565b5b90506136fb81600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006137f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156138955760009050613902565b60008284029050828482816138a657fe5b04146138fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145c46021913960400191505060405180910390fd5b809150505b92915050565b600061394a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506144d8565b905092915050565b60006139dd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a7282600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60075481111580613b7f5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613bf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613c625750602060009054906101000a900460ff16155b8015613c7a5750601e60009054906101000a900460ff165b8015613cc75750601f54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602060006101000a81548160ff0219169083151502179055506000613cf7601954601a546116e4565b613d0357601054613d06565b60005b90506000613d466002613d38601354613d2a86601f5461388290919063ffffffff16565b61390890919063ffffffff16565b61390890919063ffffffff16565b90506000613d5f82601f546137b090919063ffffffff16565b90506000600267ffffffffffffffff81118015613d7b57600080fd5b50604051908082528060200260200182016040528015613daa5781602001602082028036833780820191505090505b5090503081600081518110613dbb57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613e2557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613f28578082015181840152602081019050613f0d565b505050509050019650505050505050600060405180830381600087803b158015613f5157600080fd5b505af1158015613f65573d6000803e3d6000fd5b505050506000613f7e82476137b090919063ffffffff16565b90506000613faa613f9960028961390890919063ffffffff16565b6013546137b090919063ffffffff16565b90506000613fe66002613fd884613fca8c8861388290919063ffffffff16565b61390890919063ffffffff16565b61390890919063ffffffff16565b90506000614011836140036011548761388290919063ffffffff16565b61390890919063ffffffff16565b9050600061403c8461402e6012548861388290919063ffffffff16565b61390890919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146140c5576040519150601f19603f3d011682016040523d82523d6000602084013e6140ca565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114614153576040519150601f19603f3d011682016040523d82523d6000602084013e614158565b606091505b5050809150506000905060008a11156142ea57601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561425757600080fd5b505af115801561426b573d6000803e3d6000fd5b50505050506040513d606081101561428257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000602060006101000a81548160ff021916908315150217905550565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000808261437857606461437c565b6015545b905060006143be6064601454026143b0846143a26013548a61388290919063ffffffff16565b61388290919063ffffffff16565b61390890919063ffffffff16565b905061441281600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36144cd81866137b090919063ffffffff16565b925050509392505050565b60008083118290614584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561454957808201518184015260208101905061452e565b50505050905090810190601f1680156145765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161459057fe5b04905080915050939250505056fe506c65617365207761697420666f7220316d696e206265747765656e2074776f2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220c700e1761462643e013bad65509b1c8e8789dc2e2c1268f91b57a2996b6d30eb64736f6c63430007060033
Deployed Bytecode
0x6080604052600436106103855760003560e01c806378109e54116101d1578063d51ed1c811610102578063f0b37c04116100a0578063fe575a871161006f578063fe575a871461135d578063fe9fbb80146113c4578063fed0d2a11461142b578063ffb54a99146114565761038c565b8063f0b37c041461121d578063f2fde38b1461126e578063f84ba65d146112bf578063f887ea401461131c5761038c565b8063dd62ed3e116100dc578063dd62ed3e146110d5578063df20fd491461115a578063e96fada2146111a1578063ec72d65f146111e25761038c565b8063d51ed1c814610fb4578063d7c0103214611003578063dab84ee7146110945761038c565b806398118cb41161016f578063b6a5d7de11610149578063b6a5d7de14610e98578063bd9ab53714610ee9578063ca33e64c14610f24578063cec10c1114610f655761038c565b806398118cb414610dbb578063a8aa1b3114610de6578063a9059cbb14610e275761038c565b8063896648c1116101ab578063896648c114610c2b5780638da5cb5b14610c585780638e2eee8414610c9957806395d89b4114610d2b5761038c565b806378109e5414610b945780637d1db4a514610bbf578063893d20e814610bea5761038c565b80632f54bf6e116102b6578063617fe0ed116102545780636ddd1713116102235780636ddd171314610a8357806370a0823114610ab0578063722b62ad14610b1557806373a432bb14610b435761038c565b8063617fe0ed146109a3578063658d4b7f146109d05780636827e76414610a2d5780636b67c4df14610a585761038c565b806350db71fb1161029057806350db71fb14610867578063571ac8b0146108c45780635c85974f1461092b5780635e562f3b146109665761038c565b80632f54bf6e14610797578063313ce567146107fe57806344a33fd21461082c5761038c565b806318160ddd11610323578063201e7991116102fd578063201e79911461064c57806323b872dd146106915780632b112e49146107225780632d5945671461074d5761038c565b806318160ddd146105bb5780631da1db5e146105e65780631df4ccfc146106215761038c565b8063095ea7b31161035f578063095ea7b3146104875780630d295980146104f85780631161ae3914610535578063180b0d7e146105905761038c565b80630445b6671461039157806306fdde03146103bc57806309302dc61461044c5761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6611483565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b506103d1611489565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104115780820151818401526020810190506103f6565b50505050905090810190601f16801561043e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045857600080fd5b506104856004803603602081101561046f57600080fd5b81019080803590602001909291905050506114c6565b005b34801561049357600080fd5b506104e0600480360360408110156104aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061155a565b60405180821515815260200191505060405180910390f35b34801561050457600080fd5b506105336004803603602081101561051b57600080fd5b8101908080351515906020019092919050505061164c565b005b34801561054157600080fd5b506105786004803603604081101561055857600080fd5b8101908080359060200190929190803590602001909291905050506116e4565b60405180821515815260200191505060405180910390f35b34801561059c57600080fd5b506105a56116f9565b6040518082815260200191505060405180910390f35b3480156105c757600080fd5b506105d06116ff565b6040518082815260200191505060405180910390f35b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b8101908080359060200190929190505050611709565b005b34801561062d57600080fd5b50610636611802565b6040518082815260200191505060405180910390f35b34801561065857600080fd5b5061068f6004803603604081101561066f57600080fd5b810190808035906020019092919080359060200190929190505050611808565b005b34801561069d57600080fd5b5061070a600480360360608110156106b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611895565b60405180821515815260200191505060405180910390f35b34801561072e57600080fd5b50610737611a95565b6040518082815260200191505060405180910390f35b34801561075957600080fd5b506107956004803603604081101561077057600080fd5b81019080803515159060200190929190803560ff169060200190929190505050611b17565b005b3480156107a357600080fd5b506107e6600480360360208110156107ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b60405180821515815260200191505060405180910390f35b34801561080a57600080fd5b50610813611c24565b604051808260ff16815260200191505060405180910390f35b34801561083857600080fd5b506108656004803603602081101561084f57600080fd5b8101908080359060200190929190505050611c2d565b005b34801561087357600080fd5b506108c26004803603604081101561088a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d04565b005b3480156108d057600080fd5b50610913600480360360208110156108e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dda565b60405180821515815260200191505060405180910390f35b34801561093757600080fd5b506109646004803603602081101561094e57600080fd5b8101908080359060200190929190505050611e0d565b005b34801561097257600080fd5b506109a16004803603602081101561098957600080fd5b81019080803515159060200190929190505050611e92565b005b3480156109af57600080fd5b506109b8611f2a565b60405180821515815260200191505060405180910390f35b3480156109dc57600080fd5b50610a2b600480360360408110156109f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f3d565b005b348015610a3957600080fd5b50610a42612013565b6040518082815260200191505060405180910390f35b348015610a6457600080fd5b50610a6d612019565b6040518082815260200191505060405180910390f35b348015610a8f57600080fd5b50610a9861201f565b60405180821515815260200191505060405180910390f35b348015610abc57600080fd5b50610aff60048036036020811015610ad357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612032565b6040518082815260200191505060405180910390f35b348015610b2157600080fd5b50610b2a61207b565b604051808260ff16815260200191505060405180910390f35b348015610b4f57600080fd5b50610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208e565b005b348015610ba057600080fd5b50610ba961214d565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610bd4612153565b6040518082815260200191505060405180910390f35b348015610bf657600080fd5b50610bff612159565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3757600080fd5b50610c40612182565b60405180821515815260200191505060405180910390f35b348015610c6457600080fd5b50610c6d612195565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca557600080fd5b50610d2960048036036040811015610cbc57600080fd5b8101908080359060200190640100000000811115610cd957600080fd5b820183602082011115610ceb57600080fd5b80359060200191846020830284011164010000000083111715610d0d57600080fd5b90919293919293908035151590602001909291905050506121b9565b005b348015610d3757600080fd5b50610d406122d2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d80578082015181840152602081019050610d65565b50505050905090810190601f168015610dad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dc757600080fd5b50610dd061230f565b6040518082815260200191505060405180910390f35b348015610df257600080fd5b50610dfb612315565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e3357600080fd5b50610e8060048036036040811015610e4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233b565b60405180821515815260200191505060405180910390f35b348015610ea457600080fd5b50610ee760048036036020811015610ebb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612350565b005b348015610ef557600080fd5b50610f2260048036036020811015610f0c57600080fd5b8101908080359060200190929190505050612425565b005b348015610f3057600080fd5b50610f396124b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7157600080fd5b50610fb260048036036060811015610f8857600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506124df565b005b348015610fc057600080fd5b50610fed60048036036020811015610fd757600080fd5b810190808035906020019092919050505061262c565b6040518082815260200191505060405180910390f35b34801561100f57600080fd5b506110926004803603606081101561102657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061269e565b005b3480156110a057600080fd5b506110a96127e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110e157600080fd5b50611144600480360360408110156110f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612807565b6040518082815260200191505060405180910390f35b34801561116657600080fd5b5061119f6004803603604081101561117d57600080fd5b810190808035151590602001909291908035906020019092919050505061288e565b005b3480156111ad57600080fd5b506111b661292e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111ee57600080fd5b5061121b6004803603602081101561120557600080fd5b8101908080359060200190929190505050612954565b005b34801561122957600080fd5b5061126c6004803603602081101561124057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d9565b005b34801561127a57600080fd5b506112bd6004803603602081101561129157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aaf565b005b3480156112cb57600080fd5b5061131a600480360360408110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c11565b005b34801561132857600080fd5b50611331612ce7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561136957600080fd5b506113ac6004803603602081101561138057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d0d565b60405180821515815260200191505060405180910390f35b3480156113d057600080fd5b50611413600480360360208110156113e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2d565b60405180821515815260200191505060405180910390f35b34801561143757600080fd5b50611440612d83565b6040518082815260200191505060405180910390f35b34801561146257600080fd5b5061146b612d89565b60405180821515815260200191505060405180910390f35b601f5481565b60606040518060400160405280601081526020017f526967687420437572766520436f696e00000000000000000000000000000000815250905090565b6114cf33611bcb565b611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161155057fe5b0460088190555050565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b61165533611bcb565b6116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601c60146101000a81548160ff02191690831515021790555050565b6000826116f08361262c565b11905092915050565b60145481565b6000600654905090565b61171233612d2d565b611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816117d157fe5b049081150290604051600060405180830381858888f193505050501580156117fd573d6000803e3d6000fd5b505050565b60135481565b61181133612d2d565b611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160198190555080601a819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611a8157611a00826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611a8c848484612e5c565b90509392505050565b6000611b12611ac5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b611b04611af3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b6006546137b090919063ffffffff16565b6137b090919063ffffffff16565b905090565b611b2033611bcb565b611b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601c60156101000a81548160ff02191690831515021790555080601c60166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611c3633612d2d565b611ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611cd357fe5b049081150290604051600060405180830381858888f19350505050158015611cff573d6000803e3d6000fd5b505050565b611d0d33612d2d565b611d7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611e06827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61155a565b9050919050565b611e1633612d2d565b611e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b611e9b33611bcb565b611f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b601c60159054906101000a900460ff1681565b611f4633612d2d565b611fb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b60115481565b601e60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c60169054906101000a900460ff1681565b61209733612d2d565b612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121c233611bcb565b612234576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156122cc5781600c600086868581811061225357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050612237565b50505050565b60606040518060400160405280600581526020017f5249474854000000000000000000000000000000000000000000000000000000815250905090565b60105481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612348338484612e5c565b905092915050565b61235933611bcb565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61242e33611bcb565b6124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e88160065402816124af57fe5b0460078190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124e833612d2d565b61255a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260108190555081601181905550600060128190555061259760125461258984866137fa90919063ffffffff16565b6137fa90919063ffffffff16565b601381905550806014819055506003601454816125b057fe5b0460135410612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b6000612697612639611a95565b61268961267a600261266c601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612032565b61388290919063ffffffff16565b8561388290919063ffffffff16565b61390890919063ffffffff16565b9050919050565b6126a733612d2d565b612719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61289733612d2d565b612909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601f819055505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61295d33611bcb565b6129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060158190555050565b6129e233611bcb565b612a54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612ab833611bcb565b612b2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c1a33612d2d565b612c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60155481565b601c60149054906101000a900460ff1681565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602060009054906101000a900460ff1615612e8557612e7e848484613952565b90506137a9565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f295750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fb157601c60149054906101000a900460ff16612fb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600b60009054906101000a900460ff16156130dd57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561306a5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6130dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561316357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131bd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132175750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132715750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132cb5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133255750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561339657600061333584612032565b90506008548382011115613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806145e5603e913960400191505060405180910390fd5b505b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156133ff5750601c60159054906101000a900460ff165b80156134555750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561354a5742601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106134f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061459f6025913960400191505060405180910390fd5b601c60169054906101000a900460ff1660ff164201601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6135548483613b25565b61355c613bf5565b1561356a57613569613ccc565b5b6135f3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061364185614312565b61364b57826136a7565b6136a68584601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614614369565b5b90506136fb81600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006137f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156138955760009050613902565b60008284029050828482816138a657fe5b04146138fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145c46021913960400191505060405180910390fd5b809150505b92915050565b600061394a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506144d8565b905092915050565b60006139dd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a7282600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60075481111580613b7f5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613bf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613c625750602060009054906101000a900460ff16155b8015613c7a5750601e60009054906101000a900460ff165b8015613cc75750601f54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602060006101000a81548160ff0219169083151502179055506000613cf7601954601a546116e4565b613d0357601054613d06565b60005b90506000613d466002613d38601354613d2a86601f5461388290919063ffffffff16565b61390890919063ffffffff16565b61390890919063ffffffff16565b90506000613d5f82601f546137b090919063ffffffff16565b90506000600267ffffffffffffffff81118015613d7b57600080fd5b50604051908082528060200260200182016040528015613daa5781602001602082028036833780820191505090505b5090503081600081518110613dbb57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613e2557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613f28578082015181840152602081019050613f0d565b505050509050019650505050505050600060405180830381600087803b158015613f5157600080fd5b505af1158015613f65573d6000803e3d6000fd5b505050506000613f7e82476137b090919063ffffffff16565b90506000613faa613f9960028961390890919063ffffffff16565b6013546137b090919063ffffffff16565b90506000613fe66002613fd884613fca8c8861388290919063ffffffff16565b61390890919063ffffffff16565b61390890919063ffffffff16565b90506000614011836140036011548761388290919063ffffffff16565b61390890919063ffffffff16565b9050600061403c8461402e6012548861388290919063ffffffff16565b61390890919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146140c5576040519150601f19603f3d011682016040523d82523d6000602084013e6140ca565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114614153576040519150601f19603f3d011682016040523d82523d6000602084013e614158565b606091505b5050809150506000905060008a11156142ea57601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561425757600080fd5b505af115801561426b573d6000803e3d6000fd5b50505050506040513d606081101561428257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000602060006101000a81548160ff021916908315150217905550565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000808261437857606461437c565b6015545b905060006143be6064601454026143b0846143a26013548a61388290919063ffffffff16565b61388290919063ffffffff16565b61390890919063ffffffff16565b905061441281600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137fa90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36144cd81866137b090919063ffffffff16565b925050509392505050565b60008083118290614584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561454957808201518184015260208101905061452e565b50505050905090810190601f1680156145765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161459057fe5b04905080915050939250505056fe506c65617365207761697420666f7220316d696e206265747765656e2074776f2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220c700e1761462643e013bad65509b1c8e8789dc2e2c1268f91b57a2996b6d30eb64736f6c63430007060033
Deployed Bytecode Sourcemap
5973:14597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7740:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9296:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10823:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9821:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15667:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20321:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7163:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8978:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15022:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7094:62;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19750:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10397:418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19964:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15808:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3109:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9088:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15274:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18617:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10077:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11228:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17982:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7555:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18330:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7062:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7023:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7703:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9498:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7600:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11332:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6551:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6502:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9398:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6751:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2502:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18089:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9190:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7487:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10201:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2902:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11028:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7249:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18778:439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20114:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19225:330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7334:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9625:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19563:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7292:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15522:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3004:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18458:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7456:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6791:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3220:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7207:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7515:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7740:58;;;;:::o;9296:94::-;9344:13;9377:5;;;;;;;;;;;;;;;;;9370:12;;9296:94;:::o;10823:197::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11008:4:::1;10981:23;10966:12;;:38;10965:47;;;;;;10947:15;:65;;;;10823:197:::0;:::o;9821:248::-;9923:4;9980:6;9945:11;:23;9957:10;9945:23;;;;;;;;;;;;;;;:32;9969:7;9945:32;;;;;;;;;;;;;;;:41;;;;10023:7;10002:37;;10011:10;10002:37;;;10032:6;10002:37;;;;;;;;;;;;;;;;;;10057:4;10050:11;;9821:248;;;;:::o;15667:94::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15746:7:::1;15732:11;;:21;;;;;;;;;;;;;;;;;;15667:94:::0;:::o;20321:182::-;20428:4;20489:6;20457:29;20477:8;20457:19;:29::i;:::-;:38;20450:45;;20321:182;;;;:::o;7163:35::-;;;;:::o;8978:102::-;9033:7;9060:12;;9053:19;;8978:102;:::o;15022:244::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15106:17:::1;15126:21;15106:41;;15166:20;;;;;;;;;;;15158:38;;:100;15244:3;15224:16;15212:9;:28;15211:36;;;;;;15158:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2885:1;15022:244:::0;:::o;7094:62::-;;;;:::o;19750:206::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19889:7:::1;19871:15;:25;;;;19936:12;19907:26;:41;;;;19750:206:::0;;:::o;10397:418::-;10531:4;10595:2;10552:11;:19;10564:6;10552:19;;;;;;;;;;;;;;;:31;10572:10;10552:31;;;;;;;;;;;;;;;;:46;10548:200;;10649:87;10703:6;10649:87;;;;;;;;;;;;;;;;;:11;:19;10661:6;10649:19;;;;;;;;;;;;;;;:31;10669:10;10649:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;10615:11;:19;10627:6;10615:19;;;;;;;;;;;;;;;:31;10635:10;10615:31;;;;;;;;;;;;;;;:121;;;;10548:200;10767:40;10781:6;10789:9;10800:6;10767:13;:40::i;:::-;10760:47;;10397:418;;;;;:::o;19964:142::-;20017:7;20044:54;20082:15;20092:4;;;;;;;;;;;20082:9;:15::i;:::-;20044:33;20061:15;20071:4;;;;;;;;;;;20061:9;:15::i;:::-;20044:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;20037:61;;19964:142;:::o;15808:164::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15913:7:::1;15892:18;;:28;;;;;;;;;;;;;;;;;;15955:9;15931:21;;:33;;;;;;;;;;;;;;;;;;15808:164:::0;;:::o;3109:103::-;3164:4;3199:5;;;;;;;;;;;3188:16;;:7;:16;;;3181:23;;3109:103;;;:::o;9088:94::-;9140:5;6437:2;9158:16;;9088:94;:::o;15274:240::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15388:17:::1;15408:21;15388:41;;15448:10;15440:28;;:66;15502:3;15482:16;15470:9;:28;15469:36;;;;;;15440:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2885:1;15274:240:::0;:::o;18617:153::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18756:6:::1;18729:16;:24;18746:6;18729:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18617:153:::0;;:::o;10077:116::-;10132:4;10156:29;10164:7;10181:2;10156:7;:29::i;:::-;10149:36;;10077:116;;;:::o;11228:96::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:6:::1;11295:12;:21;;;;11228:96:::0;:::o;17982:99::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18066:7:::1;18050:13;;:23;;;;;;;;;;;;;;;;;;17982:99:::0;:::o;7555:38::-;;;;;;;;;;;;;:::o;18330:120::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18436:6:::1;18414:11;:19;18426:6;18414:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18330:120:::0;;:::o;7062:25::-;;;;:::o;7023:32::-;;;;:::o;7703:30::-;;;;;;;;;;;;;:::o;9498:119::-;9564:7;9591:9;:18;9601:7;9591:18;;;;;;;;;;;;;;;;9584:25;;9498:119;;;:::o;7600:38::-;;;;;;;;;;;;;:::o;11332:87::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11406:5:::1;11399:4;;:12;;;;;;;;;;;;;;;;;;11332:87:::0;:::o;6551:57::-;;;;:::o;6502:42::-;;;;:::o;9398:92::-;9450:7;9477:5;;;;;;;;;;;9470:12;;9398:92;:::o;6751:33::-;;;;;;;;;;;;;:::o;2502:20::-;;;;;;;;;;;;:::o;18089:233::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18214:9:::1;18209:106;18229:9;;:16;;18225:1;:20;18209:106;;;18297:6;18267:13;:27;18281:9;;18291:1;18281:12;;;;;;;;;;;;;;;18267:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18247:3;;;;;18209:106;;;;18089:233:::0;;;:::o;9190:98::-;9240:13;9273:7;;;;;;;;;;;;;;;;;9266:14;;9190:98;:::o;6985:31::-;;;;:::o;7487:19::-;;;;;;;;;;;;;:::o;10201:188::-;10308:4;10337:44;10351:10;10363:9;10374:6;10337:13;:44::i;:::-;10330:51;;10201:188;;;;:::o;2902:94::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2984:4:::1;2962:14:::0;:19:::1;2977:3;2962:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2902:94:::0;:::o;11028:192::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:4:::1;11180:24;11165:12;;:39;11164:48;;;;;;11149:12;:63;;;;11028:192:::0;:::o;7249:36::-;;;;;;;;;;;;;:::o;18778:439::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18946:13:::1;18931:12;:28;;;;18985:13;18970:12;:28;;;;19018:1;19009:6;:10;;;;19041:44;19078:6;;19041:32;19059:13;19041;:17;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;19030:8;:55;;;;19113:15;19096:14;:32;;;;19175:1;19158:14;;:18;;;;;;19147:8;;:29;19139:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18778:439:::0;;;:::o;20114:199::-;20209:7;20241:64;20282:22;:20;:22::i;:::-;20241:36;20254:22;20274:1;20254:15;20264:4;;;;;;;;;;;20254:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;20241:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;20234:71;;20114:199;;;:::o;19225:330::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19427:22:::1;19403:21;;:46;;;;;;;;;;;;;;;;;;19483:21;19460:20;;:44;;;;;;;;;;;;;;;;;;19532:15;19515:14;;:32;;;;;;;;;;;;;;;;;;19225:330:::0;;;:::o;7334:29::-;;;;;;;;;;;;;:::o;9625:188::-;9745:7;9777:11;:19;9789:6;9777:19;;;;;;;;;;;;;;;:28;9797:7;9777:28;;;;;;;;;;;;;;;;9770:35;;9625:188;;;;:::o;19563:179::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19692:8:::1;19678:11;;:22;;;;;;;;;;;;;;;;;;19727:7;19711:13;:23;;;;19563:179:::0;;:::o;7292:35::-;;;;;;;;;;;;;:::o;15522:114::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15617:11:::1;15600:14;:28;;;;15522:114:::0;:::o;3004:97::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:5:::1;3066:14;:19;3081:3;3066:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3004:97:::0;:::o;3335:173::-;2735:19;2743:10;2735:7;:19::i;:::-;2727:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:3:::1;3411:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3455:4;3433:14:::0;:19:::1;3448:3;3433:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3475:25;3496:3;3475:25;;;;;;;;;;;;;;;;;;;;3335:173:::0;:::o;18458:151::-;2834:24;2847:10;2834:12;:24::i;:::-;2826:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18595:6:::1;18569:15;:23;18585:6;18569:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18458:151:::0;;:::o;7456:24::-;;;;;;;;;;;;;:::o;6791:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;3220:107::-;3276:4;3300:14;:19;3315:3;3300:19;;;;;;;;;;;;;;;;;;;;;;;;;3293:26;;3220:107;;;:::o;7207:33::-;;;;:::o;7515:31::-;;;;;;;;;;;;;:::o;523:226::-;643:7;676:1;671;:6;;679:12;663:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;703:9;719:1;715;:5;703:17;;740:1;733:8;;;523:226;;;;;:::o;11427:2120::-;11553:4;11574:6;;;;;;;;;;;11570:87;;;11604:41;11619:6;11627:9;11638:6;11604:14;:41::i;:::-;11597:48;;;;11570:87;11674:14;:22;11689:6;11674:22;;;;;;;;;;;;;;;;;;;;;;;;;11673:23;:53;;;;;11701:14;:25;11716:9;11701:25;;;;;;;;;;;;;;;;;;;;;;;;;11700:26;11673:53;11669:130;;;11751:11;;;;;;;;;;;11743:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11669:130;11837:13;;;;;;;;;;;11833:170;;;11894:13;:21;11908:6;11894:21;;;;;;;;;;;;;;;;;;;;;;;;;11893:22;:51;;;;;11920:13;:24;11934:9;11920:24;;;;;;;;;;;;;;;;;;;;;;;;;11919:25;11893:51;11867:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11833:170;12034:14;:22;12049:6;12034:22;;;;;;;;;;;;;;;;;;;;;;;;;12033:23;:66;;;;;12094:4;12073:26;;:9;:26;;;;12033:66;:109;;;;;12137:4;;;;;;;;;;;12116:26;;:9;:26;;;;12033:109;:143;;;;;12172:4;;;;;;;;;;;12159:17;;:9;:17;;;;12033:143;:193;;;;;12206:20;;;;;;;;;;;12193:33;;:9;:33;;;;12033:193;:237;;;;;12256:14;;;;;;;;;;;12243:27;;:9;:27;;;;12033:237;:288;;;;;12300:21;;;;;;;;;;;12287:34;;:9;:34;;;;12033:288;12015:565;;;12348:18;12369:20;12379:9;12369;:20::i;:::-;12348:41;;12455:15;;12444:6;12431:10;:19;12430:40;;12404:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12015:565;;12620:4;;;;;;;;;;;12610:14;;:6;:14;;;:36;;;;;12628:18;;;;;;;;;;;12610:36;:68;;;;;12651:16;:27;12668:9;12651:27;;;;;;;;;;;;;;;;;;;;;;;;;12650:28;12610:68;12592:347;;;12758:15;12731:13;:24;12745:9;12731:24;;;;;;;;;;;;;;;;:42;12705:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12906:21;;;;;;;;;;;12888:39;;:15;:39;12861:13;:24;12875:9;12861:24;;;;;;;;;;;;;;;:66;;;;12592:347;12992:28;13005:6;13013;12992:12;:28::i;:::-;13037:16;:14;:16::i;:::-;13033:59;;;13070:10;:8;:10::i;:::-;13033:59;13151:90;13187:6;13151:90;;;;;;;;;;;;;;;;;:9;:17;13161:6;13151:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;13131:9;:17;13141:6;13131:17;;;;;;;;;;;;;;;:110;;;;13254:22;13279:21;13293:6;13279:13;:21::i;:::-;:103;;13376:6;13279:103;;;13316:44;13324:6;13332;13354:4;;;;;;;;;;;13341:17;;:9;:17;;;13316:7;:44::i;:::-;13279:103;13254:128;;13416:40;13441:14;13416:9;:20;13426:9;13416:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13393:9;:20;13403:9;13393:20;;;;;;;;;;;;;;;:63;;;;13491:9;13474:43;;13483:6;13474:43;;;13502:14;13474:43;;;;;;;;;;;;;;;;;;13535:4;13528:11;;;11427:2120;;;;;;:::o;379:136::-;437:7;464:43;468:1;471;464:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;457:50;;379:136;;;;:::o;190:181::-;248:7;268:9;284:1;280;:5;268:17;;309:1;304;:6;;296:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;362:1;355:8;;;190:181;;;;:::o;757:250::-;815:7;844:1;839;:6;835:47;;;869:1;862:8;;;;835:47;894:9;910:1;906;:5;894:17;;939:1;934;930;:5;;;;;;:10;922:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;998:1;991:8;;;757:250;;;;;:::o;1015:132::-;1073:7;1100:39;1104:1;1107;1100:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1093:46;;1015:132;;;;:::o;13555:401::-;13682:4;13719:90;13755:6;13719:90;;;;;;;;;;;;;;;;;:9;:17;13729:6;13719:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;13699:9;:17;13709:6;13699:17;;;;;;;;;;;;;;;:110;;;;13843:32;13868:6;13843:9;:20;13853:9;13843:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13820:9;:20;13830:9;13820:20;;;;;;;;;;;;;;;:55;;;;13908:9;13891:35;;13900:6;13891:35;;;13919:6;13891:35;;;;;;;;;;;;;;;;;;13944:4;13937:11;;13555:401;;;;;:::o;13964:203::-;14075:12;;14065:6;:22;;:49;;;;14091:15;:23;14107:6;14091:23;;;;;;;;;;;;;;;;;;;;;;;;;14065:49;14043:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13964:203;;:::o;14792:222::-;14841:4;14892;;;;;;;;;;;14878:18;;:10;:18;;;;:42;;;;;14914:6;;;;;;;;;;;14913:7;14878:42;:70;;;;;14937:11;;;;;;;;;;;14878:70;:128;;;;;14993:13;;14965:9;:24;14983:4;14965:24;;;;;;;;;;;;;;;;:41;;14878:128;14858:148;;14792:222;:::o;15980:1994::-;7863:4;7854:6;;:13;;;;;;;;;;;;;;;;;;16029:27:::1;16059:97;16089:15;;16119:26;;16059:15;:97::i;:::-;:142;;16189:12;;16059:142;;;16172:1;16059:142;16029:172;;16212:23;16238:101;16337:1;16238:80;16309:8;;16238:52;16270:19;16238:13;;:31;;:52;;;;:::i;:::-;:70;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;16212:127;;16350:20;16373:34;16391:15;16373:13;;:17;;:34;;;;:::i;:::-;16350:57;;16420:21;16458:1;16444:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16420:40;;16489:4;16471;16476:1;16471:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;16515:4;;;;;;;;;;;16505;16510:1;16505:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;16532:21;16556;16532:45;;16590:6;;;;;;;;;;;:57;;;16662:12;16689:1;16705:4;16732;16752:15;16590:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16791:17;16811:40;16837:13;16811:21;:25;;:40;;;;:::i;:::-;16791:60;;16864:19;16886:40;16899:26;16923:1;16899:19;:23;;:26;;;;:::i;:::-;16886:8;;:12;;:40;;;;:::i;:::-;16864:62;;16939:26;16968:100;17066:1;16968:79;17035:11;16968:48;16996:19;16968:9;:27;;:48;;;;:::i;:::-;:66;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;16939:129;;17079:26;17108:68;17154:11;17108:27;17122:12;;17108:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;17079:97;;17187:20;17210:38;17236:11;17210:21;17224:6;;17210:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;17187:61;;17262:15;17291:20;;;;;;;;;;;17283:34;;17339:18;17377:5;17283:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17261:136;;;17433:14;;;;;;;;;;;17425:28;;17475:12;17507:5;17425:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17408:119;;;;;17585:5;17572:18;;17625:1;17607:15;:19;17603:364;;;17643:6;;;;;;;;;;;:22;;;17673:18;17719:4;17743:15;17777:1;17797::::0;17817:21:::1;;;;;;;;;;;17857:15;17643:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17907:48;17919:18;17939:15;17907:48;;;;;;;;;;;;;;;;;;;;;;;;17603:364;7878:1;;;;;;;;;;;7899:5:::0;7890:6;;:14;;;;;;;;;;;;;;;;;;15980:1994::o;14175:114::-;14237:4;14262:11;:19;14274:6;14262:19;;;;;;;;;;;;;;;;;;;;;;;;;14261:20;14254:27;;14175:114;;;:::o;14297:487::-;14411:7;14431:18;14452:6;:29;;14478:3;14452:29;;;14461:14;;14452:29;14431:50;;14492:17;14512:86;14584:3;14567:14;;:20;14512:36;14537:10;14512:20;14523:8;;14512:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:86;;;;:::i;:::-;14492:106;;14638:39;14667:9;14638;:24;14656:4;14638:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14611:9;:24;14629:4;14611:24;;;;;;;;;;;;;;;:66;;;;14718:4;14693:42;;14702:6;14693:42;;;14725:9;14693:42;;;;;;;;;;;;;;;;;;14755:21;14766:9;14755:6;:10;;:21;;;;:::i;:::-;14748:28;;;;14297:487;;;;;:::o;1155:223::-;1275:7;1307:1;1303;:5;1310:12;1295:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1334:9;1350:1;1346;:5;;;;;;1334:17;;1369:1;1362:8;;;1155:223;;;;;:::o
Swarm Source
ipfs://c700e1761462643e013bad65509b1c8e8789dc2e2c1268f91b57a2996b6d30eb
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.