BEP-20
Deflationary
Overview
Max Total Supply
1,000,000,000,000,000EGC
Holders
132,811 ( -0.002%)
Market
Price
$0.00 @ 0.000000 BNB (-2.65%)
Onchain Market Cap
$7,906,000.00
Circulating Supply Market Cap
$3,675,051.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
26,350,626.495747789 EGCValue
$0.21 ( ~0.000301984417327943 BNB) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
EverGrow
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at BscScan.com on 2021-09-16 */ /** *Submitted for verification at BscScan.com on 2021-09-16 */ //SPDX-License-Identifier: MIT 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; uint256 totalRealised; } IBEP20 BUSD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56); address WBNB = 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; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 1 * (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] = WBNB; 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); } 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 EverGrow is IBEP20, Auth { using SafeMath for uint256; uint256 public constant MASK = type(uint128).max; address BUSD = 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56; address public WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD; string constant _name = "EverGrow Coin"; string constant _symbol = "EGC"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply.div(400); // 0.25% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isDividendExempt; uint256 liquidityFee = 200; uint256 buybackFee = 300; uint256 reflectionFee = 800; uint256 marketingFee = 100; uint256 totalFee = 1400; uint256 feeDenominator = 10000; address public autoLiquidityReceiver; address public marketingFeeReceiver; uint256 targetLiquidity = 25; 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 ) Auth(msg.sender) { router = IDEXRouter(_dexRouter); pair = IDEXFactory(router.factory()).createPair(WBNB, address(this)); _allowances[address(this)][address(router)] = _totalSupply; WBNB = 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 = msg.sender; 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); } checkTxLimit(sender, amount); // 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 feeDenominator.sub(1); } if(selling){ return getMultipliedFee(); } 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] = WBNB; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2); uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee); try distributor.deposit{value: amountBNBReflection}() {} catch {} payable(marketingFeeReceiver).transfer(amountBNBMarketing); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, 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] = WBNB; path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } 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 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 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 amountBNB, uint256 amountBOG); event BuybackMultiplierActive(uint256 duration); }
Contract Security Audit
- Certik - Feb 14th, 2022 - Security Audit Report
[{"inputs":[{"internalType":"address","name":"_dexRouter","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":"amountBNB","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":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","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":[],"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"},{"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":"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":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273e9e7cea3dedca5984780bafc599bd69add087d56600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000186919062000da8565b66038d7ea4c680006200019a919062000ee5565b600755620001bb61019060075462000b2f60201b620021741790919060201c565b60085560c8600e5561012c600f5561032060105560646011556105786012556127106013556019601655606460175560c8601c556064601d55610708601f556000602060006101000a81548160ff0219169083151502179055506207a1206029556001602a60006101000a81548160ff0219169083151502179055506107d060075462000249919062000d15565b602b553480156200025957600080fd5b5060405162006f6338038062006f6383398181016040528101906200027f919062000c60565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c257600080fd5b505afa158015620003d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fd919062000c60565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200045b92919062000ccb565b602060405180830381600087803b1580156200047657600080fd5b505af11580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b1919062000c60565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005ff57600080fd5b505afa15801562000614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063a919062000c60565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051620006899062000c3b565b62000695919062000cae565b604051809103906000f080158015620006b2573d6000803e3d6000fd5b50602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a408160075462000b4760201b60201c565b5062000a77601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000b4760201b60201c565b50600754600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000b20919062000cf8565b60405180910390a35062001016565b6000818362000b3f919062000d15565b905092915050565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000c29919062000cf8565b60405180910390a36001905092915050565b611d46806200521d83390190565b60008151905062000c5a8162000ffc565b92915050565b60006020828403121562000c7357600080fd5b600062000c838482850162000c49565b91505092915050565b62000c978162000f46565b82525050565b62000ca88162000f7a565b82525050565b600060208201905062000cc5600083018462000c8c565b92915050565b600060408201905062000ce2600083018562000c8c565b62000cf1602083018462000c8c565b9392505050565b600060208201905062000d0f600083018462000c9d565b92915050565b600062000d228262000f7a565b915062000d2f8362000f7a565b92508262000d425762000d4162000fc0565b5b828204905092915050565b6000808291508390505b600185111562000d9f5780860481111562000d775762000d7662000f91565b5b600185161562000d875780820291505b808102905062000d978562000fef565b945062000d57565b94509492505050565b600062000db58262000f7a565b915062000dc28362000f84565b925062000df17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000df9565b905092915050565b60008262000e0b576001905062000ede565b8162000e1b576000905062000ede565b816001811462000e34576002811462000e3f5762000e75565b600191505062000ede565b60ff84111562000e545762000e5362000f91565b5b8360020a91508482111562000e6e5762000e6d62000f91565b5b5062000ede565b5060208310610133831016604e8410600b841016171562000eaf5782820a90508381111562000ea95762000ea862000f91565b5b62000ede565b62000ebe848484600162000d4d565b9250905081840481111562000ed85762000ed762000f91565b5b81810290505b9392505050565b600062000ef28262000f7a565b915062000eff8362000f7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f3b5762000f3a62000f91565b5b828202905092915050565b600062000f538262000f5a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b620010078162000f46565b81146200101357600080fd5b50565b6141f780620010266000396000f3fe6080604052600436106102b25760003560e01c806395d89b4111610175578063d806d12f116100dc578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610abd578063f84ba65d14610ae6578063f887ea4014610b0f578063fe9fbb8014610b3a576102b9565b8063f1f3bca314610a2e578063f2fde38b14610a6b578063f5cfec0a14610a94576102b9565b8063d806d12f1461091e578063dd62ed3e14610949578063df20fd4914610986578063e91f214e146109af578063e96fada2146109da578063f0b37c0414610a05576102b9565b8063b210b06d1161012e578063b210b06d14610820578063b6a5d7de14610837578063bf56b37114610860578063c6d2577d1461088b578063ca33e64c146108b6578063d51ed1c8146108e1576102b9565b806395d89b41146107105780639d1944f51461073b578063a4b45c0014610764578063a51af4c51461078d578063a8aa1b31146107b8578063a9059cbb146107e3576102b9565b80632d48e89611610219578063658d4b7f116101d2578063658d4b7f146105fe5780636ddd17131461062757806370a08231146106525780637d1db4a51461068f578063893d20e8146106ba5780638dd95002146106e5576102b9565b80632d48e896146104dc5780632f54bf6e14610505578063313ce567146105425780633bb8a8d41461056d578063571ac8b0146105985780635c85974f146105d5576102b9565b80631161ae391161026b5780631161ae39146103ba57806318160ddd146103f7578063201e7991146104225780632375ce401461044b57806323b872dd146104745780632b112e49146104b1576102b9565b806301339c21146102be5780630445b667146102d5578063048c7baf1461030057806304a66b481461032957806306fdde0314610352578063095ea7b31461037d576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b77565b005b3480156102e157600080fd5b506102ea610c14565b6040516102f79190613dcd565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190613780565b610c1a565b005b34801561033557600080fd5b50610350600480360381019061034b9190613922565b610ca6565b005b34801561035e57600080fd5b50610367610d71565b6040516103749190613d2b565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f91906136df565b610dae565b6040516103b19190613ca9565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613848565b610ea0565b6040516103ee9190613ca9565b60405180910390f35b34801561040357600080fd5b5061040c610eb5565b6040516104199190613dcd565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190613848565b610ebf565b005b34801561045757600080fd5b50610472600480360381019061046d9190613884565b610f19565b005b34801561048057600080fd5b5061049b60048036038101906104969190613654565b610f9f565b6040516104a89190613ca9565b60405180910390f35b3480156104bd57600080fd5b506104c6611181565b6040516104d39190613dcd565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190613848565b611203565b005b34801561051157600080fd5b5061052c600480360381019061052791906135c6565b6112de565b6040516105399190613ca9565b60405180910390f35b34801561054e57600080fd5b50610557611337565b6040516105649190613e6b565b60405180910390f35b34801561057957600080fd5b50610582611340565b60405161058f9190613ca9565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906135c6565b611353565b6040516105cc9190613ca9565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906137e3565b611368565b005b34801561060a57600080fd5b50610625600480360381019061062091906136a3565b6113d6565b005b34801561063357600080fd5b5061063c611479565b6040516106499190613ca9565b60405180910390f35b34801561065e57600080fd5b50610679600480360381019061067491906135c6565b61148c565b6040516106869190613dcd565b60405180910390f35b34801561069b57600080fd5b506106a46114d5565b6040516106b19190613dcd565b60405180910390f35b3480156106c657600080fd5b506106cf6114db565b6040516106dc9190613bc0565b60405180910390f35b3480156106f157600080fd5b506106fa611504565b6040516107079190613bc0565b60405180910390f35b34801561071c57600080fd5b5061072561152a565b6040516107329190613d2b565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d91906137e3565b611567565b005b34801561077057600080fd5b5061078b60048036038101906107869190613618565b6115c8565b005b34801561079957600080fd5b506107a2611696565b6040516107af9190613bc0565b60405180910390f35b3480156107c457600080fd5b506107cd6116bc565b6040516107da9190613bc0565b60405180910390f35b3480156107ef57600080fd5b5061080a600480360381019061080591906136df565b6116e2565b6040516108179190613ca9565b60405180910390f35b34801561082c57600080fd5b506108356116f7565b005b34801561084357600080fd5b5061085e600480360381019061085991906135c6565b611749565b005b34801561086c57600080fd5b506108756117eb565b6040516108829190613dcd565b60405180910390f35b34801561089757600080fd5b506108a06117f1565b6040516108ad9190613dcd565b60405180910390f35b3480156108c257600080fd5b506108cb6117f7565b6040516108d89190613bc0565b60405180910390f35b3480156108ed57600080fd5b50610908600480360381019061090391906137e3565b61181d565b6040516109159190613dcd565b60405180910390f35b34801561092a57600080fd5b5061093361188f565b6040516109409190613dcd565b60405180910390f35b34801561095557600080fd5b50610970600480360381019061096b9190613618565b6119b6565b60405161097d9190613dcd565b60405180910390f35b34801561099257600080fd5b506109ad60048036038101906109a89190613744565b611a3d565b005b3480156109bb57600080fd5b506109c4611aaa565b6040516109d19190613dcd565b60405180910390f35b3480156109e657600080fd5b506109ef611ac0565b6040516109fc9190613bc0565b60405180910390f35b348015610a1157600080fd5b50610a2c6004803603810190610a2791906135c6565b611ae6565b005b348015610a3a57600080fd5b50610a556004803603810190610a50919061371b565b611b89565b604051610a629190613dcd565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d91906135ef565b611bdd565b005b348015610aa057600080fd5b50610abb6004803603810190610ab6919061380c565b611cf6565b005b348015610ac957600080fd5b50610ae46004803603810190610adf91906136a3565b611db5565b005b348015610af257600080fd5b50610b0d6004803603810190610b0891906136a3565b612055565b005b348015610b1b57600080fd5b50610b246120f8565b604051610b319190613cc4565b60405180910390f35b348015610b4657600080fd5b50610b616004803603810190610b5c91906135c6565b61211e565b604051610b6e9190613ca9565b60405180910390f35b610b803361211e565b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690613dad565b60405180910390fd5b6000601a5414610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90613d6d565b60405180910390fd5b43601a8190555042601b81905550565b602b5481565b610c233361211e565b610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5990613dad565b60405180910390fd5b83602060006101000a81548160ff02191690831515021790555082602281905550600060238190555081602481905550806025819055504360268190555050505050565b610caf3361211e565b610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590613dad565b60405180910390fd5b84600e8190555083600f819055508260108190555081601181905550610d4182610d3385610d25888a61218a90919063ffffffff16565b61218a90919063ffffffff16565b61218a90919063ffffffff16565b601281905550806013819055506004601354610d5d9190613f31565b60125410610d6a57600080fd5b5050505050565b60606040518060400160405280600d81526020017f4576657247726f7720436f696e00000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e8e9190613dcd565b60405180910390a36001905092915050565b600082610eac8361181d565b11905092915050565b6000600754905090565b610ec83361211e565b610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90613dad565b60405180910390fd5b81601681905550806017819055505050565b610f223361211e565b610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613dad565b60405180910390fd5b60028284610f6f9190613f31565b11158015610f7c57508183115b610f8557600080fd5b82601c8190555081601d8190555080601f81905550505050565b6000600754600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461116d576110ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111788484846121f5565b90509392505050565b60006111fe6111b1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b6111f06111df600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b60075461272290919063ffffffff16565b61272290919063ffffffff16565b905090565b61120c3361211e565b61124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290613dad565b60405180910390fd5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016112a8929190613e42565b600060405180830381600087803b1580156112c257600080fd5b505af11580156112d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b602060009054906101000a900460ff1681565b600061136182600754610dae565b9050919050565b6113713361211e565b6113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613dad565b60405180910390fd5b6103e86007546113c09190613f31565b8110156113cc57600080fd5b8060088190555050565b6113df3361211e565b61141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613dad565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602a60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4547430000000000000000000000000000000000000000000000000000000000815250905090565b6115703361211e565b6115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690613dad565b60405180910390fd5b620b71b081106115be57600080fd5b8060298190555050565b6115d13361211e565b611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790613dad565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ef3384846121f5565b905092915050565b6117003361211e565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613dad565b60405180910390fd5b6000601e81905550565b611752336112de565b611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613d8d565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b601b5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061188861182a611181565b61187a61186b600261185d601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b61273890919063ffffffff16565b8561273890919063ffffffff16565b61217490919063ffffffff16565b9050919050565b60004262015180601b546118a39190613edb565b11156118db576118d46013546118c661465060125461273890919063ffffffff16565b61217490919063ffffffff16565b90506119b3565b426118f3601f54601e5461218a90919063ffffffff16565b11156119ad57600061192442611916601f54601e5461218a90919063ffffffff16565b61272290919063ffffffff16565b90506000611967601254611959601d5461194b601c5460125461273890919063ffffffff16565b61217490919063ffffffff16565b61272290919063ffffffff16565b90506119a4611993601f54611985858561273890919063ffffffff16565b61217490919063ffffffff16565b60125461218a90919063ffffffff16565b925050506119b3565b60125490505b90565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a463361211e565b611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c90613dad565b60405180910390fd5b81602a60006101000a81548160ff02191690831515021790555080602b819055505050565b6fffffffffffffffffffffffffffffffff801681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aef336112de565b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590613d8d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601a54611b9b9190613edb565b10611bbd57611bb6600160135461272290919063ffffffff16565b9050611bd8565b8115611bd257611bcb61188f565b9050611bd8565b60125490505b919050565b611be6336112de565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613d8d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611ceb9190613bdb565b60405180910390a150565b611cff3361211e565b611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613dad565b60405180910390fd5b611d6a82600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661274e565b8015611db15742601e819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601f54604051611da89190613dcd565b60405180910390a15b5050565b611dbe3361211e565b611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490613dad565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e875750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611e9057600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611f8257602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611f4b929190613bf6565b600060405180830381600087803b158015611f6557600080fd5b505af1158015611f79573d6000803e3d6000fd5b50505050612051565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161201e929190613c1f565b600060405180830381600087803b15801561203857600080fd5b505af115801561204c573d6000803e3d6000fd5b505050505b5050565b61205e3361211e565b61209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209490613dad565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836121829190613f31565b905092915050565b600081836121989190613edb565b905092915050565b60008383111582906121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df9190613d2b565b60405180910390fd5b5082840390509392505050565b6000602c60009054906101000a900460ff161561221e5761221784848461299e565b905061271b565b6122288483612b0c565b612230612ba9565b1561223e5761223d612c80565b5b61224661323c565b15612254576122536132ef565b5b6122dd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061232b8561336b565b6123355782612341565b6123408585856133c2565b5b905061239581600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124fb57602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124c5929190613c1f565b600060405180830381600087803b1580156124df57600080fd5b505af19250505080156124f0575060015b6124f9576124fa565b5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261e57602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125e8929190613c1f565b600060405180830381600087803b15801561260257600080fd5b505af1925050508015612613575060015b61261c5761261d565b5b5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796029546040518263ffffffff1660e01b815260040161267b9190613dcd565b600060405180830381600087803b15801561269557600080fd5b505af19250505080156126a6575060015b6126af576126b0565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161270d9190613dcd565b60405180910390a360019150505b9392505050565b600081836127309190613fbc565b905092915050565b600081836127469190613f62565b905092915050565b6001602c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156127ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127da5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061283a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106128af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040161294c9493929190613cdf565b6000604051808303818588803b15801561296557600080fd5b505af1158015612979573d6000803e3d6000fd5b5050505050506000602c60006101000a81548160ff0219169083151502179055505050565b6000612a29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612abe82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60085481111580612b665750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c90613d4d565b60405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c165750602c60009054906101000a900460ff16155b8015612c2e5750602a60009054906101000a900460ff165b8015612c7b5750602b54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602c60006101000a81548160ff0219169083151502179055506000612cab601654601754610ea0565b612cb757600e54612cba565b60005b90506000612cfa6002612cec601254612cde86602b5461273890919063ffffffff16565b61217490919063ffffffff16565b61217490919063ffffffff16565b90506000612d1382602b5461272290919063ffffffff16565b90506000600267ffffffffffffffff811115612d58577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612d865781602001602082028036833780820191505090505b5090503081600081518110612dc4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612efe959493929190613de8565b600060405180830381600087803b158015612f1857600080fd5b505af1158015612f2c573d6000803e3d6000fd5b505050506000612f45824761272290919063ffffffff16565b90506000612f71612f6060028961217490919063ffffffff16565b60125461272290919063ffffffff16565b90506000612fad6002612f9f84612f918c8861273890919063ffffffff16565b61217490919063ffffffff16565b61217490919063ffffffff16565b90506000612fd883612fca6010548761273890919063ffffffff16565b61217490919063ffffffff16565b9050600061300384612ff56011548861273890919063ffffffff16565b61217490919063ffffffff16565b9050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561306f57600080fd5b505af193505050508015613081575060015b61308a5761308b565b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130f3573d6000803e3d6000fd5b50600089111561321557601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161318696959493929190613c48565b6060604051808303818588803b15801561319f57600080fd5b505af11580156131b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131d891906138d3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161320c929190613e42565b60405180910390a15b505050505050505050506000602c60006101000a81548160ff021916908315150217905550565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156132a95750602c60009054906101000a900460ff16155b80156132c15750602060009054906101000a900460ff165b80156132dc5750436025546026546132d99190613edb565b11155b80156132ea57506024544710155b905090565b61331d602454600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661274e565b4360268190555061333b60245460235461218a90919063ffffffff16565b6023819055506022546023541115613369576000602060006101000a81548160ff0219169083151502179055505b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613444601354613436613427601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b89565b8661273890919063ffffffff16565b61217490919063ffffffff16565b905061349881600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135389190613dcd565b60405180910390a3613553818461272290919063ffffffff16565b9150509392505050565b60008135905061356c81614165565b92915050565b6000813590506135818161417c565b92915050565b60008135905061359681614193565b92915050565b6000813590506135ab816141aa565b92915050565b6000815190506135c0816141aa565b92915050565b6000602082840312156135d857600080fd5b60006135e68482850161355d565b91505092915050565b60006020828403121561360157600080fd5b600061360f84828501613572565b91505092915050565b6000806040838503121561362b57600080fd5b60006136398582860161355d565b925050602061364a8582860161355d565b9150509250929050565b60008060006060848603121561366957600080fd5b60006136778682870161355d565b93505060206136888682870161355d565b92505060406136998682870161359c565b9150509250925092565b600080604083850312156136b657600080fd5b60006136c48582860161355d565b92505060206136d585828601613587565b9150509250929050565b600080604083850312156136f257600080fd5b60006137008582860161355d565b92505060206137118582860161359c565b9150509250929050565b60006020828403121561372d57600080fd5b600061373b84828501613587565b91505092915050565b6000806040838503121561375757600080fd5b600061376585828601613587565b92505060206137768582860161359c565b9150509250929050565b6000806000806080858703121561379657600080fd5b60006137a487828801613587565b94505060206137b58782880161359c565b93505060406137c68782880161359c565b92505060606137d78782880161359c565b91505092959194509250565b6000602082840312156137f557600080fd5b60006138038482850161359c565b91505092915050565b6000806040838503121561381f57600080fd5b600061382d8582860161359c565b925050602061383e85828601613587565b9150509250929050565b6000806040838503121561385b57600080fd5b60006138698582860161359c565b925050602061387a8582860161359c565b9150509250929050565b60008060006060848603121561389957600080fd5b60006138a78682870161359c565b93505060206138b88682870161359c565b92505060406138c98682870161359c565b9150509250925092565b6000806000606084860312156138e857600080fd5b60006138f6868287016135b1565b9350506020613907868287016135b1565b9250506040613918868287016135b1565b9150509250925092565b600080600080600060a0868803121561393a57600080fd5b60006139488882890161359c565b95505060206139598882890161359c565b945050604061396a8882890161359c565b935050606061397b8882890161359c565b925050608061398c8882890161359c565b9150509295509295909350565b60006139a583836139c0565b60208301905092915050565b6139ba81614057565b82525050565b6139c981613ff0565b82525050565b6139d881613ff0565b82525050565b60006139e982613e96565b6139f38185613eb9565b93506139fe83613e86565b8060005b83811015613a2f578151613a168882613999565b9750613a2183613eac565b925050600181019050613a02565b5085935050505092915050565b613a4581614014565b82525050565b613a5481614069565b82525050565b613a638161408d565b82525050565b6000613a7482613ea1565b613a7e8185613eca565b9350613a8e8185602086016140c3565b613a9781614154565b840191505092915050565b6000613aaf601183613eca565b91507f5458204c696d69742045786365656465640000000000000000000000000000006000830152602082019050919050565b6000613aef601483613eca565b91507f416c7265616479206c61756e6368656420626f690000000000000000000000006000830152602082019050919050565b6000613b2f600683613eca565b91507f214f574e455200000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613b6f600b83613eca565b91507f21415554484f52495a45440000000000000000000000000000000000000000006000830152602082019050919050565b613bab81614040565b82525050565b613bba8161404a565b82525050565b6000602082019050613bd560008301846139cf565b92915050565b6000602082019050613bf060008301846139b1565b92915050565b6000604082019050613c0b60008301856139cf565b613c186020830184613a5a565b9392505050565b6000604082019050613c3460008301856139cf565b613c416020830184613ba2565b9392505050565b600060c082019050613c5d60008301896139cf565b613c6a6020830188613ba2565b613c776040830187613a5a565b613c846060830186613a5a565b613c9160808301856139cf565b613c9e60a0830184613ba2565b979650505050505050565b6000602082019050613cbe6000830184613a3c565b92915050565b6000602082019050613cd96000830184613a4b565b92915050565b6000608082019050613cf46000830187613a5a565b8181036020830152613d0681866139de565b9050613d1560408301856139cf565b613d226060830184613ba2565b95945050505050565b60006020820190508181036000830152613d458184613a69565b905092915050565b60006020820190508181036000830152613d6681613aa2565b9050919050565b60006020820190508181036000830152613d8681613ae2565b9050919050565b60006020820190508181036000830152613da681613b22565b9050919050565b60006020820190508181036000830152613dc681613b62565b9050919050565b6000602082019050613de26000830184613ba2565b92915050565b600060a082019050613dfd6000830188613ba2565b613e0a6020830187613a5a565b8181036040830152613e1c81866139de565b9050613e2b60608301856139cf565b613e386080830184613ba2565b9695505050505050565b6000604082019050613e576000830185613ba2565b613e646020830184613ba2565b9392505050565b6000602082019050613e806000830184613bb1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613ee682614040565b9150613ef183614040565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2657613f256140f6565b5b828201905092915050565b6000613f3c82614040565b9150613f4783614040565b925082613f5757613f56614125565b5b828204905092915050565b6000613f6d82614040565b9150613f7883614040565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fb157613fb06140f6565b5b828202905092915050565b6000613fc782614040565b9150613fd283614040565b925082821015613fe557613fe46140f6565b5b828203905092915050565b6000613ffb82614020565b9050919050565b600061400d82614020565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140628261409f565b9050919050565b60006140748261407b565b9050919050565b600061408682614020565b9050919050565b600061409882614040565b9050919050565b60006140aa826140b1565b9050919050565b60006140bc82614020565b9050919050565b60005b838110156140e15780820151818401526020810190506140c6565b838111156140f0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b61416e81613ff0565b811461417957600080fd5b50565b61418581614002565b811461419057600080fd5b50565b61419c81614014565b81146141a757600080fd5b50565b6141b381614040565b81146141be57600080fd5b5056fea264697066735822122081109349d4c3b7960c61317909b62828571e99776ff08bd59b2a0781073ccd3a64736f6c63430008000033608060405273e9e7cea3dedca5984780bafc599bd69add087d56600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e55348015620000e057600080fd5b5060405162001d4638038062001d468339818101604052810190620001069190620001f7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000157577310ed43c718714eb63d5aa57b78b54704e256024e62000159565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000271565b600081519050620001f18162000257565b92915050565b6000602082840312156200020a57600080fd5b60006200021a84828501620001e0565b91505092915050565b6000620002308262000237565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002628162000223565b81146200026e57600080fd5b50565b611ac580620002816000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b60405161010491906117a9565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611574565b61032d565b005b34801561014257600080fd5b5061015d6004803603810190610158919061154b565b6105ec565b60405161016a91906117a9565b60405180910390f35b34801561017f57600080fd5b5061019a6004803603810190610195919061162b565b610706565b005b3480156101a857600080fd5b506101b1610770565b6040516101be91906117a9565b60405180910390f35b3480156101d357600080fd5b506101dc610776565b6040516101e991906117a9565b60405180910390f35b3480156101fe57600080fd5b5061020761077c565b60405161021491906117a9565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061154b565b610782565b604051610253939291906117c4565b60405180910390f35b6102646107ac565b005b34801561027257600080fd5b5061027b610c0e565b60405161028891906117a9565b60405180910390f35b34801561029d57600080fd5b506102a6610c14565b6040516102b391906117a9565b60405180910390f35b3480156102c857600080fd5b506102d1610c1a565b005b3480156102df57600080fd5b506102fa60048036038101906102f591906115d9565b610c25565b005b34801561030857600080fd5b50610311610e05565b60405161031e91906117a9565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610e0b565b5b60008111801561042c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a826110b2565b6104a1565b60008114801561049157506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f82611161565b5b5b61050a816104fc600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461140090919063ffffffff16565b61141690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461142c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106415760009050610701565b600061068e600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461142c565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e957600092505050610701565b6106fc818361140090919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075e57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108619190611719565b60206040518083038186803b15801561087957600080fd5b505afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190611602565b90506000600267ffffffffffffffff8111156108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156109245781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610984577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610ab8949392919061175d565b6000604051808303818588803b158015610ad157600080fd5b505af1158015610ae5573d6000803e3d6000fd5b50505050506000610ba983600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b4b9190611719565b60206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611602565b61140090919063ffffffff16565b9050610bc08160095461141690919063ffffffff16565b600981905550610c03610bf2600854610be484600c5461145e90919063ffffffff16565b61147490919063ffffffff16565b600b5461141690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610c2333610e0b565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7d57600080fd5b600060048054905090506000811415610c965750610e02565b6000805a905060005b8483108015610cad57508381105b15610dfd5783600f5410610cc4576000600f819055505b610d336004600f5481548110610d03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148a565b15610da857610da76004600f5481548110610d77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e0b565b5b610dcd610dbe5a8461140090919063ffffffff16565b8461141690919063ffffffff16565b92505a9150600f6000815480929190610de5906119a3565b91905055508080610df5906119a3565b915050610c9f565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610e5b576110af565b6000610e66826105ec565b905060008111156110ad57610e8681600a5461141690919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610ee9929190611734565b602060405180830381600087803b158015610f0357600080fd5b505af1158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3b91906115b0565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fd581600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461141690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611066600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461142c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506111759190611915565b815481106111ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110611250577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506112f09190611915565b81548110611327577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806113c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000818361140e9190611915565b905092915050565b600081836114249190611834565b905092915050565b6000611457600c54611449600b548561145e90919063ffffffff16565b61147490919063ffffffff16565b9050919050565b6000818361146c91906118bb565b905092915050565b60008183611482919061188a565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114da9190611834565b1080156114f05750600e546114ee836105ec565b115b9050919050565b60008135905061150681611a4a565b92915050565b60008151905061151b81611a61565b92915050565b60008135905061153081611a78565b92915050565b60008151905061154581611a78565b92915050565b60006020828403121561155d57600080fd5b600061156b848285016114f7565b91505092915050565b6000806040838503121561158757600080fd5b6000611595858286016114f7565b92505060206115a685828601611521565b9150509250929050565b6000602082840312156115c257600080fd5b60006115d08482850161150c565b91505092915050565b6000602082840312156115eb57600080fd5b60006115f984828501611521565b91505092915050565b60006020828403121561161457600080fd5b600061162284828501611536565b91505092915050565b6000806040838503121561163e57600080fd5b600061164c85828601611521565b925050602061165d85828601611521565b9150509250929050565b6000611673838361167f565b60208301905092915050565b61168881611949565b82525050565b61169781611949565b82525050565b60006116a88261180b565b6116b28185611823565b93506116bd836117fb565b8060005b838110156116ee5781516116d58882611667565b97506116e083611816565b9250506001810190506116c1565b5085935050505092915050565b61170481611991565b82525050565b61171381611987565b82525050565b600060208201905061172e600083018461168e565b92915050565b6000604082019050611749600083018561168e565b611756602083018461170a565b9392505050565b600060808201905061177260008301876116fb565b8181036020830152611784818661169d565b9050611793604083018561168e565b6117a0606083018461170a565b95945050505050565b60006020820190506117be600083018461170a565b92915050565b60006060820190506117d9600083018661170a565b6117e6602083018561170a565b6117f3604083018461170a565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061183f82611987565b915061184a83611987565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561187f5761187e6119ec565b5b828201905092915050565b600061189582611987565b91506118a083611987565b9250826118b0576118af611a1b565b5b828204905092915050565b60006118c682611987565b91506118d183611987565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561190a576119096119ec565b5b828202905092915050565b600061192082611987565b915061192b83611987565b92508282101561193e5761193d6119ec565b5b828203905092915050565b600061195482611967565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061199c82611987565b9050919050565b60006119ae82611987565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119e1576119e06119ec565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b611a5381611949565b8114611a5e57600080fd5b50565b611a6a8161195b565b8114611a7557600080fd5b50565b611a8181611987565b8114611a8c57600080fd5b5056fea264697066735822122036d4a2012882bd12af98dddf7b11a6b203ff145bbb5026ac6ee92bde34a54ee064736f6c6343000800003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Deployed Bytecode
0x6080604052600436106102b25760003560e01c806395d89b4111610175578063d806d12f116100dc578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610abd578063f84ba65d14610ae6578063f887ea4014610b0f578063fe9fbb8014610b3a576102b9565b8063f1f3bca314610a2e578063f2fde38b14610a6b578063f5cfec0a14610a94576102b9565b8063d806d12f1461091e578063dd62ed3e14610949578063df20fd4914610986578063e91f214e146109af578063e96fada2146109da578063f0b37c0414610a05576102b9565b8063b210b06d1161012e578063b210b06d14610820578063b6a5d7de14610837578063bf56b37114610860578063c6d2577d1461088b578063ca33e64c146108b6578063d51ed1c8146108e1576102b9565b806395d89b41146107105780639d1944f51461073b578063a4b45c0014610764578063a51af4c51461078d578063a8aa1b31146107b8578063a9059cbb146107e3576102b9565b80632d48e89611610219578063658d4b7f116101d2578063658d4b7f146105fe5780636ddd17131461062757806370a08231146106525780637d1db4a51461068f578063893d20e8146106ba5780638dd95002146106e5576102b9565b80632d48e896146104dc5780632f54bf6e14610505578063313ce567146105425780633bb8a8d41461056d578063571ac8b0146105985780635c85974f146105d5576102b9565b80631161ae391161026b5780631161ae39146103ba57806318160ddd146103f7578063201e7991146104225780632375ce401461044b57806323b872dd146104745780632b112e49146104b1576102b9565b806301339c21146102be5780630445b667146102d5578063048c7baf1461030057806304a66b481461032957806306fdde0314610352578063095ea7b31461037d576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b77565b005b3480156102e157600080fd5b506102ea610c14565b6040516102f79190613dcd565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190613780565b610c1a565b005b34801561033557600080fd5b50610350600480360381019061034b9190613922565b610ca6565b005b34801561035e57600080fd5b50610367610d71565b6040516103749190613d2b565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f91906136df565b610dae565b6040516103b19190613ca9565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613848565b610ea0565b6040516103ee9190613ca9565b60405180910390f35b34801561040357600080fd5b5061040c610eb5565b6040516104199190613dcd565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190613848565b610ebf565b005b34801561045757600080fd5b50610472600480360381019061046d9190613884565b610f19565b005b34801561048057600080fd5b5061049b60048036038101906104969190613654565b610f9f565b6040516104a89190613ca9565b60405180910390f35b3480156104bd57600080fd5b506104c6611181565b6040516104d39190613dcd565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190613848565b611203565b005b34801561051157600080fd5b5061052c600480360381019061052791906135c6565b6112de565b6040516105399190613ca9565b60405180910390f35b34801561054e57600080fd5b50610557611337565b6040516105649190613e6b565b60405180910390f35b34801561057957600080fd5b50610582611340565b60405161058f9190613ca9565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906135c6565b611353565b6040516105cc9190613ca9565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906137e3565b611368565b005b34801561060a57600080fd5b50610625600480360381019061062091906136a3565b6113d6565b005b34801561063357600080fd5b5061063c611479565b6040516106499190613ca9565b60405180910390f35b34801561065e57600080fd5b50610679600480360381019061067491906135c6565b61148c565b6040516106869190613dcd565b60405180910390f35b34801561069b57600080fd5b506106a46114d5565b6040516106b19190613dcd565b60405180910390f35b3480156106c657600080fd5b506106cf6114db565b6040516106dc9190613bc0565b60405180910390f35b3480156106f157600080fd5b506106fa611504565b6040516107079190613bc0565b60405180910390f35b34801561071c57600080fd5b5061072561152a565b6040516107329190613d2b565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d91906137e3565b611567565b005b34801561077057600080fd5b5061078b60048036038101906107869190613618565b6115c8565b005b34801561079957600080fd5b506107a2611696565b6040516107af9190613bc0565b60405180910390f35b3480156107c457600080fd5b506107cd6116bc565b6040516107da9190613bc0565b60405180910390f35b3480156107ef57600080fd5b5061080a600480360381019061080591906136df565b6116e2565b6040516108179190613ca9565b60405180910390f35b34801561082c57600080fd5b506108356116f7565b005b34801561084357600080fd5b5061085e600480360381019061085991906135c6565b611749565b005b34801561086c57600080fd5b506108756117eb565b6040516108829190613dcd565b60405180910390f35b34801561089757600080fd5b506108a06117f1565b6040516108ad9190613dcd565b60405180910390f35b3480156108c257600080fd5b506108cb6117f7565b6040516108d89190613bc0565b60405180910390f35b3480156108ed57600080fd5b50610908600480360381019061090391906137e3565b61181d565b6040516109159190613dcd565b60405180910390f35b34801561092a57600080fd5b5061093361188f565b6040516109409190613dcd565b60405180910390f35b34801561095557600080fd5b50610970600480360381019061096b9190613618565b6119b6565b60405161097d9190613dcd565b60405180910390f35b34801561099257600080fd5b506109ad60048036038101906109a89190613744565b611a3d565b005b3480156109bb57600080fd5b506109c4611aaa565b6040516109d19190613dcd565b60405180910390f35b3480156109e657600080fd5b506109ef611ac0565b6040516109fc9190613bc0565b60405180910390f35b348015610a1157600080fd5b50610a2c6004803603810190610a2791906135c6565b611ae6565b005b348015610a3a57600080fd5b50610a556004803603810190610a50919061371b565b611b89565b604051610a629190613dcd565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d91906135ef565b611bdd565b005b348015610aa057600080fd5b50610abb6004803603810190610ab6919061380c565b611cf6565b005b348015610ac957600080fd5b50610ae46004803603810190610adf91906136a3565b611db5565b005b348015610af257600080fd5b50610b0d6004803603810190610b0891906136a3565b612055565b005b348015610b1b57600080fd5b50610b246120f8565b604051610b319190613cc4565b60405180910390f35b348015610b4657600080fd5b50610b616004803603810190610b5c91906135c6565b61211e565b604051610b6e9190613ca9565b60405180910390f35b610b803361211e565b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690613dad565b60405180910390fd5b6000601a5414610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90613d6d565b60405180910390fd5b43601a8190555042601b81905550565b602b5481565b610c233361211e565b610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5990613dad565b60405180910390fd5b83602060006101000a81548160ff02191690831515021790555082602281905550600060238190555081602481905550806025819055504360268190555050505050565b610caf3361211e565b610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590613dad565b60405180910390fd5b84600e8190555083600f819055508260108190555081601181905550610d4182610d3385610d25888a61218a90919063ffffffff16565b61218a90919063ffffffff16565b61218a90919063ffffffff16565b601281905550806013819055506004601354610d5d9190613f31565b60125410610d6a57600080fd5b5050505050565b60606040518060400160405280600d81526020017f4576657247726f7720436f696e00000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e8e9190613dcd565b60405180910390a36001905092915050565b600082610eac8361181d565b11905092915050565b6000600754905090565b610ec83361211e565b610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90613dad565b60405180910390fd5b81601681905550806017819055505050565b610f223361211e565b610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613dad565b60405180910390fd5b60028284610f6f9190613f31565b11158015610f7c57508183115b610f8557600080fd5b82601c8190555081601d8190555080601f81905550505050565b6000600754600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461116d576110ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111788484846121f5565b90509392505050565b60006111fe6111b1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b6111f06111df600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b60075461272290919063ffffffff16565b61272290919063ffffffff16565b905090565b61120c3361211e565b61124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290613dad565b60405180910390fd5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016112a8929190613e42565b600060405180830381600087803b1580156112c257600080fd5b505af11580156112d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b602060009054906101000a900460ff1681565b600061136182600754610dae565b9050919050565b6113713361211e565b6113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613dad565b60405180910390fd5b6103e86007546113c09190613f31565b8110156113cc57600080fd5b8060088190555050565b6113df3361211e565b61141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613dad565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602a60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4547430000000000000000000000000000000000000000000000000000000000815250905090565b6115703361211e565b6115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690613dad565b60405180910390fd5b620b71b081106115be57600080fd5b8060298190555050565b6115d13361211e565b611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790613dad565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ef3384846121f5565b905092915050565b6117003361211e565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613dad565b60405180910390fd5b6000601e81905550565b611752336112de565b611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613d8d565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b601b5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061188861182a611181565b61187a61186b600261185d601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148c565b61273890919063ffffffff16565b8561273890919063ffffffff16565b61217490919063ffffffff16565b9050919050565b60004262015180601b546118a39190613edb565b11156118db576118d46013546118c661465060125461273890919063ffffffff16565b61217490919063ffffffff16565b90506119b3565b426118f3601f54601e5461218a90919063ffffffff16565b11156119ad57600061192442611916601f54601e5461218a90919063ffffffff16565b61272290919063ffffffff16565b90506000611967601254611959601d5461194b601c5460125461273890919063ffffffff16565b61217490919063ffffffff16565b61272290919063ffffffff16565b90506119a4611993601f54611985858561273890919063ffffffff16565b61217490919063ffffffff16565b60125461218a90919063ffffffff16565b925050506119b3565b60125490505b90565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a463361211e565b611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c90613dad565b60405180910390fd5b81602a60006101000a81548160ff02191690831515021790555080602b819055505050565b6fffffffffffffffffffffffffffffffff801681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aef336112de565b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590613d8d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601a54611b9b9190613edb565b10611bbd57611bb6600160135461272290919063ffffffff16565b9050611bd8565b8115611bd257611bcb61188f565b9050611bd8565b60125490505b919050565b611be6336112de565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613d8d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611ceb9190613bdb565b60405180910390a150565b611cff3361211e565b611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613dad565b60405180910390fd5b611d6a82600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661274e565b8015611db15742601e819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601f54604051611da89190613dcd565b60405180910390a15b5050565b611dbe3361211e565b611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490613dad565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e875750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611e9057600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611f8257602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611f4b929190613bf6565b600060405180830381600087803b158015611f6557600080fd5b505af1158015611f79573d6000803e3d6000fd5b50505050612051565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161201e929190613c1f565b600060405180830381600087803b15801561203857600080fd5b505af115801561204c573d6000803e3d6000fd5b505050505b5050565b61205e3361211e565b61209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209490613dad565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836121829190613f31565b905092915050565b600081836121989190613edb565b905092915050565b60008383111582906121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df9190613d2b565b60405180910390fd5b5082840390509392505050565b6000602c60009054906101000a900460ff161561221e5761221784848461299e565b905061271b565b6122288483612b0c565b612230612ba9565b1561223e5761223d612c80565b5b61224661323c565b15612254576122536132ef565b5b6122dd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061232b8561336b565b6123355782612341565b6123408585856133c2565b5b905061239581600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124fb57602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124c5929190613c1f565b600060405180830381600087803b1580156124df57600080fd5b505af19250505080156124f0575060015b6124f9576124fa565b5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261e57602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125e8929190613c1f565b600060405180830381600087803b15801561260257600080fd5b505af1925050508015612613575060015b61261c5761261d565b5b5b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796029546040518263ffffffff1660e01b815260040161267b9190613dcd565b600060405180830381600087803b15801561269557600080fd5b505af19250505080156126a6575060015b6126af576126b0565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161270d9190613dcd565b60405180910390a360019150505b9392505050565b600081836127309190613fbc565b905092915050565b600081836127469190613f62565b905092915050565b6001602c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156127ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127da5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061283a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106128af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040161294c9493929190613cdf565b6000604051808303818588803b15801561296557600080fd5b505af1158015612979573d6000803e3d6000fd5b5050505050506000602c60006101000a81548160ff0219169083151502179055505050565b6000612a29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a09092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612abe82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60085481111580612b665750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c90613d4d565b60405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c165750602c60009054906101000a900460ff16155b8015612c2e5750602a60009054906101000a900460ff165b8015612c7b5750602b54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602c60006101000a81548160ff0219169083151502179055506000612cab601654601754610ea0565b612cb757600e54612cba565b60005b90506000612cfa6002612cec601254612cde86602b5461273890919063ffffffff16565b61217490919063ffffffff16565b61217490919063ffffffff16565b90506000612d1382602b5461272290919063ffffffff16565b90506000600267ffffffffffffffff811115612d58577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612d865781602001602082028036833780820191505090505b5090503081600081518110612dc4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612efe959493929190613de8565b600060405180830381600087803b158015612f1857600080fd5b505af1158015612f2c573d6000803e3d6000fd5b505050506000612f45824761272290919063ffffffff16565b90506000612f71612f6060028961217490919063ffffffff16565b60125461272290919063ffffffff16565b90506000612fad6002612f9f84612f918c8861273890919063ffffffff16565b61217490919063ffffffff16565b61217490919063ffffffff16565b90506000612fd883612fca6010548761273890919063ffffffff16565b61217490919063ffffffff16565b9050600061300384612ff56011548861273890919063ffffffff16565b61217490919063ffffffff16565b9050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561306f57600080fd5b505af193505050508015613081575060015b61308a5761308b565b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130f3573d6000803e3d6000fd5b50600089111561321557601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161318696959493929190613c48565b6060604051808303818588803b15801561319f57600080fd5b505af11580156131b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131d891906138d3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161320c929190613e42565b60405180910390a15b505050505050505050506000602c60006101000a81548160ff021916908315150217905550565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156132a95750602c60009054906101000a900460ff16155b80156132c15750602060009054906101000a900460ff165b80156132dc5750436025546026546132d99190613edb565b11155b80156132ea57506024544710155b905090565b61331d602454600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661274e565b4360268190555061333b60245460235461218a90919063ffffffff16565b6023819055506022546023541115613369576000602060006101000a81548160ff0219169083151502179055505b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613444601354613436613427601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b89565b8661273890919063ffffffff16565b61217490919063ffffffff16565b905061349881600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218a90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135389190613dcd565b60405180910390a3613553818461272290919063ffffffff16565b9150509392505050565b60008135905061356c81614165565b92915050565b6000813590506135818161417c565b92915050565b60008135905061359681614193565b92915050565b6000813590506135ab816141aa565b92915050565b6000815190506135c0816141aa565b92915050565b6000602082840312156135d857600080fd5b60006135e68482850161355d565b91505092915050565b60006020828403121561360157600080fd5b600061360f84828501613572565b91505092915050565b6000806040838503121561362b57600080fd5b60006136398582860161355d565b925050602061364a8582860161355d565b9150509250929050565b60008060006060848603121561366957600080fd5b60006136778682870161355d565b93505060206136888682870161355d565b92505060406136998682870161359c565b9150509250925092565b600080604083850312156136b657600080fd5b60006136c48582860161355d565b92505060206136d585828601613587565b9150509250929050565b600080604083850312156136f257600080fd5b60006137008582860161355d565b92505060206137118582860161359c565b9150509250929050565b60006020828403121561372d57600080fd5b600061373b84828501613587565b91505092915050565b6000806040838503121561375757600080fd5b600061376585828601613587565b92505060206137768582860161359c565b9150509250929050565b6000806000806080858703121561379657600080fd5b60006137a487828801613587565b94505060206137b58782880161359c565b93505060406137c68782880161359c565b92505060606137d78782880161359c565b91505092959194509250565b6000602082840312156137f557600080fd5b60006138038482850161359c565b91505092915050565b6000806040838503121561381f57600080fd5b600061382d8582860161359c565b925050602061383e85828601613587565b9150509250929050565b6000806040838503121561385b57600080fd5b60006138698582860161359c565b925050602061387a8582860161359c565b9150509250929050565b60008060006060848603121561389957600080fd5b60006138a78682870161359c565b93505060206138b88682870161359c565b92505060406138c98682870161359c565b9150509250925092565b6000806000606084860312156138e857600080fd5b60006138f6868287016135b1565b9350506020613907868287016135b1565b9250506040613918868287016135b1565b9150509250925092565b600080600080600060a0868803121561393a57600080fd5b60006139488882890161359c565b95505060206139598882890161359c565b945050604061396a8882890161359c565b935050606061397b8882890161359c565b925050608061398c8882890161359c565b9150509295509295909350565b60006139a583836139c0565b60208301905092915050565b6139ba81614057565b82525050565b6139c981613ff0565b82525050565b6139d881613ff0565b82525050565b60006139e982613e96565b6139f38185613eb9565b93506139fe83613e86565b8060005b83811015613a2f578151613a168882613999565b9750613a2183613eac565b925050600181019050613a02565b5085935050505092915050565b613a4581614014565b82525050565b613a5481614069565b82525050565b613a638161408d565b82525050565b6000613a7482613ea1565b613a7e8185613eca565b9350613a8e8185602086016140c3565b613a9781614154565b840191505092915050565b6000613aaf601183613eca565b91507f5458204c696d69742045786365656465640000000000000000000000000000006000830152602082019050919050565b6000613aef601483613eca565b91507f416c7265616479206c61756e6368656420626f690000000000000000000000006000830152602082019050919050565b6000613b2f600683613eca565b91507f214f574e455200000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613b6f600b83613eca565b91507f21415554484f52495a45440000000000000000000000000000000000000000006000830152602082019050919050565b613bab81614040565b82525050565b613bba8161404a565b82525050565b6000602082019050613bd560008301846139cf565b92915050565b6000602082019050613bf060008301846139b1565b92915050565b6000604082019050613c0b60008301856139cf565b613c186020830184613a5a565b9392505050565b6000604082019050613c3460008301856139cf565b613c416020830184613ba2565b9392505050565b600060c082019050613c5d60008301896139cf565b613c6a6020830188613ba2565b613c776040830187613a5a565b613c846060830186613a5a565b613c9160808301856139cf565b613c9e60a0830184613ba2565b979650505050505050565b6000602082019050613cbe6000830184613a3c565b92915050565b6000602082019050613cd96000830184613a4b565b92915050565b6000608082019050613cf46000830187613a5a565b8181036020830152613d0681866139de565b9050613d1560408301856139cf565b613d226060830184613ba2565b95945050505050565b60006020820190508181036000830152613d458184613a69565b905092915050565b60006020820190508181036000830152613d6681613aa2565b9050919050565b60006020820190508181036000830152613d8681613ae2565b9050919050565b60006020820190508181036000830152613da681613b22565b9050919050565b60006020820190508181036000830152613dc681613b62565b9050919050565b6000602082019050613de26000830184613ba2565b92915050565b600060a082019050613dfd6000830188613ba2565b613e0a6020830187613a5a565b8181036040830152613e1c81866139de565b9050613e2b60608301856139cf565b613e386080830184613ba2565b9695505050505050565b6000604082019050613e576000830185613ba2565b613e646020830184613ba2565b9392505050565b6000602082019050613e806000830184613bb1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613ee682614040565b9150613ef183614040565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2657613f256140f6565b5b828201905092915050565b6000613f3c82614040565b9150613f4783614040565b925082613f5757613f56614125565b5b828204905092915050565b6000613f6d82614040565b9150613f7883614040565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fb157613fb06140f6565b5b828202905092915050565b6000613fc782614040565b9150613fd283614040565b925082821015613fe557613fe46140f6565b5b828203905092915050565b6000613ffb82614020565b9050919050565b600061400d82614020565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140628261409f565b9050919050565b60006140748261407b565b9050919050565b600061408682614020565b9050919050565b600061409882614040565b9050919050565b60006140aa826140b1565b9050919050565b60006140bc82614020565b9050919050565b60005b838110156140e15780820151818401526020810190506140c6565b838111156140f0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b61416e81613ff0565b811461417957600080fd5b50565b61418581614002565b811461419057600080fd5b50565b61419c81614014565b81146141a757600080fd5b50565b6141b381614040565b81146141be57600080fd5b5056fea264697066735822122081109349d4c3b7960c61317909b62828571e99776ff08bd59b2a0781073ccd3a64736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
-----Decoded View---------------
Arg [0] : _dexRouter (address): 0x10ED43C718714eb63d5aA57B78B54704E256024E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Deployed Bytecode Sourcemap
12690:15049:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24746:187;;;;;;;;;;;;;:::i;:::-;;14795:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23931:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25713:496;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16217:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16720:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27468:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15947:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26617:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24298:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17233:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27143:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26808:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4586:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16041:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14379:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16944:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24941:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25449:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14758:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16468:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13355:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16303:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12885:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16127:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26999:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26217:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14676:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14084:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17069:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23138:105;;;;;;;;;;;;;:::i;:::-;;4259:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14112:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14144:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13882:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27293:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19563:663;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16579:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26453:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12766:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13925:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4429:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19328:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4986:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22814:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25094:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25577:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14053:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4760:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24746:187;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24815:1:::1;24801:10;;:15;24793:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24865:12;24852:10;:25;;;;24910:15;24888:19;:37;;;;24746:187::o:0;14795:50::-;;;;:::o;23931:359::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24078:8:::1;24057:18;;:29;;;;;;;;;;;;;;;;;;24114:4;24097:14;:21;;;;24154:1;24129:22;:26;;;;24186:7;24166:17;:27;;;;24229:7;24204:22;:32;;;;24270:12;24247:20;:35;;;;23931:359:::0;;;;:::o;25713:496::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25892:13:::1;25877:12;:28;;;;25929:11;25916:10;:24;;;;25967:14;25951:13;:30;;;;26007:13;25992:12;:28;;;;26042:69;26097:13;26042:50;26077:14;26042:30;26060:11;26042:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;26031:8;:80;;;;26139:15;26122:14;:32;;;;26199:1;26184:14;;:16;;;;:::i;:::-;26173:8;;:27;26165:36;;;::::0;::::1;;25713:496:::0;;;;;:::o;16217:80::-;16265:13;16289:5;;;;;;;;;;;;;;;;;16282:12;;16217:80;:::o;16720:216::-;16795:4;16847:6;16812:11;:23;16824:10;16812:23;;;;;;;;;;;;;;;:32;16836:7;16812:32;;;;;;;;;;;;;;;:41;;;;16890:7;16869:37;;16878:10;16869:37;;;16899:6;16869:37;;;;;;:::i;:::-;;;;;;;;16924:4;16917:11;;16720:216;;;;:::o;27468:150::-;27548:4;27604:6;27572:29;27592:8;27572:19;:29::i;:::-;:38;27565:45;;27468:150;;;;:::o;15947:88::-;16002:7;16020:12;;16013:19;;15947:88;:::o;26617:183::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26733:7:::1;26715:15;:25;;;;26780:12;26751:26;:41;;;;26617:183:::0;;:::o;24298:342::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24458:1:::1;24443:11;24431:9;:23;;;;:::i;:::-;:28;;:55;;;;;24475:11;24463:9;:23;24431:55;24423:64;;;::::0;::::1;;24527:9;24498:26;:38;;;;24578:11;24547:28;:42;;;;24626:6;24600:23;:32;;;;24298:342:::0;;;:::o;17233:365::-;17333:4;17388:12;;17353:11;:19;17365:6;17353:19;;;;;;;;;;;;;;;:31;17373:10;17353:31;;;;;;;;;;;;;;;;:47;17350:181;;17450:69;17486:6;17450:69;;;;;;;;;;;;;;;;;:11;:19;17462:6;17450:19;;;;;;;;;;;;;;;:31;17470:10;17450:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;17416:11;:19;17428:6;17416:19;;;;;;;;;;;;;;;:31;17436:10;17416:31;;;;;;;;;;;;;;;:103;;;;17350:181;17550:40;17564:6;17572:9;17583:6;17550:13;:40::i;:::-;17543:47;;17233:365;;;;;:::o;27143:142::-;27196:7;27223:54;27261:15;27271:4;;;;;;;;;;;27261:9;:15::i;:::-;27223:33;27240:15;27250:4;;;;;;;;;;;27240:9;:15::i;:::-;27223:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;27216:61;;27143:142;:::o;26808:183::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26918:11:::1;;;;;;;;;;;:35;;;26954:10;26966:16;26918:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26808:183:::0;;:::o;4586:103::-;4641:4;4676:5;;;;;;;;;;;4665:16;;:7;:16;;;4658:23;;4586:103;;;:::o;16041:80::-;16093:5;13274:1;16102:16;;16041:80;:::o;14379:38::-;;;;;;;;;;;;;:::o;16944:117::-;16999:4;17023:30;17031:7;17040:12;;17023:7;:30::i;:::-;17016:37;;16944:117;;;:::o;24941:145::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25041:4:::1;25026:12;;:19;;;;:::i;:::-;25016:6;:29;;25008:38;;;::::0;::::1;;25072:6;25057:12;:21;;;;24941:145:::0;:::o;25449:120::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25555:6:::1;25533:11;:19;25545:6;25533:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25449:120:::0;;:::o;14758:30::-;;;;;;;;;;;;;:::o;16468:105::-;16534:7;16552:9;:18;16562:7;16552:18;;;;;;;;;;;;;;;;16545:25;;16468:105;;;:::o;13355:51::-;;;;:::o;16303:78::-;16355:7;16373:5;;;;;;;;;;;16366:12;;16303:78;:::o;12885:64::-;;;;;;;;;;;;;:::o;16127:84::-;16177:13;16201:7;;;;;;;;;;;;;;;;;16194:14;;16127:84;:::o;26999:136::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27089:6:::1;27083:3;:12;27075:21;;;::::0;::::1;;27124:3;27107:14;:20;;;;26999:136:::0;:::o;26217:228::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26360:22:::1;26336:21;;:46;;;;;;;;;;;;;;;;;;26416:21;26393:20;;:44;;;;;;;;;;;;;;;;;;26217:228:::0;;:::o;14676:33::-;;;;;;;;;;;;;:::o;14084:19::-;;;;;;;;;;;;;:::o;17069:156::-;17149:4;17173:44;17187:10;17199:9;17210:6;17173:13;:44::i;:::-;17166:51;;17069:156;;;;:::o;23138:105::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23234:1:::1;23203:28;:32;;;;23138:105::o:0;4259:94::-;3975:19;3983:10;3975:7;:19::i;:::-;3967:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4341:4:::1;4319:14:::0;:19:::1;4334:3;4319:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4259:94:::0;:::o;14112:25::-;;;;:::o;14144:34::-;;;;:::o;13882:36::-;;;;;;;;;;;;;:::o;27293:167::-;27361:7;27388:64;27429:22;:20;:22::i;:::-;27388:36;27401:22;27421:1;27401:15;27411:4;;;;;;;;;;;27401:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;27388:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;27381:71;;27293:167;;;:::o;19563:663::-;19612:7;19667:15;19658:6;19636:19;;:28;;;;:::i;:::-;:46;19632:561;;;19706:39;19730:14;;19706:19;19719:5;19706:8;;:12;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;19699:46;;;;19632:561;19827:15;19767:57;19800:23;;19767:28;;:32;;:57;;;;:::i;:::-;:75;19763:430;;;19859:21;19883:78;19945:15;19883:57;19916:23;;19883:28;;:32;;:57;;;;:::i;:::-;:61;;:78;;;;:::i;:::-;19859:102;;19976:19;19998:88;20077:8;;19998:74;20043:28;;19998:40;20011:26;;19998:8;;:12;;:40;;;;:::i;:::-;:44;;:74;;;;:::i;:::-;:78;;:88;;;;:::i;:::-;19976:110;;20108:73;20121:59;20156:23;;20121:30;20137:13;20121:11;:15;;:30;;;;:::i;:::-;:34;;:59;;;;:::i;:::-;20108:8;;:12;;:73;;;;:::i;:::-;20101:80;;;;;;19763:430;20210:8;;20203:15;;19563:663;;:::o;16579:133::-;16663:7;16681:11;:19;16693:6;16681:19;;;;;;;;;;;;;;;:28;16701:7;16681:28;;;;;;;;;;;;;;;;16674:35;;16579:133;;;;:::o;26453:156::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26559:8:::1;26545:11;;:22;;;;;;;;;;;;;;;;;;26594:7;26578:13;:23;;;;26453:156:::0;;:::o;12766:48::-;12797:17;12766:48;;;:::o;13925:35::-;;;;;;;;;;;;;:::o;4429:97::-;3975:19;3983:10;3975:7;:19::i;:::-;3967:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4513:5:::1;4491:14;:19;4506:3;4491:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4429:97:::0;:::o;19328:227::-;19384:7;19425:12;19420:1;19407:10;;:14;;;;:::i;:::-;:30;19404:67;;19447:21;19466:1;19447:14;;:18;;:21;;;;:::i;:::-;19440:28;;;;19404:67;19484:7;19481:41;;;19501:18;:16;:18::i;:::-;19494:25;;;;19481:41;19539:8;;19532:15;;19328:227;;;;:::o;4986:173::-;3975:19;3983:10;3975:7;:19::i;:::-;3967:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5070:3:::1;5062:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;5106:4;5084:14:::0;:19:::1;5099:3;5084:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5126:25;5147:3;5126:25;;;;;;:::i;:::-;;;;;;;;4986:173:::0;:::o;22814:316::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;22920:23:::1;22930:6;22938:4;;;;;;;;;;;22920:9;:23::i;:::-;22957:24;22954:169;;;23028:15;22997:28;:46;;;;23063:48;23087:23;;23063:48;;;;;;:::i;:::-;;;;;;;;22954:169;22814:316:::0;;:::o;25094:347::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25209:4:::1;25191:23;;:6;:23;;;;:41;;;;;25228:4;;;;;;;;;;;25218:14;;:6;:14;;;;25191:41;25183:50;;;::::0;::::1;;25271:6;25244:16;:24;25261:6;25244:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;25291:6;25288:146;;;25313:11;;;;;;;;;;;:20;;;25334:6;25342:1;25313:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25288:146;;;25375:11;;;;;;;;;;;:20;;;25396:6;25404:9;:17;25414:6;25404:17;;;;;;;;;;;;;;;;25375:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25288:146;25094:347:::0;;:::o;25577:128::-;4144:24;4157:10;4144:12;:24::i;:::-;4136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25691:6:::1;25665:15;:23;25681:6;25665:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;25577:128:::0;;:::o;14053:24::-;;;;;;;;;;;;;:::o;4760:107::-;4816:4;4840:14;:19;4855:3;4840:19;;;;;;;;;;;;;;;;;;;;;;;;;4833:26;;4760:107;;;:::o;1861:98::-;1919:7;1950:1;1946;:5;;;;:::i;:::-;1939:12;;1861:98;;;;:::o;1543:::-;1601:7;1632:1;1628;:5;;;;:::i;:::-;1621:12;;1543:98;;;;:::o;2073:206::-;2159:7;2217:1;2212;:6;;2220:12;2204:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2259:1;2255;:5;2248:12;;2073:206;;;;;:::o;17606:1074::-;17698:4;17718:6;;;;;;;;;;;17715:63;;;17734:41;17749:6;17757:9;17768:6;17734:14;:41::i;:::-;17727:48;;;;17715:63;17790:28;17803:6;17811;17790:12;:28::i;:::-;17844:16;:14;:16::i;:::-;17841:35;;;17863:10;:8;:10::i;:::-;17841:35;17889:19;:17;:19::i;:::-;17886:48;;;17911:20;:18;:20::i;:::-;17886:48;18069:53;18091:6;18069:53;;;;;;;;;;;;;;;;;:9;:17;18079:6;18069:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18049:9;:17;18059:6;18049:17;;;;;;;;;;;;;;;:73;;;;18135:22;18160:21;18174:6;18160:13;:21::i;:::-;:67;;18221:6;18160:67;;;18184:34;18192:6;18200:9;18211:6;18184:7;:34::i;:::-;18160:67;18135:92;;18263:40;18288:14;18263:9;:20;18273:9;18263:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;18240:9;:20;18250:9;18240:20;;;;;;;;;;;;;;;:63;;;;18320:16;:24;18337:6;18320:24;;;;;;;;;;;;;;;;;;;;;;;;;18316:96;;18351:11;;;;;;;;;;;:20;;;18372:6;18380:9;:17;18390:6;18380:17;;;;;;;;;;;;;;;;18351:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18347:63;;;;;;18316:96;18426:16;:27;18443:9;18426:27;;;;;;;;;;;;;;;;;;;;;;;;;18422:105;;18460:11;;;;;;;;;;;:20;;;18481:9;18492;:20;18502:9;18492:20;;;;;;;;;;;;;;;;18460:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18456:69;;;;;;18422:105;18543:11;;;;;;;;;;;:19;;;18563:14;;18543:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18539:51;;;;;;18624:9;18607:43;;18616:6;18607:43;;;18635:14;18607:43;;;;;;:::i;:::-;;;;;;;;18668:4;18661:11;;;17606:1074;;;;;;:::o;1649:98::-;1707:7;1738:1;1734;:5;;;;:::i;:::-;1727:12;;1649:98;;;;:::o;1755:::-;1813:7;1844:1;1840;:5;;;;:::i;:::-;1833:12;;1755:98;;;;:::o;23562:361::-;14911:4;14902:6;;:13;;;;;;;;;;;;;;;;;;23638:21:::1;23676:1;23662:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23638:40;;23699:4;;;;;;;;;;;23689;23694:1;23689:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;23732:4;23714;23719:1;23714:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23750:6;;;;;;;;;;;:57;;;23815:6;23837:1;23853:4;23872:2;23889:15;23750:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;14917:1;14929:5:::0;14920:6;;:14;;;;;;;;;;;;;;;;;;23562:361;;:::o;18688:332::-;18781:4;18818:53;18840:6;18818:53;;;;;;;;;;;;;;;;;:9;:17;18828:6;18818:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18798:9;:17;18808:6;18798:17;;;;;;;;;;;;;;;:73;;;;18905:32;18930:6;18905:9;:20;18915:9;18905:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18882:9;:20;18892:9;18882:20;;;;;;;;;;;;;;;:55;;;;19008:4;19001:11;;18688:332;;;;;:::o;19032:166::-;19129:12;;19119:6;:22;;:49;;;;19145:15;:23;19161:6;19145:23;;;;;;;;;;;;;;;;;;;;;;;;;19119:49;19111:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19032:166;;:::o;20614:197::-;20663:4;20701;;;;;;;;;;;20687:18;;:10;:18;;;;:38;;;;;20719:6;;;;;;;;;;;20718:7;20687:38;:62;;;;;20738:11;;;;;;;;;;;20687:62;:116;;;;;20790:13;;20762:9;:24;20780:4;20762:24;;;;;;;;;;;;;;;;:41;;20687:116;20680:123;;20614:197;:::o;20819:1661::-;14911:4;14902:6;;:13;;;;;;;;;;;;;;;;;;20868:27:::1;20898:60;20914:15;;20931:26;;20898:15;:60::i;:::-;:79;;20965:12;;20898:79;;;20961:1;20898:79;20868:109;;20988:23;21014:59;21071:1;21014:52;21057:8;;21014:38;21032:19;21014:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;20988:85;;21084:20;21107:34;21125:15;21107:13;;:17;;:34;;;;:::i;:::-;21084:57;;21154:21;21192:1;21178:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21154:40;;21223:4;21205;21210:1;21205:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;21249:4;;;;;;;;;;;21239;21244:1;21239:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;21264:21;21288;21264:45;;21322:6;;;;;;;;;;;:57;;;21394:12;21421:1;21437:4;21464;21484:15;21322:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21523:17;21543:40;21569:13;21543:21;:25;;:40;;;;:::i;:::-;21523:60;;21596:19;21618:40;21631:26;21655:1;21631:19;:23;;:26;;;;:::i;:::-;21618:8;;:12;;:40;;;;:::i;:::-;21596:62;;21671:26;21700:58;21756:1;21700:51;21739:11;21700:34;21714:19;21700:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;21671:87;;21769:27;21799:45;21832:11;21799:28;21813:13;;21799:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;21769:75;;21855:26;21884:44;21916:11;21884:27;21898:12;;21884:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;21855:73;;21945:11;;;;;;;;;;;:19;;;21972;21945:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21941:65;;;;;;22024:20;;;;;;;;;;;22016:38;;:58;22055:18;22016:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22132:1;22114:15;:19;22111:362;;;22149:6;;;;;;;;;;;:22;;;22179:18;22225:4;22249:15;22283:1;22303::::0;22323:21:::1;;;;;;;;;;;22363:15;22149:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22413:48;22425:18;22445:15;22413:48;;;;;;;:::i;:::-;;;;;;;;22111:362;14917:1;;;;;;;;;;14929:5:::0;14920:6;;:14;;;;;;;;;;;;;;;;;;20819:1661::o;22488:318::-;22540:4;22578;;;;;;;;;;;22564:18;;:10;:18;;;;:38;;;;;22596:6;;;;;;;;;;;22595:7;22564:38;:69;;;;;22615:18;;;;;;;;;;;22564:69;:143;;;;;22695:12;22669:22;;22646:20;;:45;;;;:::i;:::-;:61;;22564:143;:234;;;;;22781:17;;22756:21;:42;;22564:234;22557:241;;22488:318;:::o;23251:303::-;23301:34;23311:17;;23330:4;;;;;;;;;;;23301:9;:34::i;:::-;23369:12;23346:20;:35;;;;23417:45;23444:17;;23417:22;;:26;;:45;;;;:::i;:::-;23392:22;:70;;;;23501:14;;23476:22;;:39;23473:74;;;23539:5;23518:18;;:26;;;;;;;;;;;;;;;;;;23473:74;23251:303::o;19206:114::-;19268:4;19293:11;:19;19305:6;19293:19;;;;;;;;;;;;;;;;;;;;;;;;;19292:20;19285:27;;19206:114;;;:::o;20234:372::-;20319:7;20339:17;20359:61;20405:14;;20359:41;20370:29;20394:4;;;;;;;;;;;20382:16;;:8;:16;;;20370:11;:29::i;:::-;20359:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;20339:81;;20460:39;20489:9;20460;:24;20478:4;20460:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20433:9;:24;20451:4;20433:24;;;;;;;;;;;;;;;:66;;;;20540:4;20515:42;;20524:6;20515:42;;;20547:9;20515:42;;;;;;:::i;:::-;;;;;;;;20577:21;20588:9;20577:6;:10;;:21;;;;:::i;:::-;20570:28;;;20234:372;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:139::-;;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;504:87;;;;:::o;597:143::-;;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;660:80;;;;:::o;746:262::-;;854:2;842:9;833:7;829:23;825:32;822:2;;;870:1;867;860:12;822:2;913:1;938:53;983:7;974:6;963:9;959:22;938:53;:::i;:::-;928:63;;884:117;812:196;;;;:::o;1014:278::-;;1130:2;1118:9;1109:7;1105:23;1101:32;1098:2;;;1146:1;1143;1136:12;1098:2;1189:1;1214:61;1267:7;1258:6;1247:9;1243:22;1214:61;:::i;:::-;1204:71;;1160:125;1088:204;;;;:::o;1298:407::-;;;1423:2;1411:9;1402:7;1398:23;1394:32;1391:2;;;1439:1;1436;1429:12;1391:2;1482:1;1507:53;1552:7;1543:6;1532:9;1528:22;1507:53;:::i;:::-;1497:63;;1453:117;1609:2;1635:53;1680:7;1671:6;1660:9;1656:22;1635:53;:::i;:::-;1625:63;;1580:118;1381:324;;;;;:::o;1711:552::-;;;;1853:2;1841:9;1832:7;1828:23;1824:32;1821:2;;;1869:1;1866;1859:12;1821:2;1912:1;1937:53;1982:7;1973:6;1962:9;1958:22;1937:53;:::i;:::-;1927:63;;1883:117;2039:2;2065:53;2110:7;2101:6;2090:9;2086:22;2065:53;:::i;:::-;2055:63;;2010:118;2167:2;2193:53;2238:7;2229:6;2218:9;2214:22;2193:53;:::i;:::-;2183:63;;2138:118;1811:452;;;;;:::o;2269:401::-;;;2391:2;2379:9;2370:7;2366:23;2362:32;2359:2;;;2407:1;2404;2397:12;2359:2;2450:1;2475:53;2520:7;2511:6;2500:9;2496:22;2475:53;:::i;:::-;2465:63;;2421:117;2577:2;2603:50;2645:7;2636:6;2625:9;2621:22;2603:50;:::i;:::-;2593:60;;2548:115;2349:321;;;;;:::o;2676:407::-;;;2801:2;2789:9;2780:7;2776:23;2772:32;2769:2;;;2817:1;2814;2807:12;2769:2;2860:1;2885:53;2930:7;2921:6;2910:9;2906:22;2885:53;:::i;:::-;2875:63;;2831:117;2987:2;3013:53;3058:7;3049:6;3038:9;3034:22;3013:53;:::i;:::-;3003:63;;2958:118;2759:324;;;;;:::o;3089:256::-;;3194:2;3182:9;3173:7;3169:23;3165:32;3162:2;;;3210:1;3207;3200:12;3162:2;3253:1;3278:50;3320:7;3311:6;3300:9;3296:22;3278:50;:::i;:::-;3268:60;;3224:114;3152:193;;;;:::o;3351:401::-;;;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3489:1;3486;3479:12;3441:2;3532:1;3557:50;3599:7;3590:6;3579:9;3575:22;3557:50;:::i;:::-;3547:60;;3503:114;3656:2;3682:53;3727:7;3718:6;3707:9;3703:22;3682:53;:::i;:::-;3672:63;;3627:118;3431:321;;;;;:::o;3758:692::-;;;;;3914:3;3902:9;3893:7;3889:23;3885:33;3882:2;;;3931:1;3928;3921:12;3882:2;3974:1;3999:50;4041:7;4032:6;4021:9;4017:22;3999:50;:::i;:::-;3989:60;;3945:114;4098:2;4124:53;4169:7;4160:6;4149:9;4145:22;4124:53;:::i;:::-;4114:63;;4069:118;4226:2;4252:53;4297:7;4288:6;4277:9;4273:22;4252:53;:::i;:::-;4242:63;;4197:118;4354:2;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;:::i;:::-;4370:63;;4325:118;3872:578;;;;;;;:::o;4456:262::-;;4564:2;4552:9;4543:7;4539:23;4535:32;4532:2;;;4580:1;4577;4570:12;4532:2;4623:1;4648:53;4693:7;4684:6;4673:9;4669:22;4648:53;:::i;:::-;4638:63;;4594:117;4522:196;;;;:::o;4724:401::-;;;4846:2;4834:9;4825:7;4821:23;4817:32;4814:2;;;4862:1;4859;4852:12;4814:2;4905:1;4930:53;4975:7;4966:6;4955:9;4951:22;4930:53;:::i;:::-;4920:63;;4876:117;5032:2;5058:50;5100:7;5091:6;5080:9;5076:22;5058:50;:::i;:::-;5048:60;;5003:115;4804:321;;;;;:::o;5131:407::-;;;5256:2;5244:9;5235:7;5231:23;5227:32;5224:2;;;5272:1;5269;5262:12;5224:2;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5442:2;5468:53;5513:7;5504:6;5493:9;5489:22;5468:53;:::i;:::-;5458:63;;5413:118;5214:324;;;;;:::o;5544:552::-;;;;5686:2;5674:9;5665:7;5661:23;5657:32;5654:2;;;5702:1;5699;5692:12;5654:2;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5872:2;5898:53;5943:7;5934:6;5923:9;5919:22;5898:53;:::i;:::-;5888:63;;5843:118;6000:2;6026:53;6071:7;6062:6;6051:9;6047:22;6026:53;:::i;:::-;6016:63;;5971:118;5644:452;;;;;:::o;6102:596::-;;;;6255:2;6243:9;6234:7;6230:23;6226:32;6223:2;;;6271:1;6268;6261:12;6223:2;6314:1;6339:64;6395:7;6386:6;6375:9;6371:22;6339:64;:::i;:::-;6329:74;;6285:128;6452:2;6478:64;6534:7;6525:6;6514:9;6510:22;6478:64;:::i;:::-;6468:74;;6423:129;6591:2;6617:64;6673:7;6664:6;6653:9;6649:22;6617:64;:::i;:::-;6607:74;;6562:129;6213:485;;;;;:::o;6704:844::-;;;;;;6880:3;6868:9;6859:7;6855:23;6851:33;6848:2;;;6897:1;6894;6887:12;6848:2;6940:1;6965:53;7010:7;7001:6;6990:9;6986:22;6965:53;:::i;:::-;6955:63;;6911:117;7067:2;7093:53;7138:7;7129:6;7118:9;7114:22;7093:53;:::i;:::-;7083:63;;7038:118;7195:2;7221:53;7266:7;7257:6;7246:9;7242:22;7221:53;:::i;:::-;7211:63;;7166:118;7323:2;7349:53;7394:7;7385:6;7374:9;7370:22;7349:53;:::i;:::-;7339:63;;7294:118;7451:3;7478:53;7523:7;7514:6;7503:9;7499:22;7478:53;:::i;:::-;7468:63;;7422:119;6838:710;;;;;;;;:::o;7554:179::-;;7644:46;7686:3;7678:6;7644:46;:::i;:::-;7722:4;7717:3;7713:14;7699:28;;7634:99;;;;:::o;7739:147::-;7834:45;7873:5;7834:45;:::i;:::-;7829:3;7822:58;7812:74;;:::o;7892:108::-;7969:24;7987:5;7969:24;:::i;:::-;7964:3;7957:37;7947:53;;:::o;8006:118::-;8093:24;8111:5;8093:24;:::i;:::-;8088:3;8081:37;8071:53;;:::o;8160:732::-;;8308:54;8356:5;8308:54;:::i;:::-;8378:86;8457:6;8452:3;8378:86;:::i;:::-;8371:93;;8488:56;8538:5;8488:56;:::i;:::-;8567:7;8598:1;8583:284;8608:6;8605:1;8602:13;8583:284;;;8684:6;8678:13;8711:63;8770:3;8755:13;8711:63;:::i;:::-;8704:70;;8797:60;8850:6;8797:60;:::i;:::-;8787:70;;8643:224;8630:1;8627;8623:9;8618:14;;8583:284;;;8587:14;8883:3;8876:10;;8284:608;;;;;;;:::o;8898:109::-;8979:21;8994:5;8979:21;:::i;:::-;8974:3;8967:34;8957:50;;:::o;9013:167::-;9118:55;9167:5;9118:55;:::i;:::-;9113:3;9106:68;9096:84;;:::o;9186:147::-;9281:45;9320:5;9281:45;:::i;:::-;9276:3;9269:58;9259:74;;:::o;9339:364::-;;9455:39;9488:5;9455:39;:::i;:::-;9510:71;9574:6;9569:3;9510:71;:::i;:::-;9503:78;;9590:52;9635:6;9630:3;9623:4;9616:5;9612:16;9590:52;:::i;:::-;9667:29;9689:6;9667:29;:::i;:::-;9662:3;9658:39;9651:46;;9431:272;;;;;:::o;9709:315::-;;9872:67;9936:2;9931:3;9872:67;:::i;:::-;9865:74;;9969:19;9965:1;9960:3;9956:11;9949:40;10015:2;10010:3;10006:12;9999:19;;9855:169;;;:::o;10030:318::-;;10193:67;10257:2;10252:3;10193:67;:::i;:::-;10186:74;;10290:22;10286:1;10281:3;10277:11;10270:43;10339:2;10334:3;10330:12;10323:19;;10176:172;;;:::o;10354:303::-;;10517:66;10581:1;10576:3;10517:66;:::i;:::-;10510:73;;10613:8;10609:1;10604:3;10600:11;10593:29;10648:2;10643:3;10639:12;10632:19;;10500:157;;;:::o;10663:309::-;;10826:67;10890:2;10885:3;10826:67;:::i;:::-;10819:74;;10923:13;10919:1;10914:3;10910:11;10903:34;10963:2;10958:3;10954:12;10947:19;;10809:163;;;:::o;10978:118::-;11065:24;11083:5;11065:24;:::i;:::-;11060:3;11053:37;11043:53;;:::o;11102:112::-;11185:22;11201:5;11185:22;:::i;:::-;11180:3;11173:35;11163:51;;:::o;11220:222::-;;11351:2;11340:9;11336:18;11328:26;;11364:71;11432:1;11421:9;11417:17;11408:6;11364:71;:::i;:::-;11318:124;;;;:::o;11448:238::-;;11587:2;11576:9;11572:18;11564:26;;11600:79;11676:1;11665:9;11661:17;11652:6;11600:79;:::i;:::-;11554:132;;;;:::o;11692:348::-;;11859:2;11848:9;11844:18;11836:26;;11872:71;11940:1;11929:9;11925:17;11916:6;11872:71;:::i;:::-;11953:80;12029:2;12018:9;12014:18;12005:6;11953:80;:::i;:::-;11826:214;;;;;:::o;12046:332::-;;12205:2;12194:9;12190:18;12182:26;;12218:71;12286:1;12275:9;12271:17;12262:6;12218:71;:::i;:::-;12299:72;12367:2;12356:9;12352:18;12343:6;12299:72;:::i;:::-;12172:206;;;;;:::o;12384:807::-;;12671:3;12660:9;12656:19;12648:27;;12685:71;12753:1;12742:9;12738:17;12729:6;12685:71;:::i;:::-;12766:72;12834:2;12823:9;12819:18;12810:6;12766:72;:::i;:::-;12848:80;12924:2;12913:9;12909:18;12900:6;12848:80;:::i;:::-;12938;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028:73;13096:3;13085:9;13081:19;13072:6;13028:73;:::i;:::-;13111;13179:3;13168:9;13164:19;13155:6;13111:73;:::i;:::-;12638:553;;;;;;;;;:::o;13197:210::-;;13322:2;13311:9;13307:18;13299:26;;13335:65;13397:1;13386:9;13382:17;13373:6;13335:65;:::i;:::-;13289:118;;;;:::o;13413:258::-;;13562:2;13551:9;13547:18;13539:26;;13575:89;13661:1;13650:9;13646:17;13637:6;13575:89;:::i;:::-;13529:142;;;;:::o;13677:720::-;;13950:3;13939:9;13935:19;13927:27;;13964:79;14040:1;14029:9;14025:17;14016:6;13964:79;:::i;:::-;14090:9;14084:4;14080:20;14075:2;14064:9;14060:18;14053:48;14118:108;14221:4;14212:6;14118:108;:::i;:::-;14110:116;;14236:72;14304:2;14293:9;14289:18;14280:6;14236:72;:::i;:::-;14318;14386:2;14375:9;14371:18;14362:6;14318:72;:::i;:::-;13917:480;;;;;;;:::o;14403:313::-;;14554:2;14543:9;14539:18;14531:26;;14603:9;14597:4;14593:20;14589:1;14578:9;14574:17;14567:47;14631:78;14704:4;14695:6;14631:78;:::i;:::-;14623:86;;14521:195;;;;:::o;14722:419::-;;14926:2;14915:9;14911:18;14903:26;;14975:9;14969:4;14965:20;14961:1;14950:9;14946:17;14939:47;15003:131;15129:4;15003:131;:::i;:::-;14995:139;;14893:248;;;:::o;15147:419::-;;15351:2;15340:9;15336:18;15328:26;;15400:9;15394:4;15390:20;15386:1;15375:9;15371:17;15364:47;15428:131;15554:4;15428:131;:::i;:::-;15420:139;;15318:248;;;:::o;15572:419::-;;15776:2;15765:9;15761:18;15753:26;;15825:9;15819:4;15815:20;15811:1;15800:9;15796:17;15789:47;15853:131;15979:4;15853:131;:::i;:::-;15845:139;;15743:248;;;:::o;15997:419::-;;16201:2;16190:9;16186:18;16178:26;;16250:9;16244:4;16240:20;16236:1;16225:9;16221:17;16214:47;16278:131;16404:4;16278:131;:::i;:::-;16270:139;;16168:248;;;:::o;16422:222::-;;16553:2;16542:9;16538:18;16530:26;;16566:71;16634:1;16623:9;16619:17;16610:6;16566:71;:::i;:::-;16520:124;;;;:::o;16650:831::-;;16951:3;16940:9;16936:19;16928:27;;16965:71;17033:1;17022:9;17018:17;17009:6;16965:71;:::i;:::-;17046:80;17122:2;17111:9;17107:18;17098:6;17046:80;:::i;:::-;17173:9;17167:4;17163:20;17158:2;17147:9;17143:18;17136:48;17201:108;17304:4;17295:6;17201:108;:::i;:::-;17193:116;;17319:72;17387:2;17376:9;17372:18;17363:6;17319:72;:::i;:::-;17401:73;17469:3;17458:9;17454:19;17445:6;17401:73;:::i;:::-;16918:563;;;;;;;;:::o;17487:332::-;;17646:2;17635:9;17631:18;17623:26;;17659:71;17727:1;17716:9;17712:17;17703:6;17659:71;:::i;:::-;17740:72;17808:2;17797:9;17793:18;17784:6;17740:72;:::i;:::-;17613:206;;;;;:::o;17825:214::-;;17952:2;17941:9;17937:18;17929:26;;17965:67;18029:1;18018:9;18014:17;18005:6;17965:67;:::i;:::-;17919:120;;;;:::o;18045:132::-;;18135:3;18127:11;;18165:4;18160:3;18156:14;18148:22;;18117:60;;;:::o;18183:114::-;;18284:5;18278:12;18268:22;;18257:40;;;:::o;18303:99::-;;18389:5;18383:12;18373:22;;18362:40;;;:::o;18408:113::-;;18510:4;18505:3;18501:14;18493:22;;18483:38;;;:::o;18527:184::-;;18660:6;18655:3;18648:19;18700:4;18695:3;18691:14;18676:29;;18638:73;;;;:::o;18717:169::-;;18835:6;18830:3;18823:19;18875:4;18870:3;18866:14;18851:29;;18813:73;;;;:::o;18892:305::-;;18951:20;18969:1;18951:20;:::i;:::-;18946:25;;18985:20;19003:1;18985:20;:::i;:::-;18980:25;;19139:1;19071:66;19067:74;19064:1;19061:81;19058:2;;;19145:18;;:::i;:::-;19058:2;19189:1;19186;19182:9;19175:16;;18936:261;;;;:::o;19203:185::-;;19260:20;19278:1;19260:20;:::i;:::-;19255:25;;19294:20;19312:1;19294:20;:::i;:::-;19289:25;;19333:1;19323:2;;19338:18;;:::i;:::-;19323:2;19380:1;19377;19373:9;19368:14;;19245:143;;;;:::o;19394:348::-;;19457:20;19475:1;19457:20;:::i;:::-;19452:25;;19491:20;19509:1;19491:20;:::i;:::-;19486:25;;19679:1;19611:66;19607:74;19604:1;19601:81;19596:1;19589:9;19582:17;19578:105;19575:2;;;19686:18;;:::i;:::-;19575:2;19734:1;19731;19727:9;19716:20;;19442:300;;;;:::o;19748:191::-;;19808:20;19826:1;19808:20;:::i;:::-;19803:25;;19842:20;19860:1;19842:20;:::i;:::-;19837:25;;19881:1;19878;19875:8;19872:2;;;19886:18;;:::i;:::-;19872:2;19931:1;19928;19924:9;19916:17;;19793:146;;;;:::o;19945:96::-;;20011:24;20029:5;20011:24;:::i;:::-;20000:35;;19990:51;;;:::o;20047:104::-;;20121:24;20139:5;20121:24;:::i;:::-;20110:35;;20100:51;;;:::o;20157:90::-;;20234:5;20227:13;20220:21;20209:32;;20199:48;;;:::o;20253:126::-;;20330:42;20323:5;20319:54;20308:65;;20298:81;;;:::o;20385:77::-;;20451:5;20440:16;;20430:32;;;:::o;20468:86::-;;20543:4;20536:5;20532:16;20521:27;;20511:43;;;:::o;20560:134::-;;20651:37;20682:5;20651:37;:::i;:::-;20638:50;;20628:66;;;:::o;20700:162::-;;20801:55;20850:5;20801:55;:::i;:::-;20788:68;;20778:84;;;:::o;20868:131::-;;20969:24;20987:5;20969:24;:::i;:::-;20956:37;;20946:53;;;:::o;21005:121::-;;21096:24;21114:5;21096:24;:::i;:::-;21083:37;;21073:53;;;:::o;21132:126::-;;21215:37;21246:5;21215:37;:::i;:::-;21202:50;;21192:66;;;:::o;21264:113::-;;21347:24;21365:5;21347:24;:::i;:::-;21334:37;;21324:53;;;:::o;21383:307::-;21451:1;21461:113;21475:6;21472:1;21469:13;21461:113;;;21560:1;21555:3;21551:11;21545:18;21541:1;21536:3;21532:11;21525:39;21497:2;21494:1;21490:10;21485:15;;21461:113;;;21592:6;21589:1;21586:13;21583:2;;;21672:1;21663:6;21658:3;21654:16;21647:27;21583:2;21432:258;;;;:::o;21696:180::-;21744:77;21741:1;21734:88;21841:4;21838:1;21831:15;21865:4;21862:1;21855:15;21882:180;21930:77;21927:1;21920:88;22027:4;22024:1;22017:15;22051:4;22048:1;22041:15;22068:102;;22160:2;22156:7;22151:2;22144:5;22140:14;22136:28;22126:38;;22116:54;;;:::o;22176:122::-;22249:24;22267:5;22249:24;:::i;:::-;22242:5;22239:35;22229:2;;22288:1;22285;22278:12;22229:2;22219:79;:::o;22304:138::-;22385:32;22411:5;22385:32;:::i;:::-;22378:5;22375:43;22365:2;;22432:1;22429;22422:12;22365:2;22355:87;:::o;22448:116::-;22518:21;22533:5;22518:21;:::i;:::-;22511:5;22508:32;22498:2;;22554:1;22551;22544:12;22498:2;22488:76;:::o;22570:122::-;22643:24;22661:5;22643:24;:::i;:::-;22636:5;22633:35;22623:2;;22682:1;22679;22672:12;22623:2;22613:79;:::o
Swarm Source
ipfs://36d4a2012882bd12af98dddf7b11a6b203ff145bbb5026ac6ee92bde34a54ee0
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.