ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 FBTCp
Holders
230
Market
Price
$0.00 @ 0.000000 FTM
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
320,714,598,956.452588 FBTCpValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
FBTCp
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-01-04 */ // Stealth Launched // 1500$ Initial Liquidity [500FTM] // https://t.me/fbtcp // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; /** * SAFEMATH LIBRARY */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router { 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 IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded;// excluded dividend uint256 totalRealised; } IBEP20 EP = IBEP20(0xe1146b9AC456fCbB60644c36Fd3F868A9072fc6E); // BTC address WFTM = 0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83; IUniswapV2Router router; address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed;// to be shown in UI uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 10 * (10 ** 18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IUniswapV2Router(_router) : IUniswapV2Router(0xF491e7B69E4244ad4002BC14e878a34207E38c29); _token = msg.sender; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = EP.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WFTM; path[1] = address(EP); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = EP.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); EP.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { distributeDividend(msg.sender); } /* returns the unpaid earnings */ function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract FBTCp is IBEP20, Auth { using SafeMath for uint256; uint256 public constant MASK = type(uint128).max; address EP = 0xe1146b9AC456fCbB60644c36Fd3F868A9072fc6E; // BTC address public WFTM = 0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD; string constant _name = "FANTOM BTCPrinter"; string constant _symbol = "FBTCp"; uint8 constant _decimals = 6; uint256 _totalSupply = 1_000_000_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply.div(100); // 1% uint256 public _maxWallet = _totalSupply.div(40); // 2.5% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isDividendExempt; mapping (address => bool) public _isFree; uint256 liquidityFee = 200; uint256 buybackFee = 0; uint256 reflectionFee = 600; uint256 marketingFee = 400; uint256 totalFee = 1200; uint256 feeDenominator = 10000; address public autoLiquidityReceiver=0xF13DDae794b683C835e6306CCfCcCaF1F95aD2c9; //liq address address public marketingFeeReceiver=0xF13DDae794b683C835e6306CCfCcCaF1F95aD2c9; // marketing address uint256 targetLiquidity = 10; uint256 targetLiquidityDenominator = 100; IUniswapV2Router public router; address public pair; uint256 public launchedAt; uint256 public launchedAtTimestamp; uint256 buybackMultiplierNumerator = 200; uint256 buybackMultiplierDenominator = 100; uint256 buybackMultiplierTriggeredAt; uint256 buybackMultiplierLength = 30 minutes; bool public autoBuybackEnabled = false; mapping (address => bool) buyBacker; uint256 autoBuybackCap; uint256 autoBuybackAccumulator; uint256 autoBuybackAmount; uint256 autoBuybackBlockPeriod; uint256 autoBuybackBlockLast; DividendDistributor distributor; address public distributorAddress; uint256 distributorGas = 500000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; // 0.1% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { address _router = 0xF491e7B69E4244ad4002BC14e878a34207E38c29; router = IUniswapV2Router(_router); pair = IUniswapV2Factory(router.factory()).createPair(WFTM, address(this)); _allowances[address(this)][address(router)] = _totalSupply; WFTM = router.WETH(); distributor = new DividendDistributor(_router); distributorAddress = address(distributor); isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; buyBacker[msg.sender] = true; autoLiquidityReceiver = msg.sender; approve(_router, _totalSupply); approve(address(pair), _totalSupply); _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; } modifier onlyBuybacker() { require(buyBacker[msg.sender] == true, ""); _; } 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, _totalSupply); } 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] != _totalSupply){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } // Max tx check address routerAddress = 0xF491e7B69E4244ad4002BC14e878a34207E38c29; // bool isBuy=sender== pair|| sender == routerAddress; bool isSell=recipient== pair|| recipient == routerAddress; checkTxLimit(sender, amount); // Max wallet check excluding pair and router if (!isSell && !_isFree[recipient]){ require((_balances[recipient] + amount) < _maxWallet, "Max wallet has been triggered"); } // No swapping on buy and tx if (isSell) { if(shouldSwapBack()){ swapBack(); } if(shouldAutoBuyback()){ triggerAutoBuyback(); } } // if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); // emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + 1 >= block.number){ return totalFee; } if(selling){ return totalFee; } return totalFee; } function getMultipliedFee() public view returns (uint256) { /** * if (launchedAtTimestamp + 1 days > block.timestamp) { return totalFee.mul(18000).div(feeDenominator); } else if (buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp) { uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp); uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee); return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength)); } */ return totalFee; } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WFTM; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountFTM = address(this).balance.sub(balanceBefore); uint256 totalFTMFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountFTMLiquidity = amountFTM.mul(dynamicLiquidityFee).div(totalFTMFee).div(2); uint256 amountFTMReflection = amountFTM.mul(reflectionFee).div(totalFTMFee); uint256 amountFTMMarketing = amountFTM.mul(marketingFee).div(totalFTMFee); try distributor.deposit{value: amountFTMReflection}() {} catch {} payable(marketingFeeReceiver).transfer(amountFTMMarketing); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountFTMLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountFTMLiquidity, amountToLiquify); } } function shouldAutoBuyback() internal view returns (bool) { return msg.sender != pair && !inSwap && autoBuybackEnabled && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number // After N blocks from last buyback && address(this).balance >= autoBuybackAmount; } function clearBuybackMultiplier() external authorized { buybackMultiplierTriggeredAt = 0; } function triggerAutoBuyback() internal { buyTokens(autoBuybackAmount, DEAD); autoBuybackBlockLast = block.number; autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount); if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = WFTM; path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function Sweep() external onlyOwner { uint256 balance = address(this).balance; payable(msg.sender).transfer(balance); } function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external authorized { autoBuybackEnabled = _enabled; autoBuybackCap = _cap; autoBuybackAccumulator = 0; autoBuybackAmount = _amount; autoBuybackBlockPeriod = _period; autoBuybackBlockLast = block.number; } function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized { require(numerator / denominator <= 2 && numerator > denominator); buybackMultiplierNumerator = numerator; buybackMultiplierDenominator = denominator; buybackMultiplierLength = length; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() public authorized { require(launchedAt == 0, "Already launched boi"); launchedAt = block.number; launchedAtTimestamp = block.timestamp; } function setMaxWallet(uint256 amount) external authorized { require(amount >= _totalSupply / 1000); _maxWallet = amount; } function setTxLimit(uint256 amount) external authorized { _maxTxAmount = amount; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setFree(address holder) public onlyOwner { _isFree[holder] = true; } function unSetFree(address holder) public onlyOwner { _isFree[holder] = false; } function checkFree(address holder) public view onlyOwner returns(bool){ return _isFree[holder]; } function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized { liquidityFee = _liquidityFee; buybackFee = _buybackFee; reflectionFee = _reflectionFee; marketingFee = _marketingFee; totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee); feeDenominator = _feeDenominator; } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountFTM, uint256 amountBOG); event BuybackMultiplierActive(uint256 duration); }
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":"amountFTM","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WFTM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isFree","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":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"checkFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"setFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"unSetFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273e1146b9ac456fcbb60644c36fd3f868a9072fc6e600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507321be370d5312f44cb42ce377bc9b8a0cef1a4c83600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600a62000186919062000e2a565b66038d7ea4c680006200019a919062000f67565b600755620001ba606460075462000bab60201b620024071790919060201c565b600855620001da602860075462000bab60201b620024071790919060201c565b60095560c860105560006011556102586012556101906013556104b060145561271060155573f13ddae794b683c835e6306ccfcccaf1f95ad2c9601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f13ddae794b683c835e6306ccfcccaf1f95ad2c9601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a601855606460195560c8601e556064601f556107086021556000602260006101000a81548160ff0219169083151502179055506207a120602b556001602c60006101000a81548160ff0219169083151502179055506103e860075462000312919062000d97565b602d553480156200032257600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600073f491e7b69e4244ad4002bc14e878a34207e38c29905080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047f57600080fd5b505afa15801562000494573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ba919062000cdc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200051892919062000d4d565b602060405180830381600087803b1580156200053357600080fd5b505af115801562000548573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056e919062000cdc565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006bc57600080fd5b505afa158015620006d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006f7919062000cdc565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051620007469062000cb7565b62000752919062000d30565b604051809103906000f0801580156200076f573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000abc8160075462000bc360201b60201c565b5062000af3601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000bc360201b60201c565b50600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000b9c919062000d7a565b60405180910390a3506200109d565b6000818362000bbb919062000d97565b905092915050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ca5919062000d7a565b60405180910390a36001905092915050565b611ca580620056d583390190565b60008151905062000cd68162001083565b92915050565b60006020828403121562000cf55762000cf462001071565b5b600062000d058482850162000cc5565b91505092915050565b62000d198162000fc8565b82525050565b62000d2a8162000ffc565b82525050565b600060208201905062000d47600083018462000d0e565b92915050565b600060408201905062000d64600083018562000d0e565b62000d73602083018462000d0e565b9392505050565b600060208201905062000d91600083018462000d1f565b92915050565b600062000da48262000ffc565b915062000db18362000ffc565b92508262000dc45762000dc362001042565b5b828204905092915050565b6000808291508390505b600185111562000e215780860481111562000df95762000df862001013565b5b600185161562000e095780820291505b808102905062000e198562001076565b945062000dd9565b94509492505050565b600062000e378262000ffc565b915062000e448362001006565b925062000e737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e7b565b905092915050565b60008262000e8d576001905062000f60565b8162000e9d576000905062000f60565b816001811462000eb6576002811462000ec15762000ef7565b600191505062000f60565b60ff84111562000ed65762000ed562001013565b5b8360020a91508482111562000ef05762000eef62001013565b5b5062000f60565b5060208310610133831016604e8410600b841016171562000f315782820a90508381111562000f2b5762000f2a62001013565b5b62000f60565b62000f40848484600162000dcf565b9250905081840481111562000f5a5762000f5962001013565b5b81810290505b9392505050565b600062000f748262000ffc565b915062000f818362000ffc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fbd5762000fbc62001013565b5b828202905092915050565b600062000fd58262000fdc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b6200108e8162000fc8565b81146200109a57600080fd5b50565b61462880620010ad6000396000f3fe6080604052600436106103545760003560e01c80637d1db4a5116101c6578063ca33e64c116100f7578063f0b37c0411610095578063f708a64f1161006f578063f708a64f14610c6d578063f84ba65d14610c96578063f887ea4014610cbf578063fe9fbb8014610cea5761035b565b8063f0b37c0414610bde578063f1f3bca314610c07578063f2fde38b14610c445761035b565b8063dd62ed3e116100d1578063dd62ed3e14610b22578063df20fd4914610b5f578063e91f214e14610b88578063e96fada214610bb35761035b565b8063ca33e64c14610a8f578063d51ed1c814610aba578063d806d12f14610af75761035b565b8063a51af4c511610164578063b210b06d1161013e578063b210b06d146109f9578063b6a5d7de14610a10578063bf56b37114610a39578063c6d2577d14610a645761035b565b8063a51af4c514610966578063a8aa1b3114610991578063a9059cbb146109bc5761035b565b806389ef69f6116101a057806389ef69f6146108c057806395d89b41146108e95780639d1944f514610914578063a4b45c001461093d5761035b565b80637d1db4a51461083f57806382247ec01461086a578063893d20e8146108955761035b565b8063296020e7116102a0578063571ac8b01161023e578063658d4b7f11610218578063658d4b7f146107975780636ddd1713146107c05780637088fb7f146107eb57806370a08231146108025761035b565b8063571ac8b0146107085780635c85974f146107455780635d0044ca1461076e5761035b565b80632f54bf6e1161027a5780632f54bf6e1461064c578063313ce567146106895780633425c001146106b45780633bb8a8d4146106dd5761035b565b8063296020e7146105bb5780632b112e49146105f85780632d48e896146106235761035b565b8063095ea7b31161030d578063201e7991116102e7578063201e79911461050157806321dbe8761461052a5780632375ce401461055557806323b872dd1461057e5761035b565b8063095ea7b31461045c5780631161ae391461049957806318160ddd146104d65761035b565b806301339c21146103605780630445b66714610377578063048c7baf146103a257806304a66b48146103cb57806306fdde03146103f457806307c89fe81461041f5761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d27565b005b34801561038357600080fd5b5061038c610dc4565b60405161039991906140e0565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613ae8565b610dca565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190613c62565b610e56565b005b34801561040057600080fd5b50610409610f05565b604051610416919061401e565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061390e565b610f42565b6040516104539190613f9c565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190613a3b565b610fe0565b6040516104909190613f9c565b60405180910390f35b3480156104a557600080fd5b506104c060048036038101906104bb9190613b7c565b6110d2565b6040516104cd9190613f9c565b60405180910390f35b3480156104e257600080fd5b506104eb6110e7565b6040516104f891906140e0565b60405180910390f35b34801561050d57600080fd5b5061052860048036038101906105239190613b7c565b6110f1565b005b34801561053657600080fd5b5061053f61114b565b60405161054c9190613eb3565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613bbc565b611171565b005b34801561058a57600080fd5b506105a560048036038101906105a091906139a8565b6111f7565b6040516105b29190613f9c565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd919061390e565b6113d9565b6040516105ef9190613f9c565b60405180910390f35b34801561060457600080fd5b5061060d6113f9565b60405161061a91906140e0565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190613b7c565b61147b565b005b34801561065857600080fd5b50610673600480360381019061066e919061390e565b611556565b6040516106809190613f9c565b60405180910390f35b34801561069557600080fd5b5061069e6115af565b6040516106ab919061417e565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061390e565b6115b8565b005b3480156106e957600080fd5b506106f261165b565b6040516106ff9190613f9c565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a919061390e565b61166e565b60405161073c9190613f9c565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613b4f565b611683565b005b34801561077a57600080fd5b5061079560048036038101906107909190613b4f565b6116d5565b005b3480156107a357600080fd5b506107be60048036038101906107b991906139fb565b611743565b005b3480156107cc57600080fd5b506107d56117e6565b6040516107e29190613f9c565b60405180910390f35b3480156107f757600080fd5b506108006117f9565b005b34801561080e57600080fd5b506108296004803603810190610824919061390e565b611890565b60405161083691906140e0565b60405180910390f35b34801561084b57600080fd5b506108546118d9565b60405161086191906140e0565b60405180910390f35b34801561087657600080fd5b5061087f6118df565b60405161088c91906140e0565b60405180910390f35b3480156108a157600080fd5b506108aa6118e5565b6040516108b79190613eb3565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e2919061390e565b61190e565b005b3480156108f557600080fd5b506108fe6119b1565b60405161090b919061401e565b60405180910390f35b34801561092057600080fd5b5061093b60048036038101906109369190613b4f565b6119ee565b005b34801561094957600080fd5b50610964600480360381019061095f9190613968565b611a4f565b005b34801561097257600080fd5b5061097b611b1d565b6040516109889190613eb3565b60405180910390f35b34801561099d57600080fd5b506109a6611b43565b6040516109b39190613eb3565b60405180910390f35b3480156109c857600080fd5b506109e360048036038101906109de9190613a3b565b611b69565b6040516109f09190613f9c565b60405180910390f35b348015610a0557600080fd5b50610a0e611b7e565b005b348015610a1c57600080fd5b50610a376004803603810190610a32919061390e565b611bd0565b005b348015610a4557600080fd5b50610a4e611c72565b604051610a5b91906140e0565b60405180910390f35b348015610a7057600080fd5b50610a79611c78565b604051610a8691906140e0565b60405180910390f35b348015610a9b57600080fd5b50610aa4611c7e565b604051610ab19190613eb3565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613b4f565b611ca4565b604051610aee91906140e0565b60405180910390f35b348015610b0357600080fd5b50610b0c611d16565b604051610b1991906140e0565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613968565b611d20565b604051610b5691906140e0565b60405180910390f35b348015610b6b57600080fd5b50610b866004803603810190610b819190613aa8565b611da7565b005b348015610b9457600080fd5b50610b9d611e14565b604051610baa91906140e0565b60405180910390f35b348015610bbf57600080fd5b50610bc8611e2a565b604051610bd59190613eb3565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c00919061390e565b611e50565b005b348015610c1357600080fd5b50610c2e6004803603810190610c299190613a7b565b611ef3565b604051610c3b91906140e0565b60405180910390f35b348015610c5057600080fd5b50610c6b6004803603810190610c66919061393b565b611f2f565b005b348015610c7957600080fd5b50610c946004803603810190610c8f91906139fb565b612048565b005b348015610ca257600080fd5b50610cbd6004803603810190610cb891906139fb565b6122e8565b005b348015610ccb57600080fd5b50610cd461238b565b604051610ce19190613fb7565b60405180910390f35b348015610cf657600080fd5b50610d116004803603810190610d0c919061390e565b6123b1565b604051610d1e9190613f9c565b60405180910390f35b610d30336123b1565b610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906140c0565b60405180910390fd5b6000601c5414610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab90614080565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610dd3336123b1565b610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906140c0565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610e5f336123b1565b610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e95906140c0565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610ef182610ee385610ed5888a61241d90919063ffffffff16565b61241d90919063ffffffff16565b61241d90919063ffffffff16565b601481905550806015819055505050505050565b60606040518060400160405280601181526020017f46414e544f4d204254435072696e746572000000000000000000000000000000815250905090565b6000610f4d33611556565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f83906140a0565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110c091906140e0565b60405180910390a36001905092915050565b6000826110de83611ca4565b11905092915050565b6000600754905090565b6110fa336123b1565b611139576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611130906140c0565b60405180910390fd5b81601881905550806019819055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61117a336123b1565b6111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b0906140c0565b60405180910390fd5b600282846111c79190614244565b111580156111d457508183115b6111dd57600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c557611344826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612488565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000611476611429600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b611468611457600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b600754612b4e90919063ffffffff16565b612b4e90919063ffffffff16565b905090565b611484336123b1565b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906140c0565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611520929190614155565b600060405180830381600087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b6115c133611556565b611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f7906140a0565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b600061167c82600754610fe0565b9050919050565b61168c336123b1565b6116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c2906140c0565b60405180910390fd5b8060088190555050565b6116de336123b1565b61171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906140c0565b60405180910390fd5b6103e860075461172d9190614244565b81101561173957600080fd5b8060098190555050565b61174c336123b1565b61178b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611782906140c0565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61180233611556565b611841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611838906140a0565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561188c573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191733611556565b611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906140a0565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f4642544370000000000000000000000000000000000000000000000000000000815250905090565b6119f7336123b1565b611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d906140c0565b60405180910390fd5b620b71b08110611a4557600080fd5b80602b8190555050565b611a58336123b1565b611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e906140c0565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b76338484612488565b905092915050565b611b87336123b1565b611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906140c0565b60405180910390fd5b6000602081905550565b611bd933611556565b611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f906140a0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d0f611cb16113f9565b611d01611cf26002611ce4601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b612b6490919063ffffffff16565b85612b6490919063ffffffff16565b61240790919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611db0336123b1565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de6906140c0565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e5933611556565b611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f906140a0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611f0591906141ee565b10611f14576014549050611f2a565b8115611f24576014549050611f2a565b60145490505b919050565b611f3833611556565b611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e906140a0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161203d9190613ece565b60405180910390a150565b612051336123b1565b612090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612087906140c0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561211a5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61212357600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561221557602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016121de929190613ee9565b600060405180830381600087803b1580156121f857600080fd5b505af115801561220c573d6000803e3d6000fd5b505050506122e4565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016122b1929190613f12565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505050505b5050565b6122f1336123b1565b612330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612327906140c0565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836124159190614244565b905092915050565b6000818361242b91906141ee565b905092915050565b600083831115829061247b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612472919061401e565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff16156124b1576124aa848484612b7a565b9050612b47565b600073f491e7b69e4244ad4002bc14e878a34207e38c2990506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061255357508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b905061255f8685612ce8565b801580156125b75750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561264b5760095484600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260a91906141ee565b1061264a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264190614060565b60405180910390fd5b5b801561267e57612659612d85565b1561266757612666612e5c565b5b61266f6133a6565b1561267d5761267c613459565b5b5b612707846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612755876134d5565b61275f578461276b565b61276a87878761352c565b5b90506127bf81600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661292557602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016128ef929190613f12565b600060405180830381600087803b15801561290957600080fd5b505af192505050801561291a575060015b61292357612924565b5b5b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a4857602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a12929190613f12565b600060405180830381600087803b158015612a2c57600080fd5b505af1925050508015612a3d575060015b612a4657612a47565b5b5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612aa591906140e0565b600060405180830381600087803b158015612abf57600080fd5b505af1925050508015612ad0575060015b612ad957612ada565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b3791906140e0565b60405180910390a3600193505050505b9392505050565b60008183612b5c91906142cf565b905092915050565b60008183612b729190614275565b905092915050565b6000612c05826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c9a82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60085481111580612d425750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7890614040565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612df25750602e60009054906101000a900460ff16155b8015612e0a5750602c60009054906101000a900460ff165b8015612e575750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff0219169083151502179055506000612e876018546019546110d2565b612e9357601054612e96565b60005b90506000612ed66002612ec8601454612eba86602d54612b6490919063ffffffff16565b61240790919063ffffffff16565b61240790919063ffffffff16565b90506000612eef82602d54612b4e90919063ffffffff16565b90506000600267ffffffffffffffff811115612f0e57612f0d614484565b5b604051908082528060200260200182016040528015612f3c5781602001602082028036833780820191505090505b5090503081600081518110612f5457612f53614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612fc557612fc4614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016130689594939291906140fb565b600060405180830381600087803b15801561308257600080fd5b505af1158015613096573d6000803e3d6000fd5b5050505060006130af8247612b4e90919063ffffffff16565b905060006130db6130ca60028961240790919063ffffffff16565b601454612b4e90919063ffffffff16565b905060006131176002613109846130fb8c88612b6490919063ffffffff16565b61240790919063ffffffff16565b61240790919063ffffffff16565b905060006131428361313460125487612b6490919063ffffffff16565b61240790919063ffffffff16565b9050600061316d8461315f60135488612b6490919063ffffffff16565b61240790919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156131d957600080fd5b505af1935050505080156131eb575060015b6131f4576131f5565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561325d573d6000803e3d6000fd5b50600089111561337f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132f096959493929190613f3b565b6060604051808303818588803b15801561330957600080fd5b505af115801561331d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133429190613c0f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051613376929190614155565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134135750602e60009054906101000a900460ff16155b801561342b5750602260009054906101000a900460ff165b801561344657504360275460285461344391906141ee565b11155b801561345457506026544710155b905090565b613487602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136c7565b436028819055506134a560265460255461241d90919063ffffffff16565b60258190555060245460255411156134d3576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806135ae6015546135a0613591601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611ef3565b86612b6490919063ffffffff16565b61240790919063ffffffff16565b905061360281600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136a291906140e0565b60405180910390a36136bd8184612b4e90919063ffffffff16565b9150509392505050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156136ff576136fe614484565b5b60405190808252806020026020018201604052801561372d5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061376757613766614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106137b6576137b5614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b81526004016138539493929190613fd2565b6000604051808303818588803b15801561386c57600080fd5b505af1158015613880573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000813590506138b481614596565b92915050565b6000813590506138c9816145ad565b92915050565b6000813590506138de816145c4565b92915050565b6000813590506138f3816145db565b92915050565b600081519050613908816145db565b92915050565b600060208284031215613924576139236144b3565b5b6000613932848285016138a5565b91505092915050565b600060208284031215613951576139506144b3565b5b600061395f848285016138ba565b91505092915050565b6000806040838503121561397f5761397e6144b3565b5b600061398d858286016138a5565b925050602061399e858286016138a5565b9150509250929050565b6000806000606084860312156139c1576139c06144b3565b5b60006139cf868287016138a5565b93505060206139e0868287016138a5565b92505060406139f1868287016138e4565b9150509250925092565b60008060408385031215613a1257613a116144b3565b5b6000613a20858286016138a5565b9250506020613a31858286016138cf565b9150509250929050565b60008060408385031215613a5257613a516144b3565b5b6000613a60858286016138a5565b9250506020613a71858286016138e4565b9150509250929050565b600060208284031215613a9157613a906144b3565b5b6000613a9f848285016138cf565b91505092915050565b60008060408385031215613abf57613abe6144b3565b5b6000613acd858286016138cf565b9250506020613ade858286016138e4565b9150509250929050565b60008060008060808587031215613b0257613b016144b3565b5b6000613b10878288016138cf565b9450506020613b21878288016138e4565b9350506040613b32878288016138e4565b9250506060613b43878288016138e4565b91505092959194509250565b600060208284031215613b6557613b646144b3565b5b6000613b73848285016138e4565b91505092915050565b60008060408385031215613b9357613b926144b3565b5b6000613ba1858286016138e4565b9250506020613bb2858286016138e4565b9150509250929050565b600080600060608486031215613bd557613bd46144b3565b5b6000613be3868287016138e4565b9350506020613bf4868287016138e4565b9250506040613c05868287016138e4565b9150509250925092565b600080600060608486031215613c2857613c276144b3565b5b6000613c36868287016138f9565b9350506020613c47868287016138f9565b9250506040613c58868287016138f9565b9150509250925092565b600080600080600060a08688031215613c7e57613c7d6144b3565b5b6000613c8c888289016138e4565b9550506020613c9d888289016138e4565b9450506040613cae888289016138e4565b9350506060613cbf888289016138e4565b9250506080613cd0888289016138e4565b9150509295509295909350565b6000613ce98383613d04565b60208301905092915050565b613cfe8161436a565b82525050565b613d0d81614303565b82525050565b613d1c81614303565b82525050565b6000613d2d826141a9565b613d3781856141cc565b9350613d4283614199565b8060005b83811015613d73578151613d5a8882613cdd565b9750613d65836141bf565b925050600181019050613d46565b5085935050505092915050565b613d8981614327565b82525050565b613d988161437c565b82525050565b613da78161438e565b82525050565b6000613db8826141b4565b613dc281856141dd565b9350613dd28185602086016143c4565b613ddb816144b8565b840191505092915050565b6000613df36011836141dd565b9150613dfe826144c9565b602082019050919050565b6000613e16601d836141dd565b9150613e21826144f2565b602082019050919050565b6000613e396014836141dd565b9150613e448261451b565b602082019050919050565b6000613e5c6006836141dd565b9150613e6782614544565b602082019050919050565b6000613e7f600b836141dd565b9150613e8a8261456d565b602082019050919050565b613e9e81614353565b82525050565b613ead8161435d565b82525050565b6000602082019050613ec86000830184613d13565b92915050565b6000602082019050613ee36000830184613cf5565b92915050565b6000604082019050613efe6000830185613d13565b613f0b6020830184613d9e565b9392505050565b6000604082019050613f276000830185613d13565b613f346020830184613e95565b9392505050565b600060c082019050613f506000830189613d13565b613f5d6020830188613e95565b613f6a6040830187613d9e565b613f776060830186613d9e565b613f846080830185613d13565b613f9160a0830184613e95565b979650505050505050565b6000602082019050613fb16000830184613d80565b92915050565b6000602082019050613fcc6000830184613d8f565b92915050565b6000608082019050613fe76000830187613d9e565b8181036020830152613ff98186613d22565b90506140086040830185613d13565b6140156060830184613e95565b95945050505050565b600060208201905081810360008301526140388184613dad565b905092915050565b6000602082019050818103600083015261405981613de6565b9050919050565b6000602082019050818103600083015261407981613e09565b9050919050565b6000602082019050818103600083015261409981613e2c565b9050919050565b600060208201905081810360008301526140b981613e4f565b9050919050565b600060208201905081810360008301526140d981613e72565b9050919050565b60006020820190506140f56000830184613e95565b92915050565b600060a0820190506141106000830188613e95565b61411d6020830187613d9e565b818103604083015261412f8186613d22565b905061413e6060830185613d13565b61414b6080830184613e95565b9695505050505050565b600060408201905061416a6000830185613e95565b6141776020830184613e95565b9392505050565b60006020820190506141936000830184613ea4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006141f982614353565b915061420483614353565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614239576142386143f7565b5b828201905092915050565b600061424f82614353565b915061425a83614353565b92508261426a57614269614426565b5b828204905092915050565b600061428082614353565b915061428b83614353565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156142c4576142c36143f7565b5b828202905092915050565b60006142da82614353565b91506142e583614353565b9250828210156142f8576142f76143f7565b5b828203905092915050565b600061430e82614333565b9050919050565b600061432082614333565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614375826143a0565b9050919050565b6000614387826143a0565b9050919050565b600061439982614353565b9050919050565b60006143ab826143b2565b9050919050565b60006143bd82614333565b9050919050565b60005b838110156143e25780820151818401526020810190506143c7565b838111156143f1576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61459f81614303565b81146145aa57600080fd5b50565b6145b681614315565b81146145c157600080fd5b50565b6145cd81614327565b81146145d857600080fd5b50565b6145e481614353565b81146145ef57600080fd5b5056fea2646970667358221220a59def3199fa0d6ce4091370474c315e71c0b56314a623b8980e969ef540880c64736f6c63430008070033608060405273e1146b9ac456fcbb60644c36fd3f868a9072fc6e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507321be370d5312f44cb42ce377bc9b8a0cef1a4c83600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55678ac7230489e80000600e55348015620000e057600080fd5b5060405162001ca538038062001ca58339818101604052810190620001069190620001f7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620001575773f491e7b69e4244ad4002bc14e878a34207e38c2962000159565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027c565b600081519050620001f18162000262565b92915050565b60006020828403121562000210576200020f6200025d565b5b60006200022084828501620001e0565b91505092915050565b600062000236826200023d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200026d8162000229565b81146200027957600080fd5b50565b611a19806200028c6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b604051610104919061166b565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611422565b61032d565b005b34801561014257600080fd5b5061015d600480360381019061015891906113f5565b6105ec565b60405161016a919061166b565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906114e9565b610706565b005b3480156101a857600080fd5b506101b1610770565b6040516101be919061166b565b60405180910390f35b3480156101d357600080fd5b506101dc610776565b6040516101e9919061166b565b60405180910390f35b3480156101fe57600080fd5b5061020761077c565b604051610214919061166b565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906113f5565b610782565b60405161025393929190611686565b60405180910390f35b6102646107ac565b005b34801561027257600080fd5b5061027b610b9c565b604051610288919061166b565b60405180910390f35b34801561029d57600080fd5b506102a6610ba2565b6040516102b3919061166b565b60405180910390f35b3480156102c857600080fd5b506102d1610ba8565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061148f565b610bb3565b005b34801561030857600080fd5b50610311610d47565b60405161031e919061166b565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610d4d565b5b60008111801561042c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a82610ff4565b6104a1565b60008114801561049157506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f826110a3565b5b5b61050a816104fc600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546112aa90919063ffffffff16565b6112c090919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106415760009050610701565b600061068e600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e957600092505050610701565b6106fc81836112aa90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075e57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161086191906115db565b60206040518083038186803b15801561087957600080fd5b505afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b191906114bc565b90506000600267ffffffffffffffff8111156108d0576108cf61196a565b5b6040519080825280602002602001820160405280156108fe5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109385761093761193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106109a9576109a861193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610a46949392919061161f565b6000604051808303818588803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b50505050506000610b3783600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ad991906115db565b60206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2991906114bc565b6112aa90919063ffffffff16565b9050610b4e816009546112c090919063ffffffff16565b600981905550610b91610b80600854610b7284600c5461130890919063ffffffff16565b61131e90919063ffffffff16565b600b546112c090919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610bb133610d4d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b600060048054905090506000811415610c245750610d44565b6000805a905060005b8483108015610c3b57508381105b15610d3f5783600f5410610c52576000600f819055505b610c9b6004600f5481548110610c6b57610c6a61193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b15610cea57610ce96004600f5481548110610cb957610cb861193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d4d565b5b610d0f610d005a846112aa90919063ffffffff16565b846112c090919063ffffffff16565b92505a9150600f6000815480929190610d2790611865565b91905055508080610d3790611865565b915050610c2d565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610d9d57610ff1565b6000610da8826105ec565b90506000811115610fef57610dc881600a546112c090919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e2b9291906115f6565b602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190611462565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f1781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546112c090919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610fa8600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506110b791906117d7565b815481106110c8576110c761193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111465761114561193b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506111e691906117d7565b815481106111f7576111f661193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112725761127161190c565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600081836112b891906117d7565b905092915050565b600081836112ce91906116f6565b905092915050565b6000611301600c546112f3600b548561130890919063ffffffff16565b61131e90919063ffffffff16565b9050919050565b60008183611316919061177d565b905092915050565b6000818361132c919061174c565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138491906116f6565b10801561139a5750600e54611398836105ec565b115b9050919050565b6000813590506113b08161199e565b92915050565b6000815190506113c5816119b5565b92915050565b6000813590506113da816119cc565b92915050565b6000815190506113ef816119cc565b92915050565b60006020828403121561140b5761140a611999565b5b6000611419848285016113a1565b91505092915050565b6000806040838503121561143957611438611999565b5b6000611447858286016113a1565b9250506020611458858286016113cb565b9150509250929050565b60006020828403121561147857611477611999565b5b6000611486848285016113b6565b91505092915050565b6000602082840312156114a5576114a4611999565b5b60006114b3848285016113cb565b91505092915050565b6000602082840312156114d2576114d1611999565b5b60006114e0848285016113e0565b91505092915050565b60008060408385031215611500576114ff611999565b5b600061150e858286016113cb565b925050602061151f858286016113cb565b9150509250929050565b60006115358383611541565b60208301905092915050565b61154a8161180b565b82525050565b6115598161180b565b82525050565b600061156a826116cd565b61157481856116e5565b935061157f836116bd565b8060005b838110156115b05781516115978882611529565b97506115a2836116d8565b925050600181019050611583565b5085935050505092915050565b6115c681611853565b82525050565b6115d581611849565b82525050565b60006020820190506115f06000830184611550565b92915050565b600060408201905061160b6000830185611550565b61161860208301846115cc565b9392505050565b600060808201905061163460008301876115bd565b8181036020830152611646818661155f565b90506116556040830185611550565b61166260608301846115cc565b95945050505050565b600060208201905061168060008301846115cc565b92915050565b600060608201905061169b60008301866115cc565b6116a860208301856115cc565b6116b560408301846115cc565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061170182611849565b915061170c83611849565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611741576117406118ae565b5b828201905092915050565b600061175782611849565b915061176283611849565b925082611772576117716118dd565b5b828204905092915050565b600061178882611849565b915061179383611849565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117cc576117cb6118ae565b5b828202905092915050565b60006117e282611849565b91506117ed83611849565b925082821015611800576117ff6118ae565b5b828203905092915050565b600061181682611829565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061185e82611849565b9050919050565b600061187082611849565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118a3576118a26118ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6119a78161180b565b81146119b257600080fd5b50565b6119be8161181d565b81146119c957600080fd5b50565b6119d581611849565b81146119e057600080fd5b5056fea2646970667358221220c1eb0fe113c542bea25449b989ec611941af49fac86132dbc4f491c72d203c0264736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103545760003560e01c80637d1db4a5116101c6578063ca33e64c116100f7578063f0b37c0411610095578063f708a64f1161006f578063f708a64f14610c6d578063f84ba65d14610c96578063f887ea4014610cbf578063fe9fbb8014610cea5761035b565b8063f0b37c0414610bde578063f1f3bca314610c07578063f2fde38b14610c445761035b565b8063dd62ed3e116100d1578063dd62ed3e14610b22578063df20fd4914610b5f578063e91f214e14610b88578063e96fada214610bb35761035b565b8063ca33e64c14610a8f578063d51ed1c814610aba578063d806d12f14610af75761035b565b8063a51af4c511610164578063b210b06d1161013e578063b210b06d146109f9578063b6a5d7de14610a10578063bf56b37114610a39578063c6d2577d14610a645761035b565b8063a51af4c514610966578063a8aa1b3114610991578063a9059cbb146109bc5761035b565b806389ef69f6116101a057806389ef69f6146108c057806395d89b41146108e95780639d1944f514610914578063a4b45c001461093d5761035b565b80637d1db4a51461083f57806382247ec01461086a578063893d20e8146108955761035b565b8063296020e7116102a0578063571ac8b01161023e578063658d4b7f11610218578063658d4b7f146107975780636ddd1713146107c05780637088fb7f146107eb57806370a08231146108025761035b565b8063571ac8b0146107085780635c85974f146107455780635d0044ca1461076e5761035b565b80632f54bf6e1161027a5780632f54bf6e1461064c578063313ce567146106895780633425c001146106b45780633bb8a8d4146106dd5761035b565b8063296020e7146105bb5780632b112e49146105f85780632d48e896146106235761035b565b8063095ea7b31161030d578063201e7991116102e7578063201e79911461050157806321dbe8761461052a5780632375ce401461055557806323b872dd1461057e5761035b565b8063095ea7b31461045c5780631161ae391461049957806318160ddd146104d65761035b565b806301339c21146103605780630445b66714610377578063048c7baf146103a257806304a66b48146103cb57806306fdde03146103f457806307c89fe81461041f5761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d27565b005b34801561038357600080fd5b5061038c610dc4565b60405161039991906140e0565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613ae8565b610dca565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190613c62565b610e56565b005b34801561040057600080fd5b50610409610f05565b604051610416919061401e565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061390e565b610f42565b6040516104539190613f9c565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190613a3b565b610fe0565b6040516104909190613f9c565b60405180910390f35b3480156104a557600080fd5b506104c060048036038101906104bb9190613b7c565b6110d2565b6040516104cd9190613f9c565b60405180910390f35b3480156104e257600080fd5b506104eb6110e7565b6040516104f891906140e0565b60405180910390f35b34801561050d57600080fd5b5061052860048036038101906105239190613b7c565b6110f1565b005b34801561053657600080fd5b5061053f61114b565b60405161054c9190613eb3565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613bbc565b611171565b005b34801561058a57600080fd5b506105a560048036038101906105a091906139a8565b6111f7565b6040516105b29190613f9c565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd919061390e565b6113d9565b6040516105ef9190613f9c565b60405180910390f35b34801561060457600080fd5b5061060d6113f9565b60405161061a91906140e0565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190613b7c565b61147b565b005b34801561065857600080fd5b50610673600480360381019061066e919061390e565b611556565b6040516106809190613f9c565b60405180910390f35b34801561069557600080fd5b5061069e6115af565b6040516106ab919061417e565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061390e565b6115b8565b005b3480156106e957600080fd5b506106f261165b565b6040516106ff9190613f9c565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a919061390e565b61166e565b60405161073c9190613f9c565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613b4f565b611683565b005b34801561077a57600080fd5b5061079560048036038101906107909190613b4f565b6116d5565b005b3480156107a357600080fd5b506107be60048036038101906107b991906139fb565b611743565b005b3480156107cc57600080fd5b506107d56117e6565b6040516107e29190613f9c565b60405180910390f35b3480156107f757600080fd5b506108006117f9565b005b34801561080e57600080fd5b506108296004803603810190610824919061390e565b611890565b60405161083691906140e0565b60405180910390f35b34801561084b57600080fd5b506108546118d9565b60405161086191906140e0565b60405180910390f35b34801561087657600080fd5b5061087f6118df565b60405161088c91906140e0565b60405180910390f35b3480156108a157600080fd5b506108aa6118e5565b6040516108b79190613eb3565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e2919061390e565b61190e565b005b3480156108f557600080fd5b506108fe6119b1565b60405161090b919061401e565b60405180910390f35b34801561092057600080fd5b5061093b60048036038101906109369190613b4f565b6119ee565b005b34801561094957600080fd5b50610964600480360381019061095f9190613968565b611a4f565b005b34801561097257600080fd5b5061097b611b1d565b6040516109889190613eb3565b60405180910390f35b34801561099d57600080fd5b506109a6611b43565b6040516109b39190613eb3565b60405180910390f35b3480156109c857600080fd5b506109e360048036038101906109de9190613a3b565b611b69565b6040516109f09190613f9c565b60405180910390f35b348015610a0557600080fd5b50610a0e611b7e565b005b348015610a1c57600080fd5b50610a376004803603810190610a32919061390e565b611bd0565b005b348015610a4557600080fd5b50610a4e611c72565b604051610a5b91906140e0565b60405180910390f35b348015610a7057600080fd5b50610a79611c78565b604051610a8691906140e0565b60405180910390f35b348015610a9b57600080fd5b50610aa4611c7e565b604051610ab19190613eb3565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613b4f565b611ca4565b604051610aee91906140e0565b60405180910390f35b348015610b0357600080fd5b50610b0c611d16565b604051610b1991906140e0565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613968565b611d20565b604051610b5691906140e0565b60405180910390f35b348015610b6b57600080fd5b50610b866004803603810190610b819190613aa8565b611da7565b005b348015610b9457600080fd5b50610b9d611e14565b604051610baa91906140e0565b60405180910390f35b348015610bbf57600080fd5b50610bc8611e2a565b604051610bd59190613eb3565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c00919061390e565b611e50565b005b348015610c1357600080fd5b50610c2e6004803603810190610c299190613a7b565b611ef3565b604051610c3b91906140e0565b60405180910390f35b348015610c5057600080fd5b50610c6b6004803603810190610c66919061393b565b611f2f565b005b348015610c7957600080fd5b50610c946004803603810190610c8f91906139fb565b612048565b005b348015610ca257600080fd5b50610cbd6004803603810190610cb891906139fb565b6122e8565b005b348015610ccb57600080fd5b50610cd461238b565b604051610ce19190613fb7565b60405180910390f35b348015610cf657600080fd5b50610d116004803603810190610d0c919061390e565b6123b1565b604051610d1e9190613f9c565b60405180910390f35b610d30336123b1565b610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906140c0565b60405180910390fd5b6000601c5414610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab90614080565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610dd3336123b1565b610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906140c0565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610e5f336123b1565b610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e95906140c0565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610ef182610ee385610ed5888a61241d90919063ffffffff16565b61241d90919063ffffffff16565b61241d90919063ffffffff16565b601481905550806015819055505050505050565b60606040518060400160405280601181526020017f46414e544f4d204254435072696e746572000000000000000000000000000000815250905090565b6000610f4d33611556565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f83906140a0565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110c091906140e0565b60405180910390a36001905092915050565b6000826110de83611ca4565b11905092915050565b6000600754905090565b6110fa336123b1565b611139576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611130906140c0565b60405180910390fd5b81601881905550806019819055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61117a336123b1565b6111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b0906140c0565b60405180910390fd5b600282846111c79190614244565b111580156111d457508183115b6111dd57600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c557611344826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612488565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000611476611429600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b611468611457600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b600754612b4e90919063ffffffff16565b612b4e90919063ffffffff16565b905090565b611484336123b1565b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906140c0565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611520929190614155565b600060405180830381600087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b6115c133611556565b611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f7906140a0565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b600061167c82600754610fe0565b9050919050565b61168c336123b1565b6116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c2906140c0565b60405180910390fd5b8060088190555050565b6116de336123b1565b61171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906140c0565b60405180910390fd5b6103e860075461172d9190614244565b81101561173957600080fd5b8060098190555050565b61174c336123b1565b61178b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611782906140c0565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61180233611556565b611841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611838906140a0565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561188c573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191733611556565b611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906140a0565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f4642544370000000000000000000000000000000000000000000000000000000815250905090565b6119f7336123b1565b611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d906140c0565b60405180910390fd5b620b71b08110611a4557600080fd5b80602b8190555050565b611a58336123b1565b611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e906140c0565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b76338484612488565b905092915050565b611b87336123b1565b611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906140c0565b60405180910390fd5b6000602081905550565b611bd933611556565b611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f906140a0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d0f611cb16113f9565b611d01611cf26002611ce4601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611890565b612b6490919063ffffffff16565b85612b6490919063ffffffff16565b61240790919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611db0336123b1565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de6906140c0565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e5933611556565b611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f906140a0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611f0591906141ee565b10611f14576014549050611f2a565b8115611f24576014549050611f2a565b60145490505b919050565b611f3833611556565b611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e906140a0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161203d9190613ece565b60405180910390a150565b612051336123b1565b612090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612087906140c0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561211a5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61212357600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561221557602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016121de929190613ee9565b600060405180830381600087803b1580156121f857600080fd5b505af115801561220c573d6000803e3d6000fd5b505050506122e4565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016122b1929190613f12565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505050505b5050565b6122f1336123b1565b612330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612327906140c0565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836124159190614244565b905092915050565b6000818361242b91906141ee565b905092915050565b600083831115829061247b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612472919061401e565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff16156124b1576124aa848484612b7a565b9050612b47565b600073f491e7b69e4244ad4002bc14e878a34207e38c2990506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061255357508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b905061255f8685612ce8565b801580156125b75750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561264b5760095484600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260a91906141ee565b1061264a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264190614060565b60405180910390fd5b5b801561267e57612659612d85565b1561266757612666612e5c565b5b61266f6133a6565b1561267d5761267c613459565b5b5b612707846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612755876134d5565b61275f578461276b565b61276a87878761352c565b5b90506127bf81600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661292557602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016128ef929190613f12565b600060405180830381600087803b15801561290957600080fd5b505af192505050801561291a575060015b61292357612924565b5b5b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a4857602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a12929190613f12565b600060405180830381600087803b158015612a2c57600080fd5b505af1925050508015612a3d575060015b612a4657612a47565b5b5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612aa591906140e0565b600060405180830381600087803b158015612abf57600080fd5b505af1925050508015612ad0575060015b612ad957612ada565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b3791906140e0565b60405180910390a3600193505050505b9392505050565b60008183612b5c91906142cf565b905092915050565b60008183612b729190614275565b905092915050565b6000612c05826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124339092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c9a82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60085481111580612d425750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7890614040565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612df25750602e60009054906101000a900460ff16155b8015612e0a5750602c60009054906101000a900460ff165b8015612e575750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff0219169083151502179055506000612e876018546019546110d2565b612e9357601054612e96565b60005b90506000612ed66002612ec8601454612eba86602d54612b6490919063ffffffff16565b61240790919063ffffffff16565b61240790919063ffffffff16565b90506000612eef82602d54612b4e90919063ffffffff16565b90506000600267ffffffffffffffff811115612f0e57612f0d614484565b5b604051908082528060200260200182016040528015612f3c5781602001602082028036833780820191505090505b5090503081600081518110612f5457612f53614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612fc557612fc4614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016130689594939291906140fb565b600060405180830381600087803b15801561308257600080fd5b505af1158015613096573d6000803e3d6000fd5b5050505060006130af8247612b4e90919063ffffffff16565b905060006130db6130ca60028961240790919063ffffffff16565b601454612b4e90919063ffffffff16565b905060006131176002613109846130fb8c88612b6490919063ffffffff16565b61240790919063ffffffff16565b61240790919063ffffffff16565b905060006131428361313460125487612b6490919063ffffffff16565b61240790919063ffffffff16565b9050600061316d8461315f60135488612b6490919063ffffffff16565b61240790919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156131d957600080fd5b505af1935050505080156131eb575060015b6131f4576131f5565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561325d573d6000803e3d6000fd5b50600089111561337f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132f096959493929190613f3b565b6060604051808303818588803b15801561330957600080fd5b505af115801561331d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133429190613c0f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051613376929190614155565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134135750602e60009054906101000a900460ff16155b801561342b5750602260009054906101000a900460ff165b801561344657504360275460285461344391906141ee565b11155b801561345457506026544710155b905090565b613487602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136c7565b436028819055506134a560265460255461241d90919063ffffffff16565b60258190555060245460255411156134d3576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806135ae6015546135a0613591601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611ef3565b86612b6490919063ffffffff16565b61240790919063ffffffff16565b905061360281600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136a291906140e0565b60405180910390a36136bd8184612b4e90919063ffffffff16565b9150509392505050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156136ff576136fe614484565b5b60405190808252806020026020018201604052801561372d5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061376757613766614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106137b6576137b5614455565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b81526004016138539493929190613fd2565b6000604051808303818588803b15801561386c57600080fd5b505af1158015613880573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000813590506138b481614596565b92915050565b6000813590506138c9816145ad565b92915050565b6000813590506138de816145c4565b92915050565b6000813590506138f3816145db565b92915050565b600081519050613908816145db565b92915050565b600060208284031215613924576139236144b3565b5b6000613932848285016138a5565b91505092915050565b600060208284031215613951576139506144b3565b5b600061395f848285016138ba565b91505092915050565b6000806040838503121561397f5761397e6144b3565b5b600061398d858286016138a5565b925050602061399e858286016138a5565b9150509250929050565b6000806000606084860312156139c1576139c06144b3565b5b60006139cf868287016138a5565b93505060206139e0868287016138a5565b92505060406139f1868287016138e4565b9150509250925092565b60008060408385031215613a1257613a116144b3565b5b6000613a20858286016138a5565b9250506020613a31858286016138cf565b9150509250929050565b60008060408385031215613a5257613a516144b3565b5b6000613a60858286016138a5565b9250506020613a71858286016138e4565b9150509250929050565b600060208284031215613a9157613a906144b3565b5b6000613a9f848285016138cf565b91505092915050565b60008060408385031215613abf57613abe6144b3565b5b6000613acd858286016138cf565b9250506020613ade858286016138e4565b9150509250929050565b60008060008060808587031215613b0257613b016144b3565b5b6000613b10878288016138cf565b9450506020613b21878288016138e4565b9350506040613b32878288016138e4565b9250506060613b43878288016138e4565b91505092959194509250565b600060208284031215613b6557613b646144b3565b5b6000613b73848285016138e4565b91505092915050565b60008060408385031215613b9357613b926144b3565b5b6000613ba1858286016138e4565b9250506020613bb2858286016138e4565b9150509250929050565b600080600060608486031215613bd557613bd46144b3565b5b6000613be3868287016138e4565b9350506020613bf4868287016138e4565b9250506040613c05868287016138e4565b9150509250925092565b600080600060608486031215613c2857613c276144b3565b5b6000613c36868287016138f9565b9350506020613c47868287016138f9565b9250506040613c58868287016138f9565b9150509250925092565b600080600080600060a08688031215613c7e57613c7d6144b3565b5b6000613c8c888289016138e4565b9550506020613c9d888289016138e4565b9450506040613cae888289016138e4565b9350506060613cbf888289016138e4565b9250506080613cd0888289016138e4565b9150509295509295909350565b6000613ce98383613d04565b60208301905092915050565b613cfe8161436a565b82525050565b613d0d81614303565b82525050565b613d1c81614303565b82525050565b6000613d2d826141a9565b613d3781856141cc565b9350613d4283614199565b8060005b83811015613d73578151613d5a8882613cdd565b9750613d65836141bf565b925050600181019050613d46565b5085935050505092915050565b613d8981614327565b82525050565b613d988161437c565b82525050565b613da78161438e565b82525050565b6000613db8826141b4565b613dc281856141dd565b9350613dd28185602086016143c4565b613ddb816144b8565b840191505092915050565b6000613df36011836141dd565b9150613dfe826144c9565b602082019050919050565b6000613e16601d836141dd565b9150613e21826144f2565b602082019050919050565b6000613e396014836141dd565b9150613e448261451b565b602082019050919050565b6000613e5c6006836141dd565b9150613e6782614544565b602082019050919050565b6000613e7f600b836141dd565b9150613e8a8261456d565b602082019050919050565b613e9e81614353565b82525050565b613ead8161435d565b82525050565b6000602082019050613ec86000830184613d13565b92915050565b6000602082019050613ee36000830184613cf5565b92915050565b6000604082019050613efe6000830185613d13565b613f0b6020830184613d9e565b9392505050565b6000604082019050613f276000830185613d13565b613f346020830184613e95565b9392505050565b600060c082019050613f506000830189613d13565b613f5d6020830188613e95565b613f6a6040830187613d9e565b613f776060830186613d9e565b613f846080830185613d13565b613f9160a0830184613e95565b979650505050505050565b6000602082019050613fb16000830184613d80565b92915050565b6000602082019050613fcc6000830184613d8f565b92915050565b6000608082019050613fe76000830187613d9e565b8181036020830152613ff98186613d22565b90506140086040830185613d13565b6140156060830184613e95565b95945050505050565b600060208201905081810360008301526140388184613dad565b905092915050565b6000602082019050818103600083015261405981613de6565b9050919050565b6000602082019050818103600083015261407981613e09565b9050919050565b6000602082019050818103600083015261409981613e2c565b9050919050565b600060208201905081810360008301526140b981613e4f565b9050919050565b600060208201905081810360008301526140d981613e72565b9050919050565b60006020820190506140f56000830184613e95565b92915050565b600060a0820190506141106000830188613e95565b61411d6020830187613d9e565b818103604083015261412f8186613d22565b905061413e6060830185613d13565b61414b6080830184613e95565b9695505050505050565b600060408201905061416a6000830185613e95565b6141776020830184613e95565b9392505050565b60006020820190506141936000830184613ea4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006141f982614353565b915061420483614353565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614239576142386143f7565b5b828201905092915050565b600061424f82614353565b915061425a83614353565b92508261426a57614269614426565b5b828204905092915050565b600061428082614353565b915061428b83614353565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156142c4576142c36143f7565b5b828202905092915050565b60006142da82614353565b91506142e583614353565b9250828210156142f8576142f76143f7565b5b828203905092915050565b600061430e82614333565b9050919050565b600061432082614333565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614375826143a0565b9050919050565b6000614387826143a0565b9050919050565b600061439982614353565b9050919050565b60006143ab826143b2565b9050919050565b60006143bd82614333565b9050919050565b60005b838110156143e25780820151818401526020810190506143c7565b838111156143f1576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61459f81614303565b81146145aa57600080fd5b50565b6145b681614315565b81146145c157600080fd5b50565b6145cd81614327565b81146145d857600080fd5b50565b6145e481614353565b81146145ef57600080fd5b5056fea2646970667358221220a59def3199fa0d6ce4091370474c315e71c0b56314a623b8980e969ef540880c64736f6c63430008070033
Deployed Bytecode Sourcemap
12804:16072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25490:187;;;;;;;;;;;;;:::i;:::-;;15149:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24675:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26897:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16571:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26778:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17074:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28605:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16301:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27754:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13001:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25042:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17587:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13862:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28280:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27945:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4602:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16395:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26672:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14733:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17298:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25842:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25689:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26301:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15112:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24523:142;;;;;;;;;;;;;:::i;:::-;;16822:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13477:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13541:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16657:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26569:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16481:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28136:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27354:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15030:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14438:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17423:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23726:105;;;;;;;;;;;;;:::i;:::-;;4275:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14466:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14498:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14109:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28430:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20447:691;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16933:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27590:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12877:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14209:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4445:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20235:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5002:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25946:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26429:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14401:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25490:187;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25559:1:::1;25545:10;;:15;25537:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25609:12;25596:10;:25;;;;25654:15;25632:19;:37;;;;25490:187::o:0;15149:50::-;;;;:::o;24675:359::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24822:8:::1;24801:18;;:29;;;;;;;;;;;;;;;;;;24858:4;24841:14;:21;;;;24898:1;24873:22;:26;;;;24930:7;24910:17;:27;;;;24973:7;24948:22;:32;;;;25014:12;24991:20;:35;;;;24675:359:::0;;;;:::o;26897:449::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27076:13:::1;27061:12;:28;;;;27113:11;27100:10;:24;;;;27151:14;27135:13;:30;;;;27191:13;27176:12;:28;;;;27226:69;27281:13;27226:50;27261:14;27226:30;27244:11;27226:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;27215:8;:80;;;;27323:15;27306:14;:32;;;;26897:449:::0;;;;;:::o;16571:80::-;16619:13;16643:5;;;;;;;;;;;;;;;;;16636:12;;16571:80;:::o;26778:111::-;26843:4;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26866:7:::1;:15;26874:6;26866:15;;;;;;;;;;;;;;;;;;;;;;;;;26859:22;;26778:111:::0;;;:::o;17074:216::-;17149:4;17201:6;17166:11;:23;17178:10;17166:23;;;;;;;;;;;;;;;:32;17190:7;17166:32;;;;;;;;;;;;;;;:41;;;;17244:7;17223:37;;17232:10;17223:37;;;17253:6;17223:37;;;;;;:::i;:::-;;;;;;;;17278:4;17271:11;;17074:216;;;;:::o;28605:150::-;28685:4;28741:6;28709:29;28729:8;28709:19;:29::i;:::-;:38;28702:45;;28605:150;;;;:::o;16301:88::-;16356:7;16374:12;;16367:19;;16301:88;:::o;27754:183::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27870:7:::1;27852:15;:25;;;;27917:12;27888:26;:41;;;;27754:183:::0;;:::o;13001:64::-;;;;;;;;;;;;;:::o;25042:342::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25202:1:::1;25187:11;25175:9;:23;;;;:::i;:::-;:28;;:55;;;;;25219:11;25207:9;:23;25175:55;25167:64;;;::::0;::::1;;25271:9;25242:26;:38;;;;25322:11;25291:28;:42;;;;25370:6;25344:23;:32;;;;25042:342:::0;;;:::o;17587:365::-;17687:4;17742:12;;17707:11;:19;17719:6;17707:19;;;;;;;;;;;;;;;:31;17727:10;17707:31;;;;;;;;;;;;;;;;:47;17704:181;;17804:69;17840:6;17804:69;;;;;;;;;;;;;;;;;:11;:19;17816:6;17804:19;;;;;;;;;;;;;;;:31;17824:10;17804:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;17770:11;:19;17782:6;17770:19;;;;;;;;;;;;;;;:31;17790:10;17770:31;;;;;;;;;;;;;;;:103;;;;17704:181;17904:40;17918:6;17926:9;17937:6;17904:13;:40::i;:::-;17897:47;;17587:365;;;;;:::o;13862:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;28280:142::-;28333:7;28360:54;28398:15;28408:4;;;;;;;;;;;28398:9;:15::i;:::-;28360:33;28377:15;28387:4;;;;;;;;;;;28377:9;:15::i;:::-;28360:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;28353:61;;28280:142;:::o;27945:183::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28055:11:::1;;;;;;;;;;;:35;;;28091:10;28103:16;28055:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;27945:183:::0;;:::o;4602:103::-;4657:4;4692:5;;;;;;;;;;;4681:16;;:7;:16;;;4674:23;;4602:103;;;:::o;16395:80::-;16447:5;13396:1;16456:16;;16395:80;:::o;26672:94::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26753:5:::1;26735:7;:15;26743:6;26735:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;26672:94:::0;:::o;14733:38::-;;;;;;;;;;;;;:::o;17298:117::-;17353:4;17377:30;17385:7;17394:12;;17377:7;:30::i;:::-;17370:37;;17298:117;;;:::o;25842:96::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25924:6:::1;25909:12;:21;;;;25842:96:::0;:::o;25689:145::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25791:4:::1;25776:12;;:19;;;;:::i;:::-;25766:6;:29;;25758:38;;;::::0;::::1;;25820:6;25807:10;:19;;;;25689:145:::0;:::o;26301:120::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26407:6:::1;26385:11;:19;26397:6;26385:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;26301:120:::0;;:::o;15112:30::-;;;;;;;;;;;;;:::o;24523:142::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;24570:15:::1;24588:21;24570:39;;24628:10;24620:28;;:37;24649:7;24620:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24559:106;24523:142::o:0;16822:105::-;16888:7;16906:9;:18;16916:7;16906:18;;;;;;;;;;;;;;;;16899:25;;16822:105;;;:::o;13477:51::-;;;;:::o;13541:48::-;;;;:::o;16657:78::-;16709:7;16727:5;;;;;;;;;;;16720:12;;16657:78;:::o;26569:91::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26648:4:::1;26630:7;:15;26638:6;26630:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;26569:91:::0;:::o;16481:84::-;16531:13;16555:7;;;;;;;;;;;;;;;;;16548:14;;16481:84;:::o;28136:136::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28226:6:::1;28220:3;:12;28212:21;;;::::0;::::1;;28261:3;28244:14;:20;;;;28136:136:::0;:::o;27354:228::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27497:22:::1;27473:21;;:46;;;;;;;;;;;;;;;;;;27553:21;27530:20;;:44;;;;;;;;;;;;;;;;;;27354:228:::0;;:::o;15030:33::-;;;;;;;;;;;;;:::o;14438:19::-;;;;;;;;;;;;;:::o;17423:156::-;17503:4;17527:44;17541:10;17553:9;17564:6;17527:13;:44::i;:::-;17520:51;;17423:156;;;;:::o;23726:105::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23822:1:::1;23791:28;:32;;;;23726:105::o:0;4275:94::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4357:4:::1;4335:14:::0;:19:::1;4350:3;4335:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4275:94:::0;:::o;14466:25::-;;;;:::o;14498:34::-;;;;:::o;14109:79::-;;;;;;;;;;;;;:::o;28430:167::-;28498:7;28525:64;28566:22;:20;:22::i;:::-;28525:36;28538:22;28558:1;28538:15;28548:4;;;;;;;;;;;28538:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;28525:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;28518:71;;28430:167;;;:::o;20447:691::-;20496:7;21122:8;;21115:15;;20447:691;:::o;16933:133::-;17017:7;17035:11;:19;17047:6;17035:19;;;;;;;;;;;;;;;:28;17055:7;17035:28;;;;;;;;;;;;;;;;17028:35;;16933:133;;;;:::o;27590:156::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27696:8:::1;27682:11;;:22;;;;;;;;;;;;;;;;;;27731:7;27715:13;:23;;;;27590:156:::0;;:::o;12877:48::-;12908:17;12877:48;;;:::o;14209:78::-;;;;;;;;;;;;;:::o;4445:97::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4529:5:::1;4507:14;:19;4522:3;4507:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4445:97:::0;:::o;20235:204::-;20291:7;20332:12;20327:1;20314:10;;:14;;;;:::i;:::-;:30;20311:54;;20354:8;;20347:15;;;;20311:54;20378:7;20375:31;;;20395:8;;20388:15;;;;20375:31;20423:8;;20416:15;;20235:204;;;;:::o;5002:173::-;3991:19;3999:10;3991:7;:19::i;:::-;3983:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5086:3:::1;5078:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;5122:4;5100:14:::0;:19:::1;5115:3;5100:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5142:25;5163:3;5142:25;;;;;;:::i;:::-;;;;;;;;5002:173:::0;:::o;25946:347::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26061:4:::1;26043:23;;:6;:23;;;;:41;;;;;26080:4;;;;;;;;;;;26070:14;;:6;:14;;;;26043:41;26035:50;;;::::0;::::1;;26123:6;26096:16;:24;26113:6;26096:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;26143:6;26140:146;;;26165:11;;;;;;;;;;;:20;;;26186:6;26194:1;26165:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26140:146;;;26227:11;;;;;;;;;;;:20;;;26248:6;26256:9;:17;26266:6;26256:17;;;;;;;;;;;;;;;;26227:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26140:146;25946:347:::0;;:::o;26429:128::-;4160:24;4173:10;4160:12;:24::i;:::-;4152:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26543:6:::1;26517:15;:23;26533:6;26517:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;26429:128:::0;;:::o;14401:30::-;;;;;;;;;;;;;:::o;4776:107::-;4832:4;4856:14;:19;4871:3;4856:19;;;;;;;;;;;;;;;;;;;;;;;;;4849:26;;4776:107;;;:::o;1877:98::-;1935:7;1966:1;1962;:5;;;;:::i;:::-;1955:12;;1877:98;;;;:::o;1559:::-;1617:7;1648:1;1644;:5;;;;:::i;:::-;1637:12;;1559:98;;;;:::o;2089:206::-;2175:7;2233:1;2228;:6;;2236:12;2220:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2275:1;2271;:5;2264:12;;2089:206;;;;;:::o;17960:1627::-;18052:4;18072:6;;;;;;;;;;;18069:63;;;18088:41;18103:6;18111:9;18122:6;18088:14;:41::i;:::-;18081:48;;;;18069:63;18179:21;18203:42;18179:66;;18320:11;18344:4;;;;;;;;;;;18332:16;;:9;:16;;;:45;;;;18364:13;18351:26;;:9;:26;;;18332:45;18320:57;;18398:28;18411:6;18419;18398:12;:28::i;:::-;18507:6;18506:7;:30;;;;;18518:7;:18;18526:9;18518:18;;;;;;;;;;;;;;;;;;;;;;;;;18517:19;18506:30;18502:148;;;18594:10;;18584:6;18561:9;:20;18571:9;18561:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;18560:44;18552:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;18502:148;18712:6;18708:135;;;18738:16;:14;:16::i;:::-;18735:35;;;18757:10;:8;:10::i;:::-;18735:35;18787:19;:17;:19::i;:::-;18784:48;;;18809:20;:18;:20::i;:::-;18784:48;18708:135;18976:53;18998:6;18976:53;;;;;;;;;;;;;;;;;:9;:17;18986:6;18976:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18956:9;:17;18966:6;18956:17;;;;;;;;;;;;;;;:73;;;;19042:22;19067:21;19081:6;19067:13;:21::i;:::-;:67;;19128:6;19067:67;;;19091:34;19099:6;19107:9;19118:6;19091:7;:34::i;:::-;19067:67;19042:92;;19170:40;19195:14;19170:9;:20;19180:9;19170:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;19147:9;:20;19157:9;19147:20;;;;;;;;;;;;;;;:63;;;;19227:16;:24;19244:6;19227:24;;;;;;;;;;;;;;;;;;;;;;;;;19223:96;;19258:11;;;;;;;;;;;:20;;;19279:6;19287:9;:17;19297:6;19287:17;;;;;;;;;;;;;;;;19258:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19254:63;;;;;;19223:96;19333:16;:27;19350:9;19333:27;;;;;;;;;;;;;;;;;;;;;;;;;19329:105;;19367:11;;;;;;;;;;;:20;;;19388:9;19399;:20;19409:9;19399:20;;;;;;;;;;;;;;;;19367:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19363:69;;;;;;19329:105;19450:11;;;;;;;;;;;:19;;;19470:14;;19450:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19446:51;;;;;;19531:9;19514:43;;19523:6;19514:43;;;19542:14;19514:43;;;;;;:::i;:::-;;;;;;;;19575:4;19568:11;;;;;17960:1627;;;;;;:::o;1665:98::-;1723:7;1754:1;1750;:5;;;;:::i;:::-;1743:12;;1665:98;;;;:::o;1771:::-;1829:7;1860:1;1856;:5;;;;:::i;:::-;1849:12;;1771:98;;;;:::o;19595:332::-;19688:4;19725:53;19747:6;19725:53;;;;;;;;;;;;;;;;;:9;:17;19735:6;19725:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19705:9;:17;19715:6;19705:17;;;;;;;;;;;;;;;:73;;;;19812:32;19837:6;19812:9;:20;19822:9;19812:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19789:9;:20;19799:9;19789:20;;;;;;;;;;;;;;;:55;;;;19915:4;19908:11;;19595:332;;;;;:::o;19939:166::-;20036:12;;20026:6;:22;;:49;;;;20052:15;:23;20068:6;20052:23;;;;;;;;;;;;;;;;;;;;;;;;;20026:49;20018:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19939:166;;:::o;21526:197::-;21575:4;21613;;;;;;;;;;;21599:18;;:10;:18;;;;:38;;;;;21631:6;;;;;;;;;;;21630:7;21599:38;:62;;;;;21650:11;;;;;;;;;;;21599:62;:116;;;;;21702:13;;21674:9;:24;21692:4;21674:24;;;;;;;;;;;;;;;;:41;;21599:116;21592:123;;21526:197;:::o;21731:1661::-;15263:4;15254:6;;:13;;;;;;;;;;;;;;;;;;21780:27:::1;21810:60;21826:15;;21843:26;;21810:15;:60::i;:::-;:79;;21877:12;;21810:79;;;21873:1;21810:79;21780:109;;21900:23;21926:59;21983:1;21926:52;21969:8;;21926:38;21944:19;21926:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;21900:85;;21996:20;22019:34;22037:15;22019:13;;:17;;:34;;;;:::i;:::-;21996:57;;22066:21;22104:1;22090:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22066:40;;22135:4;22117;22122:1;22117:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;22161:4;;;;;;;;;;;22151;22156:1;22151:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;22176:21;22200;22176:45;;22234:6;;;;;;;;;;;:57;;;22306:12;22333:1;22349:4;22376;22396:15;22234:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22435:17;22455:40;22481:13;22455:21;:25;;:40;;;;:::i;:::-;22435:60;;22508:19;22530:40;22543:26;22567:1;22543:19;:23;;:26;;;;:::i;:::-;22530:8;;:12;;:40;;;;:::i;:::-;22508:62;;22583:26;22612:58;22668:1;22612:51;22651:11;22612:34;22626:19;22612:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;22583:87;;22681:27;22711:45;22744:11;22711:28;22725:13;;22711:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;22681:75;;22767:26;22796:44;22828:11;22796:27;22810:12;;22796:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;22767:73;;22857:11;;;;;;;;;;;:19;;;22884;22857:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22853:65;;;;;;22936:20;;;;;;;;;;;22928:38;;:58;22967:18;22928:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;23044:1;23026:15;:19;23023:362;;;23061:6;;;;;;;;;;;:22;;;23091:18;23137:4;23161:15;23195:1;23215::::0;23235:21:::1;;;;;;;;;;;23275:15;23061:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23325:48;23337:18;23357:15;23325:48;;;;;;;:::i;:::-;;;;;;;;23023:362;21769:1623;;;;;;;;;;15281:5:::0;15272:6;;:14;;;;;;;;;;;;;;;;;;21731:1661::o;23400:318::-;23452:4;23490;;;;;;;;;;;23476:18;;:10;:18;;;;:38;;;;;23508:6;;;;;;;;;;;23507:7;23476:38;:69;;;;;23527:18;;;;;;;;;;;23476:69;:143;;;;;23607:12;23581:22;;23558:20;;:45;;;;:::i;:::-;:61;;23476:143;:234;;;;;23693:17;;23668:21;:42;;23476:234;23469:241;;23400:318;:::o;23839:303::-;23889:34;23899:17;;23918:4;;;;;;;;;;;23889:9;:34::i;:::-;23957:12;23934:20;:35;;;;24005:45;24032:17;;24005:22;;:26;;:45;;;;:::i;:::-;23980:22;:70;;;;24089:14;;24064:22;;:39;24061:74;;;24127:5;24106:18;;:26;;;;;;;;;;;;;;;;;;24061:74;23839:303::o;20113:114::-;20175:4;20200:11;:19;20212:6;20200:19;;;;;;;;;;;;;;;;;;;;;;;;;20199:20;20192:27;;20113:114;;;:::o;21146:372::-;21231:7;21251:17;21271:61;21317:14;;21271:41;21282:29;21306:4;;;;;;;;;;;21294:16;;:8;:16;;;21282:11;:29::i;:::-;21271:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;21251:81;;21372:39;21401:9;21372;:24;21390:4;21372:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;21345:9;:24;21363:4;21345:24;;;;;;;;;;;;;;;:66;;;;21452:4;21427:42;;21436:6;21427:42;;;21459:9;21427:42;;;;;;:::i;:::-;;;;;;;;21489:21;21500:9;21489:6;:10;;:21;;;;:::i;:::-;21482:28;;;21146:372;;;;;:::o;24150:361::-;15263:4;15254:6;;:13;;;;;;;;;;;;;;;;;;24226:21:::1;24264:1;24250:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24226:40;;24287:4;;;;;;;;;;;24277;24282:1;24277:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;24320:4;24302;24307:1;24302:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;24338:6;;;;;;;;;;;:57;;;24403:6;24425:1;24441:4;24460:2;24477:15;24338:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;24215:296;15281:5:::0;15272:6;;:14;;;;;;;;;;;;;;;;;;24150:361;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;597:143;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:119;;;860:79;;:::i;:::-;822:119;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;746:329;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:119;;;1203:79;;:::i;:::-;1165:119;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1081:345;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:119;;;1563:79;;:::i;:::-;1525:119;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1432:474;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:119;;;2060:79;;:::i;:::-;2022:119;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;1912:619;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:119;;;2665:79;;:::i;:::-;2627:119;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2537:468;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:119;;;3142:79;;:::i;:::-;3104:119;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3011:474;;;;;:::o;3491:323::-;3547:6;3596:2;3584:9;3575:7;3571:23;3567:32;3564:119;;;3602:79;;:::i;:::-;3564:119;3722:1;3747:50;3789:7;3780:6;3769:9;3765:22;3747:50;:::i;:::-;3737:60;;3693:114;3491:323;;;;:::o;3820:468::-;3885:6;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:50;4135:7;4126:6;4115:9;4111:22;4093:50;:::i;:::-;4083:60;;4039:114;4192:2;4218:53;4263:7;4254:6;4243:9;4239:22;4218:53;:::i;:::-;4208:63;;4163:118;3820:468;;;;;:::o;4294:759::-;4377:6;4385;4393;4401;4450:3;4438:9;4429:7;4425:23;4421:33;4418:120;;;4457:79;;:::i;:::-;4418:120;4577:1;4602:50;4644:7;4635:6;4624:9;4620:22;4602:50;:::i;:::-;4592:60;;4548:114;4701:2;4727:53;4772:7;4763:6;4752:9;4748:22;4727:53;:::i;:::-;4717:63;;4672:118;4829:2;4855:53;4900:7;4891:6;4880:9;4876:22;4855:53;:::i;:::-;4845:63;;4800:118;4957:2;4983:53;5028:7;5019:6;5008:9;5004:22;4983:53;:::i;:::-;4973:63;;4928:118;4294:759;;;;;;;:::o;5059:329::-;5118:6;5167:2;5155:9;5146:7;5142:23;5138:32;5135:119;;;5173:79;;:::i;:::-;5135:119;5293:1;5318:53;5363:7;5354:6;5343:9;5339:22;5318:53;:::i;:::-;5308:63;;5264:117;5059:329;;;;:::o;5394:474::-;5462:6;5470;5519:2;5507:9;5498:7;5494:23;5490:32;5487:119;;;5525:79;;:::i;:::-;5487:119;5645:1;5670:53;5715:7;5706:6;5695:9;5691:22;5670:53;:::i;:::-;5660:63;;5616:117;5772:2;5798:53;5843:7;5834:6;5823:9;5819:22;5798:53;:::i;:::-;5788:63;;5743:118;5394:474;;;;;:::o;5874:619::-;5951:6;5959;5967;6016:2;6004:9;5995:7;5991:23;5987:32;5984:119;;;6022:79;;:::i;:::-;5984:119;6142:1;6167:53;6212:7;6203:6;6192:9;6188:22;6167:53;:::i;:::-;6157:63;;6113:117;6269:2;6295:53;6340:7;6331:6;6320:9;6316:22;6295:53;:::i;:::-;6285:63;;6240:118;6397:2;6423:53;6468:7;6459:6;6448:9;6444:22;6423:53;:::i;:::-;6413:63;;6368:118;5874:619;;;;;:::o;6499:663::-;6587:6;6595;6603;6652:2;6640:9;6631:7;6627:23;6623:32;6620:119;;;6658:79;;:::i;:::-;6620:119;6778:1;6803:64;6859:7;6850:6;6839:9;6835:22;6803:64;:::i;:::-;6793:74;;6749:128;6916:2;6942:64;6998:7;6989:6;6978:9;6974:22;6942:64;:::i;:::-;6932:74;;6887:129;7055:2;7081:64;7137:7;7128:6;7117:9;7113:22;7081:64;:::i;:::-;7071:74;;7026:129;6499:663;;;;;:::o;7168:911::-;7263:6;7271;7279;7287;7295;7344:3;7332:9;7323:7;7319:23;7315:33;7312:120;;;7351:79;;:::i;:::-;7312:120;7471:1;7496:53;7541:7;7532:6;7521:9;7517:22;7496:53;:::i;:::-;7486:63;;7442:117;7598:2;7624:53;7669:7;7660:6;7649:9;7645:22;7624:53;:::i;:::-;7614:63;;7569:118;7726:2;7752:53;7797:7;7788:6;7777:9;7773:22;7752:53;:::i;:::-;7742:63;;7697:118;7854:2;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7825:118;7982:3;8009:53;8054:7;8045:6;8034:9;8030:22;8009:53;:::i;:::-;7999:63;;7953:119;7168:911;;;;;;;;:::o;8085:179::-;8154:10;8175:46;8217:3;8209:6;8175:46;:::i;:::-;8253:4;8248:3;8244:14;8230:28;;8085:179;;;;:::o;8270:147::-;8365:45;8404:5;8365:45;:::i;:::-;8360:3;8353:58;8270:147;;:::o;8423:108::-;8500:24;8518:5;8500:24;:::i;:::-;8495:3;8488:37;8423:108;;:::o;8537:118::-;8624:24;8642:5;8624:24;:::i;:::-;8619:3;8612:37;8537:118;;:::o;8691:732::-;8810:3;8839:54;8887:5;8839:54;:::i;:::-;8909:86;8988:6;8983:3;8909:86;:::i;:::-;8902:93;;9019:56;9069:5;9019:56;:::i;:::-;9098:7;9129:1;9114:284;9139:6;9136:1;9133:13;9114:284;;;9215:6;9209:13;9242:63;9301:3;9286:13;9242:63;:::i;:::-;9235:70;;9328:60;9381:6;9328:60;:::i;:::-;9318:70;;9174:224;9161:1;9158;9154:9;9149:14;;9114:284;;;9118:14;9414:3;9407:10;;8815:608;;;8691:732;;;;:::o;9429:109::-;9510:21;9525:5;9510:21;:::i;:::-;9505:3;9498:34;9429:109;;:::o;9544:179::-;9655:61;9710:5;9655:61;:::i;:::-;9650:3;9643:74;9544:179;;:::o;9729:147::-;9824:45;9863:5;9824:45;:::i;:::-;9819:3;9812:58;9729:147;;:::o;9882:364::-;9970:3;9998:39;10031:5;9998:39;:::i;:::-;10053:71;10117:6;10112:3;10053:71;:::i;:::-;10046:78;;10133:52;10178:6;10173:3;10166:4;10159:5;10155:16;10133:52;:::i;:::-;10210:29;10232:6;10210:29;:::i;:::-;10205:3;10201:39;10194:46;;9974:272;9882:364;;;;:::o;10252:366::-;10394:3;10415:67;10479:2;10474:3;10415:67;:::i;:::-;10408:74;;10491:93;10580:3;10491:93;:::i;:::-;10609:2;10604:3;10600:12;10593:19;;10252:366;;;:::o;10624:::-;10766:3;10787:67;10851:2;10846:3;10787:67;:::i;:::-;10780:74;;10863:93;10952:3;10863:93;:::i;:::-;10981:2;10976:3;10972:12;10965:19;;10624:366;;;:::o;10996:::-;11138:3;11159:67;11223:2;11218:3;11159:67;:::i;:::-;11152:74;;11235:93;11324:3;11235:93;:::i;:::-;11353:2;11348:3;11344:12;11337:19;;10996:366;;;:::o;11368:365::-;11510:3;11531:66;11595:1;11590:3;11531:66;:::i;:::-;11524:73;;11606:93;11695:3;11606:93;:::i;:::-;11724:2;11719:3;11715:12;11708:19;;11368:365;;;:::o;11739:366::-;11881:3;11902:67;11966:2;11961:3;11902:67;:::i;:::-;11895:74;;11978:93;12067:3;11978:93;:::i;:::-;12096:2;12091:3;12087:12;12080:19;;11739:366;;;:::o;12111:118::-;12198:24;12216:5;12198:24;:::i;:::-;12193:3;12186:37;12111:118;;:::o;12235:112::-;12318:22;12334:5;12318:22;:::i;:::-;12313:3;12306:35;12235:112;;:::o;12353:222::-;12446:4;12484:2;12473:9;12469:18;12461:26;;12497:71;12565:1;12554:9;12550:17;12541:6;12497:71;:::i;:::-;12353:222;;;;:::o;12581:238::-;12682:4;12720:2;12709:9;12705:18;12697:26;;12733:79;12809:1;12798:9;12794:17;12785:6;12733:79;:::i;:::-;12581:238;;;;:::o;12825:348::-;12954:4;12992:2;12981:9;12977:18;12969:26;;13005:71;13073:1;13062:9;13058:17;13049:6;13005:71;:::i;:::-;13086:80;13162:2;13151:9;13147:18;13138:6;13086:80;:::i;:::-;12825:348;;;;;:::o;13179:332::-;13300:4;13338:2;13327:9;13323:18;13315:26;;13351:71;13419:1;13408:9;13404:17;13395:6;13351:71;:::i;:::-;13432:72;13500:2;13489:9;13485:18;13476:6;13432:72;:::i;:::-;13179:332;;;;;:::o;13517:807::-;13766:4;13804:3;13793:9;13789:19;13781:27;;13818:71;13886:1;13875:9;13871:17;13862:6;13818:71;:::i;:::-;13899:72;13967:2;13956:9;13952:18;13943:6;13899:72;:::i;:::-;13981:80;14057:2;14046:9;14042:18;14033:6;13981:80;:::i;:::-;14071;14147:2;14136:9;14132:18;14123:6;14071:80;:::i;:::-;14161:73;14229:3;14218:9;14214:19;14205:6;14161:73;:::i;:::-;14244;14312:3;14301:9;14297:19;14288:6;14244:73;:::i;:::-;13517:807;;;;;;;;;:::o;14330:210::-;14417:4;14455:2;14444:9;14440:18;14432:26;;14468:65;14530:1;14519:9;14515:17;14506:6;14468:65;:::i;:::-;14330:210;;;;:::o;14546:270::-;14663:4;14701:2;14690:9;14686:18;14678:26;;14714:95;14806:1;14795:9;14791:17;14782:6;14714:95;:::i;:::-;14546:270;;;;:::o;14822:720::-;15057:4;15095:3;15084:9;15080:19;15072:27;;15109:79;15185:1;15174:9;15170:17;15161:6;15109:79;:::i;:::-;15235:9;15229:4;15225:20;15220:2;15209:9;15205:18;15198:48;15263:108;15366:4;15357:6;15263:108;:::i;:::-;15255:116;;15381:72;15449:2;15438:9;15434:18;15425:6;15381:72;:::i;:::-;15463;15531:2;15520:9;15516:18;15507:6;15463:72;:::i;:::-;14822:720;;;;;;;:::o;15548:313::-;15661:4;15699:2;15688:9;15684:18;15676:26;;15748:9;15742:4;15738:20;15734:1;15723:9;15719:17;15712:47;15776:78;15849:4;15840:6;15776:78;:::i;:::-;15768:86;;15548:313;;;;:::o;15867:419::-;16033:4;16071:2;16060:9;16056:18;16048:26;;16120:9;16114:4;16110:20;16106:1;16095:9;16091:17;16084:47;16148:131;16274:4;16148:131;:::i;:::-;16140:139;;15867:419;;;:::o;16292:::-;16458:4;16496:2;16485:9;16481:18;16473:26;;16545:9;16539:4;16535:20;16531:1;16520:9;16516:17;16509:47;16573:131;16699:4;16573:131;:::i;:::-;16565:139;;16292:419;;;:::o;16717:::-;16883:4;16921:2;16910:9;16906:18;16898:26;;16970:9;16964:4;16960:20;16956:1;16945:9;16941:17;16934:47;16998:131;17124:4;16998:131;:::i;:::-;16990:139;;16717:419;;;:::o;17142:::-;17308:4;17346:2;17335:9;17331:18;17323:26;;17395:9;17389:4;17385:20;17381:1;17370:9;17366:17;17359:47;17423:131;17549:4;17423:131;:::i;:::-;17415:139;;17142:419;;;:::o;17567:::-;17733:4;17771:2;17760:9;17756:18;17748:26;;17820:9;17814:4;17810:20;17806:1;17795:9;17791:17;17784:47;17848:131;17974:4;17848:131;:::i;:::-;17840:139;;17567:419;;;:::o;17992:222::-;18085:4;18123:2;18112:9;18108:18;18100:26;;18136:71;18204:1;18193:9;18189:17;18180:6;18136:71;:::i;:::-;17992:222;;;;:::o;18220:831::-;18483:4;18521:3;18510:9;18506:19;18498:27;;18535:71;18603:1;18592:9;18588:17;18579:6;18535:71;:::i;:::-;18616:80;18692:2;18681:9;18677:18;18668:6;18616:80;:::i;:::-;18743:9;18737:4;18733:20;18728:2;18717:9;18713:18;18706:48;18771:108;18874:4;18865:6;18771:108;:::i;:::-;18763:116;;18889:72;18957:2;18946:9;18942:18;18933:6;18889:72;:::i;:::-;18971:73;19039:3;19028:9;19024:19;19015:6;18971:73;:::i;:::-;18220:831;;;;;;;;:::o;19057:332::-;19178:4;19216:2;19205:9;19201:18;19193:26;;19229:71;19297:1;19286:9;19282:17;19273:6;19229:71;:::i;:::-;19310:72;19378:2;19367:9;19363:18;19354:6;19310:72;:::i;:::-;19057:332;;;;;:::o;19395:214::-;19484:4;19522:2;19511:9;19507:18;19499:26;;19535:67;19599:1;19588:9;19584:17;19575:6;19535:67;:::i;:::-;19395:214;;;;:::o;19696:132::-;19763:4;19786:3;19778:11;;19816:4;19811:3;19807:14;19799:22;;19696:132;;;:::o;19834:114::-;19901:6;19935:5;19929:12;19919:22;;19834:114;;;:::o;19954:99::-;20006:6;20040:5;20034:12;20024:22;;19954:99;;;:::o;20059:113::-;20129:4;20161;20156:3;20152:14;20144:22;;20059:113;;;:::o;20178:184::-;20277:11;20311:6;20306:3;20299:19;20351:4;20346:3;20342:14;20327:29;;20178:184;;;;:::o;20368:169::-;20452:11;20486:6;20481:3;20474:19;20526:4;20521:3;20517:14;20502:29;;20368:169;;;;:::o;20543:305::-;20583:3;20602:20;20620:1;20602:20;:::i;:::-;20597:25;;20636:20;20654:1;20636:20;:::i;:::-;20631:25;;20790:1;20722:66;20718:74;20715:1;20712:81;20709:107;;;20796:18;;:::i;:::-;20709:107;20840:1;20837;20833:9;20826:16;;20543:305;;;;:::o;20854:185::-;20894:1;20911:20;20929:1;20911:20;:::i;:::-;20906:25;;20945:20;20963:1;20945:20;:::i;:::-;20940:25;;20984:1;20974:35;;20989:18;;:::i;:::-;20974:35;21031:1;21028;21024:9;21019:14;;20854:185;;;;:::o;21045:348::-;21085:7;21108:20;21126:1;21108:20;:::i;:::-;21103:25;;21142:20;21160:1;21142:20;:::i;:::-;21137:25;;21330:1;21262:66;21258:74;21255:1;21252:81;21247:1;21240:9;21233:17;21229:105;21226:131;;;21337:18;;:::i;:::-;21226:131;21385:1;21382;21378:9;21367:20;;21045:348;;;;:::o;21399:191::-;21439:4;21459:20;21477:1;21459:20;:::i;:::-;21454:25;;21493:20;21511:1;21493:20;:::i;:::-;21488:25;;21532:1;21529;21526:8;21523:34;;;21537:18;;:::i;:::-;21523:34;21582:1;21579;21575:9;21567:17;;21399:191;;;;:::o;21596:96::-;21633:7;21662:24;21680:5;21662:24;:::i;:::-;21651:35;;21596:96;;;:::o;21698:104::-;21743:7;21772:24;21790:5;21772:24;:::i;:::-;21761:35;;21698:104;;;:::o;21808:90::-;21842:7;21885:5;21878:13;21871:21;21860:32;;21808:90;;;:::o;21904:126::-;21941:7;21981:42;21974:5;21970:54;21959:65;;21904:126;;;:::o;22036:77::-;22073:7;22102:5;22091:16;;22036:77;;;:::o;22119:86::-;22154:7;22194:4;22187:5;22183:16;22172:27;;22119:86;;;:::o;22211:134::-;22269:9;22302:37;22333:5;22302:37;:::i;:::-;22289:50;;22211:134;;;:::o;22351:150::-;22425:9;22458:37;22489:5;22458:37;:::i;:::-;22445:50;;22351:150;;;:::o;22507:121::-;22565:9;22598:24;22616:5;22598:24;:::i;:::-;22585:37;;22507:121;;;:::o;22634:126::-;22684:9;22717:37;22748:5;22717:37;:::i;:::-;22704:50;;22634:126;;;:::o;22766:113::-;22816:9;22849:24;22867:5;22849:24;:::i;:::-;22836:37;;22766:113;;;:::o;22885:307::-;22953:1;22963:113;22977:6;22974:1;22971:13;22963:113;;;23062:1;23057:3;23053:11;23047:18;23043:1;23038:3;23034:11;23027:39;22999:2;22996:1;22992:10;22987:15;;22963:113;;;23094:6;23091:1;23088:13;23085:101;;;23174:1;23165:6;23160:3;23156:16;23149:27;23085:101;22934:258;22885:307;;;:::o;23198:180::-;23246:77;23243:1;23236:88;23343:4;23340:1;23333:15;23367:4;23364:1;23357:15;23384:180;23432:77;23429:1;23422:88;23529:4;23526:1;23519:15;23553:4;23550:1;23543:15;23570:180;23618:77;23615:1;23608:88;23715:4;23712:1;23705:15;23739:4;23736:1;23729:15;23756:180;23804:77;23801:1;23794:88;23901:4;23898:1;23891:15;23925:4;23922:1;23915:15;24065:117;24174:1;24171;24164:12;24188:102;24229:6;24280:2;24276:7;24271:2;24264:5;24260:14;24256:28;24246:38;;24188:102;;;:::o;24296:167::-;24436:19;24432:1;24424:6;24420:14;24413:43;24296:167;:::o;24469:179::-;24609:31;24605:1;24597:6;24593:14;24586:55;24469:179;:::o;24654:170::-;24794:22;24790:1;24782:6;24778:14;24771:46;24654:170;:::o;24830:156::-;24970:8;24966:1;24958:6;24954:14;24947:32;24830:156;:::o;24992:161::-;25132:13;25128:1;25120:6;25116:14;25109:37;24992:161;:::o;25159:122::-;25232:24;25250:5;25232:24;:::i;:::-;25225:5;25222:35;25212:63;;25271:1;25268;25261:12;25212:63;25159:122;:::o;25287:138::-;25368:32;25394:5;25368:32;:::i;:::-;25361:5;25358:43;25348:71;;25415:1;25412;25405:12;25348:71;25287:138;:::o;25431:116::-;25501:21;25516:5;25501:21;:::i;:::-;25494:5;25491:32;25481:60;;25537:1;25534;25527:12;25481:60;25431:116;:::o;25553:122::-;25626:24;25644:5;25626:24;:::i;:::-;25619:5;25616:35;25606:63;;25665:1;25662;25655:12;25606:63;25553:122;:::o
Swarm Source
ipfs://c1eb0fe113c542bea25449b989ec611941af49fac86132dbc4f491c72d203c02
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.