ERC-20
Overview
Max Total Supply
420,420,420,420 TRIPPY
Holders
157
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
382,726,610.835002585302072695 TRIPPYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TRIPPY
Compiler Version
v0.8.2+commit.661d1103
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-12 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.2; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract TRIPPY is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "TRIPPY"; string constant _symbol = "TRIPPY"; uint8 constant _decimals = 18; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 420420420420 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 5; uint256 private marketingFee = 5; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 400; uint256 buypercent = 400; uint256 transferpercent = 100; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 70 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x799a8523E62cA0a4F5bF8136ad2A3c13f4DfAf47; devFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } function removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner { sellpercent = _percentonsell; buypercent = _percentonbuy; transferpercent = _wallettransfer; } function startTrading() public onlyOwner { TradingOpen = true; buypercent = 250; // How much percentages the original taxes increase. sellpercent = 250; // How much percentages the original taxes increase. transferpercent = 100; } function reduceFee() public onlyOwner { buypercent = 100; // How much percentages the original taxes increase. sellpercent = 100; transferpercent = 100; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); set_fees(); } function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000e5a565b6461e302834462000026919062000f97565b6003556200006060646200004c600260035462000aab60201b62001c931790919060201c565b62000b2f60201b62001d0e1790919060201c565b6004556200009a606462000086600260035462000aab60201b62001c931790919060201c565b62000b2f60201b62001d0e1790919060201c565b6005556005600a556005600b556000600c556000600d556000600e55600e54600c54600a54600b54600d54620000d1919062000d6a565b620000dd919062000d6a565b620000e9919062000d6a565b620000f5919062000d6a565b600f5560646010556101906011556101906012556064601355601e6019556064601a556000601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e8604660035462000162919062000f97565b6200016e919062000dc7565b601e553480156200017e57600080fd5b5060006200019162000b8160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036557600080fd5b505afa1580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000c08565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044957600080fd5b505afa1580156200045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000484919062000c08565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004e292919062000cbe565b602060405180830381600087803b158015620004fd57600080fd5b505af115801562000512573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000538919062000c08565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073799a8523e62ca0a4f5bf8136ad2a3c13f4dfaf47601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a9d919062000d31565b60405180910390a36200115e565b60008083141562000ac0576000905062000b29565b6000828462000ad0919062000f97565b905082848262000ae1919062000dc7565b1462000b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b1b9062000d0f565b60405180910390fd5b809150505b92915050565b600062000b7983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b8960201b60201c565b905092915050565b600033905090565b6000808311829062000bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bca919062000ceb565b60405180910390fd5b506000838562000be4919062000dc7565b9050809150509392505050565b60008151905062000c028162001144565b92915050565b60006020828403121562000c1b57600080fd5b600062000c2b8482850162000bf1565b91505092915050565b62000c3f8162000ff8565b82525050565b600062000c528262000d4e565b62000c5e818562000d59565b935062000c7081856020860162001043565b62000c7b81620010d7565b840191505092915050565b600062000c9560218362000d59565b915062000ca282620010f5565b604082019050919050565b62000cb8816200102c565b82525050565b600060408201905062000cd5600083018562000c34565b62000ce4602083018462000c34565b9392505050565b6000602082019050818103600083015262000d07818462000c45565b905092915050565b6000602082019050818103600083015262000d2a8162000c86565b9050919050565b600060208201905062000d48600083018462000cad565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000d77826200102c565b915062000d84836200102c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000dbc5762000dbb62001079565b5b828201905092915050565b600062000dd4826200102c565b915062000de1836200102c565b92508262000df45762000df3620010a8565b5b828204905092915050565b6000808291508390505b600185111562000e515780860481111562000e295762000e2862001079565b5b600185161562000e395780820291505b808102905062000e4985620010e8565b945062000e09565b94509492505050565b600062000e67826200102c565b915062000e748362001036565b925062000ea37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eab565b905092915050565b60008262000ebd576001905062000f90565b8162000ecd576000905062000f90565b816001811462000ee6576002811462000ef15762000f27565b600191505062000f90565b60ff84111562000f065762000f0562001079565b5b8360020a91508482111562000f205762000f1f62001079565b5b5062000f90565b5060208310610133831016604e8410600b841016171562000f615782820a90508381111562000f5b5762000f5a62001079565b5b62000f90565b62000f70848484600162000dff565b9250905081840481111562000f8a5762000f8962001079565b5b81810290505b9392505050565b600062000fa4826200102c565b915062000fb1836200102c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fed5762000fec62001079565b5b828202905092915050565b600062001005826200100c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200106357808201518184015260208101905062001046565b8381111562001073576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200114f8162000ff8565b81146200115b57600080fd5b50565b614227806200116e6000396000f3fe6080604052600436106102135760003560e01c806377b54bad11610118578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461078c578063df20fd49146107c9578063f2fde38b146107f2578063f42938901461081b578063f887ea40146108325761021a565b8063a9059cbb146106be578063b2bdfa7b146106fb578063c0cbdea414610726578063dd62ed3e1461074f5761021a565b8063893d20e8116100e7578063893d20e8146105fb5780638da5cb5b1461062657806395d89b4114610651578063a70419d21461067c578063a8aa1b31146106935761021a565b806377b54bad1461053f57806378109e541461057c5780637d1db4a5146105a757806382528791146105d25761021a565b806330c9a6a01161019b5780635d83e1d51161016a5780635d83e1d5146104805780636ddd1713146104a957806370a08231146104d4578063715018a614610511578063751039fc146105285761021a565b806330c9a6a0146103b0578063313ce567146103ed5780635526566914610418578063571ac8b0146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631df4ccfc1461030857806323b872dd14610333578063282c874914610370578063293230b8146103995761021a565b80630445b6671461021f57806306fdde031461024a57806308fd3d0514610275578063095ea7b3146102a05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461085d565b6040516102419190613c34565b60405180910390f35b34801561025657600080fd5b5061025f610863565b60405161026c9190613b12565b60405180910390f35b34801561028157600080fd5b5061028a6108a0565b6040516102979190613adc565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c29190613534565b6108b3565b6040516102d49190613adc565b60405180910390f35b3480156102e957600080fd5b506102f26109a5565b6040516102ff9190613c34565b60405180910390f35b34801561031457600080fd5b5061031d6109af565b60405161032a9190613c34565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906134e5565b6109b5565b6040516103679190613adc565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613701565b610bb5565b005b3480156103a557600080fd5b506103ae610d25565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906135d5565b610def565b6040516103e49190613c34565b60405180910390f35b3480156103f957600080fd5b50610402610e61565b60405161040f9190613cfb565b60405180910390f35b34801561042457600080fd5b5061042d610e6a565b60405161043a9190613c34565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613409565b610eab565b6040516104779190613adc565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a291906135d5565b610ede565b005b3480156104b557600080fd5b506104be610fde565b6040516104cb9190613adc565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190613409565b610ff1565b6040516105089190613c34565b60405180910390f35b34801561051d57600080fd5b5061052661103a565b005b34801561053457600080fd5b5061053d61118d565b005b34801561054b57600080fd5b5061056660048036038101906105619190613534565b611236565b6040516105739190613adc565b60405180910390f35b34801561058857600080fd5b506105916113bc565b60405161059e9190613c34565b60405180910390f35b3480156105b357600080fd5b506105bc6113c2565b6040516105c99190613c34565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f4919061346e565b6113c8565b005b34801561060757600080fd5b5061061061166e565b60405161061d91906139f2565b60405180910390f35b34801561063257600080fd5b5061063b61167d565b60405161064891906139f2565b60405180910390f35b34801561065d57600080fd5b506106666116a6565b6040516106739190613b12565b60405180910390f35b34801561068857600080fd5b506106916116e3565b005b34801561069f57600080fd5b506106a8611792565b6040516106b591906139f2565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190613534565b6117b8565b6040516106f29190613adc565b60405180910390f35b34801561070757600080fd5b506107106117cd565b60405161071d91906139f2565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190613663565b6117f1565b005b34801561075b57600080fd5b5061077660048036038101906107719190613432565b6118a0565b6040516107839190613c34565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190613627565b611927565b6040516107c09190613adc565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190613599565b61193c565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613409565b611a40565b005b34801561082757600080fd5b50610830611c02565b005b34801561083e57600080fd5b50610847611c6d565b6040516108549190613af7565b60405180910390f35b601e5481565b60606040518060400160405280600681526020017f5452495050590000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109939190613c34565b60405180910390a36001905092915050565b6000600354905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba157610b20826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bac848484611dbc565b90509392505050565b610bbd612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613bf4565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610cb682610ca885610c9a88610c8c8b8d61241c90919063ffffffff16565b61241c90919063ffffffff16565b61241c90919063ffffffff16565b61241c90919063ffffffff16565b600f81905550806010819055506002601054610cd29190613e03565b600f5410610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613bd4565b60405180910390fd5b610d1d61247a565b505050505050565b610d2d612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613bf4565b60405180910390fd5b6001601d60146101000a81548160ff02191690831515021790555060fa60128190555060fa6011819055506064601381905550565b6000610e5a610dfc610e6a565b610e4c610e3d6002610e2f601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ff1565b611c9390919063ffffffff16565b85611c9390919063ffffffff16565b611d0e90919063ffffffff16565b9050919050565b60006012905090565b6000610ea6610e796000610ff1565b610e98610e8761dead610ff1565b60035461253290919063ffffffff16565b61253290919063ffffffff16565b905090565b6000610ed7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b3565b9050919050565b610ee6612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90613bf4565b60405180910390fd5b6001811015610f8157600080fd5b6103e881600354610f929190613e34565b610f9c9190613e03565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610fd39190613c34565b60405180910390a150565b601d60159054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611042612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611195612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990613bf4565b60405180910390fd5b600354600481905550600354600581905550565b6000808214156112cc578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161127991906139f2565b60206040518083038186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c991906135fe565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112fd929190613a52565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611362929190613a52565b602060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190613570565b905092915050565b60055481565b60045481565b6113d0612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490613bf4565b60405180910390fd5b84601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161165f9493929190613a0d565b60405180910390a15050505050565b600061167861167d565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5452495050590000000000000000000000000000000000000000000000000000815250905090565b6116eb612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90613bf4565b60405180910390fd5b606460128190555060646011819055506064601381905550565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c5338484611dbc565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117f9612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613bf4565b60405180910390fd5b816011819055508260128190555080601381905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261193383610def565b11905092915050565b611944612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613bf4565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611a34929190613c4f565b60405180910390a15050565b611a48612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613b54565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c6a573d6000803e3d6000fd5b50565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611ca65760009050611d08565b60008284611cb49190613e34565b9050828482611cc39190613e03565b14611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90613bb4565b60405180910390fd5b809150505b92915050565b6000611d5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061257c565b905092915050565b6000838311158290611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d979190613b12565b60405180910390fd5b5060008385611daf9190613e8e565b9050809150509392505050565b6000601f60009054906101000a900460ff1615611de557611dde8484846125df565b905061240d565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e895750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ede57601d60149054906101000a900460ff16611edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed490613b94565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff85750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120525750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120ac5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121025750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216657600061211284610ff1565b905060055483826121239190613dad565b1115612164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215b90613c14565b60405180910390fd5b505b61217084836127b2565b61217861284f565b1561218657612185612926565b5b61220f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61230957612304858486612fce565b61230b565b825b905061235f81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123ff9190613c34565b60405180910390a360019150505b9392505050565b600033905090565b600080828461242b9190613dad565b905083811015612470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246790613b74565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124c560646124b7601254600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b6124ef60646124e1601154600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b612519606461250b601354600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b60405161252893929190613d16565b60405180910390a1565b600061257483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d58565b905092915050565b600080831182906125c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ba9190613b12565b60405180910390fd5b50600083856125d29190613e03565b9050809150509392505050565b600061266a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126ff82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161279f9190613c34565b60405180910390a3600190509392505050565b6004548111158061280c5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61284b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284290613b34565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128bc5750601f60009054906101000a900460ff16155b80156128d45750601d60159054906101000a900460ff165b80156129215750601e54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60006101000a81548160ff0219169083151502179055506000612951601954601a54611927565b61295d57600a54612960565b60005b905060006129a06002612992600f5461298486601e54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b905060006129b982601e5461253290919063ffffffff16565b90506000600267ffffffffffffffff8111156129fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a2c5781602001602082028036833780820191505090505b5090503081600081518110612a6a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ba4959493929190613c78565b600060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506000612beb824761253290919063ffffffff16565b90506000612c17612c06600289611d0e90919063ffffffff16565b600f5461253290919063ffffffff16565b90506000612c536002612c4584612c378c88611c9390919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b90506000612c7e83612c70600b5487611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000612ca984612c9b600d5488611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000612cd485612cc6600c5489611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612d1e906139dd565b60006040518083038185875af1925050503d8060008114612d5b576040519150601f19603f3d011682016040523d82523d6000602084013e612d60565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612daa906139dd565b60006040518083038185875af1925050503d8060008114612de7576040519150601f19603f3d011682016040523d82523d6000602084013e612dec565b606091505b505080915050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e38906139dd565b60006040518083038185875af1925050503d8060008114612e75576040519150601f19603f3d011682016040523d82523d6000602084013e612e7a565b606091505b5050809150506000905060008b1115612fa557601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f1696959493929190613a7b565b6060604051808303818588803b158015612f2f57600080fd5b505af1158015612f43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f6891906136b2565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f9c929190613cd2565b60405180910390a15b5050505050505050505050506000601f60006101000a81548160ff021916908315150217905550565b6000806013549050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613036576011549050613093565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156130925760125490505b5b60006130dc60646010546130a79190613e34565b6130ce846130c0600f548a611c9390919063ffffffff16565b611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000613109600f546130fb600e5485611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000613120828461253290919063ffffffff16565b905061317481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322b8260066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b60066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132ed9190613c34565b60405180910390a36000821115613380576133138260035461253290919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133779190613c34565b60405180910390a35b613393838861253290919063ffffffff16565b9450505050509392505050565b6000813590506133af816141ac565b92915050565b6000813590506133c4816141c3565b92915050565b6000815190506133d9816141c3565b92915050565b6000813590506133ee816141da565b92915050565b600081519050613403816141da565b92915050565b60006020828403121561341b57600080fd5b6000613429848285016133a0565b91505092915050565b6000806040838503121561344557600080fd5b6000613453858286016133a0565b9250506020613464858286016133a0565b9150509250929050565b600080600080600060a0868803121561348657600080fd5b6000613494888289016133a0565b95505060206134a5888289016133a0565b94505060406134b6888289016133a0565b93505060606134c7888289016133a0565b92505060806134d8888289016133a0565b9150509295509295909350565b6000806000606084860312156134fa57600080fd5b6000613508868287016133a0565b9350506020613519868287016133a0565b925050604061352a868287016133df565b9150509250925092565b6000806040838503121561354757600080fd5b6000613555858286016133a0565b9250506020613566858286016133df565b9150509250929050565b60006020828403121561358257600080fd5b6000613590848285016133ca565b91505092915050565b600080604083850312156135ac57600080fd5b60006135ba858286016133b5565b92505060206135cb858286016133df565b9150509250929050565b6000602082840312156135e757600080fd5b60006135f5848285016133df565b91505092915050565b60006020828403121561361057600080fd5b600061361e848285016133f4565b91505092915050565b6000806040838503121561363a57600080fd5b6000613648858286016133df565b9250506020613659858286016133df565b9150509250929050565b60008060006060848603121561367857600080fd5b6000613686868287016133df565b9350506020613697868287016133df565b92505060406136a8868287016133df565b9150509250925092565b6000806000606084860312156136c757600080fd5b60006136d5868287016133f4565b93505060206136e6868287016133f4565b92505060406136f7868287016133f4565b9150509250925092565b60008060008060008060c0878903121561371a57600080fd5b600061372889828a016133df565b965050602061373989828a016133df565b955050604061374a89828a016133df565b945050606061375b89828a016133df565b935050608061376c89828a016133df565b92505060a061377d89828a016133df565b9150509295509295509295565b600061379683836137a2565b60208301905092915050565b6137ab81613ec2565b82525050565b6137ba81613ec2565b82525050565b60006137cb82613d5d565b6137d58185613d80565b93506137e083613d4d565b8060005b838110156138115781516137f8888261378a565b975061380383613d73565b9250506001810190506137e4565b5085935050505092915050565b61382781613ed4565b82525050565b61383681613f17565b82525050565b61384581613f3b565b82525050565b600061385682613d68565b6138608185613d9c565b9350613870818560208601613f4d565b61387981613fde565b840191505092915050565b6000613891601183613d9c565b915061389c82613fef565b602082019050919050565b60006138b4602683613d9c565b91506138bf82614018565b604082019050919050565b60006138d7601b83613d9c565b91506138e282614067565b602082019050919050565b60006138fa601483613d9c565b915061390582614090565b602082019050919050565b600061391d602183613d9c565b9150613928826140b9565b604082019050919050565b6000613940601d83613d9c565b915061394b82614108565b602082019050919050565b6000613963602083613d9c565b915061396e82614131565b602082019050919050565b6000613986603e83613d9c565b91506139918261415a565b604082019050919050565b60006139a9600083613d91565b91506139b4826141a9565b600082019050919050565b6139c881613f00565b82525050565b6139d781613f0a565b82525050565b60006139e88261399c565b9150819050919050565b6000602082019050613a0760008301846137b1565b92915050565b6000608082019050613a2260008301876137b1565b613a2f60208301866137b1565b613a3c60408301856137b1565b613a4960608301846137b1565b95945050505050565b6000604082019050613a6760008301856137b1565b613a7460208301846139bf565b9392505050565b600060c082019050613a9060008301896137b1565b613a9d60208301886139bf565b613aaa604083018761383c565b613ab7606083018661383c565b613ac460808301856137b1565b613ad160a08301846139bf565b979650505050505050565b6000602082019050613af1600083018461381e565b92915050565b6000602082019050613b0c600083018461382d565b92915050565b60006020820190508181036000830152613b2c818461384b565b905092915050565b60006020820190508181036000830152613b4d81613884565b9050919050565b60006020820190508181036000830152613b6d816138a7565b9050919050565b60006020820190508181036000830152613b8d816138ca565b9050919050565b60006020820190508181036000830152613bad816138ed565b9050919050565b60006020820190508181036000830152613bcd81613910565b9050919050565b60006020820190508181036000830152613bed81613933565b9050919050565b60006020820190508181036000830152613c0d81613956565b9050919050565b60006020820190508181036000830152613c2d81613979565b9050919050565b6000602082019050613c4960008301846139bf565b92915050565b6000604082019050613c6460008301856139bf565b613c71602083018461381e565b9392505050565b600060a082019050613c8d60008301886139bf565b613c9a602083018761383c565b8181036040830152613cac81866137c0565b9050613cbb60608301856137b1565b613cc860808301846139bf565b9695505050505050565b6000604082019050613ce760008301856139bf565b613cf460208301846139bf565b9392505050565b6000602082019050613d1060008301846139ce565b92915050565b6000606082019050613d2b60008301866139ce565b613d3860208301856139ce565b613d4560408301846139ce565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613db882613f00565b9150613dc383613f00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613df857613df7613f80565b5b828201905092915050565b6000613e0e82613f00565b9150613e1983613f00565b925082613e2957613e28613faf565b5b828204905092915050565b6000613e3f82613f00565b9150613e4a83613f00565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8357613e82613f80565b5b828202905092915050565b6000613e9982613f00565b9150613ea483613f00565b925082821015613eb757613eb6613f80565b5b828203905092915050565b6000613ecd82613ee0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613f2282613f29565b9050919050565b6000613f3482613ee0565b9050919050565b6000613f4682613f00565b9050919050565b60005b83811015613f6b578082015181840152602081019050613f50565b83811115613f7a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f466565732063616e206e6f74206265206d6f7265207468616e20353025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b6141b581613ec2565b81146141c057600080fd5b50565b6141cc81613ed4565b81146141d757600080fd5b50565b6141e381613f00565b81146141ee57600080fd5b5056fea2646970667358221220a25817f19b7533f8ffd087ef2db85fbedd27ea25951fcd8a83d301f0b21dab3e64736f6c63430008020033
Deployed Bytecode
0x6080604052600436106102135760003560e01c806377b54bad11610118578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461078c578063df20fd49146107c9578063f2fde38b146107f2578063f42938901461081b578063f887ea40146108325761021a565b8063a9059cbb146106be578063b2bdfa7b146106fb578063c0cbdea414610726578063dd62ed3e1461074f5761021a565b8063893d20e8116100e7578063893d20e8146105fb5780638da5cb5b1461062657806395d89b4114610651578063a70419d21461067c578063a8aa1b31146106935761021a565b806377b54bad1461053f57806378109e541461057c5780637d1db4a5146105a757806382528791146105d25761021a565b806330c9a6a01161019b5780635d83e1d51161016a5780635d83e1d5146104805780636ddd1713146104a957806370a08231146104d4578063715018a614610511578063751039fc146105285761021a565b806330c9a6a0146103b0578063313ce567146103ed5780635526566914610418578063571ac8b0146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631df4ccfc1461030857806323b872dd14610333578063282c874914610370578063293230b8146103995761021a565b80630445b6671461021f57806306fdde031461024a57806308fd3d0514610275578063095ea7b3146102a05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461085d565b6040516102419190613c34565b60405180910390f35b34801561025657600080fd5b5061025f610863565b60405161026c9190613b12565b60405180910390f35b34801561028157600080fd5b5061028a6108a0565b6040516102979190613adc565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c29190613534565b6108b3565b6040516102d49190613adc565b60405180910390f35b3480156102e957600080fd5b506102f26109a5565b6040516102ff9190613c34565b60405180910390f35b34801561031457600080fd5b5061031d6109af565b60405161032a9190613c34565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906134e5565b6109b5565b6040516103679190613adc565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613701565b610bb5565b005b3480156103a557600080fd5b506103ae610d25565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906135d5565b610def565b6040516103e49190613c34565b60405180910390f35b3480156103f957600080fd5b50610402610e61565b60405161040f9190613cfb565b60405180910390f35b34801561042457600080fd5b5061042d610e6a565b60405161043a9190613c34565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613409565b610eab565b6040516104779190613adc565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a291906135d5565b610ede565b005b3480156104b557600080fd5b506104be610fde565b6040516104cb9190613adc565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190613409565b610ff1565b6040516105089190613c34565b60405180910390f35b34801561051d57600080fd5b5061052661103a565b005b34801561053457600080fd5b5061053d61118d565b005b34801561054b57600080fd5b5061056660048036038101906105619190613534565b611236565b6040516105739190613adc565b60405180910390f35b34801561058857600080fd5b506105916113bc565b60405161059e9190613c34565b60405180910390f35b3480156105b357600080fd5b506105bc6113c2565b6040516105c99190613c34565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f4919061346e565b6113c8565b005b34801561060757600080fd5b5061061061166e565b60405161061d91906139f2565b60405180910390f35b34801561063257600080fd5b5061063b61167d565b60405161064891906139f2565b60405180910390f35b34801561065d57600080fd5b506106666116a6565b6040516106739190613b12565b60405180910390f35b34801561068857600080fd5b506106916116e3565b005b34801561069f57600080fd5b506106a8611792565b6040516106b591906139f2565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190613534565b6117b8565b6040516106f29190613adc565b60405180910390f35b34801561070757600080fd5b506107106117cd565b60405161071d91906139f2565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190613663565b6117f1565b005b34801561075b57600080fd5b5061077660048036038101906107719190613432565b6118a0565b6040516107839190613c34565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190613627565b611927565b6040516107c09190613adc565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190613599565b61193c565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613409565b611a40565b005b34801561082757600080fd5b50610830611c02565b005b34801561083e57600080fd5b50610847611c6d565b6040516108549190613af7565b60405180910390f35b601e5481565b60606040518060400160405280600681526020017f5452495050590000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109939190613c34565b60405180910390a36001905092915050565b6000600354905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba157610b20826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bac848484611dbc565b90509392505050565b610bbd612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613bf4565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610cb682610ca885610c9a88610c8c8b8d61241c90919063ffffffff16565b61241c90919063ffffffff16565b61241c90919063ffffffff16565b61241c90919063ffffffff16565b600f81905550806010819055506002601054610cd29190613e03565b600f5410610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613bd4565b60405180910390fd5b610d1d61247a565b505050505050565b610d2d612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613bf4565b60405180910390fd5b6001601d60146101000a81548160ff02191690831515021790555060fa60128190555060fa6011819055506064601381905550565b6000610e5a610dfc610e6a565b610e4c610e3d6002610e2f601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ff1565b611c9390919063ffffffff16565b85611c9390919063ffffffff16565b611d0e90919063ffffffff16565b9050919050565b60006012905090565b6000610ea6610e796000610ff1565b610e98610e8761dead610ff1565b60035461253290919063ffffffff16565b61253290919063ffffffff16565b905090565b6000610ed7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b3565b9050919050565b610ee6612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90613bf4565b60405180910390fd5b6001811015610f8157600080fd5b6103e881600354610f929190613e34565b610f9c9190613e03565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610fd39190613c34565b60405180910390a150565b601d60159054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611042612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611195612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990613bf4565b60405180910390fd5b600354600481905550600354600581905550565b6000808214156112cc578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161127991906139f2565b60206040518083038186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c991906135fe565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112fd929190613a52565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611362929190613a52565b602060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190613570565b905092915050565b60055481565b60045481565b6113d0612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490613bf4565b60405180910390fd5b84601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161165f9493929190613a0d565b60405180910390a15050505050565b600061167861167d565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5452495050590000000000000000000000000000000000000000000000000000815250905090565b6116eb612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90613bf4565b60405180910390fd5b606460128190555060646011819055506064601381905550565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c5338484611dbc565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117f9612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613bf4565b60405180910390fd5b816011819055508260128190555080601381905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261193383610def565b11905092915050565b611944612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613bf4565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611a34929190613c4f565b60405180910390a15050565b611a48612414565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613b54565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c6a573d6000803e3d6000fd5b50565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611ca65760009050611d08565b60008284611cb49190613e34565b9050828482611cc39190613e03565b14611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90613bb4565b60405180910390fd5b809150505b92915050565b6000611d5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061257c565b905092915050565b6000838311158290611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d979190613b12565b60405180910390fd5b5060008385611daf9190613e8e565b9050809150509392505050565b6000601f60009054906101000a900460ff1615611de557611dde8484846125df565b905061240d565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e895750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ede57601d60149054906101000a900460ff16611edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed490613b94565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff85750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120525750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120ac5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121025750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216657600061211284610ff1565b905060055483826121239190613dad565b1115612164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215b90613c14565b60405180910390fd5b505b61217084836127b2565b61217861284f565b1561218657612185612926565b5b61220f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61230957612304858486612fce565b61230b565b825b905061235f81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123ff9190613c34565b60405180910390a360019150505b9392505050565b600033905090565b600080828461242b9190613dad565b905083811015612470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246790613b74565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124c560646124b7601254600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b6124ef60646124e1601154600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b612519606461250b601354600f54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b60405161252893929190613d16565b60405180910390a1565b600061257483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d58565b905092915050565b600080831182906125c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ba9190613b12565b60405180910390fd5b50600083856125d29190613e03565b9050809150509392505050565b600061266a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d589092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126ff82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161279f9190613c34565b60405180910390a3600190509392505050565b6004548111158061280c5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61284b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284290613b34565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128bc5750601f60009054906101000a900460ff16155b80156128d45750601d60159054906101000a900460ff165b80156129215750601e54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60006101000a81548160ff0219169083151502179055506000612951601954601a54611927565b61295d57600a54612960565b60005b905060006129a06002612992600f5461298486601e54611c9390919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b905060006129b982601e5461253290919063ffffffff16565b90506000600267ffffffffffffffff8111156129fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a2c5781602001602082028036833780820191505090505b5090503081600081518110612a6a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ba4959493929190613c78565b600060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506000612beb824761253290919063ffffffff16565b90506000612c17612c06600289611d0e90919063ffffffff16565b600f5461253290919063ffffffff16565b90506000612c536002612c4584612c378c88611c9390919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b90506000612c7e83612c70600b5487611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000612ca984612c9b600d5488611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000612cd485612cc6600c5489611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612d1e906139dd565b60006040518083038185875af1925050503d8060008114612d5b576040519150601f19603f3d011682016040523d82523d6000602084013e612d60565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612daa906139dd565b60006040518083038185875af1925050503d8060008114612de7576040519150601f19603f3d011682016040523d82523d6000602084013e612dec565b606091505b505080915050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e38906139dd565b60006040518083038185875af1925050503d8060008114612e75576040519150601f19603f3d011682016040523d82523d6000602084013e612e7a565b606091505b5050809150506000905060008b1115612fa557601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f1696959493929190613a7b565b6060604051808303818588803b158015612f2f57600080fd5b505af1158015612f43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f6891906136b2565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f9c929190613cd2565b60405180910390a15b5050505050505050505050506000601f60006101000a81548160ff021916908315150217905550565b6000806013549050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613036576011549050613093565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156130925760125490505b5b60006130dc60646010546130a79190613e34565b6130ce846130c0600f548a611c9390919063ffffffff16565b611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000613109600f546130fb600e5485611c9390919063ffffffff16565b611d0e90919063ffffffff16565b90506000613120828461253290919063ffffffff16565b905061317481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322b8260066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241c90919063ffffffff16565b60066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132ed9190613c34565b60405180910390a36000821115613380576133138260035461253290919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133779190613c34565b60405180910390a35b613393838861253290919063ffffffff16565b9450505050509392505050565b6000813590506133af816141ac565b92915050565b6000813590506133c4816141c3565b92915050565b6000815190506133d9816141c3565b92915050565b6000813590506133ee816141da565b92915050565b600081519050613403816141da565b92915050565b60006020828403121561341b57600080fd5b6000613429848285016133a0565b91505092915050565b6000806040838503121561344557600080fd5b6000613453858286016133a0565b9250506020613464858286016133a0565b9150509250929050565b600080600080600060a0868803121561348657600080fd5b6000613494888289016133a0565b95505060206134a5888289016133a0565b94505060406134b6888289016133a0565b93505060606134c7888289016133a0565b92505060806134d8888289016133a0565b9150509295509295909350565b6000806000606084860312156134fa57600080fd5b6000613508868287016133a0565b9350506020613519868287016133a0565b925050604061352a868287016133df565b9150509250925092565b6000806040838503121561354757600080fd5b6000613555858286016133a0565b9250506020613566858286016133df565b9150509250929050565b60006020828403121561358257600080fd5b6000613590848285016133ca565b91505092915050565b600080604083850312156135ac57600080fd5b60006135ba858286016133b5565b92505060206135cb858286016133df565b9150509250929050565b6000602082840312156135e757600080fd5b60006135f5848285016133df565b91505092915050565b60006020828403121561361057600080fd5b600061361e848285016133f4565b91505092915050565b6000806040838503121561363a57600080fd5b6000613648858286016133df565b9250506020613659858286016133df565b9150509250929050565b60008060006060848603121561367857600080fd5b6000613686868287016133df565b9350506020613697868287016133df565b92505060406136a8868287016133df565b9150509250925092565b6000806000606084860312156136c757600080fd5b60006136d5868287016133f4565b93505060206136e6868287016133f4565b92505060406136f7868287016133f4565b9150509250925092565b60008060008060008060c0878903121561371a57600080fd5b600061372889828a016133df565b965050602061373989828a016133df565b955050604061374a89828a016133df565b945050606061375b89828a016133df565b935050608061376c89828a016133df565b92505060a061377d89828a016133df565b9150509295509295509295565b600061379683836137a2565b60208301905092915050565b6137ab81613ec2565b82525050565b6137ba81613ec2565b82525050565b60006137cb82613d5d565b6137d58185613d80565b93506137e083613d4d565b8060005b838110156138115781516137f8888261378a565b975061380383613d73565b9250506001810190506137e4565b5085935050505092915050565b61382781613ed4565b82525050565b61383681613f17565b82525050565b61384581613f3b565b82525050565b600061385682613d68565b6138608185613d9c565b9350613870818560208601613f4d565b61387981613fde565b840191505092915050565b6000613891601183613d9c565b915061389c82613fef565b602082019050919050565b60006138b4602683613d9c565b91506138bf82614018565b604082019050919050565b60006138d7601b83613d9c565b91506138e282614067565b602082019050919050565b60006138fa601483613d9c565b915061390582614090565b602082019050919050565b600061391d602183613d9c565b9150613928826140b9565b604082019050919050565b6000613940601d83613d9c565b915061394b82614108565b602082019050919050565b6000613963602083613d9c565b915061396e82614131565b602082019050919050565b6000613986603e83613d9c565b91506139918261415a565b604082019050919050565b60006139a9600083613d91565b91506139b4826141a9565b600082019050919050565b6139c881613f00565b82525050565b6139d781613f0a565b82525050565b60006139e88261399c565b9150819050919050565b6000602082019050613a0760008301846137b1565b92915050565b6000608082019050613a2260008301876137b1565b613a2f60208301866137b1565b613a3c60408301856137b1565b613a4960608301846137b1565b95945050505050565b6000604082019050613a6760008301856137b1565b613a7460208301846139bf565b9392505050565b600060c082019050613a9060008301896137b1565b613a9d60208301886139bf565b613aaa604083018761383c565b613ab7606083018661383c565b613ac460808301856137b1565b613ad160a08301846139bf565b979650505050505050565b6000602082019050613af1600083018461381e565b92915050565b6000602082019050613b0c600083018461382d565b92915050565b60006020820190508181036000830152613b2c818461384b565b905092915050565b60006020820190508181036000830152613b4d81613884565b9050919050565b60006020820190508181036000830152613b6d816138a7565b9050919050565b60006020820190508181036000830152613b8d816138ca565b9050919050565b60006020820190508181036000830152613bad816138ed565b9050919050565b60006020820190508181036000830152613bcd81613910565b9050919050565b60006020820190508181036000830152613bed81613933565b9050919050565b60006020820190508181036000830152613c0d81613956565b9050919050565b60006020820190508181036000830152613c2d81613979565b9050919050565b6000602082019050613c4960008301846139bf565b92915050565b6000604082019050613c6460008301856139bf565b613c71602083018461381e565b9392505050565b600060a082019050613c8d60008301886139bf565b613c9a602083018761383c565b8181036040830152613cac81866137c0565b9050613cbb60608301856137b1565b613cc860808301846139bf565b9695505050505050565b6000604082019050613ce760008301856139bf565b613cf460208301846139bf565b9392505050565b6000602082019050613d1060008301846139ce565b92915050565b6000606082019050613d2b60008301866139ce565b613d3860208301856139ce565b613d4560408301846139ce565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613db882613f00565b9150613dc383613f00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613df857613df7613f80565b5b828201905092915050565b6000613e0e82613f00565b9150613e1983613f00565b925082613e2957613e28613faf565b5b828204905092915050565b6000613e3f82613f00565b9150613e4a83613f00565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8357613e82613f80565b5b828202905092915050565b6000613e9982613f00565b9150613ea483613f00565b925082821015613eb757613eb6613f80565b5b828203905092915050565b6000613ecd82613ee0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613f2282613f29565b9050919050565b6000613f3482613ee0565b9050919050565b6000613f4682613f00565b9050919050565b60005b83811015613f6b578082015181840152602081019050613f50565b83811115613f7a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f466565732063616e206e6f74206265206d6f7265207468616e20353025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b6141b581613ec2565b81146141c057600080fd5b50565b6141cc81613ed4565b81146141d757600080fd5b50565b6141e381613f00565b81146141ee57600080fd5b5056fea2646970667358221220a25817f19b7533f8ffd087ef2db85fbedd27ea25951fcd8a83d301f0b21dab3e64736f6c63430008020033
Deployed Bytecode Sourcemap
4978:13837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7305:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8727:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7222:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9149:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8457:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6591:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9667:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16994:591;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14307:304;;;;;;;;;;;;;:::i;:::-;;18515:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8551:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18676:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9373:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7268:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8897:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1892:148;;;;;;;;;;;;;:::i;:::-;;10306:139;;;;;;;;;;;;;:::i;:::-;;13688:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6094:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6029:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17598:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8813:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1678:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8637:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14621:227;;;;;;;;;;;;;:::i;:::-;;7190:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9503:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1298:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14034:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9008:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18372:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18153:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2048:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13549:132;;;;;;;;;;;;;:::i;:::-;;7120:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7305:55;;;;:::o;8727:80::-;8775:13;8799:5;;;;;;;;;;;;;;;;;8792:12;;8727:80;:::o;7222:31::-;;;;;;;;;;;;;:::o;9149:216::-;9224:4;9276:6;9241:11;:23;9253:10;9241:23;;;;;;;;;;;;;;;:32;9265:7;9241:32;;;;;;;;;;;;;;;:41;;;;9319:7;9298:37;;9307:10;9298:37;;;9328:6;9298:37;;;;;;:::i;:::-;;;;;;;;9353:4;9346:11;;9149:216;;;;:::o;8457:88::-;8512:7;8530:12;;8523:19;;8457:88;:::o;6591:93::-;;;;:::o;9667:370::-;9767:4;9822:17;9787:11;:19;9799:6;9787:19;;;;;;;;;;;;;;;:31;9807:10;9787:31;;;;;;;;;;;;;;;;:52;9784:186;;9889:69;9925:6;9889:69;;;;;;;;;;;;;;;;;:11;:19;9901:6;9889:19;;;;;;;;;;;;;;;:31;9909:10;9889:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9855:11;:19;9867:6;9855:19;;;;;;;;;;;;;;;:31;9875:10;9855:31;;;;;;;;;;;;;;;:103;;;;9784:186;9989:40;10003:6;10011:9;10022:6;9989:13;:40::i;:::-;9982:47;;9667:370;;;;;:::o;16994:591::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17189:13:::1;17174:12;:28;;;;17226:11;17213:10;:24;;;;17263:13;17248:12;:28;;;;17296:7;17287:6;:16;;;;17324:8;17314:7;:18;;;;17354:76;17421:8;17354:62;17408:7;17354:49;17389:13;17354:30;17372:11;17354:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;17343:8;:87;;;;17458:15;17441:14;:32;;;;17520:1;17503:14;;:18;;;;:::i;:::-;17492:8;;:29;17484:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17567:10;:8;:10::i;:::-;16994:591:::0;;;;;;:::o;14307:304::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14373:4:::1;14359:11;;:18;;;;;;;;;;;;;;;;;;14401:3;14388:10;:16;;;;14482:3;14468:11;:17;;;;14568:3;14550:15;:21;;;;14307:304::o:0;18515:149::-;18575:7;18602:54;18643:12;:10;:12::i;:::-;18602:36;18615:22;18635:1;18615:15;18625:4;;;;;;;;;;;18615:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18602:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;18595:61;;18515:149;;;:::o;8551:80::-;8603:5;5334:2;8612:16;;8551:80;:::o;18676:132::-;18719:7;18746:54;18784:15;5170:42;18784:9;:15::i;:::-;18746:33;18763:15;5097:42;18763:9;:15::i;:::-;18746:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18739:61;;18676:132;:::o;9373:122::-;9428:4;9452:35;9460:7;9469:17;9452:7;:35::i;:::-;9445:42;;9373:122;;;:::o;10049:247::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10153:1:::1;10135:14;:19;;10127:28;;;::::0;::::1;;10220:4;10201:14;10186:12;;:29;;;;:::i;:::-;10185:39;;;;:::i;:::-;10167:15;:57;;;;10240:30;10254:15;;10240:30;;;;;;:::i;:::-;;;;;;;;10049:247:::0;:::o;7268:30::-;;;;;;;;;;;;;:::o;8897:105::-;8963:7;8981:9;:18;8991:7;8981:18;;;;;;;;;;;;;;;;8974:25;;8897:105;;;:::o;1892:148::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1999:1:::1;1962:40;;1983:6;::::0;::::1;;;;;;;;1962:40;;;;;;;;;;;;2030:1;2013:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1892:148::o:0;10306:139::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10380:12:::1;;10365;:27;;;;10425:12;;10407:15;:30;;;;10306:139::o:0;13688:338::-;13769:12;13812:1;13802:6;:11;13799:95;;;13844:12;13838:29;;;13876:4;13838:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13829:53;;13799:95;13909:32;13920:12;13934:6;13909:32;;;;;;;:::i;:::-;;;;;;;;13965:12;13959:28;;;13988:21;;;;;;;;;;;14011:6;13959:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13952:66;;13688:338;;;;:::o;6094:61::-;;;;:::o;6029:58::-;;;;:::o;17598:547::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17815:22:::1;17791:21;;:46;;;;;;;;;;;;;;;;;;17871:21;17848:20;;:44;;;;;;;;;;;;;;;;;;17920:15;17903:14;;:32;;;;;;;;;;;;;;;;;;17964:16;17946:15;;:34;;;;;;;;;;;;;;;;;;18012:19;17991:18;;:40;;;;;;;;;;;;;;;;;;18049:88;18063:20;;;;;;;;;;;18085:18;;;;;;;;;;;18105:15;;;;;;;;;;;18122:14;;;;;;;;;;;18049:88;;;;;;;;;:::i;:::-;;;;;;;;17598:547:::0;;;;;:::o;8813:78::-;8865:7;8882;:5;:7::i;:::-;8875:14;;8813:78;:::o;1678:79::-;1716:7;1743:6;;;;;;;;;;;1736:13;;1678:79;:::o;8637:84::-;8687:13;8711:7;;;;;;;;;;;;;;;;;8704:14;;8637:84;:::o;14621:227::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14692:3:::1;14679:10;:16;;;;14773:3;14759:11;:17;;;;14805:3;14787:15;:21;;;;14621:227::o:0;7190:19::-;;;;;;;;;;;;;:::o;9503:156::-;9583:4;9607:44;9621:10;9633:9;9644:6;9607:13;:44::i;:::-;9600:51;;9503:156;;;;:::o;1298:21::-;;;;;;;;;;;;:::o;14034:257::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14172:14:::1;14158:11;:28;;;;14210:13;14197:10;:26;;;;14252:15;14234;:33;;;;14034:257:::0;;;:::o;9008:133::-;9092:7;9110:11;:19;9122:6;9110:19;;;;;;;;;;;;;;;:28;9130:7;9110:28;;;;;;;;;;;;;;;;9103:35;;9008:133;;;;:::o;18372:135::-;18446:4;18494:5;18470:21;18482:8;18470:11;:21::i;:::-;:29;18463:36;;18372:135;;;;:::o;18153:211::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18258:8:::1;18244:11;;:22;;;;;;;;;;;;;;;;;;18293:7;18277:13;:23;;;;18316:40;18329:13;;18344:11;;;;;;;;;;;18316:40;;;;;;;:::i;:::-;;;;;;;;18153:211:::0;;:::o;2048:244::-;1815:12;:10;:12::i;:::-;1805:22;;:6;;;;;;;;;;:22;;;1797:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2157:1:::1;2137:22;;:8;:22;;;;2129:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2247:8;2218:38;;2239:6;::::0;::::1;;;;;;;;2218:38;;;;;;;;;;;;2276:8;2267:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2048:244:::0;:::o;13549:132::-;13605:21;;;;;;;;;;;13597:39;;:62;13637:21;13597:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13549:132::o;7120:24::-;;;;;;;;;;;;;:::o;4388:250::-;4446:7;4475:1;4470;:6;4466:47;;;4500:1;4493:8;;;;4466:47;4525:9;4541:1;4537;:5;;;;:::i;:::-;4525:17;;4570:1;4565;4561;:5;;;;:::i;:::-;:10;4553:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4629:1;4622:8;;;4388:250;;;;;:::o;4644:132::-;4702:7;4729:39;4733:1;4736;4729:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4722:46;;4644:132;;;;:::o;4190:192::-;4276:7;4309:1;4304;:6;;4312:12;4296:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4336:9;4352:1;4348;:5;;;;:::i;:::-;4336:17;;4373:1;4366:8;;;4190:192;;;;;:::o;10461:1238::-;10553:4;10573:6;;;;;;;;;;;10570:63;;;10589:41;10604:6;10612:9;10623:6;10589:14;:41::i;:::-;10582:48;;;;10570:63;10649:14;:22;10664:6;10649:22;;;;;;;;;;;;;;;;;;;;;;;;;10648:23;:53;;;;;10676:14;:25;10691:9;10676:25;;;;;;;;;;;;;;;;;;;;;;;;;10675:26;10648:53;10645:139;;;10725:11;;;;;;;;;;;10717:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10645:139;10826:14;:22;10841:6;10826:22;;;;;;;;;;;;;;;;;;;;;;;;;10825:23;:53;;;;;10873:4;10852:26;;:9;:26;;;;10825:53;:84;;;;;5097:42;10883:26;;:9;:26;;;;10825:84;:105;;;;;10926:4;;;;;;;;;;;10913:17;;:9;:17;;;;10825:105;:137;;;;;10947:15;;;;;;;;;;;10934:28;;:9;:28;;;;10825:137;:174;;;;;10979:20;;;;;;;;;;;10966:33;;:9;:33;;;;10825:174;:207;;;;;11004:17;:28;11022:9;11004:28;;;;;;;;;;;;;;;;;;;;;;;;;11003:29;10825:207;10821:399;;;11048:18;11069:20;11079:9;11069;:20::i;:::-;11048:41;;11137:15;;11126:6;11113:10;:19;;;;:::i;:::-;11112:40;;11104:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10821:399;;11232:28;11245:6;11253;11232:12;:28::i;:::-;11278:16;:14;:16::i;:::-;11275:35;;;11297:10;:8;:10::i;:::-;11275:35;11340:53;11362:6;11340:53;;;;;;;;;;;;;;;;;:9;:17;11350:6;11340:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11320:9;:17;11330:6;11320:17;;;;;;;;;;;;;;;:73;;;;11406:22;11432:16;:24;11449:6;11432:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11460:16;:27;11477:9;11460:27;;;;;;;;;;;;;;;;;;;;;;;;;11432:55;11431:103;;11500:34;11508:6;11516;11524:9;11500:7;:34::i;:::-;11431:103;;;11491:6;11431:103;11406:128;;11568:40;11593:14;11568:9;:20;11578:9;11568:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11545:9;:20;11555:9;11545:20;;;;;;;;;;;;;;;:63;;;;11643:9;11626:43;;11635:6;11626:43;;;11654:14;11626:43;;;;;;:::i;:::-;;;;;;;;11687:4;11680:11;;;10461:1238;;;;;;:::o;1019:115::-;1072:15;1115:10;1100:26;;1019:115;:::o;3861:181::-;3919:7;3939:9;3955:1;3951;:5;;;;:::i;:::-;3939:17;;3980:1;3975;:6;;3967:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4033:1;4026:8;;;3861:181;;;;:::o;16741:241::-;16794:180;16809:33;16838:3;16809:24;16822:10;;16809:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;16864:34;16894:3;16864:25;16877:11;;16864:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;16920:38;16954:3;16920:29;16933:15;;16920:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;16794:180;;;;;;;;:::i;:::-;;;;;;;;16741:241::o;4048:136::-;4106:7;4133:43;4137:1;4140;4133:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4126:50;;4048:136;;;;:::o;4782:189::-;4868:7;4900:1;4896;:5;4903:12;4888:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4927:9;4943:1;4939;:5;;;;:::i;:::-;4927:17;;4962:1;4955:8;;;4782:189;;;;;:::o;11708:330::-;11801:4;11838:53;11860:6;11838:53;;;;;;;;;;;;;;;;;:9;:17;11848:6;11838:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11818:9;:17;11828:6;11818:17;;;;;;;;;;;;;;;:73;;;;11925:32;11950:6;11925:9;:20;11935:9;11925:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11902:9;:20;11912:9;11902:20;;;;;;;;;;;;;;;:55;;;;11990:9;11973:35;;11982:6;11973:35;;;12001:6;11973:35;;;;;;:::i;:::-;;;;;;;;12026:4;12019:11;;11708:330;;;;;:::o;12046:168::-;12143:12;;12133:6;:22;;:51;;;;12159:17;:25;12177:6;12159:25;;;;;;;;;;;;;;;;;;;;;;;;;12133:51;12125:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12046:168;;:::o;13339:197::-;13388:4;13426;;;;;;;;;;;13412:18;;:10;:18;;;;:38;;;;;13444:6;;;;;;;;;;;13443:7;13412:38;:62;;;;;13463:11;;;;;;;;;;;13412:62;:116;;;;;13515:13;;13487:9;:24;13505:4;13487:24;;;;;;;;;;;;;;;;:41;;13412:116;13405:123;;13339:197;:::o;14871:1854::-;7417:4;7408:6;;:13;;;;;;;;;;;;;;;;;;14920:27:::1;14950:41;14961:8;;14971:19;;14950:10;:41::i;:::-;:60;;14998:12;;14950:60;;;14994:1;14950:60;14920:90;;15021:23;15047:59;15104:1;15047:52;15090:8;;15047:38;15065:19;15047:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15021:85;;15117:20;15140:34;15158:15;15140:13;;:17;;:34;;;;:::i;:::-;15117:57;;15187:21;15225:1;15211:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15187:40;;15256:4;15238;15243:1;15238:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15282:4;;;;;;;;;;;15272;15277:1;15272:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;15299:21;15323;15299:45;;15357:6;;;;;;;;;;;:57;;;15429:12;15456:1;15472:4;15499;15519:15;15357:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15558:17;15578:40;15604:13;15578:21;:25;;:40;;;;:::i;:::-;15558:60;;15631:19;15653:40;15666:26;15690:1;15666:19;:23;;:26;;;;:::i;:::-;15653:8;;:12;;:40;;;;:::i;:::-;15631:62;;15714:26;15743:58;15799:1;15743:51;15782:11;15743:34;15757:19;15743:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15714:87;;15812:26;15841:44;15873:11;15841:27;15855:12;;15841:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15812:73;;15896:24;15923:42;15953:11;15923:25;15937:10;;15923:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15896:69;;15976:20;15999:38;16025:11;15999:21;16013:6;;15999:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15976:61;;16051:15;16079:20;;;;;;;;;;;16071:34;;16113:18;16071:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16050:86;;;16171:14;;;;;;;;;;;16163:28;;16199:12;16163:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16147:69;;;;;16251:18;;;;;;;;;;;16243:32;;16283:16;16243:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16227:77;;;;;16338:5;16325:18;;16377:1;16359:15;:19;16356:362;;;16394:6;;;;;;;;;;;:22;;;16424:18;16470:4;16494:15;16528:1;16548::::0;16568:21:::1;;;;;;;;;;;16608:15;16394:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16658:48;16670:18;16690:15;16658:48;;;;;;;:::i;:::-;;;;;;;;16356:362;7423:1;;;;;;;;;;;;7435:5:::0;7426:6;;:14;;;;;;;;;;;;;;;;;;14871:1854::o;12349:982::-;12435:7;12465:15;12483;;12465:33;;12525:4;;;;;;;;;;;12512:17;;:9;:17;;;12509:142;;;12556:11;;12546:21;;12509:142;;;12598:4;;;;;;;;;;;12588:14;;:6;:14;;;12585:66;;;12629:10;;12619:20;;12585:66;12509:142;12663:17;12683:59;12738:3;12721:14;;:20;;;;:::i;:::-;12683:33;12708:7;12683:20;12694:8;;12683:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:59;;;;:::i;:::-;12663:79;;12753:18;12774:36;12801:8;;12774:22;12788:7;;12774:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12753:57;;12821:22;12846:25;12860:10;12846:9;:13;;:25;;;;:::i;:::-;12821:50;;12909:44;12938:14;12909:9;:24;12927:4;12909:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12882:9;:24;12900:4;12882:24;;;;;;;;;;;;;;;:71;;;;12993:42;13024:10;12993:9;:26;13003:15;;;;;;;;;;;12993:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12964:9;:26;12974:15;;;;;;;;;;;12964:26;;;;;;;;;;;;;;;:71;;;;13076:4;13051:47;;13060:6;13051:47;;;13083:14;13051:47;;;;;;:::i;:::-;;;;;;;;13145:1;13132:10;:14;13129:154;;;13177:28;13194:10;13177:12;;:16;;:28;;;;:::i;:::-;13162:12;:43;;;;5170:42;13225:34;;13234:6;13225:34;;;13248:10;13225:34;;;;;;:::i;:::-;;;;;;;;13129:154;13302:21;13313:9;13302:6;:10;;:21;;;;:::i;:::-;13295:28;;;;;;12349:982;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:407::-;;;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:53;1250:7;1241:6;1230:9;1226:22;1205:53;:::i;:::-;1195:63;;1151:117;1307:2;1333:53;1378:7;1369:6;1358:9;1354:22;1333:53;:::i;:::-;1323:63;;1278:118;1079:324;;;;;:::o;1409:844::-;;;;;;1585:3;1573:9;1564:7;1560:23;1556:33;1553:2;;;1602:1;1599;1592:12;1553:2;1645:1;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1616:117;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:2;2054:53;2099:7;2090:6;2079:9;2075:22;2054:53;:::i;:::-;2044:63;;1999:118;2156:3;2183:53;2228:7;2219:6;2208:9;2204:22;2183:53;:::i;:::-;2173:63;;2127:119;1543:710;;;;;;;;:::o;2259:552::-;;;;2401:2;2389:9;2380:7;2376:23;2372:32;2369:2;;;2417:1;2414;2407:12;2369:2;2460:1;2485:53;2530:7;2521:6;2510:9;2506:22;2485:53;:::i;:::-;2475:63;;2431:117;2587:2;2613:53;2658:7;2649:6;2638:9;2634:22;2613:53;:::i;:::-;2603:63;;2558:118;2715:2;2741:53;2786:7;2777:6;2766:9;2762:22;2741:53;:::i;:::-;2731:63;;2686:118;2359:452;;;;;:::o;2817:407::-;;;2942:2;2930:9;2921:7;2917:23;2913:32;2910:2;;;2958:1;2955;2948:12;2910:2;3001:1;3026:53;3071:7;3062:6;3051:9;3047:22;3026:53;:::i;:::-;3016:63;;2972:117;3128:2;3154:53;3199:7;3190:6;3179:9;3175:22;3154:53;:::i;:::-;3144:63;;3099:118;2900:324;;;;;:::o;3230:278::-;;3346:2;3334:9;3325:7;3321:23;3317:32;3314:2;;;3362:1;3359;3352:12;3314:2;3405:1;3430:61;3483:7;3474:6;3463:9;3459:22;3430:61;:::i;:::-;3420:71;;3376:125;3304:204;;;;:::o;3514:401::-;;;3636:2;3624:9;3615:7;3611:23;3607:32;3604:2;;;3652:1;3649;3642:12;3604:2;3695:1;3720:50;3762:7;3753:6;3742:9;3738:22;3720:50;:::i;:::-;3710:60;;3666:114;3819:2;3845:53;3890:7;3881:6;3870:9;3866:22;3845:53;:::i;:::-;3835:63;;3790:118;3594:321;;;;;:::o;3921:262::-;;4029:2;4017:9;4008:7;4004:23;4000:32;3997:2;;;4045:1;4042;4035:12;3997:2;4088:1;4113:53;4158:7;4149:6;4138:9;4134:22;4113:53;:::i;:::-;4103:63;;4059:117;3987:196;;;;:::o;4189:284::-;;4308:2;4296:9;4287:7;4283:23;4279:32;4276:2;;;4324:1;4321;4314:12;4276:2;4367:1;4392:64;4448:7;4439:6;4428:9;4424:22;4392:64;:::i;:::-;4382:74;;4338:128;4266:207;;;;:::o;4479:407::-;;;4604:2;4592:9;4583:7;4579:23;4575:32;4572:2;;;4620:1;4617;4610:12;4572:2;4663:1;4688:53;4733:7;4724:6;4713:9;4709:22;4688:53;:::i;:::-;4678:63;;4634:117;4790:2;4816:53;4861:7;4852:6;4841:9;4837:22;4816:53;:::i;:::-;4806:63;;4761:118;4562:324;;;;;:::o;4892:552::-;;;;5034:2;5022:9;5013:7;5009:23;5005:32;5002:2;;;5050:1;5047;5040:12;5002:2;5093:1;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5064:117;5220:2;5246:53;5291:7;5282:6;5271:9;5267:22;5246:53;:::i;:::-;5236:63;;5191:118;5348:2;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5319:118;4992:452;;;;;:::o;5450:596::-;;;;5603:2;5591:9;5582:7;5578:23;5574:32;5571:2;;;5619:1;5616;5609:12;5571:2;5662:1;5687:64;5743:7;5734:6;5723:9;5719:22;5687:64;:::i;:::-;5677:74;;5633:128;5800:2;5826:64;5882:7;5873:6;5862:9;5858:22;5826:64;:::i;:::-;5816:74;;5771:129;5939:2;5965:64;6021:7;6012:6;6001:9;5997:22;5965:64;:::i;:::-;5955:74;;5910:129;5561:485;;;;;:::o;6052:990::-;;;;;;;6245:3;6233:9;6224:7;6220:23;6216:33;6213:2;;;6262:1;6259;6252:12;6213:2;6305:1;6330:53;6375:7;6366:6;6355:9;6351:22;6330:53;:::i;:::-;6320:63;;6276:117;6432:2;6458:53;6503:7;6494:6;6483:9;6479:22;6458:53;:::i;:::-;6448:63;;6403:118;6560:2;6586:53;6631:7;6622:6;6611:9;6607:22;6586:53;:::i;:::-;6576:63;;6531:118;6688:2;6714:53;6759:7;6750:6;6739:9;6735:22;6714:53;:::i;:::-;6704:63;;6659:118;6816:3;6843:53;6888:7;6879:6;6868:9;6864:22;6843:53;:::i;:::-;6833:63;;6787:119;6945:3;6972:53;7017:7;7008:6;6997:9;6993:22;6972:53;:::i;:::-;6962:63;;6916:119;6203:839;;;;;;;;:::o;7048:179::-;;7138:46;7180:3;7172:6;7138:46;:::i;:::-;7216:4;7211:3;7207:14;7193:28;;7128:99;;;;:::o;7233:108::-;7310:24;7328:5;7310:24;:::i;:::-;7305:3;7298:37;7288:53;;:::o;7347:118::-;7434:24;7452:5;7434:24;:::i;:::-;7429:3;7422:37;7412:53;;:::o;7501:732::-;;7649:54;7697:5;7649:54;:::i;:::-;7719:86;7798:6;7793:3;7719:86;:::i;:::-;7712:93;;7829:56;7879:5;7829:56;:::i;:::-;7908:7;7939:1;7924:284;7949:6;7946:1;7943:13;7924:284;;;8025:6;8019:13;8052:63;8111:3;8096:13;8052:63;:::i;:::-;8045:70;;8138:60;8191:6;8138:60;:::i;:::-;8128:70;;7984:224;7971:1;7968;7964:9;7959:14;;7924:284;;;7928:14;8224:3;8217:10;;7625:608;;;;;;;:::o;8239:109::-;8320:21;8335:5;8320:21;:::i;:::-;8315:3;8308:34;8298:50;;:::o;8354:167::-;8459:55;8508:5;8459:55;:::i;:::-;8454:3;8447:68;8437:84;;:::o;8527:147::-;8622:45;8661:5;8622:45;:::i;:::-;8617:3;8610:58;8600:74;;:::o;8680:364::-;;8796:39;8829:5;8796:39;:::i;:::-;8851:71;8915:6;8910:3;8851:71;:::i;:::-;8844:78;;8931:52;8976:6;8971:3;8964:4;8957:5;8953:16;8931:52;:::i;:::-;9008:29;9030:6;9008:29;:::i;:::-;9003:3;8999:39;8992:46;;8772:272;;;;;:::o;9050:366::-;;9213:67;9277:2;9272:3;9213:67;:::i;:::-;9206:74;;9289:93;9378:3;9289:93;:::i;:::-;9407:2;9402:3;9398:12;9391:19;;9196:220;;;:::o;9422:366::-;;9585:67;9649:2;9644:3;9585:67;:::i;:::-;9578:74;;9661:93;9750:3;9661:93;:::i;:::-;9779:2;9774:3;9770:12;9763:19;;9568:220;;;:::o;9794:366::-;;9957:67;10021:2;10016:3;9957:67;:::i;:::-;9950:74;;10033:93;10122:3;10033:93;:::i;:::-;10151:2;10146:3;10142:12;10135:19;;9940:220;;;:::o;10166:366::-;;10329:67;10393:2;10388:3;10329:67;:::i;:::-;10322:74;;10405:93;10494:3;10405:93;:::i;:::-;10523:2;10518:3;10514:12;10507:19;;10312:220;;;:::o;10538:366::-;;10701:67;10765:2;10760:3;10701:67;:::i;:::-;10694:74;;10777:93;10866:3;10777:93;:::i;:::-;10895:2;10890:3;10886:12;10879:19;;10684:220;;;:::o;10910:366::-;;11073:67;11137:2;11132:3;11073:67;:::i;:::-;11066:74;;11149:93;11238:3;11149:93;:::i;:::-;11267:2;11262:3;11258:12;11251:19;;11056:220;;;:::o;11282:366::-;;11445:67;11509:2;11504:3;11445:67;:::i;:::-;11438:74;;11521:93;11610:3;11521:93;:::i;:::-;11639:2;11634:3;11630:12;11623:19;;11428:220;;;:::o;11654:366::-;;11817:67;11881:2;11876:3;11817:67;:::i;:::-;11810:74;;11893:93;11982:3;11893:93;:::i;:::-;12011:2;12006:3;12002:12;11995:19;;11800:220;;;:::o;12026:398::-;;12206:83;12287:1;12282:3;12206:83;:::i;:::-;12199:90;;12298:93;12387:3;12298:93;:::i;:::-;12416:1;12411:3;12407:11;12400:18;;12189:235;;;:::o;12430:118::-;12517:24;12535:5;12517:24;:::i;:::-;12512:3;12505:37;12495:53;;:::o;12554:112::-;12637:22;12653:5;12637:22;:::i;:::-;12632:3;12625:35;12615:51;;:::o;12672:379::-;;12878:147;13021:3;12878:147;:::i;:::-;12871:154;;13042:3;13035:10;;12860:191;;;:::o;13057:222::-;;13188:2;13177:9;13173:18;13165:26;;13201:71;13269:1;13258:9;13254:17;13245:6;13201:71;:::i;:::-;13155:124;;;;:::o;13285:553::-;;13500:3;13489:9;13485:19;13477:27;;13514:71;13582:1;13571:9;13567:17;13558:6;13514:71;:::i;:::-;13595:72;13663:2;13652:9;13648:18;13639:6;13595:72;:::i;:::-;13677;13745:2;13734:9;13730:18;13721:6;13677:72;:::i;:::-;13759;13827:2;13816:9;13812:18;13803:6;13759:72;:::i;:::-;13467:371;;;;;;;:::o;13844:332::-;;14003:2;13992:9;13988:18;13980:26;;14016:71;14084:1;14073:9;14069:17;14060:6;14016:71;:::i;:::-;14097:72;14165:2;14154:9;14150:18;14141:6;14097:72;:::i;:::-;13970:206;;;;;:::o;14182:807::-;;14469:3;14458:9;14454:19;14446:27;;14483:71;14551:1;14540:9;14536:17;14527:6;14483:71;:::i;:::-;14564:72;14632:2;14621:9;14617:18;14608:6;14564:72;:::i;:::-;14646:80;14722:2;14711:9;14707:18;14698:6;14646:80;:::i;:::-;14736;14812:2;14801:9;14797:18;14788:6;14736:80;:::i;:::-;14826:73;14894:3;14883:9;14879:19;14870:6;14826:73;:::i;:::-;14909;14977:3;14966:9;14962:19;14953:6;14909:73;:::i;:::-;14436:553;;;;;;;;;:::o;14995:210::-;;15120:2;15109:9;15105:18;15097:26;;15133:65;15195:1;15184:9;15180:17;15171:6;15133:65;:::i;:::-;15087:118;;;;:::o;15211:258::-;;15360:2;15349:9;15345:18;15337:26;;15373:89;15459:1;15448:9;15444:17;15435:6;15373:89;:::i;:::-;15327:142;;;;:::o;15475:313::-;;15626:2;15615:9;15611:18;15603:26;;15675:9;15669:4;15665:20;15661:1;15650:9;15646:17;15639:47;15703:78;15776:4;15767:6;15703:78;:::i;:::-;15695:86;;15593:195;;;;:::o;15794:419::-;;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:131;16201:4;16075:131;:::i;:::-;16067:139;;15965:248;;;:::o;16219:419::-;;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16390:248;;;:::o;16644:419::-;;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16815:248;;;:::o;17069:419::-;;17273:2;17262:9;17258:18;17250:26;;17322:9;17316:4;17312:20;17308:1;17297:9;17293:17;17286:47;17350:131;17476:4;17350:131;:::i;:::-;17342:139;;17240:248;;;:::o;17494:419::-;;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17665:248;;;:::o;17919:419::-;;18123:2;18112:9;18108:18;18100:26;;18172:9;18166:4;18162:20;18158:1;18147:9;18143:17;18136:47;18200:131;18326:4;18200:131;:::i;:::-;18192:139;;18090:248;;;:::o;18344:419::-;;18548:2;18537:9;18533:18;18525:26;;18597:9;18591:4;18587:20;18583:1;18572:9;18568:17;18561:47;18625:131;18751:4;18625:131;:::i;:::-;18617:139;;18515:248;;;:::o;18769:419::-;;18973:2;18962:9;18958:18;18950:26;;19022:9;19016:4;19012:20;19008:1;18997:9;18993:17;18986:47;19050:131;19176:4;19050:131;:::i;:::-;19042:139;;18940:248;;;:::o;19194:222::-;;19325:2;19314:9;19310:18;19302:26;;19338:71;19406:1;19395:9;19391:17;19382:6;19338:71;:::i;:::-;19292:124;;;;:::o;19422:320::-;;19575:2;19564:9;19560:18;19552:26;;19588:71;19656:1;19645:9;19641:17;19632:6;19588:71;:::i;:::-;19669:66;19731:2;19720:9;19716:18;19707:6;19669:66;:::i;:::-;19542:200;;;;;:::o;19748:831::-;;20049:3;20038:9;20034:19;20026:27;;20063:71;20131:1;20120:9;20116:17;20107:6;20063:71;:::i;:::-;20144:80;20220:2;20209:9;20205:18;20196:6;20144:80;:::i;:::-;20271:9;20265:4;20261:20;20256:2;20245:9;20241:18;20234:48;20299:108;20402:4;20393:6;20299:108;:::i;:::-;20291:116;;20417:72;20485:2;20474:9;20470:18;20461:6;20417:72;:::i;:::-;20499:73;20567:3;20556:9;20552:19;20543:6;20499:73;:::i;:::-;20016:563;;;;;;;;:::o;20585:332::-;;20744:2;20733:9;20729:18;20721:26;;20757:71;20825:1;20814:9;20810:17;20801:6;20757:71;:::i;:::-;20838:72;20906:2;20895:9;20891:18;20882:6;20838:72;:::i;:::-;20711:206;;;;;:::o;20923:214::-;;21050:2;21039:9;21035:18;21027:26;;21063:67;21127:1;21116:9;21112:17;21103:6;21063:67;:::i;:::-;21017:120;;;;:::o;21143:418::-;;21318:2;21307:9;21303:18;21295:26;;21331:67;21395:1;21384:9;21380:17;21371:6;21331:67;:::i;:::-;21408:68;21472:2;21461:9;21457:18;21448:6;21408:68;:::i;:::-;21486;21550:2;21539:9;21535:18;21526:6;21486:68;:::i;:::-;21285:276;;;;;;:::o;21567:132::-;;21657:3;21649:11;;21687:4;21682:3;21678:14;21670:22;;21639:60;;;:::o;21705:114::-;;21806:5;21800:12;21790:22;;21779:40;;;:::o;21825:99::-;;21911:5;21905:12;21895:22;;21884:40;;;:::o;21930:113::-;;22032:4;22027:3;22023:14;22015:22;;22005:38;;;:::o;22049:184::-;;22182:6;22177:3;22170:19;22222:4;22217:3;22213:14;22198:29;;22160:73;;;;:::o;22239:147::-;;22377:3;22362:18;;22352:34;;;;:::o;22392:169::-;;22510:6;22505:3;22498:19;22550:4;22545:3;22541:14;22526:29;;22488:73;;;;:::o;22567:305::-;;22626:20;22644:1;22626:20;:::i;:::-;22621:25;;22660:20;22678:1;22660:20;:::i;:::-;22655:25;;22814:1;22746:66;22742:74;22739:1;22736:81;22733:2;;;22820:18;;:::i;:::-;22733:2;22864:1;22861;22857:9;22850:16;;22611:261;;;;:::o;22878:185::-;;22935:20;22953:1;22935:20;:::i;:::-;22930:25;;22969:20;22987:1;22969:20;:::i;:::-;22964:25;;23008:1;22998:2;;23013:18;;:::i;:::-;22998:2;23055:1;23052;23048:9;23043:14;;22920:143;;;;:::o;23069:348::-;;23132:20;23150:1;23132:20;:::i;:::-;23127:25;;23166:20;23184:1;23166:20;:::i;:::-;23161:25;;23354:1;23286:66;23282:74;23279:1;23276:81;23271:1;23264:9;23257:17;23253:105;23250:2;;;23361:18;;:::i;:::-;23250:2;23409:1;23406;23402:9;23391:20;;23117:300;;;;:::o;23423:191::-;;23483:20;23501:1;23483:20;:::i;:::-;23478:25;;23517:20;23535:1;23517:20;:::i;:::-;23512:25;;23556:1;23553;23550:8;23547:2;;;23561:18;;:::i;:::-;23547:2;23606:1;23603;23599:9;23591:17;;23468:146;;;;:::o;23620:96::-;;23686:24;23704:5;23686:24;:::i;:::-;23675:35;;23665:51;;;:::o;23722:90::-;;23799:5;23792:13;23785:21;23774:32;;23764:48;;;:::o;23818:126::-;;23895:42;23888:5;23884:54;23873:65;;23863:81;;;:::o;23950:77::-;;24016:5;24005:16;;23995:32;;;:::o;24033:86::-;;24108:4;24101:5;24097:16;24086:27;;24076:43;;;:::o;24125:162::-;;24226:55;24275:5;24226:55;:::i;:::-;24213:68;;24203:84;;;:::o;24293:131::-;;24394:24;24412:5;24394:24;:::i;:::-;24381:37;;24371:53;;;:::o;24430:121::-;;24521:24;24539:5;24521:24;:::i;:::-;24508:37;;24498:53;;;:::o;24557:307::-;24625:1;24635:113;24649:6;24646:1;24643:13;24635:113;;;24734:1;24729:3;24725:11;24719:18;24715:1;24710:3;24706:11;24699:39;24671:2;24668:1;24664:10;24659:15;;24635:113;;;24766:6;24763:1;24760:13;24757:2;;;24846:1;24837:6;24832:3;24828:16;24821:27;24757:2;24606:258;;;;:::o;24870:180::-;24918:77;24915:1;24908:88;25015:4;25012:1;25005:15;25039:4;25036:1;25029:15;25056:180;25104:77;25101:1;25094:88;25201:4;25198:1;25191:15;25225:4;25222:1;25215:15;25242:102;;25334:2;25330:7;25325:2;25318:5;25314:14;25310:28;25300:38;;25290:54;;;:::o;25350:167::-;25490:19;25486:1;25478:6;25474:14;25467:43;25456:61;:::o;25523:225::-;25663:34;25659:1;25651:6;25647:14;25640:58;25732:8;25727:2;25719:6;25715:15;25708:33;25629:119;:::o;25754:177::-;25894:29;25890:1;25882:6;25878:14;25871:53;25860:71;:::o;25937:170::-;26077:22;26073:1;26065:6;26061:14;26054:46;26043:64;:::o;26113:220::-;26253:34;26249:1;26241:6;26237:14;26230:58;26322:3;26317:2;26309:6;26305:15;26298:28;26219:114;:::o;26339:179::-;26479:31;26475:1;26467:6;26463:14;26456:55;26445:73;:::o;26524:182::-;26664:34;26660:1;26652:6;26648:14;26641:58;26630:76;:::o;26712:249::-;26852:34;26848:1;26840:6;26836:14;26829:58;26921:32;26916:2;26908:6;26904:15;26897:57;26818:143;:::o;26967:114::-;27073:8;:::o;27087:122::-;27160:24;27178:5;27160:24;:::i;:::-;27153:5;27150:35;27140:2;;27199:1;27196;27189:12;27140:2;27130:79;:::o;27215:116::-;27285:21;27300:5;27285:21;:::i;:::-;27278:5;27275:32;27265:2;;27321:1;27318;27311:12;27265:2;27255:76;:::o;27337:122::-;27410:24;27428:5;27410:24;:::i;:::-;27403:5;27400:35;27390:2;;27449:1;27446;27439:12;27390:2;27380:79;:::o
Swarm Source
ipfs://a25817f19b7533f8ffd087ef2db85fbedd27ea25951fcd8a83d301f0b21dab3e
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.