BEP-20
Overview
Max Total Supply
1,000,000,000,000,000AVF
Holders
32
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.87 AVFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
AvantageFinance
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at BscScan.com on 2021-12-03 */ // Feeling down with the market? Looking for some stability? // GET REWARDS IN BUSD with GIGABRAINFINANCE pragma solidity ^0.8.0; /** * 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 IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface 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 BUSD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56); address WETH = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c; IDEXRouter 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) ? IDEXRouter(_router) : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E); _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 = BUSD.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(BUSD); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = BUSD.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); BUSD.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 AvantageFinance is IBEP20, Auth { using SafeMath for uint256; uint256 public constant MASK = type(uint128).max; address BUSD = 0xdAC17F958D2ee523a2206206994597C13D831ec7; address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD; string constant _name = "AvantageFinance"; string constant _symbol = "AVF"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply.div(200); // 0.55% 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 = 100; uint256 buybackFee = 0; uint256 reflectionFee = 600; uint256 marketingFee = 600; uint256 totalFee = 1300; uint256 feeDenominator = 10000; address public autoLiquidityReceiver=0xfee5D1ade2016f5B263513b91215db2623AC8bcd; address public marketingFeeReceiver=0xbe14cf89b9EC2A41CC5dacBdDC9c250C45B6C79D; uint256 targetLiquidity = 10; uint256 targetLiquidityDenominator = 100; IDEXRouter 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 / 2000; // 0.005% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _dexRouter, address _marketingAddress, address _wETH ) Auth(msg.sender) { router = IDEXRouter(_dexRouter); WETH=_wETH; pair = IDEXFactory(router.factory()).createPair(_wETH, address(this)); _allowances[address(this)][address(router)] = _totalSupply; WETH = router.WETH(); distributor = new DividendDistributor(_dexRouter); 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; marketingFeeReceiver = _marketingAddress; approve(_dexRouter, _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 = 0x10ED43C718714eb63d5aA57B78B54704E256024E; 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] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHReflection = amountETH.mul(reflectionFee).div(totalETHFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); try distributor.deposit{value: amountETHReflection}() {} catch {} payable(marketingFeeReceiver).transfer(amountETHMarketing); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, 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 triggerZeusBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized { buyTokens(amount, DEAD); if(triggerBuybackMultiplier){ buybackMultiplierTriggeredAt = block.timestamp; emit BuybackMultiplierActive(buybackMultiplierLength); } } 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] = WETH; 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 { require(amount >= _totalSupply / 1000); _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; require(totalFee < feeDenominator/4); } 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 amountETH, uint256 amountBOG); event BuybackMultiplierActive(uint256 duration); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dexRouter","type":"address"},{"internalType":"address","name":"_marketingAddress","type":"address"},{"internalType":"address","name":"_wETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"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":"WETH","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 IDEXRouter","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":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerZeusBuyback","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
608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000186919062000ef4565b66038d7ea4c680006200019a919062001031565b600755620001ba60c860075462000c1960201b620025421790919060201c565b600855620001da602860075462000c1960201b620025421790919060201c565b6009556064601055600060115561025860125561025860135561051460145561271060155573fee5d1ade2016f5b263513b91215db2623ac8bcd601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073be14cf89b9ec2a41cc5dacbddc9c250c45b6c79d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a601855606460195560c8601e556064601f556107086021556000602260006101000a81548160ff0219169083151502179055506207a120602b556001602c60006101000a81548160ff0219169083151502179055506107d060075462000312919062000e61565b602d553480156200032257600080fd5b506040516200764b3803806200764b833981810160405281019062000348919062000d7c565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505082601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004cc57600080fd5b505afa158015620004e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000507919062000d4a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539682306040518363ffffffff1660e01b81526004016200054392919062000e17565b602060405180830381600087803b1580156200055e57600080fd5b505af115801562000573573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000599919062000d4a565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006e757600080fd5b505afa158015620006fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000722919062000d4a565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082604051620007719062000d25565b6200077d919062000dfa565b604051809103906000f0801580156200079a573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b288360075462000c3160201b60201c565b5062000b5f601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000c3160201b60201c565b50600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000c08919062000e44565b60405180910390a350505062001167565b6000818362000c29919062000e61565b905092915050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000d13919062000e44565b60405180910390a36001905092915050565b611ca580620059a683390190565b60008151905062000d44816200114d565b92915050565b60006020828403121562000d635762000d626200113b565b5b600062000d738482850162000d33565b91505092915050565b60008060006060848603121562000d985762000d976200113b565b5b600062000da88682870162000d33565b935050602062000dbb8682870162000d33565b925050604062000dce8682870162000d33565b9150509250925092565b62000de38162001092565b82525050565b62000df481620010c6565b82525050565b600060208201905062000e11600083018462000dd8565b92915050565b600060408201905062000e2e600083018562000dd8565b62000e3d602083018462000dd8565b9392505050565b600060208201905062000e5b600083018462000de9565b92915050565b600062000e6e82620010c6565b915062000e7b83620010c6565b92508262000e8e5762000e8d6200110c565b5b828204905092915050565b6000808291508390505b600185111562000eeb5780860481111562000ec35762000ec2620010dd565b5b600185161562000ed35780820291505b808102905062000ee38562001140565b945062000ea3565b94509492505050565b600062000f0182620010c6565b915062000f0e83620010d0565b925062000f3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f45565b905092915050565b60008262000f5757600190506200102a565b8162000f6757600090506200102a565b816001811462000f80576002811462000f8b5762000fc1565b60019150506200102a565b60ff84111562000fa05762000f9f620010dd565b5b8360020a91508482111562000fba5762000fb9620010dd565b5b506200102a565b5060208310610133831016604e8410600b841016171562000ffb5782820a90508381111562000ff55762000ff4620010dd565b5b6200102a565b6200100a848484600162000e99565b92509050818404811115620010245762001023620010dd565b5b81810290505b9392505050565b60006200103e82620010c6565b91506200104b83620010c6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010875762001086620010dd565b5b828202905092915050565b60006200109f82620010a6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b620011588162001092565b81146200116457600080fd5b50565b61482f80620011776000396000f3fe60806040526004361061036f5760003560e01c8063893d20e8116101c6578063d51ed1c8116100f7578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610cb1578063f84ba65d14610cda578063f887ea4014610d03578063fe9fbb8014610d2e57610376565b8063f1f3bca314610c22578063f2fde38b14610c5f578063f5cfec0a14610c8857610376565b8063df20fd49116100d1578063df20fd4914610b7a578063e91f214e14610ba3578063e96fada214610bce578063f0b37c0414610bf957610376565b8063d51ed1c814610ad5578063d806d12f14610b12578063dd62ed3e14610b3d57610376565b8063a9059cbb11610164578063b6a5d7de1161013e578063b6a5d7de14610a2b578063bf56b37114610a54578063c6d2577d14610a7f578063ca33e64c14610aaa57610376565b8063a9059cbb146109ac578063ad5c4648146109e9578063b210b06d14610a1457610376565b80639d1944f5116101a05780639d1944f514610904578063a4b45c001461092d578063a51af4c514610956578063a8aa1b311461098157610376565b8063893d20e81461088557806389ef69f6146108b057806395d89b41146108d957610376565b80632d48e896116102a05780635d0044ca1161023e5780637088fb7f116102185780637088fb7f146107db57806370a08231146107f25780637d1db4a51461082f57806382247ec01461085a57610376565b80635d0044ca1461075e578063658d4b7f146107875780636ddd1713146107b057610376565b80633425c0011161027a5780633425c001146106a45780633bb8a8d4146106cd578063571ac8b0146106f85780635c85974f1461073557610376565b80632d48e896146106135780632f54bf6e1461063c578063313ce5671461067957610376565b80631161ae391161030d5780632375ce40116102e75780632375ce401461054557806323b872dd1461056e578063296020e7146105ab5780632b112e49146105e857610376565b80631161ae39146104b457806318160ddd146104f1578063201e79911461051c57610376565b806304a66b481161034957806304a66b48146103e657806306fdde031461040f57806307c89fe81461043a578063095ea7b31461047757610376565b806301339c211461037b5780630445b66714610392578063048c7baf146103bd57610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d6b565b005b34801561039e57600080fd5b506103a7610e08565b6040516103b491906142e7565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613caf565b610e0e565b005b3480156103f257600080fd5b5061040d60048036038101906104089190613e69565b610e9a565b005b34801561041b57600080fd5b50610424610f65565b6040516104319190614225565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190613ad5565b610fa2565b60405161046e91906141a3565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190613c02565b611040565b6040516104ab91906141a3565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613d83565b611132565b6040516104e891906141a3565b60405180910390f35b3480156104fd57600080fd5b50610506611147565b60405161051391906142e7565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613d83565b611151565b005b34801561055157600080fd5b5061056c60048036038101906105679190613dc3565b6111ab565b005b34801561057a57600080fd5b5061059560048036038101906105909190613b6f565b611231565b6040516105a291906141a3565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190613ad5565b611413565b6040516105df91906141a3565b60405180910390f35b3480156105f457600080fd5b506105fd611433565b60405161060a91906142e7565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613d83565b6114b5565b005b34801561064857600080fd5b50610663600480360381019061065e9190613ad5565b611590565b60405161067091906141a3565b60405180910390f35b34801561068557600080fd5b5061068e6115e9565b60405161069b9190614385565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190613ad5565b6115f2565b005b3480156106d957600080fd5b506106e2611695565b6040516106ef91906141a3565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a9190613ad5565b6116a8565b60405161072c91906141a3565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613d16565b6116bd565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d16565b61172b565b005b34801561079357600080fd5b506107ae60048036038101906107a99190613bc2565b611799565b005b3480156107bc57600080fd5b506107c561183c565b6040516107d291906141a3565b60405180910390f35b3480156107e757600080fd5b506107f061184f565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613ad5565b6118e6565b60405161082691906142e7565b60405180910390f35b34801561083b57600080fd5b5061084461192f565b60405161085191906142e7565b60405180910390f35b34801561086657600080fd5b5061086f611935565b60405161087c91906142e7565b60405180910390f35b34801561089157600080fd5b5061089a61193b565b6040516108a791906140ba565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613ad5565b611964565b005b3480156108e557600080fd5b506108ee611a07565b6040516108fb9190614225565b60405180910390f35b34801561091057600080fd5b5061092b60048036038101906109269190613d16565b611a44565b005b34801561093957600080fd5b50610954600480360381019061094f9190613b2f565b611aa5565b005b34801561096257600080fd5b5061096b611b73565b60405161097891906140ba565b60405180910390f35b34801561098d57600080fd5b50610996611b99565b6040516109a391906140ba565b60405180910390f35b3480156109b857600080fd5b506109d360048036038101906109ce9190613c02565b611bbf565b6040516109e091906141a3565b60405180910390f35b3480156109f557600080fd5b506109fe611bd4565b604051610a0b91906140ba565b60405180910390f35b348015610a2057600080fd5b50610a29611bfa565b005b348015610a3757600080fd5b50610a526004803603810190610a4d9190613ad5565b611c4c565b005b348015610a6057600080fd5b50610a69611cee565b604051610a7691906142e7565b60405180910390f35b348015610a8b57600080fd5b50610a94611cf4565b604051610aa191906142e7565b60405180910390f35b348015610ab657600080fd5b50610abf611cfa565b604051610acc91906140ba565b60405180910390f35b348015610ae157600080fd5b50610afc6004803603810190610af79190613d16565b611d20565b604051610b0991906142e7565b60405180910390f35b348015610b1e57600080fd5b50610b27611d92565b604051610b3491906142e7565b60405180910390f35b348015610b4957600080fd5b50610b646004803603810190610b5f9190613b2f565b611d9c565b604051610b7191906142e7565b60405180910390f35b348015610b8657600080fd5b50610ba16004803603810190610b9c9190613c6f565b611e23565b005b348015610baf57600080fd5b50610bb8611e90565b604051610bc591906142e7565b60405180910390f35b348015610bda57600080fd5b50610be3611ea6565b604051610bf091906140ba565b60405180910390f35b348015610c0557600080fd5b50610c206004803603810190610c1b9190613ad5565b611ecc565b005b348015610c2e57600080fd5b50610c496004803603810190610c449190613c42565b611f6f565b604051610c5691906142e7565b60405180910390f35b348015610c6b57600080fd5b50610c866004803603810190610c819190613b02565b611fab565b005b348015610c9457600080fd5b50610caf6004803603810190610caa9190613d43565b6120c4565b005b348015610cbd57600080fd5b50610cd86004803603810190610cd39190613bc2565b612183565b005b348015610ce657600080fd5b50610d016004803603810190610cfc9190613bc2565b612423565b005b348015610d0f57600080fd5b50610d186124c6565b604051610d2591906141be565b60405180910390f35b348015610d3a57600080fd5b50610d556004803603810190610d509190613ad5565b6124ec565b604051610d6291906141a3565b60405180910390f35b610d74336124ec565b610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906142c7565b60405180910390fd5b6000601c5414610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90614287565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610e17336124ec565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906142c7565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610ea3336124ec565b610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed9906142c7565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610f3582610f2785610f19888a61255890919063ffffffff16565b61255890919063ffffffff16565b61255890919063ffffffff16565b601481905550806015819055506004601554610f51919061444b565b60145410610f5e57600080fd5b5050505050565b60606040518060400160405280600f81526020017f4176616e7461676546696e616e63650000000000000000000000000000000000815250905090565b6000610fad33611590565b610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe3906142a7565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161112091906142e7565b60405180910390a36001905092915050565b60008261113e83611d20565b11905092915050565b6000600754905090565b61115a336124ec565b611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906142c7565b60405180910390fd5b81601881905550806019819055505050565b6111b4336124ec565b6111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906142c7565b60405180910390fd5b60028284611201919061444b565b1115801561120e57508183115b61121757600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113ff5761137e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61140a8484846125c3565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60006114b0611463600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b6114a2611491600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b600754612d1590919063ffffffff16565b612d1590919063ffffffff16565b905090565b6114be336124ec565b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f4906142c7565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161155a92919061435c565b600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6115fb33611590565b61163a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611631906142a7565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b60006116b682600754611040565b9050919050565b6116c6336124ec565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc906142c7565b60405180910390fd5b6103e8600754611715919061444b565b81101561172157600080fd5b8060088190555050565b611734336124ec565b611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906142c7565b60405180910390fd5b6103e8600754611783919061444b565b81101561178f57600080fd5b8060098190555050565b6117a2336124ec565b6117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d8906142c7565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61185833611590565b611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906142a7565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118e2573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61196d33611590565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906142a7565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600381526020017f4156460000000000000000000000000000000000000000000000000000000000815250905090565b611a4d336124ec565b611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a83906142c7565b60405180910390fd5b620b71b08110611a9b57600080fd5b80602b8190555050565b611aae336124ec565b611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae4906142c7565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bcc3384846125c3565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c03336124ec565b611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c39906142c7565b60405180910390fd5b6000602081905550565b611c5533611590565b611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906142a7565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d8b611d2d611433565b611d7d611d6e6002611d60601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b612d2b90919063ffffffff16565b85612d2b90919063ffffffff16565b61254290919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e2c336124ec565b611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e62906142c7565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ed533611590565b611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b906142a7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611f8191906143f5565b10611f90576014549050611fa6565b8115611fa0576014549050611fa6565b60145490505b919050565b611fb433611590565b611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea906142a7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120b991906140d5565b60405180910390a150565b6120cd336124ec565b61210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906142c7565b60405180910390fd5b61213882600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d41565b801561217f57426020819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a60215460405161217691906142e7565b60405180910390a15b5050565b61218c336124ec565b6121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c2906142c7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122555750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61225e57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561235057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016123199291906140f0565b600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b5050505061241f565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016123ec929190614119565b600060405180830381600087803b15801561240657600080fd5b505af115801561241a573d6000803e3d6000fd5b505050505b5050565b61242c336124ec565b61246b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612462906142c7565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008183612550919061444b565b905092915050565b6000818361256691906143f5565b905092915050565b60008383111582906125b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ad9190614225565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff16156125ec576125e5848484612f1f565b9050612d0e565b60007310ed43c718714eb63d5aa57b78b54704e256024e90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061268e57508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061271957508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b9050612725878661308d565b8015801561277d5750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128115760095485600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d091906143f5565b10612810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280790614267565b60405180910390fd5b5b80156128445761281f61312a565b1561282d5761282c613201565b5b61283561374b565b15612843576128426137fe565b5b5b6128cd856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061291b8861387a565b6129255785612931565b6129308888886138d1565b5b905061298581600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aeb57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612ab5929190614119565b600060405180830381600087803b158015612acf57600080fd5b505af1925050508015612ae0575060015b612ae957612aea565b5b5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c0e57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612bd8929190614119565b600060405180830381600087803b158015612bf257600080fd5b505af1925050508015612c03575060015b612c0c57612c0d565b5b5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612c6b91906142e7565b600060405180830381600087803b158015612c8557600080fd5b505af1925050508015612c96575060015b612c9f57612ca0565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cfd91906142e7565b60405180910390a360019450505050505b9392505050565b60008183612d2391906144d6565b905092915050565b60008183612d39919061447c565b905092915050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612d7957612d7861468b565b5b604051908082528060200260200182016040528015612da75781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110612de157612de061465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612e3057612e2f61465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b8152600401612ecd94939291906141d9565b6000604051808303818588803b158015612ee657600080fd5b505af1158015612efa573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000612faa826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061303f82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600854811115806130e75750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311d90614247565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131975750602e60009054906101000a900460ff16155b80156131af5750602c60009054906101000a900460ff165b80156131fc5750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff021916908315150217905550600061322c601854601954611132565b6132385760105461323b565b60005b9050600061327b600261326d60145461325f86602d54612d2b90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b9050600061329482602d54612d1590919063ffffffff16565b90506000600267ffffffffffffffff8111156132b3576132b261468b565b5b6040519080825280602002602001820160405280156132e15781602001602082028036833780820191505090505b50905030816000815181106132f9576132f861465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061336a5761336961465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161340d959493929190614302565b600060405180830381600087803b15801561342757600080fd5b505af115801561343b573d6000803e3d6000fd5b5050505060006134548247612d1590919063ffffffff16565b9050600061348061346f60028961254290919063ffffffff16565b601454612d1590919063ffffffff16565b905060006134bc60026134ae846134a08c88612d2b90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b905060006134e7836134d960125487612d2b90919063ffffffff16565b61254290919063ffffffff16565b905060006135128461350460135488612d2b90919063ffffffff16565b61254290919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561357e57600080fd5b505af193505050508015613590575060015b6135995761359a565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613602573d6000803e3d6000fd5b50600089111561372457601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161369596959493929190614142565b6060604051808303818588803b1580156136ae57600080fd5b505af11580156136c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136e79190613e16565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161371b92919061435c565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156137b85750602e60009054906101000a900460ff16155b80156137d05750602260009054906101000a900460ff165b80156137eb5750436027546028546137e891906143f5565b11155b80156137f957506026544710155b905090565b61382c602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d41565b4360288190555061384a60265460255461255890919063ffffffff16565b6025819055506024546025541115613878576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613953601554613945613936601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611f6f565b86612d2b90919063ffffffff16565b61254290919063ffffffff16565b90506139a781600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a4791906142e7565b60405180910390a3613a628184612d1590919063ffffffff16565b9150509392505050565b600081359050613a7b8161479d565b92915050565b600081359050613a90816147b4565b92915050565b600081359050613aa5816147cb565b92915050565b600081359050613aba816147e2565b92915050565b600081519050613acf816147e2565b92915050565b600060208284031215613aeb57613aea6146ba565b5b6000613af984828501613a6c565b91505092915050565b600060208284031215613b1857613b176146ba565b5b6000613b2684828501613a81565b91505092915050565b60008060408385031215613b4657613b456146ba565b5b6000613b5485828601613a6c565b9250506020613b6585828601613a6c565b9150509250929050565b600080600060608486031215613b8857613b876146ba565b5b6000613b9686828701613a6c565b9350506020613ba786828701613a6c565b9250506040613bb886828701613aab565b9150509250925092565b60008060408385031215613bd957613bd86146ba565b5b6000613be785828601613a6c565b9250506020613bf885828601613a96565b9150509250929050565b60008060408385031215613c1957613c186146ba565b5b6000613c2785828601613a6c565b9250506020613c3885828601613aab565b9150509250929050565b600060208284031215613c5857613c576146ba565b5b6000613c6684828501613a96565b91505092915050565b60008060408385031215613c8657613c856146ba565b5b6000613c9485828601613a96565b9250506020613ca585828601613aab565b9150509250929050565b60008060008060808587031215613cc957613cc86146ba565b5b6000613cd787828801613a96565b9450506020613ce887828801613aab565b9350506040613cf987828801613aab565b9250506060613d0a87828801613aab565b91505092959194509250565b600060208284031215613d2c57613d2b6146ba565b5b6000613d3a84828501613aab565b91505092915050565b60008060408385031215613d5a57613d596146ba565b5b6000613d6885828601613aab565b9250506020613d7985828601613a96565b9150509250929050565b60008060408385031215613d9a57613d996146ba565b5b6000613da885828601613aab565b9250506020613db985828601613aab565b9150509250929050565b600080600060608486031215613ddc57613ddb6146ba565b5b6000613dea86828701613aab565b9350506020613dfb86828701613aab565b9250506040613e0c86828701613aab565b9150509250925092565b600080600060608486031215613e2f57613e2e6146ba565b5b6000613e3d86828701613ac0565b9350506020613e4e86828701613ac0565b9250506040613e5f86828701613ac0565b9150509250925092565b600080600080600060a08688031215613e8557613e846146ba565b5b6000613e9388828901613aab565b9550506020613ea488828901613aab565b9450506040613eb588828901613aab565b9350506060613ec688828901613aab565b9250506080613ed788828901613aab565b9150509295509295909350565b6000613ef08383613f0b565b60208301905092915050565b613f0581614571565b82525050565b613f148161450a565b82525050565b613f238161450a565b82525050565b6000613f34826143b0565b613f3e81856143d3565b9350613f49836143a0565b8060005b83811015613f7a578151613f618882613ee4565b9750613f6c836143c6565b925050600181019050613f4d565b5085935050505092915050565b613f908161452e565b82525050565b613f9f81614583565b82525050565b613fae81614595565b82525050565b6000613fbf826143bb565b613fc981856143e4565b9350613fd98185602086016145cb565b613fe2816146bf565b840191505092915050565b6000613ffa6011836143e4565b9150614005826146d0565b602082019050919050565b600061401d601d836143e4565b9150614028826146f9565b602082019050919050565b60006140406014836143e4565b915061404b82614722565b602082019050919050565b60006140636006836143e4565b915061406e8261474b565b602082019050919050565b6000614086600b836143e4565b915061409182614774565b602082019050919050565b6140a58161455a565b82525050565b6140b481614564565b82525050565b60006020820190506140cf6000830184613f1a565b92915050565b60006020820190506140ea6000830184613efc565b92915050565b60006040820190506141056000830185613f1a565b6141126020830184613fa5565b9392505050565b600060408201905061412e6000830185613f1a565b61413b602083018461409c565b9392505050565b600060c0820190506141576000830189613f1a565b614164602083018861409c565b6141716040830187613fa5565b61417e6060830186613fa5565b61418b6080830185613f1a565b61419860a083018461409c565b979650505050505050565b60006020820190506141b86000830184613f87565b92915050565b60006020820190506141d36000830184613f96565b92915050565b60006080820190506141ee6000830187613fa5565b81810360208301526142008186613f29565b905061420f6040830185613f1a565b61421c606083018461409c565b95945050505050565b6000602082019050818103600083015261423f8184613fb4565b905092915050565b6000602082019050818103600083015261426081613fed565b9050919050565b6000602082019050818103600083015261428081614010565b9050919050565b600060208201905081810360008301526142a081614033565b9050919050565b600060208201905081810360008301526142c081614056565b9050919050565b600060208201905081810360008301526142e081614079565b9050919050565b60006020820190506142fc600083018461409c565b92915050565b600060a082019050614317600083018861409c565b6143246020830187613fa5565b81810360408301526143368186613f29565b90506143456060830185613f1a565b614352608083018461409c565b9695505050505050565b6000604082019050614371600083018561409c565b61437e602083018461409c565b9392505050565b600060208201905061439a60008301846140ab565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006144008261455a565b915061440b8361455a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144405761443f6145fe565b5b828201905092915050565b60006144568261455a565b91506144618361455a565b9250826144715761447061462d565b5b828204905092915050565b60006144878261455a565b91506144928361455a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144cb576144ca6145fe565b5b828202905092915050565b60006144e18261455a565b91506144ec8361455a565b9250828210156144ff576144fe6145fe565b5b828203905092915050565b60006145158261453a565b9050919050565b60006145278261453a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061457c826145a7565b9050919050565b600061458e826145a7565b9050919050565b60006145a08261455a565b9050919050565b60006145b2826145b9565b9050919050565b60006145c48261453a565b9050919050565b60005b838110156145e95780820151818401526020810190506145ce565b838111156145f8576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6147a68161450a565b81146147b157600080fd5b50565b6147bd8161451c565b81146147c857600080fd5b50565b6147d48161452e565b81146147df57600080fd5b50565b6147eb8161455a565b81146147f657600080fd5b5056fea264697066735822122073d799c227445b45b8ca33b7b8f8416c71a291e80d21dab1da3654ef1587e9b964736f6c63430008070033608060405273e9e7cea3dedca5984780bafc599bd69add087d56600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55678ac7230489e80000600e55348015620000e057600080fd5b5060405162001ca538038062001ca58339818101604052810190620001069190620001f7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000157577310ed43c718714eb63d5aa57b78b54704e256024e62000159565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027c565b600081519050620001f18162000262565b92915050565b60006020828403121562000210576200020f6200025d565b5b60006200022084828501620001e0565b91505092915050565b600062000236826200023d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200026d8162000229565b81146200027957600080fd5b50565b611a19806200028c6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b604051610104919061166b565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611422565b61032d565b005b34801561014257600080fd5b5061015d600480360381019061015891906113f5565b6105ec565b60405161016a919061166b565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906114e9565b610706565b005b3480156101a857600080fd5b506101b1610770565b6040516101be919061166b565b60405180910390f35b3480156101d357600080fd5b506101dc610776565b6040516101e9919061166b565b60405180910390f35b3480156101fe57600080fd5b5061020761077c565b604051610214919061166b565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906113f5565b610782565b60405161025393929190611686565b60405180910390f35b6102646107ac565b005b34801561027257600080fd5b5061027b610b9c565b604051610288919061166b565b60405180910390f35b34801561029d57600080fd5b506102a6610ba2565b6040516102b3919061166b565b60405180910390f35b3480156102c857600080fd5b506102d1610ba8565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061148f565b610bb3565b005b34801561030857600080fd5b50610311610d47565b60405161031e919061166b565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610d4d565b5b60008111801561042c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a82610ff4565b6104a1565b60008114801561049157506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f826110a3565b5b5b61050a816104fc600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546112aa90919063ffffffff16565b6112c090919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106415760009050610701565b600061068e600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e957600092505050610701565b6106fc81836112aa90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075e57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161086191906115db565b60206040518083038186803b15801561087957600080fd5b505afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b191906114bc565b90506000600267ffffffffffffffff8111156108d0576108cf61196a565b5b6040519080825280602002602001820160405280156108fe5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109385761093761193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106109a9576109a861193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610a46949392919061161f565b6000604051808303818588803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b50505050506000610b3783600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ad991906115db565b60206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2991906114bc565b6112aa90919063ffffffff16565b9050610b4e816009546112c090919063ffffffff16565b600981905550610b91610b80600854610b7284600c5461130890919063ffffffff16565b61131e90919063ffffffff16565b600b546112c090919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610bb133610d4d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b600060048054905090506000811415610c245750610d44565b6000805a905060005b8483108015610c3b57508381105b15610d3f5783600f5410610c52576000600f819055505b610c9b6004600f5481548110610c6b57610c6a61193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b15610cea57610ce96004600f5481548110610cb957610cb861193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d4d565b5b610d0f610d005a846112aa90919063ffffffff16565b846112c090919063ffffffff16565b92505a9150600f6000815480929190610d2790611865565b91905055508080610d3790611865565b915050610c2d565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610d9d57610ff1565b6000610da8826105ec565b90506000811115610fef57610dc881600a546112c090919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e2b9291906115f6565b602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190611462565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f1781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546112c090919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610fa8600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506110b791906117d7565b815481106110c8576110c761193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111465761114561193b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506111e691906117d7565b815481106111f7576111f661193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112725761127161190c565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600081836112b891906117d7565b905092915050565b600081836112ce91906116f6565b905092915050565b6000611301600c546112f3600b548561130890919063ffffffff16565b61131e90919063ffffffff16565b9050919050565b60008183611316919061177d565b905092915050565b6000818361132c919061174c565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138491906116f6565b10801561139a5750600e54611398836105ec565b115b9050919050565b6000813590506113b08161199e565b92915050565b6000815190506113c5816119b5565b92915050565b6000813590506113da816119cc565b92915050565b6000815190506113ef816119cc565b92915050565b60006020828403121561140b5761140a611999565b5b6000611419848285016113a1565b91505092915050565b6000806040838503121561143957611438611999565b5b6000611447858286016113a1565b9250506020611458858286016113cb565b9150509250929050565b60006020828403121561147857611477611999565b5b6000611486848285016113b6565b91505092915050565b6000602082840312156114a5576114a4611999565b5b60006114b3848285016113cb565b91505092915050565b6000602082840312156114d2576114d1611999565b5b60006114e0848285016113e0565b91505092915050565b60008060408385031215611500576114ff611999565b5b600061150e858286016113cb565b925050602061151f858286016113cb565b9150509250929050565b60006115358383611541565b60208301905092915050565b61154a8161180b565b82525050565b6115598161180b565b82525050565b600061156a826116cd565b61157481856116e5565b935061157f836116bd565b8060005b838110156115b05781516115978882611529565b97506115a2836116d8565b925050600181019050611583565b5085935050505092915050565b6115c681611853565b82525050565b6115d581611849565b82525050565b60006020820190506115f06000830184611550565b92915050565b600060408201905061160b6000830185611550565b61161860208301846115cc565b9392505050565b600060808201905061163460008301876115bd565b8181036020830152611646818661155f565b90506116556040830185611550565b61166260608301846115cc565b95945050505050565b600060208201905061168060008301846115cc565b92915050565b600060608201905061169b60008301866115cc565b6116a860208301856115cc565b6116b560408301846115cc565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061170182611849565b915061170c83611849565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611741576117406118ae565b5b828201905092915050565b600061175782611849565b915061176283611849565b925082611772576117716118dd565b5b828204905092915050565b600061178882611849565b915061179383611849565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117cc576117cb6118ae565b5b828202905092915050565b60006117e282611849565b91506117ed83611849565b925082821015611800576117ff6118ae565b5b828203905092915050565b600061181682611829565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061185e82611849565b9050919050565b600061187082611849565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118a3576118a26118ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6119a78161180b565b81146119b257600080fd5b50565b6119be8161181d565b81146119c957600080fd5b50565b6119d581611849565b81146119e057600080fd5b5056fea2646970667358221220b1777e182d392cb7b64f19b84b69ec82d5122711deffeadb0621680ae11c64d064736f6c6343000807003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e000000000000000000000000be14cf89b9ec2a41cc5dacbddc9c250c45b6c79d000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c
Deployed Bytecode
0x60806040526004361061036f5760003560e01c8063893d20e8116101c6578063d51ed1c8116100f7578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610cb1578063f84ba65d14610cda578063f887ea4014610d03578063fe9fbb8014610d2e57610376565b8063f1f3bca314610c22578063f2fde38b14610c5f578063f5cfec0a14610c8857610376565b8063df20fd49116100d1578063df20fd4914610b7a578063e91f214e14610ba3578063e96fada214610bce578063f0b37c0414610bf957610376565b8063d51ed1c814610ad5578063d806d12f14610b12578063dd62ed3e14610b3d57610376565b8063a9059cbb11610164578063b6a5d7de1161013e578063b6a5d7de14610a2b578063bf56b37114610a54578063c6d2577d14610a7f578063ca33e64c14610aaa57610376565b8063a9059cbb146109ac578063ad5c4648146109e9578063b210b06d14610a1457610376565b80639d1944f5116101a05780639d1944f514610904578063a4b45c001461092d578063a51af4c514610956578063a8aa1b311461098157610376565b8063893d20e81461088557806389ef69f6146108b057806395d89b41146108d957610376565b80632d48e896116102a05780635d0044ca1161023e5780637088fb7f116102185780637088fb7f146107db57806370a08231146107f25780637d1db4a51461082f57806382247ec01461085a57610376565b80635d0044ca1461075e578063658d4b7f146107875780636ddd1713146107b057610376565b80633425c0011161027a5780633425c001146106a45780633bb8a8d4146106cd578063571ac8b0146106f85780635c85974f1461073557610376565b80632d48e896146106135780632f54bf6e1461063c578063313ce5671461067957610376565b80631161ae391161030d5780632375ce40116102e75780632375ce401461054557806323b872dd1461056e578063296020e7146105ab5780632b112e49146105e857610376565b80631161ae39146104b457806318160ddd146104f1578063201e79911461051c57610376565b806304a66b481161034957806304a66b48146103e657806306fdde031461040f57806307c89fe81461043a578063095ea7b31461047757610376565b806301339c211461037b5780630445b66714610392578063048c7baf146103bd57610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d6b565b005b34801561039e57600080fd5b506103a7610e08565b6040516103b491906142e7565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613caf565b610e0e565b005b3480156103f257600080fd5b5061040d60048036038101906104089190613e69565b610e9a565b005b34801561041b57600080fd5b50610424610f65565b6040516104319190614225565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190613ad5565b610fa2565b60405161046e91906141a3565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190613c02565b611040565b6040516104ab91906141a3565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613d83565b611132565b6040516104e891906141a3565b60405180910390f35b3480156104fd57600080fd5b50610506611147565b60405161051391906142e7565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613d83565b611151565b005b34801561055157600080fd5b5061056c60048036038101906105679190613dc3565b6111ab565b005b34801561057a57600080fd5b5061059560048036038101906105909190613b6f565b611231565b6040516105a291906141a3565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190613ad5565b611413565b6040516105df91906141a3565b60405180910390f35b3480156105f457600080fd5b506105fd611433565b60405161060a91906142e7565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613d83565b6114b5565b005b34801561064857600080fd5b50610663600480360381019061065e9190613ad5565b611590565b60405161067091906141a3565b60405180910390f35b34801561068557600080fd5b5061068e6115e9565b60405161069b9190614385565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190613ad5565b6115f2565b005b3480156106d957600080fd5b506106e2611695565b6040516106ef91906141a3565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a9190613ad5565b6116a8565b60405161072c91906141a3565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613d16565b6116bd565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d16565b61172b565b005b34801561079357600080fd5b506107ae60048036038101906107a99190613bc2565b611799565b005b3480156107bc57600080fd5b506107c561183c565b6040516107d291906141a3565b60405180910390f35b3480156107e757600080fd5b506107f061184f565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613ad5565b6118e6565b60405161082691906142e7565b60405180910390f35b34801561083b57600080fd5b5061084461192f565b60405161085191906142e7565b60405180910390f35b34801561086657600080fd5b5061086f611935565b60405161087c91906142e7565b60405180910390f35b34801561089157600080fd5b5061089a61193b565b6040516108a791906140ba565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613ad5565b611964565b005b3480156108e557600080fd5b506108ee611a07565b6040516108fb9190614225565b60405180910390f35b34801561091057600080fd5b5061092b60048036038101906109269190613d16565b611a44565b005b34801561093957600080fd5b50610954600480360381019061094f9190613b2f565b611aa5565b005b34801561096257600080fd5b5061096b611b73565b60405161097891906140ba565b60405180910390f35b34801561098d57600080fd5b50610996611b99565b6040516109a391906140ba565b60405180910390f35b3480156109b857600080fd5b506109d360048036038101906109ce9190613c02565b611bbf565b6040516109e091906141a3565b60405180910390f35b3480156109f557600080fd5b506109fe611bd4565b604051610a0b91906140ba565b60405180910390f35b348015610a2057600080fd5b50610a29611bfa565b005b348015610a3757600080fd5b50610a526004803603810190610a4d9190613ad5565b611c4c565b005b348015610a6057600080fd5b50610a69611cee565b604051610a7691906142e7565b60405180910390f35b348015610a8b57600080fd5b50610a94611cf4565b604051610aa191906142e7565b60405180910390f35b348015610ab657600080fd5b50610abf611cfa565b604051610acc91906140ba565b60405180910390f35b348015610ae157600080fd5b50610afc6004803603810190610af79190613d16565b611d20565b604051610b0991906142e7565b60405180910390f35b348015610b1e57600080fd5b50610b27611d92565b604051610b3491906142e7565b60405180910390f35b348015610b4957600080fd5b50610b646004803603810190610b5f9190613b2f565b611d9c565b604051610b7191906142e7565b60405180910390f35b348015610b8657600080fd5b50610ba16004803603810190610b9c9190613c6f565b611e23565b005b348015610baf57600080fd5b50610bb8611e90565b604051610bc591906142e7565b60405180910390f35b348015610bda57600080fd5b50610be3611ea6565b604051610bf091906140ba565b60405180910390f35b348015610c0557600080fd5b50610c206004803603810190610c1b9190613ad5565b611ecc565b005b348015610c2e57600080fd5b50610c496004803603810190610c449190613c42565b611f6f565b604051610c5691906142e7565b60405180910390f35b348015610c6b57600080fd5b50610c866004803603810190610c819190613b02565b611fab565b005b348015610c9457600080fd5b50610caf6004803603810190610caa9190613d43565b6120c4565b005b348015610cbd57600080fd5b50610cd86004803603810190610cd39190613bc2565b612183565b005b348015610ce657600080fd5b50610d016004803603810190610cfc9190613bc2565b612423565b005b348015610d0f57600080fd5b50610d186124c6565b604051610d2591906141be565b60405180910390f35b348015610d3a57600080fd5b50610d556004803603810190610d509190613ad5565b6124ec565b604051610d6291906141a3565b60405180910390f35b610d74336124ec565b610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906142c7565b60405180910390fd5b6000601c5414610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90614287565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610e17336124ec565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906142c7565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610ea3336124ec565b610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed9906142c7565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610f3582610f2785610f19888a61255890919063ffffffff16565b61255890919063ffffffff16565b61255890919063ffffffff16565b601481905550806015819055506004601554610f51919061444b565b60145410610f5e57600080fd5b5050505050565b60606040518060400160405280600f81526020017f4176616e7461676546696e616e63650000000000000000000000000000000000815250905090565b6000610fad33611590565b610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe3906142a7565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161112091906142e7565b60405180910390a36001905092915050565b60008261113e83611d20565b11905092915050565b6000600754905090565b61115a336124ec565b611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906142c7565b60405180910390fd5b81601881905550806019819055505050565b6111b4336124ec565b6111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906142c7565b60405180910390fd5b60028284611201919061444b565b1115801561120e57508183115b61121757600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113ff5761137e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61140a8484846125c3565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60006114b0611463600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b6114a2611491600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b600754612d1590919063ffffffff16565b612d1590919063ffffffff16565b905090565b6114be336124ec565b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f4906142c7565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161155a92919061435c565b600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6115fb33611590565b61163a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611631906142a7565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b60006116b682600754611040565b9050919050565b6116c6336124ec565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc906142c7565b60405180910390fd5b6103e8600754611715919061444b565b81101561172157600080fd5b8060088190555050565b611734336124ec565b611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906142c7565b60405180910390fd5b6103e8600754611783919061444b565b81101561178f57600080fd5b8060098190555050565b6117a2336124ec565b6117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d8906142c7565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61185833611590565b611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906142a7565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118e2573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61196d33611590565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906142a7565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600381526020017f4156460000000000000000000000000000000000000000000000000000000000815250905090565b611a4d336124ec565b611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a83906142c7565b60405180910390fd5b620b71b08110611a9b57600080fd5b80602b8190555050565b611aae336124ec565b611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae4906142c7565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bcc3384846125c3565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c03336124ec565b611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c39906142c7565b60405180910390fd5b6000602081905550565b611c5533611590565b611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906142a7565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d8b611d2d611433565b611d7d611d6e6002611d60601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b612d2b90919063ffffffff16565b85612d2b90919063ffffffff16565b61254290919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e2c336124ec565b611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e62906142c7565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ed533611590565b611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b906142a7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611f8191906143f5565b10611f90576014549050611fa6565b8115611fa0576014549050611fa6565b60145490505b919050565b611fb433611590565b611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea906142a7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120b991906140d5565b60405180910390a150565b6120cd336124ec565b61210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906142c7565b60405180910390fd5b61213882600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d41565b801561217f57426020819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a60215460405161217691906142e7565b60405180910390a15b5050565b61218c336124ec565b6121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c2906142c7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122555750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61225e57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561235057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016123199291906140f0565b600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b5050505061241f565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016123ec929190614119565b600060405180830381600087803b15801561240657600080fd5b505af115801561241a573d6000803e3d6000fd5b505050505b5050565b61242c336124ec565b61246b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612462906142c7565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008183612550919061444b565b905092915050565b6000818361256691906143f5565b905092915050565b60008383111582906125b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ad9190614225565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff16156125ec576125e5848484612f1f565b9050612d0e565b60007310ed43c718714eb63d5aa57b78b54704e256024e90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061268e57508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061271957508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b9050612725878661308d565b8015801561277d5750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128115760095485600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d091906143f5565b10612810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280790614267565b60405180910390fd5b5b80156128445761281f61312a565b1561282d5761282c613201565b5b61283561374b565b15612843576128426137fe565b5b5b6128cd856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061291b8861387a565b6129255785612931565b6129308888886138d1565b5b905061298581600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aeb57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612ab5929190614119565b600060405180830381600087803b158015612acf57600080fd5b505af1925050508015612ae0575060015b612ae957612aea565b5b5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c0e57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612bd8929190614119565b600060405180830381600087803b158015612bf257600080fd5b505af1925050508015612c03575060015b612c0c57612c0d565b5b5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612c6b91906142e7565b600060405180830381600087803b158015612c8557600080fd5b505af1925050508015612c96575060015b612c9f57612ca0565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cfd91906142e7565b60405180910390a360019450505050505b9392505050565b60008183612d2391906144d6565b905092915050565b60008183612d39919061447c565b905092915050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612d7957612d7861468b565b5b604051908082528060200260200182016040528015612da75781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110612de157612de061465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612e3057612e2f61465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b8152600401612ecd94939291906141d9565b6000604051808303818588803b158015612ee657600080fd5b505af1158015612efa573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000612faa826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061303f82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600854811115806130e75750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311d90614247565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131975750602e60009054906101000a900460ff16155b80156131af5750602c60009054906101000a900460ff165b80156131fc5750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff021916908315150217905550600061322c601854601954611132565b6132385760105461323b565b60005b9050600061327b600261326d60145461325f86602d54612d2b90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b9050600061329482602d54612d1590919063ffffffff16565b90506000600267ffffffffffffffff8111156132b3576132b261468b565b5b6040519080825280602002602001820160405280156132e15781602001602082028036833780820191505090505b50905030816000815181106132f9576132f861465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061336a5761336961465c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161340d959493929190614302565b600060405180830381600087803b15801561342757600080fd5b505af115801561343b573d6000803e3d6000fd5b5050505060006134548247612d1590919063ffffffff16565b9050600061348061346f60028961254290919063ffffffff16565b601454612d1590919063ffffffff16565b905060006134bc60026134ae846134a08c88612d2b90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b905060006134e7836134d960125487612d2b90919063ffffffff16565b61254290919063ffffffff16565b905060006135128461350460135488612d2b90919063ffffffff16565b61254290919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561357e57600080fd5b505af193505050508015613590575060015b6135995761359a565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613602573d6000803e3d6000fd5b50600089111561372457601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161369596959493929190614142565b6060604051808303818588803b1580156136ae57600080fd5b505af11580156136c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136e79190613e16565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161371b92919061435c565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156137b85750602e60009054906101000a900460ff16155b80156137d05750602260009054906101000a900460ff165b80156137eb5750436027546028546137e891906143f5565b11155b80156137f957506026544710155b905090565b61382c602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d41565b4360288190555061384a60265460255461255890919063ffffffff16565b6025819055506024546025541115613878576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613953601554613945613936601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611f6f565b86612d2b90919063ffffffff16565b61254290919063ffffffff16565b90506139a781600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a4791906142e7565b60405180910390a3613a628184612d1590919063ffffffff16565b9150509392505050565b600081359050613a7b8161479d565b92915050565b600081359050613a90816147b4565b92915050565b600081359050613aa5816147cb565b92915050565b600081359050613aba816147e2565b92915050565b600081519050613acf816147e2565b92915050565b600060208284031215613aeb57613aea6146ba565b5b6000613af984828501613a6c565b91505092915050565b600060208284031215613b1857613b176146ba565b5b6000613b2684828501613a81565b91505092915050565b60008060408385031215613b4657613b456146ba565b5b6000613b5485828601613a6c565b9250506020613b6585828601613a6c565b9150509250929050565b600080600060608486031215613b8857613b876146ba565b5b6000613b9686828701613a6c565b9350506020613ba786828701613a6c565b9250506040613bb886828701613aab565b9150509250925092565b60008060408385031215613bd957613bd86146ba565b5b6000613be785828601613a6c565b9250506020613bf885828601613a96565b9150509250929050565b60008060408385031215613c1957613c186146ba565b5b6000613c2785828601613a6c565b9250506020613c3885828601613aab565b9150509250929050565b600060208284031215613c5857613c576146ba565b5b6000613c6684828501613a96565b91505092915050565b60008060408385031215613c8657613c856146ba565b5b6000613c9485828601613a96565b9250506020613ca585828601613aab565b9150509250929050565b60008060008060808587031215613cc957613cc86146ba565b5b6000613cd787828801613a96565b9450506020613ce887828801613aab565b9350506040613cf987828801613aab565b9250506060613d0a87828801613aab565b91505092959194509250565b600060208284031215613d2c57613d2b6146ba565b5b6000613d3a84828501613aab565b91505092915050565b60008060408385031215613d5a57613d596146ba565b5b6000613d6885828601613aab565b9250506020613d7985828601613a96565b9150509250929050565b60008060408385031215613d9a57613d996146ba565b5b6000613da885828601613aab565b9250506020613db985828601613aab565b9150509250929050565b600080600060608486031215613ddc57613ddb6146ba565b5b6000613dea86828701613aab565b9350506020613dfb86828701613aab565b9250506040613e0c86828701613aab565b9150509250925092565b600080600060608486031215613e2f57613e2e6146ba565b5b6000613e3d86828701613ac0565b9350506020613e4e86828701613ac0565b9250506040613e5f86828701613ac0565b9150509250925092565b600080600080600060a08688031215613e8557613e846146ba565b5b6000613e9388828901613aab565b9550506020613ea488828901613aab565b9450506040613eb588828901613aab565b9350506060613ec688828901613aab565b9250506080613ed788828901613aab565b9150509295509295909350565b6000613ef08383613f0b565b60208301905092915050565b613f0581614571565b82525050565b613f148161450a565b82525050565b613f238161450a565b82525050565b6000613f34826143b0565b613f3e81856143d3565b9350613f49836143a0565b8060005b83811015613f7a578151613f618882613ee4565b9750613f6c836143c6565b925050600181019050613f4d565b5085935050505092915050565b613f908161452e565b82525050565b613f9f81614583565b82525050565b613fae81614595565b82525050565b6000613fbf826143bb565b613fc981856143e4565b9350613fd98185602086016145cb565b613fe2816146bf565b840191505092915050565b6000613ffa6011836143e4565b9150614005826146d0565b602082019050919050565b600061401d601d836143e4565b9150614028826146f9565b602082019050919050565b60006140406014836143e4565b915061404b82614722565b602082019050919050565b60006140636006836143e4565b915061406e8261474b565b602082019050919050565b6000614086600b836143e4565b915061409182614774565b602082019050919050565b6140a58161455a565b82525050565b6140b481614564565b82525050565b60006020820190506140cf6000830184613f1a565b92915050565b60006020820190506140ea6000830184613efc565b92915050565b60006040820190506141056000830185613f1a565b6141126020830184613fa5565b9392505050565b600060408201905061412e6000830185613f1a565b61413b602083018461409c565b9392505050565b600060c0820190506141576000830189613f1a565b614164602083018861409c565b6141716040830187613fa5565b61417e6060830186613fa5565b61418b6080830185613f1a565b61419860a083018461409c565b979650505050505050565b60006020820190506141b86000830184613f87565b92915050565b60006020820190506141d36000830184613f96565b92915050565b60006080820190506141ee6000830187613fa5565b81810360208301526142008186613f29565b905061420f6040830185613f1a565b61421c606083018461409c565b95945050505050565b6000602082019050818103600083015261423f8184613fb4565b905092915050565b6000602082019050818103600083015261426081613fed565b9050919050565b6000602082019050818103600083015261428081614010565b9050919050565b600060208201905081810360008301526142a081614033565b9050919050565b600060208201905081810360008301526142c081614056565b9050919050565b600060208201905081810360008301526142e081614079565b9050919050565b60006020820190506142fc600083018461409c565b92915050565b600060a082019050614317600083018861409c565b6143246020830187613fa5565b81810360408301526143368186613f29565b90506143456060830185613f1a565b614352608083018461409c565b9695505050505050565b6000604082019050614371600083018561409c565b61437e602083018461409c565b9392505050565b600060208201905061439a60008301846140ab565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006144008261455a565b915061440b8361455a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144405761443f6145fe565b5b828201905092915050565b60006144568261455a565b91506144618361455a565b9250826144715761447061462d565b5b828204905092915050565b60006144878261455a565b91506144928361455a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144cb576144ca6145fe565b5b828202905092915050565b60006144e18261455a565b91506144ec8361455a565b9250828210156144ff576144fe6145fe565b5b828203905092915050565b60006145158261453a565b9050919050565b60006145278261453a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061457c826145a7565b9050919050565b600061458e826145a7565b9050919050565b60006145a08261455a565b9050919050565b60006145b2826145b9565b9050919050565b60006145c48261453a565b9050919050565b60005b838110156145e95780820151818401526020810190506145ce565b838111156145f8576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6147a68161450a565b81146147b157600080fd5b50565b6147bd8161451c565b81146147c857600080fd5b50565b6147d48161452e565b81146147df57600080fd5b50565b6147eb8161455a565b81146147f657600080fd5b5056fea264697066735822122073d799c227445b45b8ca33b7b8f8416c71a291e80d21dab1da3654ef1587e9b964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000010ED43C718714eb63d5aA57B78B54704E256024E000000000000000000000000be14cf89b9EC2A41CC5dacBdDC9c250C45B6C79D000000000000000000000000bb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
-----Decoded View---------------
Arg [0] : _dexRouter (address): 0x10ED43C718714eb63d5aA57B78B54704E256024E
Arg [1] : _marketingAddress (address): 0xbe14cf89b9EC2A41CC5dacBdDC9c250C45B6C79D
Arg [2] : _wETH (address): 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ED43C718714eb63d5aA57B78B54704E256024E
Arg [1] : 000000000000000000000000be14cf89b9EC2A41CC5dacBdDC9c250C45B6C79D
Arg [2] : 000000000000000000000000bb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
Deployed Bytecode Sourcemap
12629:16460:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25623:187;;;;;;;;;;;;;:::i;:::-;;14937:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24808:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27063:496;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16432:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26944:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16935:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28818:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16162:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27967:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25175:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17448:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13691:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28493:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28158:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4436:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16256:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26842:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14521:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17159:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25971:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25818;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26479:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14900:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24656:142;;;;;;;;;;;;;:::i;:::-;;16683:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13303:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13370:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16518:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26743:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16342:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28349:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27567:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14818:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14226:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17284:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12831:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23863:105;;;;;;;;;;;;;:::i;:::-;;4109:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14254:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14286:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13938:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28643:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20280:691;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16794:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27803:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12712:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14024:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4279:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20068:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4836:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23539:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26124:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26607:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14195:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4610:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25623:187;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25692:1:::1;25678:10;;:15;25670:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25742:12;25729:10;:25;;;;25787:15;25765:19;:37;;;;25623:187::o:0;14937:50::-;;;;:::o;24808:359::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24955:8:::1;24934:18;;:29;;;;;;;;;;;;;;;;;;24991:4;24974:14;:21;;;;25031:1;25006:22;:26;;;;25063:7;25043:17;:27;;;;25106:7;25081:22;:32;;;;25147:12;25124:20;:35;;;;24808:359:::0;;;;:::o;27063:496::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27242:13:::1;27227:12;:28;;;;27279:11;27266:10;:24;;;;27317:14;27301:13;:30;;;;27357:13;27342:12;:28;;;;27392:69;27447:13;27392:50;27427:14;27392:30;27410:11;27392:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;27381:8;:80;;;;27489:15;27472:14;:32;;;;27549:1;27534:14;;:16;;;;:::i;:::-;27523:8;;:27;27515:36;;;::::0;::::1;;27063:496:::0;;;;;:::o;16432:80::-;16480:13;16504:5;;;;;;;;;;;;;;;;;16497:12;;16432:80;:::o;26944:111::-;27009:4;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;27032:7:::1;:15;27040:6;27032:15;;;;;;;;;;;;;;;;;;;;;;;;;27025:22;;26944:111:::0;;;:::o;16935:216::-;17010:4;17062:6;17027:11;:23;17039:10;17027:23;;;;;;;;;;;;;;;:32;17051:7;17027:32;;;;;;;;;;;;;;;:41;;;;17105:7;17084:37;;17093:10;17084:37;;;17114:6;17084:37;;;;;;:::i;:::-;;;;;;;;17139:4;17132:11;;16935:216;;;;:::o;28818:150::-;28898:4;28954:6;28922:29;28942:8;28922:19;:29::i;:::-;:38;28915:45;;28818:150;;;;:::o;16162:88::-;16217:7;16235:12;;16228:19;;16162:88;:::o;27967:183::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28083:7:::1;28065:15;:25;;;;28130:12;28101:26;:41;;;;27967:183:::0;;:::o;25175:342::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25335:1:::1;25320:11;25308:9;:23;;;;:::i;:::-;:28;;:55;;;;;25352:11;25340:9;:23;25308:55;25300:64;;;::::0;::::1;;25404:9;25375:26;:38;;;;25455:11;25424:28;:42;;;;25503:6;25477:23;:32;;;;25175:342:::0;;;:::o;17448:365::-;17548:4;17603:12;;17568:11;:19;17580:6;17568:19;;;;;;;;;;;;;;;:31;17588:10;17568:31;;;;;;;;;;;;;;;;:47;17565:181;;17665:69;17701:6;17665:69;;;;;;;;;;;;;;;;;:11;:19;17677:6;17665:19;;;;;;;;;;;;;;;:31;17685:10;17665:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;17631:11;:19;17643:6;17631:19;;;;;;;;;;;;;;;:31;17651:10;17631:31;;;;;;;;;;;;;;;:103;;;;17565:181;17765:40;17779:6;17787:9;17798:6;17765:13;:40::i;:::-;17758:47;;17448:365;;;;;:::o;13691:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;28493:142::-;28546:7;28573:54;28611:15;28621:4;;;;;;;;;;;28611:9;:15::i;:::-;28573:33;28590:15;28600:4;;;;;;;;;;;28590:9;:15::i;:::-;28573:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;28566:61;;28493:142;:::o;28158:183::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28268:11:::1;;;;;;;;;;;:35;;;28304:10;28316:16;28268:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28158:183:::0;;:::o;4436:103::-;4491:4;4526:5;;;;;;;;;;;4515:16;;:7;:16;;;4508:23;;4436:103;;;:::o;16256:80::-;16308:5;13222:1;16317:16;;16256:80;:::o;26842:94::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26923:5:::1;26905:7;:15;26913:6;26905:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;26842:94:::0;:::o;14521:38::-;;;;;;;;;;;;;:::o;17159:117::-;17214:4;17238:30;17246:7;17255:12;;17238:7;:30::i;:::-;17231:37;;17159:117;;;:::o;25971:145::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26071:4:::1;26056:12;;:19;;;;:::i;:::-;26046:6;:29;;26038:38;;;::::0;::::1;;26102:6;26087:12;:21;;;;25971:145:::0;:::o;25818:::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25920:4:::1;25905:12;;:19;;;;:::i;:::-;25895:6;:29;;25887:38;;;::::0;::::1;;25949:6;25936:10;:19;;;;25818:145:::0;:::o;26479:120::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26585:6:::1;26563:11;:19;26575:6;26563:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;26479:120:::0;;:::o;14900:30::-;;;;;;;;;;;;;:::o;24656:142::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;24703:15:::1;24721:21;24703:39;;24761:10;24753:28;;:37;24782:7;24753:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24692:106;24656:142::o:0;16683:105::-;16749:7;16767:9;:18;16777:7;16767:18;;;;;;;;;;;;;;;;16760:25;;16683:105;;;:::o;13303:51::-;;;;:::o;13370:48::-;;;;:::o;16518:78::-;16570:7;16588:5;;;;;;;;;;;16581:12;;16518:78;:::o;26743:91::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26822:4:::1;26804:7;:15;26812:6;26804:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;26743:91:::0;:::o;16342:84::-;16392:13;16416:7;;;;;;;;;;;;;;;;;16409:14;;16342:84;:::o;28349:136::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28439:6:::1;28433:3;:12;28425:21;;;::::0;::::1;;28474:3;28457:14;:20;;;;28349:136:::0;:::o;27567:228::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27710:22:::1;27686:21;;:46;;;;;;;;;;;;;;;;;;27766:21;27743:20;;:44;;;;;;;;;;;;;;;;;;27567:228:::0;;:::o;14818:33::-;;;;;;;;;;;;;:::o;14226:19::-;;;;;;;;;;;;;:::o;17284:156::-;17364:4;17388:44;17402:10;17414:9;17425:6;17388:13;:44::i;:::-;17381:51;;17284:156;;;;:::o;12831:64::-;;;;;;;;;;;;;:::o;23863:105::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23959:1:::1;23928:28;:32;;;;23863:105::o:0;4109:94::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4191:4:::1;4169:14:::0;:19:::1;4184:3;4169:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4109:94:::0;:::o;14254:25::-;;;;:::o;14286:34::-;;;;:::o;13938:79::-;;;;;;;;;;;;;:::o;28643:167::-;28711:7;28738:64;28779:22;:20;:22::i;:::-;28738:36;28751:22;28771:1;28751:15;28761:4;;;;;;;;;;;28751:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;28738:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;28731:71;;28643:167;;;:::o;20280:691::-;20329:7;20955:8;;20948:15;;20280:691;:::o;16794:133::-;16878:7;16896:11;:19;16908:6;16896:19;;;;;;;;;;;;;;;:28;16916:7;16896:28;;;;;;;;;;;;;;;;16889:35;;16794:133;;;;:::o;27803:156::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27909:8:::1;27895:11;;:22;;;;;;;;;;;;;;;;;;27944:7;27928:13;:23;;;;27803:156:::0;;:::o;12712:48::-;12743:17;12712:48;;;:::o;14024:78::-;;;;;;;;;;;;;:::o;4279:97::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4363:5:::1;4341:14;:19;4356:3;4341:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4279:97:::0;:::o;20068:204::-;20124:7;20165:12;20160:1;20147:10;;:14;;;;:::i;:::-;:30;20144:54;;20187:8;;20180:15;;;;20144:54;20211:7;20208:31;;;20228:8;;20221:15;;;;20208:31;20256:8;;20249:15;;20068:204;;;;:::o;4836:173::-;3825:19;3833:10;3825:7;:19::i;:::-;3817:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4920:3:::1;4912:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4956:4;4934:14:::0;:19:::1;4949:3;4934:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4976:25;4997:3;4976:25;;;;;;:::i;:::-;;;;;;;;4836:173:::0;:::o;23539:316::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23645:23:::1;23655:6;23663:4;;;;;;;;;;;23645:9;:23::i;:::-;23682:24;23679:169;;;23753:15;23722:28;:46;;;;23788:48;23812:23;;23788:48;;;;;;:::i;:::-;;;;;;;;23679:169;23539:316:::0;;:::o;26124:347::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26239:4:::1;26221:23;;:6;:23;;;;:41;;;;;26258:4;;;;;;;;;;;26248:14;;:6;:14;;;;26221:41;26213:50;;;::::0;::::1;;26301:6;26274:16;:24;26291:6;26274:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;26321:6;26318:146;;;26343:11;;;;;;;;;;;:20;;;26364:6;26372:1;26343:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26318:146;;;26405:11;;;;;;;;;;;:20;;;26426:6;26434:9;:17;26444:6;26434:17;;;;;;;;;;;;;;;;26405:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26318:146;26124:347:::0;;:::o;26607:128::-;3994:24;4007:10;3994:12;:24::i;:::-;3986:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26721:6:::1;26695:15;:23;26711:6;26695:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;26607:128:::0;;:::o;14195:24::-;;;;;;;;;;;;;:::o;4610:107::-;4666:4;4690:14;:19;4705:3;4690:19;;;;;;;;;;;;;;;;;;;;;;;;;4683:26;;4610:107;;;:::o;1759:98::-;1817:7;1848:1;1844;:5;;;;:::i;:::-;1837:12;;1759:98;;;;:::o;1441:::-;1499:7;1530:1;1526;:5;;;;:::i;:::-;1519:12;;1441:98;;;;:::o;1971:190::-;2057:7;2107:1;2102;:6;;2110:12;2094:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2145:1;2141;:5;2134:12;;1971:190;;;;;:::o;17821:1591::-;17913:4;17933:6;;;;;;;;;;;17930:63;;;17949:41;17964:6;17972:9;17983:6;17949:14;:41::i;:::-;17942:48;;;;17930:63;18031:21;18055:42;18031:66;;18108:10;18128:4;;;;;;;;;;;18119:13;;:6;:13;;;:39;;;;18145:13;18135:23;;:6;:23;;;18119:39;18108:50;;18169:11;18193:4;;;;;;;;;;;18181:16;;:9;:16;;;:45;;;;18213:13;18200:26;;:9;:26;;;18181:45;18169:57;;18239:28;18252:6;18260;18239:12;:28::i;:::-;18340:6;18339:7;:30;;;;;18351:7;:18;18359:9;18351:18;;;;;;;;;;;;;;;;;;;;;;;;;18350:19;18339:30;18335:148;;;18427:10;;18417:6;18394:9;:20;18404:9;18394:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;18393:44;18385:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;18335:148;18537:6;18533:135;;;18563:16;:14;:16::i;:::-;18560:35;;;18582:10;:8;:10::i;:::-;18560:35;18612:19;:17;:19::i;:::-;18609:48;;;18634:20;:18;:20::i;:::-;18609:48;18533:135;18801:53;18823:6;18801:53;;;;;;;;;;;;;;;;;:9;:17;18811:6;18801:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18781:9;:17;18791:6;18781:17;;;;;;;;;;;;;;;:73;;;;18867:22;18892:21;18906:6;18892:13;:21::i;:::-;:67;;18953:6;18892:67;;;18916:34;18924:6;18932:9;18943:6;18916:7;:34::i;:::-;18892:67;18867:92;;18995:40;19020:14;18995:9;:20;19005:9;18995:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;18972:9;:20;18982:9;18972:20;;;;;;;;;;;;;;;:63;;;;19052:16;:24;19069:6;19052:24;;;;;;;;;;;;;;;;;;;;;;;;;19048:96;;19083:11;;;;;;;;;;;:20;;;19104:6;19112:9;:17;19122:6;19112:17;;;;;;;;;;;;;;;;19083:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19079:63;;;;;;19048:96;19158:16;:27;19175:9;19158:27;;;;;;;;;;;;;;;;;;;;;;;;;19154:105;;19192:11;;;;;;;;;;;:20;;;19213:9;19224;:20;19234:9;19224:20;;;;;;;;;;;;;;;;19192:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19188:69;;;;;;19154:105;19275:11;;;;;;;;;;;:19;;;19295:14;;19275:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19271:51;;;;;;19356:9;19339:43;;19348:6;19339:43;;;19367:14;19339:43;;;;;;:::i;:::-;;;;;;;;19400:4;19393:11;;;;;;17821:1591;;;;;;:::o;1547:98::-;1605:7;1636:1;1632;:5;;;;:::i;:::-;1625:12;;1547:98;;;;:::o;1653:::-;1711:7;1742:1;1738;:5;;;;:::i;:::-;1731:12;;1653:98;;;;:::o;24287:361::-;15053:4;15044:6;;:13;;;;;;;;;;;;;;;;;;24363:21:::1;24401:1;24387:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24363:40;;24424:4;;;;;;;;;;;24414;24419:1;24414:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;24457:4;24439;24444:1;24439:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;24475:6;;;;;;;;;;;:57;;;24540:6;24562:1;24578:4;24597:2;24614:15;24475:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;24352:296;15071:5:::0;15062:6;;:14;;;;;;;;;;;;;;;;;;24287:361;;:::o;19420:340::-;19513:4;19550:53;19572:6;19550:53;;;;;;;;;;;;;;;;;:9;:17;19560:6;19550:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19530:9;:17;19540:6;19530:17;;;;;;;;;;;;;;;:73;;;;19637:32;19662:6;19637:9;:20;19647:9;19637:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19614:9;:20;19624:9;19614:20;;;;;;;;;;;;;;;:55;;;;19748:4;19741:11;;19420:340;;;;;:::o;19772:166::-;19869:12;;19859:6;:22;;:49;;;;19885:15;:23;19901:6;19885:23;;;;;;;;;;;;;;;;;;;;;;;;;19859:49;19851:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19772:166;;:::o;21359:197::-;21408:4;21446;;;;;;;;;;;21432:18;;:10;:18;;;;:38;;;;;21464:6;;;;;;;;;;;21463:7;21432:38;:62;;;;;21483:11;;;;;;;;;;;21432:62;:116;;;;;21535:13;;21507:9;:24;21525:4;21507:24;;;;;;;;;;;;;;;;:41;;21432:116;21425:123;;21359:197;:::o;21564:1641::-;15053:4;15044:6;;:13;;;;;;;;;;;;;;;;;;21613:27:::1;21643:60;21659:15;;21676:26;;21643:15;:60::i;:::-;:79;;21710:12;;21643:79;;;21706:1;21643:79;21613:109;;21733:23;21759:59;21816:1;21759:52;21802:8;;21759:38;21777:19;21759:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;21733:85;;21829:20;21852:34;21870:15;21852:13;;:17;;:34;;;;:::i;:::-;21829:57;;21899:21;21937:1;21923:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21899:40;;21968:4;21950;21955:1;21950:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;21994:4;;;;;;;;;;;21984;21989:1;21984:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;22009:21;22033;22009:45;;22067:6;;;;;;;;;;;:57;;;22139:12;22166:1;22182:4;22209;22229:15;22067:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22268:17;22288:40;22314:13;22288:21;:25;;:40;;;;:::i;:::-;22268:60;;22341:19;22363:40;22376:26;22400:1;22376:19;:23;;:26;;;;:::i;:::-;22363:8;;:12;;:40;;;;:::i;:::-;22341:62;;22416:26;22445:58;22501:1;22445:51;22484:11;22445:34;22459:19;22445:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;22416:87;;22514:27;22544:45;22577:11;22544:28;22558:13;;22544:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;22514:75;;22600:26;22629:44;22661:11;22629:27;22643:12;;22629:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;22600:73;;22690:11;;;;;;;;;;;:19;;;22717;22690:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22686:65;;;;;;22769:20;;;;;;;;;;;22761:38;;:58;22800:18;22761:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22857:1;22839:15;:19;22836:362;;;22874:6;;;;;;;;;;;:22;;;22904:18;22950:4;22974:15;23008:1;23028::::0;23048:21:::1;;;;;;;;;;;23088:15;22874:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23138:48;23150:18;23170:15;23138:48;;;;;;;:::i;:::-;;;;;;;;22836:362;21602:1603;;;;;;;;;;15071:5:::0;15062:6;;:14;;;;;;;;;;;;;;;;;;21564:1641::o;23213:318::-;23265:4;23303;;;;;;;;;;;23289:18;;:10;:18;;;;:38;;;;;23321:6;;;;;;;;;;;23320:7;23289:38;:69;;;;;23340:18;;;;;;;;;;;23289:69;:143;;;;;23420:12;23394:22;;23371:20;;:45;;;;:::i;:::-;:61;;23289:143;:234;;;;;23506:17;;23481:21;:42;;23289:234;23282:241;;23213:318;:::o;23976:303::-;24026:34;24036:17;;24055:4;;;;;;;;;;;24026:9;:34::i;:::-;24094:12;24071:20;:35;;;;24142:45;24169:17;;24142:22;;:26;;:45;;;;:::i;:::-;24117:22;:70;;;;24226:14;;24201:22;;:39;24198:74;;;24264:5;24243:18;;:26;;;;;;;;;;;;;;;;;;24198:74;23976:303::o;19946:114::-;20008:4;20033:11;:19;20045:6;20033:19;;;;;;;;;;;;;;;;;;;;;;;;;20032:20;20025:27;;19946:114;;;:::o;20979:372::-;21064:7;21084:17;21104:61;21150:14;;21104:41;21115:29;21139:4;;;;;;;;;;;21127:16;;:8;:16;;;21115:11;:29::i;:::-;21104:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;21084:81;;21205:39;21234:9;21205;:24;21223:4;21205:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;21178:9;:24;21196:4;21178:24;;;;;;;;;;;;;;;:66;;;;21285:4;21260:42;;21269:6;21260:42;;;21292:9;21260:42;;;;;;:::i;:::-;;;;;;;;21322:21;21333:9;21322:6;:10;;:21;;;;:::i;:::-;21315:28;;;20979:372;;;;;:::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:468::-;5459:6;5467;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5769:2;5795:50;5837:7;5828:6;5817:9;5813:22;5795:50;:::i;:::-;5785:60;;5740:115;5394:468;;;;;:::o;5868:474::-;5936:6;5944;5993:2;5981:9;5972:7;5968:23;5964:32;5961:119;;;5999:79;;:::i;:::-;5961:119;6119:1;6144:53;6189:7;6180:6;6169:9;6165:22;6144:53;:::i;:::-;6134:63;;6090:117;6246:2;6272:53;6317:7;6308:6;6297:9;6293:22;6272:53;:::i;:::-;6262:63;;6217:118;5868:474;;;;;:::o;6348:619::-;6425:6;6433;6441;6490:2;6478:9;6469:7;6465:23;6461:32;6458:119;;;6496:79;;:::i;:::-;6458:119;6616:1;6641:53;6686:7;6677:6;6666:9;6662:22;6641:53;:::i;:::-;6631:63;;6587:117;6743:2;6769:53;6814:7;6805:6;6794:9;6790:22;6769:53;:::i;:::-;6759:63;;6714:118;6871:2;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6842:118;6348:619;;;;;:::o;6973:663::-;7061:6;7069;7077;7126:2;7114:9;7105:7;7101:23;7097:32;7094:119;;;7132:79;;:::i;:::-;7094:119;7252:1;7277:64;7333:7;7324:6;7313:9;7309:22;7277:64;:::i;:::-;7267:74;;7223:128;7390:2;7416:64;7472:7;7463:6;7452:9;7448:22;7416:64;:::i;:::-;7406:74;;7361:129;7529:2;7555:64;7611:7;7602:6;7591:9;7587:22;7555:64;:::i;:::-;7545:74;;7500:129;6973:663;;;;;:::o;7642:911::-;7737:6;7745;7753;7761;7769;7818:3;7806:9;7797:7;7793:23;7789:33;7786:120;;;7825:79;;:::i;:::-;7786:120;7945:1;7970:53;8015:7;8006:6;7995:9;7991:22;7970:53;:::i;:::-;7960:63;;7916:117;8072:2;8098:53;8143:7;8134:6;8123:9;8119:22;8098:53;:::i;:::-;8088:63;;8043:118;8200:2;8226:53;8271:7;8262:6;8251:9;8247:22;8226:53;:::i;:::-;8216:63;;8171:118;8328:2;8354:53;8399:7;8390:6;8379:9;8375:22;8354:53;:::i;:::-;8344:63;;8299:118;8456:3;8483:53;8528:7;8519:6;8508:9;8504:22;8483:53;:::i;:::-;8473:63;;8427:119;7642:911;;;;;;;;:::o;8559:179::-;8628:10;8649:46;8691:3;8683:6;8649:46;:::i;:::-;8727:4;8722:3;8718:14;8704:28;;8559:179;;;;:::o;8744:147::-;8839:45;8878:5;8839:45;:::i;:::-;8834:3;8827:58;8744:147;;:::o;8897:108::-;8974:24;8992:5;8974:24;:::i;:::-;8969:3;8962:37;8897:108;;:::o;9011:118::-;9098:24;9116:5;9098:24;:::i;:::-;9093:3;9086:37;9011:118;;:::o;9165:732::-;9284:3;9313:54;9361:5;9313:54;:::i;:::-;9383:86;9462:6;9457:3;9383:86;:::i;:::-;9376:93;;9493:56;9543:5;9493:56;:::i;:::-;9572:7;9603:1;9588:284;9613:6;9610:1;9607:13;9588:284;;;9689:6;9683:13;9716:63;9775:3;9760:13;9716:63;:::i;:::-;9709:70;;9802:60;9855:6;9802:60;:::i;:::-;9792:70;;9648:224;9635:1;9632;9628:9;9623:14;;9588:284;;;9592:14;9888:3;9881:10;;9289:608;;;9165:732;;;;:::o;9903:109::-;9984:21;9999:5;9984:21;:::i;:::-;9979:3;9972:34;9903:109;;:::o;10018:167::-;10123:55;10172:5;10123:55;:::i;:::-;10118:3;10111:68;10018:167;;:::o;10191:147::-;10286:45;10325:5;10286:45;:::i;:::-;10281:3;10274:58;10191:147;;:::o;10344:364::-;10432:3;10460:39;10493:5;10460:39;:::i;:::-;10515:71;10579:6;10574:3;10515:71;:::i;:::-;10508:78;;10595:52;10640:6;10635:3;10628:4;10621:5;10617:16;10595:52;:::i;:::-;10672:29;10694:6;10672:29;:::i;:::-;10667:3;10663:39;10656:46;;10436:272;10344:364;;;;:::o;10714:366::-;10856:3;10877:67;10941:2;10936:3;10877:67;:::i;:::-;10870:74;;10953:93;11042:3;10953:93;:::i;:::-;11071:2;11066:3;11062:12;11055:19;;10714:366;;;:::o;11086:::-;11228:3;11249:67;11313:2;11308:3;11249:67;:::i;:::-;11242:74;;11325:93;11414:3;11325:93;:::i;:::-;11443:2;11438:3;11434:12;11427:19;;11086:366;;;:::o;11458:::-;11600:3;11621:67;11685:2;11680:3;11621:67;:::i;:::-;11614:74;;11697:93;11786:3;11697:93;:::i;:::-;11815:2;11810:3;11806:12;11799:19;;11458:366;;;:::o;11830:365::-;11972:3;11993:66;12057:1;12052:3;11993:66;:::i;:::-;11986:73;;12068:93;12157:3;12068:93;:::i;:::-;12186:2;12181:3;12177:12;12170:19;;11830:365;;;:::o;12201:366::-;12343:3;12364:67;12428:2;12423:3;12364:67;:::i;:::-;12357:74;;12440:93;12529:3;12440:93;:::i;:::-;12558:2;12553:3;12549:12;12542:19;;12201:366;;;:::o;12573:118::-;12660:24;12678:5;12660:24;:::i;:::-;12655:3;12648:37;12573:118;;:::o;12697:112::-;12780:22;12796:5;12780:22;:::i;:::-;12775:3;12768:35;12697:112;;:::o;12815:222::-;12908:4;12946:2;12935:9;12931:18;12923:26;;12959:71;13027:1;13016:9;13012:17;13003:6;12959:71;:::i;:::-;12815:222;;;;:::o;13043:238::-;13144:4;13182:2;13171:9;13167:18;13159:26;;13195:79;13271:1;13260:9;13256:17;13247:6;13195:79;:::i;:::-;13043:238;;;;:::o;13287:348::-;13416:4;13454:2;13443:9;13439:18;13431:26;;13467:71;13535:1;13524:9;13520:17;13511:6;13467:71;:::i;:::-;13548:80;13624:2;13613:9;13609:18;13600:6;13548:80;:::i;:::-;13287:348;;;;;:::o;13641:332::-;13762:4;13800:2;13789:9;13785:18;13777:26;;13813:71;13881:1;13870:9;13866:17;13857:6;13813:71;:::i;:::-;13894:72;13962:2;13951:9;13947:18;13938:6;13894:72;:::i;:::-;13641:332;;;;;:::o;13979:807::-;14228:4;14266:3;14255:9;14251:19;14243:27;;14280:71;14348:1;14337:9;14333:17;14324:6;14280:71;:::i;:::-;14361:72;14429:2;14418:9;14414:18;14405:6;14361:72;:::i;:::-;14443:80;14519:2;14508:9;14504:18;14495:6;14443:80;:::i;:::-;14533;14609:2;14598:9;14594:18;14585:6;14533:80;:::i;:::-;14623:73;14691:3;14680:9;14676:19;14667:6;14623:73;:::i;:::-;14706;14774:3;14763:9;14759:19;14750:6;14706:73;:::i;:::-;13979:807;;;;;;;;;:::o;14792:210::-;14879:4;14917:2;14906:9;14902:18;14894:26;;14930:65;14992:1;14981:9;14977:17;14968:6;14930:65;:::i;:::-;14792:210;;;;:::o;15008:258::-;15119:4;15157:2;15146:9;15142:18;15134:26;;15170:89;15256:1;15245:9;15241:17;15232:6;15170:89;:::i;:::-;15008:258;;;;:::o;15272:720::-;15507:4;15545:3;15534:9;15530:19;15522:27;;15559:79;15635:1;15624:9;15620:17;15611:6;15559:79;:::i;:::-;15685:9;15679:4;15675:20;15670:2;15659:9;15655:18;15648:48;15713:108;15816:4;15807:6;15713:108;:::i;:::-;15705:116;;15831:72;15899:2;15888:9;15884:18;15875:6;15831:72;:::i;:::-;15913;15981:2;15970:9;15966:18;15957:6;15913:72;:::i;:::-;15272:720;;;;;;;:::o;15998:313::-;16111:4;16149:2;16138:9;16134:18;16126:26;;16198:9;16192:4;16188:20;16184:1;16173:9;16169:17;16162:47;16226:78;16299:4;16290:6;16226:78;:::i;:::-;16218:86;;15998:313;;;;:::o;16317:419::-;16483:4;16521:2;16510:9;16506:18;16498:26;;16570:9;16564:4;16560:20;16556:1;16545:9;16541:17;16534:47;16598:131;16724:4;16598:131;:::i;:::-;16590:139;;16317:419;;;:::o;16742:::-;16908:4;16946:2;16935:9;16931:18;16923:26;;16995:9;16989:4;16985:20;16981:1;16970:9;16966:17;16959:47;17023:131;17149:4;17023:131;:::i;:::-;17015:139;;16742:419;;;:::o;17167:::-;17333:4;17371:2;17360:9;17356:18;17348:26;;17420:9;17414:4;17410:20;17406:1;17395:9;17391:17;17384:47;17448:131;17574:4;17448:131;:::i;:::-;17440:139;;17167:419;;;:::o;17592:::-;17758:4;17796:2;17785:9;17781:18;17773:26;;17845:9;17839:4;17835:20;17831:1;17820:9;17816:17;17809:47;17873:131;17999:4;17873:131;:::i;:::-;17865:139;;17592:419;;;:::o;18017:::-;18183:4;18221:2;18210:9;18206:18;18198:26;;18270:9;18264:4;18260:20;18256:1;18245:9;18241:17;18234:47;18298:131;18424:4;18298:131;:::i;:::-;18290:139;;18017:419;;;:::o;18442:222::-;18535:4;18573:2;18562:9;18558:18;18550:26;;18586:71;18654:1;18643:9;18639:17;18630:6;18586:71;:::i;:::-;18442:222;;;;:::o;18670:831::-;18933:4;18971:3;18960:9;18956:19;18948:27;;18985:71;19053:1;19042:9;19038:17;19029:6;18985:71;:::i;:::-;19066:80;19142:2;19131:9;19127:18;19118:6;19066:80;:::i;:::-;19193:9;19187:4;19183:20;19178:2;19167:9;19163:18;19156:48;19221:108;19324:4;19315:6;19221:108;:::i;:::-;19213:116;;19339:72;19407:2;19396:9;19392:18;19383:6;19339:72;:::i;:::-;19421:73;19489:3;19478:9;19474:19;19465:6;19421:73;:::i;:::-;18670:831;;;;;;;;:::o;19507:332::-;19628:4;19666:2;19655:9;19651:18;19643:26;;19679:71;19747:1;19736:9;19732:17;19723:6;19679:71;:::i;:::-;19760:72;19828:2;19817:9;19813:18;19804:6;19760:72;:::i;:::-;19507:332;;;;;:::o;19845:214::-;19934:4;19972:2;19961:9;19957:18;19949:26;;19985:67;20049:1;20038:9;20034:17;20025:6;19985:67;:::i;:::-;19845:214;;;;:::o;20146:132::-;20213:4;20236:3;20228:11;;20266:4;20261:3;20257:14;20249:22;;20146:132;;;:::o;20284:114::-;20351:6;20385:5;20379:12;20369:22;;20284:114;;;:::o;20404:99::-;20456:6;20490:5;20484:12;20474:22;;20404:99;;;:::o;20509:113::-;20579:4;20611;20606:3;20602:14;20594:22;;20509:113;;;:::o;20628:184::-;20727:11;20761:6;20756:3;20749:19;20801:4;20796:3;20792:14;20777:29;;20628:184;;;;:::o;20818:169::-;20902:11;20936:6;20931:3;20924:19;20976:4;20971:3;20967:14;20952:29;;20818:169;;;;:::o;20993:305::-;21033:3;21052:20;21070:1;21052:20;:::i;:::-;21047:25;;21086:20;21104:1;21086:20;:::i;:::-;21081:25;;21240:1;21172:66;21168:74;21165:1;21162:81;21159:107;;;21246:18;;:::i;:::-;21159:107;21290:1;21287;21283:9;21276:16;;20993:305;;;;:::o;21304:185::-;21344:1;21361:20;21379:1;21361:20;:::i;:::-;21356:25;;21395:20;21413:1;21395:20;:::i;:::-;21390:25;;21434:1;21424:35;;21439:18;;:::i;:::-;21424:35;21481:1;21478;21474:9;21469:14;;21304:185;;;;:::o;21495:348::-;21535:7;21558:20;21576:1;21558:20;:::i;:::-;21553:25;;21592:20;21610:1;21592:20;:::i;:::-;21587:25;;21780:1;21712:66;21708:74;21705:1;21702:81;21697:1;21690:9;21683:17;21679:105;21676:131;;;21787:18;;:::i;:::-;21676:131;21835:1;21832;21828:9;21817:20;;21495:348;;;;:::o;21849:191::-;21889:4;21909:20;21927:1;21909:20;:::i;:::-;21904:25;;21943:20;21961:1;21943:20;:::i;:::-;21938:25;;21982:1;21979;21976:8;21973:34;;;21987:18;;:::i;:::-;21973:34;22032:1;22029;22025:9;22017:17;;21849:191;;;;:::o;22046:96::-;22083:7;22112:24;22130:5;22112:24;:::i;:::-;22101:35;;22046:96;;;:::o;22148:104::-;22193:7;22222:24;22240:5;22222:24;:::i;:::-;22211:35;;22148:104;;;:::o;22258:90::-;22292:7;22335:5;22328:13;22321:21;22310:32;;22258:90;;;:::o;22354:126::-;22391:7;22431:42;22424:5;22420:54;22409:65;;22354:126;;;:::o;22486:77::-;22523:7;22552:5;22541:16;;22486:77;;;:::o;22569:86::-;22604:7;22644:4;22637:5;22633:16;22622:27;;22569:86;;;:::o;22661:134::-;22719:9;22752:37;22783:5;22752:37;:::i;:::-;22739:50;;22661:134;;;:::o;22801:144::-;22869:9;22902:37;22933:5;22902:37;:::i;:::-;22889:50;;22801:144;;;:::o;22951:121::-;23009:9;23042:24;23060:5;23042:24;:::i;:::-;23029:37;;22951:121;;;:::o;23078:126::-;23128:9;23161:37;23192:5;23161:37;:::i;:::-;23148:50;;23078:126;;;:::o;23210:113::-;23260:9;23293:24;23311:5;23293:24;:::i;:::-;23280:37;;23210:113;;;:::o;23329:307::-;23397:1;23407:113;23421:6;23418:1;23415:13;23407:113;;;23506:1;23501:3;23497:11;23491:18;23487:1;23482:3;23478:11;23471:39;23443:2;23440:1;23436:10;23431:15;;23407:113;;;23538:6;23535:1;23532:13;23529:101;;;23618:1;23609:6;23604:3;23600:16;23593:27;23529:101;23378:258;23329:307;;;:::o;23642:180::-;23690:77;23687:1;23680:88;23787:4;23784:1;23777:15;23811:4;23808:1;23801:15;23828:180;23876:77;23873:1;23866:88;23973:4;23970:1;23963:15;23997:4;23994:1;23987:15;24014:180;24062:77;24059:1;24052:88;24159:4;24156:1;24149:15;24183:4;24180:1;24173:15;24200:180;24248:77;24245:1;24238:88;24345:4;24342:1;24335:15;24369:4;24366:1;24359:15;24509:117;24618:1;24615;24608:12;24632:102;24673:6;24724:2;24720:7;24715:2;24708:5;24704:14;24700:28;24690:38;;24632:102;;;:::o;24740:167::-;24880:19;24876:1;24868:6;24864:14;24857:43;24740:167;:::o;24913:179::-;25053:31;25049:1;25041:6;25037:14;25030:55;24913:179;:::o;25098:170::-;25238:22;25234:1;25226:6;25222:14;25215:46;25098:170;:::o;25274:156::-;25414:8;25410:1;25402:6;25398:14;25391:32;25274:156;:::o;25436:161::-;25576:13;25572:1;25564:6;25560:14;25553:37;25436:161;:::o;25603:122::-;25676:24;25694:5;25676:24;:::i;:::-;25669:5;25666:35;25656:63;;25715:1;25712;25705:12;25656:63;25603:122;:::o;25731:138::-;25812:32;25838:5;25812:32;:::i;:::-;25805:5;25802:43;25792:71;;25859:1;25856;25849:12;25792:71;25731:138;:::o;25875:116::-;25945:21;25960:5;25945:21;:::i;:::-;25938:5;25935:32;25925:60;;25981:1;25978;25971:12;25925:60;25875:116;:::o;25997:122::-;26070:24;26088:5;26070:24;:::i;:::-;26063:5;26060:35;26050:63;;26109:1;26106;26099:12;26050:63;25997:122;:::o
Swarm Source
ipfs://b1777e182d392cb7b64f19b84b69ec82d5122711deffeadb0621680ae11c64d0
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.