ERC-20
Overview
Max Total Supply
100,000,000 Avg Dev
Holders
84
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.001893091 Avg DevValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AVERAGE_DEV
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-06 */ /* <<<< Socials >>>> Twitter : https://twitter.com/AverageDevErc Telegram: https://t.me/AverageDevEntryPortal Website : http://avaragedev.com */ // SPDX-License-Identifier: MIT pragma solidity 0.8.7; abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { 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); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function factory() external view returns (address); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { 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; } contract AVERAGE_DEV is Context, IERC20 { // Ownership moved to in-contract for customizability. address private _owner; mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isExcludedFromMaxWalletRestrictions; mapping (address => bool) private _isSniperOrBlacklisted; mapping (address => uint256) firstBuy; uint256 private startingSupply = 100_000_000; string private _name = "Average Developer"; string private _symbol = "Avg Dev"; //========================== // FEES struct taxes { uint buyFee; uint sellFee; uint transferFee; uint antiDumpLT; } taxes public Fees = taxes( {buyFee: 500, sellFee: 700, transferFee: 700, antiDumpLT: 700}); //========================== // Maxima struct Maxima { uint maxBuy; uint maxSell; uint maxTransfer; uint maxAntiDump; } Maxima public maxFees = Maxima( {maxBuy: 700, maxSell: 700, maxTransfer: 700, maxAntiDump: 700}); //========================== //Proportions of Taxes struct feeProportions { uint liquidity; uint burn; uint averageDeveloper; uint developer; } feeProportions public Ratios = feeProportions( { liquidity: 0, burn: 0, averageDeveloper: 800, developer: 200}); //========================== // Anti-Dump struct jeetParameters { uint longTerm; bool enabled; } jeetParameters public terms = jeetParameters( {longTerm: 24 hours, enabled: true}); // Anti-Dump //========================== uint256 private constant masterTaxDivisor = 10000; uint256 private constant MAX = ~uint256(0); uint8 constant private _decimals = 9; uint256 private _tTotal = startingSupply * 10**_decimals; uint256 private _tFeeTotal; IUniswapV2Router02 public dexRouter; address public lpPair; // UNI ROUTER address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; // Receives tokens, deflates supply, increases price floor. address payable public _averageDeveloperWallet = payable(0xa833333dd48A9FD7A5a388d3B3488FdBF6B3489d); address payable public _developerWallet = payable(0x83D3F34B94AA2ABC1B5689c3720A39091b487aE4); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private maxTxPercent = 1; uint256 private maxTxDivisor = 100; uint256 private _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor; uint256 private maxWalletPercent = 2; uint256 private maxWalletDivisor = 100; uint256 private _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor; uint256 private swapThreshold = (_tTotal * 5) / 10_000; uint256 private swapAmount = (_tTotal * 5) / 1_000; bool private sniperProtection = true; bool public _hasLiqBeenAdded = false; uint256 private _liqAddStatus = 0; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; uint256 private _initialLiquidityAmount = 0; // make constant uint256 private snipeBlockAmt = 0; uint256 public snipersCaught = 0; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SniperCaught(address sniperAddress); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller != owner."); _; } constructor () payable { _tOwned[_msgSender()] = _tTotal; // Set the owner. _owner = msg.sender; dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _allowances[address(this)][address(dexRouter)] = type(uint256).max; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[owner()] = true; // Approve the owner for Uniswap, timesaver. _approve(_msgSender(), _routerAddress, _tTotal); // Event regarding the tTotal transferred to the _msgSender. emit Transfer(address(0), _msgSender(), _tTotal); } receive() external payable {} //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and recnouncements. // This allows for removal of ownership privelages from the owner once renounced or transferred. function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (_averageDeveloperWallet == payable(_owner)) _averageDeveloperWallet = payable(newOwner); _allowances[_owner][newOwner] = balanceOf(_owner); if(balanceOf(_owner) > 0) { _transfer(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFees(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function getFirstBuy(address account) public view returns (uint256) { return firstBuy[account]; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function setNewRouter(address newRouter) public onlyOwner() { IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter); address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown."); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function excludeFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = true; } function revokeExcludedFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = false; } function isSniperOrBlacklisted(address account) public view returns (bool) { return _isSniperOrBlacklisted[account]; } function isProtected(uint256 rInitializer) external onlyOwner { require (_liqAddStatus == 0, "Error."); _liqAddStatus = rInitializer; snipeBlockAmt = 3; } function setBlacklistEnabled(address account, bool enabled) external onlyOwner() { _isSniperOrBlacklisted[account] = enabled; } function setRatios(uint _liquidity, uint _averageDeveloper, uint _developer, uint _burn) external onlyOwner { require ( (_liquidity+_averageDeveloper+_developer+_burn) == 1100, "!(1K)"); Ratios.liquidity = _liquidity; Ratios.averageDeveloper = _averageDeveloper; Ratios.developer = _developer; Ratios.burn = _burn;} function antiDumpParameters(bool _enabled, uint _longTerm) external onlyOwner { require(_longTerm <= 24); terms.longTerm = _longTerm * 1 hours; terms.enabled = _enabled;} function setTaxes(uint _buyFee, uint _sellFee, uint _transferFee, uint _antiDumpLT) external onlyOwner { require(_buyFee <= maxFees.maxBuy && _sellFee <= maxFees.maxSell && _transferFee <= maxFees.maxTransfer && _antiDumpLT <= maxFees.maxAntiDump, "Cannot exceed maximums."); Fees.buyFee = _buyFee; Fees.sellFee = _sellFee; Fees.transferFee = _transferFee; Fees.antiDumpLT= _antiDumpLT; } function setMaxTxPercent(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxTxAmount = check; } function setMaxWalletSize(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxWalletSize = check; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; } function setWallets(address payable averageDeveloperWallet, address payable developerWallet) external onlyOwner { _averageDeveloperWallet = payable(averageDeveloperWallet); _developerWallet = payable(developerWallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function _hasLimits(address from, address to) private view returns (bool) { return from != owner() && to != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: Zero address."); require(to != address(0), "ERC20: Zero address."); require(amount > 0, "Must >0."); if(_hasLimits(from, to)) { if(!(isExcludedFromMaxWalletRestrictions[from] || isExcludedFromMaxWalletRestrictions[to])) { if(lpPairs[from] || lpPairs[to]){ require(amount <= _maxTxAmount, "Exceeds the maxTxAmount."); } if(to != _routerAddress && !lpPairs[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } } } if (_tOwned[to] == 0) { firstBuy[to] = block.timestamp; } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (lpPairs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _finalizeTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { if (Ratios.liquidity + Ratios.averageDeveloper + Ratios.developer == 0) return; uint256 toLiquify = ((contractTokenBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.averageDeveloper + Ratios.developer) ) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; swapTokensForEth(toSwapForEth); uint256 currentBalance = address(this).balance; uint256 liquidityBalance = ((currentBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.averageDeveloper + Ratios.developer) ) / 2; if (toLiquify > 0) { addLiquidity(toLiquify, liquidityBalance); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (contractTokenBalance - toLiquify > 0) { _averageDeveloperWallet.transfer(((currentBalance - liquidityBalance) * Ratios.averageDeveloper) / (Ratios.averageDeveloper + Ratios.developer)); _developerWallet.transfer(address(this).balance); } } function swapTokensForEth(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { if (snipeBlockAmt != 3) { _liqAddBlock = block.number + 5000; } else { _liqAddBlock = block.number; } _liquidityHolders[from] = true; _hasLiqBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) { if (sniperProtection){ if (isSniperOrBlacklisted(from) || isSniperOrBlacklisted(to)) { revert("Sniper rejected."); } if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } else { if (_liqAddBlock > 0 && lpPairs[from] && _hasLimits(from, to) ) { if (block.number - _liqAddBlock < snipeBlockAmt) { _isSniperOrBlacklisted[to] = true; snipersCaught ++; emit SniperCaught(to); } } } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; //A _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { uint256 currentFee; if (to == lpPair) { if (terms.enabled){ if (firstBuy[from] + terms.longTerm > block.timestamp) {currentFee = Fees.antiDumpLT;} else {currentFee = Fees.sellFee;} } else {currentFee=Fees.sellFee;} } else if (from == lpPair) {currentFee = Fees.buyFee;} else {currentFee = Fees.transferFee;} if (_hasLimits(from, to)){ if (_liqAddStatus == 0 || _liqAddStatus != (1)) { revert(); } } uint256 burnAmt = (amount * currentFee * Ratios.burn) / (Ratios.burn + Ratios.liquidity + Ratios.averageDeveloper + Ratios.developer ) / masterTaxDivisor; uint256 feeAmount = (amount * currentFee / masterTaxDivisor) - burnAmt; _tOwned[DEAD] += burnAmt; _tOwned[address(this)] += (feeAmount); emit Transfer(from, DEAD, burnAmt); emit Transfer(from, address(this), feeAmount); return amount - feeAmount - burnAmt; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"},{"internalType":"uint256","name":"antiDumpLT","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ratios","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"averageDeveloper","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_averageDeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_longTerm","type":"uint256"}],"name":"antiDumpParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getFirstBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rInitializer","type":"uint256"}],"name":"isProtected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniperOrBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxTransfer","type":"uint256"},{"internalType":"uint256","name":"maxAntiDump","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_averageDeveloper","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"},{"internalType":"uint256","name":"_antiDumpLT","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"averageDeveloperWallet","type":"address"},{"internalType":"address payable","name":"developerWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"terms","outputs":[{"internalType":"uint256","name":"longTerm","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260006003556305f5e100600a556040518060400160405280601181526020017f4176657261676520446576656c6f706572000000000000000000000000000000815250600b90805190602001906200005e92919062000c4a565b506040518060400160405280600781526020017f4176672044657600000000000000000000000000000000000000000000000000815250600c9080519060200190620000ac92919062000c4a565b5060405180608001604052806101f481526020016102bc81526020016102bc81526020016102bc815250600d60008201518160000155602082015181600101556040820151816002015560608201518160030155505060405180608001604052806102bc81526020016102bc81526020016102bc81526020016102bc815250601160008201518160000155602082015181600101556040820151816002015560608201518160030155505060405180608001604052806000815260200160008152602001610320815260200160c8815250601560008201518160000155602082015181600101556040820151816002015560608201518160030155505060405180604001604052806201518081526020016001151581525060196000820151816000015560208201518160010160006101000a81548160ff02191690831515021790555050506009600a62000202919062000e9c565b600a5462000211919062000fd9565b601b5573a833333dd48a9fd7a5a388d3b3488fdbf6b3489d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507383d3f34b94aa2abc1b5689c3720a39091b487ae4602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602060156101000a81548160ff02191690831515021790555060016021556064602255602254602154601b54620002f8919062000fd9565b62000304919062000e09565b60235560026024556064602555602554602454601b5462000326919062000fd9565b62000332919062000e09565b6026556127106005601b5462000349919062000fd9565b62000355919062000e09565b6027556103e86005601b546200036c919062000fd9565b62000378919062000e09565b6028556001602960006101000a81548160ff0219169083151502179055506000602960016101000a81548160ff0219169083151502179055506000602a556000602b556000602c556000602d556000602e556000602f55601b5460016000620003e662000a4660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200052257600080fd5b505afa15801562000537573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055d919062000d11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005e157600080fd5b505afa158015620005f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061c919062000d11565b306040518363ffffffff1660e01b81526004016200063c92919062000d8c565b602060405180830381600087803b1580156200065757600080fd5b505af11580156200066c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000692919062000d11565b601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160026000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660006200082562000a4e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200093e62000a4e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009c7620009a362000a4660201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601b5462000a7760201b60201c565b620009d762000a4660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000a38919062000ddb565b60405180910390a36200119d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000aea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae19062000db9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b549062000db9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c3d919062000ddb565b60405180910390a3505050565b82805462000c589062001085565b90600052602060002090601f01602090048101928262000c7c576000855562000cc8565b82601f1062000c9757805160ff191683800117855562000cc8565b8280016001018555821562000cc8579182015b8281111562000cc757825182559160200191906001019062000caa565b5b50905062000cd7919062000cdb565b5090565b5b8082111562000cf657600081600090555060010162000cdc565b5090565b60008151905062000d0b8162001183565b92915050565b60006020828403121562000d2a5762000d2962001148565b5b600062000d3a8482850162000cfa565b91505092915050565b62000d4e816200103a565b82525050565b600062000d6360138362000df8565b915062000d70826200115a565b602082019050919050565b62000d86816200106e565b82525050565b600060408201905062000da3600083018562000d43565b62000db2602083018462000d43565b9392505050565b6000602082019050818103600083015262000dd48162000d54565b9050919050565b600060208201905062000df2600083018462000d7b565b92915050565b600082825260208201905092915050565b600062000e16826200106e565b915062000e23836200106e565b92508262000e365762000e35620010ea565b5b828204905092915050565b6000808291508390505b600185111562000e935780860481111562000e6b5762000e6a620010bb565b5b600185161562000e7b5780820291505b808102905062000e8b856200114d565b945062000e4b565b94509492505050565b600062000ea9826200106e565b915062000eb68362001078565b925062000ee57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eed565b905092915050565b60008262000eff576001905062000fd2565b8162000f0f576000905062000fd2565b816001811462000f28576002811462000f335762000f69565b600191505062000fd2565b60ff84111562000f485762000f47620010bb565b5b8360020a91508482111562000f625762000f61620010bb565b5b5062000fd2565b5060208310610133831016604e8410600b841016171562000fa35782820a90508381111562000f9d5762000f9c620010bb565b5b62000fd2565b62000fb2848484600162000e41565b9250905081840481111562000fcc5762000fcb620010bb565b5b81810290505b9392505050565b600062000fe6826200106e565b915062000ff3836200106e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200102f576200102e620010bb565b5b828202905092915050565b600062001047826200104e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200109e57607f821691505b60208210811415620010b557620010b462001119565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6200118e816200103a565b81146200119a57600080fd5b50565b61566880620011ad6000396000f3fe60806040526004361061028c5760003560e01c806381c6f11b1161015a578063c49b9a80116100c1578063e5b55c6b1161007a578063e5b55c6b14610a2c578063e79d416014610a57578063e83e34b114610a82578063eafb5a3c14610ab0578063eec2744e14610ad9578063fb78680d14610b0257610293565b8063c49b9a801461091d578063ca79882f14610946578063ce8b79c914610971578063d3f6a1571461099a578063d5025625146109c3578063dd62ed3e146109ef57610293565b8063a12a7d6111610113578063a12a7d61146107e6578063a13ce2c61461080f578063a457c2d71461084c578063a9059cbb14610889578063b5f7bfa2146108c6578063bc1323e8146108f457610293565b806381c6f11b146106c2578063893d20e8146106eb57806389fd9bc1146107165780638c7321ad146107535780638da5cb5b1461079057806395d89b41146107bb57610293565b80633aaa36e6116101fe57806350a8e016116101b757806350a8e016146105b4578063571ac8b0146105df578063590ffdce1461061c57806370a0823114610645578063715018a61461068257806380c581d11461069957610293565b80633aaa36e6146104a15780633f3cf56c146104cf578063452ed4f1146104f85780634a74bb02146105235780634fb2e45d1461054e5780634fbee1931461057757610293565b806318160ddd1161025057806318160ddd1461037f57806323b872dd146103aa57806326003957146103e7578063313ce56714610410578063355b74de1461043b578063395093511461046457610293565b806303fd2a451461029857806306fdde03146102c35780630758d924146102ee578063095ea7b3146103195780631793fe4e1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b2b565b6040516102ba9190614ae2565b60405180910390f35b3480156102cf57600080fd5b506102d8610b31565b6040516102e59190614bd8565b60405180910390f35b3480156102fa57600080fd5b50610303610bc3565b6040516103109190614bbd565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b91906145da565b610be9565b60405161034d9190614ba2565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190614747565b610c07565b005b34801561038b57600080fd5b50610394610d2f565b6040516103a19190614dda565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190614547565b610d39565b6040516103de9190614ba2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906146b4565b610e86565b005b34801561041c57600080fd5b50610425610f96565b6040516104329190614ef4565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190614647565b610f9f565b005b34801561047057600080fd5b5061048b600480360381019061048691906145da565b61107a565b6040516104989190614ba2565b60405180910390f35b3480156104ad57600080fd5b506104b6611126565b6040516104c69493929190614eaf565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906146b4565b611144565b005b34801561050457600080fd5b5061050d611254565b60405161051a9190614ae2565b60405180910390f35b34801561052f57600080fd5b5061053861127a565b6040516105459190614ba2565b60405180910390f35b34801561055a57600080fd5b506105756004803603810190610570919061446d565b61128d565b005b34801561058357600080fd5b5061059e6004803603810190610599919061446d565b6116fe565b6040516105ab9190614ba2565b60405180910390f35b3480156105c057600080fd5b506105c9611754565b6040516105d69190614ba2565b60405180910390f35b3480156105eb57600080fd5b506106066004803603810190610601919061446d565b611767565b6040516106139190614ba2565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e919061459a565b61179a565b005b34801561065157600080fd5b5061066c6004803603810190610667919061446d565b61188a565b6040516106799190614dda565b60405180910390f35b34801561068e57600080fd5b506106976118d3565b005b3480156106a557600080fd5b506106c060048036038101906106bb919061459a565b611a51565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190614687565b611c11565b005b3480156106f757600080fd5b50610700611cfd565b60405161070d9190614ae2565b60405180910390f35b34801561072257600080fd5b5061073d6004803603810190610738919061446d565b611d0c565b60405161074a9190614ba2565b60405180910390f35b34801561075f57600080fd5b5061077a6004803603810190610775919061446d565b611d62565b6040516107879190614ba2565b60405180910390f35b34801561079c57600080fd5b506107a5611d82565b6040516107b29190614ae2565b60405180910390f35b3480156107c757600080fd5b506107d0611dab565b6040516107dd9190614bd8565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190614747565b611e3d565b005b34801561081b57600080fd5b506108366004803603810190610831919061446d565b611f7b565b6040516108439190614dda565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906145da565b611fc4565b6040516108809190614ba2565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab91906145da565b612070565b6040516108bd9190614ba2565b60405180910390f35b3480156108d257600080fd5b506108db61208f565b6040516108eb9493929190614eaf565b60405180910390f35b34801561090057600080fd5b5061091b6004803603810190610916919061446d565b6120ad565b005b34801561092957600080fd5b50610944600480360381019061093f919061461a565b61219d565b005b34801561095257600080fd5b5061095b612286565b6040516109689190614afd565b60405180910390f35b34801561097d57600080fd5b506109986004803603810190610993919061446d565b6122ac565b005b3480156109a657600080fd5b506109c160048036038101906109bc91906144c7565b61239c565b005b3480156109cf57600080fd5b506109d86124b7565b6040516109e6929190614df5565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190614507565b6124d6565b604051610a239190614dda565b60405180910390f35b348015610a3857600080fd5b50610a4161255d565b604051610a4e9190614afd565b60405180910390f35b348015610a6357600080fd5b50610a6c612583565b604051610a799190614dda565b60405180910390f35b348015610a8e57600080fd5b50610a97612589565b604051610aa79493929190614eaf565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad2919061446d565b6125a7565b005b348015610ae557600080fd5b50610b006004803603810190610afb919061459a565b612a53565b005b348015610b0e57600080fd5b50610b296004803603810190610b249190614747565b612b43565b005b61dead81565b6060600b8054610b409061515b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c9061515b565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b5050505050905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bfd610bf6612c1c565b8484612c24565b6001905092915050565b610c0f612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390614bfa565b60405180910390fd5b61044c81838587610cad9190614f64565b610cb79190614f64565b610cc19190614f64565b14610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890614dba565b60405180910390fd5b8360156000018190555082601560020181905550816015600301819055508060156001018190555050505050565b6000601b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e725781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6a9190615045565b925050819055505b610e7d848484612def565b90509392505050565b610e8e612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290614bfa565b60405180910390fd5b60008183601b54610f2c9190614feb565b610f369190614fba565b905061012c601b54610f489190614fba565b811015610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190614d7a565b60405180910390fd5b80602681905550505050565b60006009905090565b610fa7612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90614bfa565b60405180910390fd5b601881111561104257600080fd5b610e10816110509190614feb565b60196000018190555081601960010160006101000a81548160ff0219169083151502179055505050565b600061111c611087612c1c565b848460046000611095612c1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111179190614f64565b612c24565b6001905092915050565b600d8060000154908060010154908060020154908060030154905084565b61114c612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090614bfa565b60405180910390fd5b60008183601b546111ea9190614feb565b6111f49190614fba565b905061012c601b546112069190614fba565b811015611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f90614d7a565b60405180910390fd5b80602381905550505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060159054906101000a900460ff1681565b611295612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990614bfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990614d9a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90614d9a565b60405180910390fd5b61142e60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061179a565b61143981600161179a565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114f15780601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61151a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006115e660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b11156116415761163f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261163a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b612def565b505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b602960019054906101000a900460ff1681565b6000611793827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610be9565b9050919050565b6117a2612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690614bfa565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118db612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90614bfa565b60405180910390fd5b61199360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061179a565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b611a59612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90614bfa565b60405180910390fd5b600015158115151415611b50576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c0d565b600060035414611bad5762093a8060035442611b6c9190615045565b11611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba390614c9a565b60405180910390fd5b5b6001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550426003819055505b5050565b611c19612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90614bfa565b60405180910390fd5b6000602a5414611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290614d1a565b60405180910390fd5b80602a819055506003602e8190555050565b6000611d07611d82565b905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054611dba9061515b565b80601f0160208091040260200160405190810160405280929190818152602001828054611de69061515b565b8015611e335780601f10611e0857610100808354040283529160200191611e33565b820191906000526020600020905b815481529060010190602001808311611e1657829003601f168201915b5050505050905090565b611e45612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990614bfa565b60405180910390fd5b6011600001548411158015611eec57506011600101548311155b8015611efd57506011600201548211155b8015611f0e57506011600301548111155b611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4490614c5a565b60405180910390fd5b83600d6000018190555082600d6001018190555081600d6002018190555080600d6003018190555050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000612066611fd1612c1c565b848460046000611fdf612c1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120619190615045565b612c24565b6001905092915050565b600061208461207d612c1c565b8484612def565b506001905092915050565b60158060000154908060010154908060020154908060030154905084565b6120b5612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990614bfa565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6121a5612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222990614bfa565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161227b9190614ba2565b60405180910390a150565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122b4612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890614bfa565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123a4612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890614bfa565b60405180910390fd5b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60198060000154908060010160009054906101000a900460ff16905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602f5481565b60118060000154908060010154908060020154908060030154905084565b6125af612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263390614bfa565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561268957600080fd5b505afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c1919061449a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561272357600080fd5b505afa158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b919061449a565b6040518363ffffffff1660e01b8152600401612778929190614b18565b60206040518083038186803b15801561279057600080fd5b505afa1580156127a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c8919061449a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129cb578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561284557600080fd5b505afa158015612859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287d919061449a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156128df57600080fd5b505afa1580156128f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612917919061449a565b6040518363ffffffff1660e01b8152600401612934929190614b18565b602060405180830381600087803b15801561294e57600080fd5b505af1158015612962573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612986919061449a565b601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612a0d565b80601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b612a5b612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adf90614bfa565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612b4b612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcf90614bfa565b60405180910390fd5b8284601b54612be79190614feb565b612bf19190614fba565b6027819055508082601b54612c069190614feb565b612c109190614fba565b60288190555050505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8b90614cda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614cda565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612de29190614dda565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5790614c7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec790614c7a565b60405180910390fd5b60008211612f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0a90614cba565b60405180910390fd5b612f1d84846133b3565b156131ad57600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fc35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6131ac57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130685750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130b3576023548211156130b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a990614d5a565b60405180910390fd5b5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561314d5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131ab576026548261315f8561188a565b6131699190614f64565b11156131aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a190614d3a565b60405180910390fd5b5b5b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561323a5742600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600060019050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132e15750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132eb57600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561339d57602060149054906101000a900460ff161580156133665750602060159054906101000a900460ff165b1561339c5760006133763061188a565b9050602754811061339a5760285481106133905760285490505b6133998161358a565b5b505b5b6133a98585858461382c565b9150509392505050565b60006133bd611d82565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561342b57506133fb611d82565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156134815750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156134d75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613511575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561354a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561358257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6001602060146101000a81548160ff02191690831515021790555060006015600301546015600201546015600001546135c39190614f64565b6135cd9190614f64565b14156135d85761380e565b600060026015600301546015600201546015600001546135f89190614f64565b6136029190614f64565b601560000154846136139190614feb565b61361d9190614fba565b6136279190614fba565b9050600081836136379190615045565b905061364281613b8f565b6000479050600060026015600301546015600201546015600001546136679190614f64565b6136719190614f64565b601560000154846136829190614feb565b61368c9190614fba565b6136969190614fba565b905060008411156136e7576136ab8482613db4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482866040516136de93929190614e78565b60405180910390a15b600084866136f59190615045565b111561380957601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60156003015460156002015461374d9190614f64565b601560020154848661375f9190615045565b6137699190614feb565b6137739190614fba565b9081150290604051600060405180830381858888f1935050505015801561379e573d6000803e3d6000fd5b50602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613807573d6000803e3d6000fd5b505b505050505b6000602060146101000a81548160ff02191690831515021790555050565b6000602960009054906101000a900460ff1615613a565761384c85611d0c565b8061385c575061385b84611d0c565b5b1561389c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161389390614cfa565b60405180910390fd5b602960019054906101000a900460ff16613922576138ba8585613e7b565b602960019054906101000a900460ff161580156138dd57506138dc85856133b3565b5b1561391d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161391490614c3a565b60405180910390fd5b613a55565b6000602b5411801561397d5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561398f575061398e85856133b3565b5b15613a5457602e54602b54436139a59190615045565b1015613a53576001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602f6000815480929190613a169061518d565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e584604051613a4a9190614ae2565b60405180910390a15b5b5b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613aa59190615045565b92505081905550600082613ab95783613ac5565b613ac4868686614031565b5b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b169190614f64565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b7a9190614dda565b60405180910390a36001915050949350505050565b6000600267ffffffffffffffff811115613bac57613bab615292565b5b604051908082528060200260200182016040528015613bda5781602001602082028036833780820191505090505b5090503081600081518110613bf257613bf1615263565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ccc919061449a565b81600181518110613ce057613cdf615263565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d7e959493929190614e1e565b600060405180830381600087803b158015613d9857600080fd5b505af1158015613dac573d6000803e3d6000fd5b505050505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613e00611d82565b426040518863ffffffff1660e01b8152600401613e2296959493929190614b41565b6060604051808303818588803b158015613e3b57600080fd5b505af1158015613e4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e7491906146f4565b5050505050565b602960019054906101000a900460ff1615613ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec290614c1a565b60405180910390fd5b613ed582826133b3565b158015613f2f5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561402d576003602e5414613f575761138843613f4c9190614f64565b602b81905550613f5f565b43602b819055505b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602960016101000a81548160ff02191690831515021790555042602c819055506001602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15960016040516140249190614ba2565b60405180910390a15b5050565b600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561412257601960010160009054906101000a900460ff16156141145742601960000154600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546140f39190614f64565b111561410657600d60030154905061410f565b600d6001015490505b61411d565b600d6001015490505b61418f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561418557600d60000154905061418e565b600d6002015490505b5b61419985856133b3565b156141bd576000602a5414806141b257506001602a5414155b156141bc57600080fd5b5b60006127106015600301546015600201546015600001546015600101546141e49190614f64565b6141ee9190614f64565b6141f89190614f64565b601560010154848761420a9190614feb565b6142149190614feb565b61421e9190614fba565b6142289190614fba565b9050600081612710848761423c9190614feb565b6142469190614fba565b6142509190615045565b9050816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546142a39190614f64565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546142f99190614f64565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161435f9190614dda565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516143c49190614dda565b60405180910390a38181866143d99190615045565b6143e39190615045565b93505050509392505050565b6000813590506143fe816155d6565b92915050565b600081519050614413816155d6565b92915050565b600081359050614428816155ed565b92915050565b60008135905061443d81615604565b92915050565b6000813590506144528161561b565b92915050565b6000815190506144678161561b565b92915050565b600060208284031215614483576144826152c1565b5b6000614491848285016143ef565b91505092915050565b6000602082840312156144b0576144af6152c1565b5b60006144be84828501614404565b91505092915050565b600080604083850312156144de576144dd6152c1565b5b60006144ec85828601614419565b92505060206144fd85828601614419565b9150509250929050565b6000806040838503121561451e5761451d6152c1565b5b600061452c858286016143ef565b925050602061453d858286016143ef565b9150509250929050565b6000806000606084860312156145605761455f6152c1565b5b600061456e868287016143ef565b935050602061457f868287016143ef565b925050604061459086828701614443565b9150509250925092565b600080604083850312156145b1576145b06152c1565b5b60006145bf858286016143ef565b92505060206145d08582860161442e565b9150509250929050565b600080604083850312156145f1576145f06152c1565b5b60006145ff858286016143ef565b925050602061461085828601614443565b9150509250929050565b6000602082840312156146305761462f6152c1565b5b600061463e8482850161442e565b91505092915050565b6000806040838503121561465e5761465d6152c1565b5b600061466c8582860161442e565b925050602061467d85828601614443565b9150509250929050565b60006020828403121561469d5761469c6152c1565b5b60006146ab84828501614443565b91505092915050565b600080604083850312156146cb576146ca6152c1565b5b60006146d985828601614443565b92505060206146ea85828601614443565b9150509250929050565b60008060006060848603121561470d5761470c6152c1565b5b600061471b86828701614458565b935050602061472c86828701614458565b925050604061473d86828701614458565b9150509250925092565b60008060008060808587031215614761576147606152c1565b5b600061476f87828801614443565b945050602061478087828801614443565b935050604061479187828801614443565b92505060606147a287828801614443565b91505092959194509250565b60006147ba83836147d5565b60208301905092915050565b6147cf8161508b565b82525050565b6147de81615079565b82525050565b6147ed81615079565b82525050565b60006147fe82614f1f565b6148088185614f42565b935061481383614f0f565b8060005b8381101561484457815161482b88826147ae565b975061483683614f35565b925050600181019050614817565b5085935050505092915050565b61485a8161509d565b82525050565b614869816150e0565b82525050565b614878816150f2565b82525050565b600061488982614f2a565b6148938185614f53565b93506148a3818560208601615128565b6148ac816152c6565b840191505092915050565b60006148c4601083614f53565b91506148cf826152d7565b602082019050919050565b60006148e7602383614f53565b91506148f282615300565b604082019050919050565b600061490a602583614f53565b91506149158261534f565b604082019050919050565b600061492d601783614f53565b91506149388261539e565b602082019050919050565b6000614950601483614f53565b915061495b826153c7565b602082019050919050565b6000614973601283614f53565b915061497e826153f0565b602082019050919050565b6000614996600883614f53565b91506149a182615419565b602082019050919050565b60006149b9601383614f53565b91506149c482615442565b602082019050919050565b60006149dc601083614f53565b91506149e78261546b565b602082019050919050565b60006149ff600683614f53565b9150614a0a82615494565b602082019050919050565b6000614a22601a83614f53565b9150614a2d826154bd565b602082019050919050565b6000614a45601883614f53565b9150614a50826154e6565b602082019050919050565b6000614a68602583614f53565b9150614a738261550f565b604082019050919050565b6000614a8b603d83614f53565b9150614a968261555e565b604082019050919050565b6000614aae600583614f53565b9150614ab9826155ad565b602082019050919050565b614acd816150c9565b82525050565b614adc816150d3565b82525050565b6000602082019050614af760008301846147e4565b92915050565b6000602082019050614b1260008301846147c6565b92915050565b6000604082019050614b2d60008301856147e4565b614b3a60208301846147e4565b9392505050565b600060c082019050614b5660008301896147e4565b614b636020830188614ac4565b614b70604083018761486f565b614b7d606083018661486f565b614b8a60808301856147e4565b614b9760a0830184614ac4565b979650505050505050565b6000602082019050614bb76000830184614851565b92915050565b6000602082019050614bd26000830184614860565b92915050565b60006020820190508181036000830152614bf2818461487e565b905092915050565b60006020820190508181036000830152614c13816148b7565b9050919050565b60006020820190508181036000830152614c33816148da565b9050919050565b60006020820190508181036000830152614c53816148fd565b9050919050565b60006020820190508181036000830152614c7381614920565b9050919050565b60006020820190508181036000830152614c9381614943565b9050919050565b60006020820190508181036000830152614cb381614966565b9050919050565b60006020820190508181036000830152614cd381614989565b9050919050565b60006020820190508181036000830152614cf3816149ac565b9050919050565b60006020820190508181036000830152614d13816149cf565b9050919050565b60006020820190508181036000830152614d33816149f2565b9050919050565b60006020820190508181036000830152614d5381614a15565b9050919050565b60006020820190508181036000830152614d7381614a38565b9050919050565b60006020820190508181036000830152614d9381614a5b565b9050919050565b60006020820190508181036000830152614db381614a7e565b9050919050565b60006020820190508181036000830152614dd381614aa1565b9050919050565b6000602082019050614def6000830184614ac4565b92915050565b6000604082019050614e0a6000830185614ac4565b614e176020830184614851565b9392505050565b600060a082019050614e336000830188614ac4565b614e40602083018761486f565b8181036040830152614e5281866147f3565b9050614e6160608301856147e4565b614e6e6080830184614ac4565b9695505050505050565b6000606082019050614e8d6000830186614ac4565b614e9a6020830185614ac4565b614ea76040830184614ac4565b949350505050565b6000608082019050614ec46000830187614ac4565b614ed16020830186614ac4565b614ede6040830185614ac4565b614eeb6060830184614ac4565b95945050505050565b6000602082019050614f096000830184614ad3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614f6f826150c9565b9150614f7a836150c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614faf57614fae6151d6565b5b828201905092915050565b6000614fc5826150c9565b9150614fd0836150c9565b925082614fe057614fdf615205565b5b828204905092915050565b6000614ff6826150c9565b9150615001836150c9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561503a576150396151d6565b5b828202905092915050565b6000615050826150c9565b915061505b836150c9565b92508282101561506e5761506d6151d6565b5b828203905092915050565b6000615084826150a9565b9050919050565b6000615096826150a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006150eb82615104565b9050919050565b60006150fd826150c9565b9050919050565b600061510f82615116565b9050919050565b6000615121826150a9565b9050919050565b60005b8381101561514657808201518184015260208101905061512b565b83811115615155576000848401525b50505050565b6000600282049050600182168061517357607f821691505b6020821081141561518757615186615234565b5b50919050565b6000615198826150c9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156151cb576151ca6151d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f43616c6c657220213d206f776e65722e00000000000000000000000000000000600082015250565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000600082015250565b7f45524332303a205a65726f20616464726573732e000000000000000000000000600082015250565b7f4f6e65207765656b20636f6f6c646f776e2e0000000000000000000000000000600082015250565b7f4d757374203e302e000000000000000000000000000000000000000000000000600082015250565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b7f4572726f722e0000000000000000000000000000000000000000000000000000600082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b7f4d7573742062652061626f766520302e33337e25206f6620746f74616c20737560008201527f70706c792e000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b7f2128314b29000000000000000000000000000000000000000000000000000000600082015250565b6155df81615079565b81146155ea57600080fd5b50565b6155f68161508b565b811461560157600080fd5b50565b61560d8161509d565b811461561857600080fd5b50565b615624816150c9565b811461562f57600080fd5b5056fea2646970667358221220a97304ea62aecee0da0469d9c8dc8aba902b33cf3994f8e1a1ddacbfc932645c64736f6c63430008070033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c806381c6f11b1161015a578063c49b9a80116100c1578063e5b55c6b1161007a578063e5b55c6b14610a2c578063e79d416014610a57578063e83e34b114610a82578063eafb5a3c14610ab0578063eec2744e14610ad9578063fb78680d14610b0257610293565b8063c49b9a801461091d578063ca79882f14610946578063ce8b79c914610971578063d3f6a1571461099a578063d5025625146109c3578063dd62ed3e146109ef57610293565b8063a12a7d6111610113578063a12a7d61146107e6578063a13ce2c61461080f578063a457c2d71461084c578063a9059cbb14610889578063b5f7bfa2146108c6578063bc1323e8146108f457610293565b806381c6f11b146106c2578063893d20e8146106eb57806389fd9bc1146107165780638c7321ad146107535780638da5cb5b1461079057806395d89b41146107bb57610293565b80633aaa36e6116101fe57806350a8e016116101b757806350a8e016146105b4578063571ac8b0146105df578063590ffdce1461061c57806370a0823114610645578063715018a61461068257806380c581d11461069957610293565b80633aaa36e6146104a15780633f3cf56c146104cf578063452ed4f1146104f85780634a74bb02146105235780634fb2e45d1461054e5780634fbee1931461057757610293565b806318160ddd1161025057806318160ddd1461037f57806323b872dd146103aa57806326003957146103e7578063313ce56714610410578063355b74de1461043b578063395093511461046457610293565b806303fd2a451461029857806306fdde03146102c35780630758d924146102ee578063095ea7b3146103195780631793fe4e1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b2b565b6040516102ba9190614ae2565b60405180910390f35b3480156102cf57600080fd5b506102d8610b31565b6040516102e59190614bd8565b60405180910390f35b3480156102fa57600080fd5b50610303610bc3565b6040516103109190614bbd565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b91906145da565b610be9565b60405161034d9190614ba2565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190614747565b610c07565b005b34801561038b57600080fd5b50610394610d2f565b6040516103a19190614dda565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190614547565b610d39565b6040516103de9190614ba2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906146b4565b610e86565b005b34801561041c57600080fd5b50610425610f96565b6040516104329190614ef4565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190614647565b610f9f565b005b34801561047057600080fd5b5061048b600480360381019061048691906145da565b61107a565b6040516104989190614ba2565b60405180910390f35b3480156104ad57600080fd5b506104b6611126565b6040516104c69493929190614eaf565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906146b4565b611144565b005b34801561050457600080fd5b5061050d611254565b60405161051a9190614ae2565b60405180910390f35b34801561052f57600080fd5b5061053861127a565b6040516105459190614ba2565b60405180910390f35b34801561055a57600080fd5b506105756004803603810190610570919061446d565b61128d565b005b34801561058357600080fd5b5061059e6004803603810190610599919061446d565b6116fe565b6040516105ab9190614ba2565b60405180910390f35b3480156105c057600080fd5b506105c9611754565b6040516105d69190614ba2565b60405180910390f35b3480156105eb57600080fd5b506106066004803603810190610601919061446d565b611767565b6040516106139190614ba2565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e919061459a565b61179a565b005b34801561065157600080fd5b5061066c6004803603810190610667919061446d565b61188a565b6040516106799190614dda565b60405180910390f35b34801561068e57600080fd5b506106976118d3565b005b3480156106a557600080fd5b506106c060048036038101906106bb919061459a565b611a51565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190614687565b611c11565b005b3480156106f757600080fd5b50610700611cfd565b60405161070d9190614ae2565b60405180910390f35b34801561072257600080fd5b5061073d6004803603810190610738919061446d565b611d0c565b60405161074a9190614ba2565b60405180910390f35b34801561075f57600080fd5b5061077a6004803603810190610775919061446d565b611d62565b6040516107879190614ba2565b60405180910390f35b34801561079c57600080fd5b506107a5611d82565b6040516107b29190614ae2565b60405180910390f35b3480156107c757600080fd5b506107d0611dab565b6040516107dd9190614bd8565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190614747565b611e3d565b005b34801561081b57600080fd5b506108366004803603810190610831919061446d565b611f7b565b6040516108439190614dda565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906145da565b611fc4565b6040516108809190614ba2565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab91906145da565b612070565b6040516108bd9190614ba2565b60405180910390f35b3480156108d257600080fd5b506108db61208f565b6040516108eb9493929190614eaf565b60405180910390f35b34801561090057600080fd5b5061091b6004803603810190610916919061446d565b6120ad565b005b34801561092957600080fd5b50610944600480360381019061093f919061461a565b61219d565b005b34801561095257600080fd5b5061095b612286565b6040516109689190614afd565b60405180910390f35b34801561097d57600080fd5b506109986004803603810190610993919061446d565b6122ac565b005b3480156109a657600080fd5b506109c160048036038101906109bc91906144c7565b61239c565b005b3480156109cf57600080fd5b506109d86124b7565b6040516109e6929190614df5565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190614507565b6124d6565b604051610a239190614dda565b60405180910390f35b348015610a3857600080fd5b50610a4161255d565b604051610a4e9190614afd565b60405180910390f35b348015610a6357600080fd5b50610a6c612583565b604051610a799190614dda565b60405180910390f35b348015610a8e57600080fd5b50610a97612589565b604051610aa79493929190614eaf565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad2919061446d565b6125a7565b005b348015610ae557600080fd5b50610b006004803603810190610afb919061459a565b612a53565b005b348015610b0e57600080fd5b50610b296004803603810190610b249190614747565b612b43565b005b61dead81565b6060600b8054610b409061515b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c9061515b565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b5050505050905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bfd610bf6612c1c565b8484612c24565b6001905092915050565b610c0f612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390614bfa565b60405180910390fd5b61044c81838587610cad9190614f64565b610cb79190614f64565b610cc19190614f64565b14610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890614dba565b60405180910390fd5b8360156000018190555082601560020181905550816015600301819055508060156001018190555050505050565b6000601b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e725781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6a9190615045565b925050819055505b610e7d848484612def565b90509392505050565b610e8e612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290614bfa565b60405180910390fd5b60008183601b54610f2c9190614feb565b610f369190614fba565b905061012c601b54610f489190614fba565b811015610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190614d7a565b60405180910390fd5b80602681905550505050565b60006009905090565b610fa7612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90614bfa565b60405180910390fd5b601881111561104257600080fd5b610e10816110509190614feb565b60196000018190555081601960010160006101000a81548160ff0219169083151502179055505050565b600061111c611087612c1c565b848460046000611095612c1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111179190614f64565b612c24565b6001905092915050565b600d8060000154908060010154908060020154908060030154905084565b61114c612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090614bfa565b60405180910390fd5b60008183601b546111ea9190614feb565b6111f49190614fba565b905061012c601b546112069190614fba565b811015611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f90614d7a565b60405180910390fd5b80602381905550505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060159054906101000a900460ff1681565b611295612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990614bfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990614d9a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90614d9a565b60405180910390fd5b61142e60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061179a565b61143981600161179a565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114f15780601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61151a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006115e660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b11156116415761163f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261163a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661188a565b612def565b505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b602960019054906101000a900460ff1681565b6000611793827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610be9565b9050919050565b6117a2612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690614bfa565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118db612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90614bfa565b60405180910390fd5b61199360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061179a565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b611a59612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90614bfa565b60405180910390fd5b600015158115151415611b50576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c0d565b600060035414611bad5762093a8060035442611b6c9190615045565b11611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba390614c9a565b60405180910390fd5b5b6001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550426003819055505b5050565b611c19612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90614bfa565b60405180910390fd5b6000602a5414611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290614d1a565b60405180910390fd5b80602a819055506003602e8190555050565b6000611d07611d82565b905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054611dba9061515b565b80601f0160208091040260200160405190810160405280929190818152602001828054611de69061515b565b8015611e335780601f10611e0857610100808354040283529160200191611e33565b820191906000526020600020905b815481529060010190602001808311611e1657829003601f168201915b5050505050905090565b611e45612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990614bfa565b60405180910390fd5b6011600001548411158015611eec57506011600101548311155b8015611efd57506011600201548211155b8015611f0e57506011600301548111155b611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4490614c5a565b60405180910390fd5b83600d6000018190555082600d6001018190555081600d6002018190555080600d6003018190555050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000612066611fd1612c1c565b848460046000611fdf612c1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120619190615045565b612c24565b6001905092915050565b600061208461207d612c1c565b8484612def565b506001905092915050565b60158060000154908060010154908060020154908060030154905084565b6120b5612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990614bfa565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6121a5612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222990614bfa565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161227b9190614ba2565b60405180910390a150565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122b4612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890614bfa565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123a4612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890614bfa565b60405180910390fd5b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60198060000154908060010160009054906101000a900460ff16905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602f5481565b60118060000154908060010154908060020154908060030154905084565b6125af612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263390614bfa565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561268957600080fd5b505afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c1919061449a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561272357600080fd5b505afa158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b919061449a565b6040518363ffffffff1660e01b8152600401612778929190614b18565b60206040518083038186803b15801561279057600080fd5b505afa1580156127a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c8919061449a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129cb578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561284557600080fd5b505afa158015612859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287d919061449a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156128df57600080fd5b505afa1580156128f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612917919061449a565b6040518363ffffffff1660e01b8152600401612934929190614b18565b602060405180830381600087803b15801561294e57600080fd5b505af1158015612962573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612986919061449a565b601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612a0d565b80601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b612a5b612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adf90614bfa565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612b4b612c1c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcf90614bfa565b60405180910390fd5b8284601b54612be79190614feb565b612bf19190614fba565b6027819055508082601b54612c069190614feb565b612c109190614fba565b60288190555050505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8b90614cda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614cda565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612de29190614dda565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5790614c7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec790614c7a565b60405180910390fd5b60008211612f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0a90614cba565b60405180910390fd5b612f1d84846133b3565b156131ad57600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fc35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6131ac57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130685750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130b3576023548211156130b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a990614d5a565b60405180910390fd5b5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561314d5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131ab576026548261315f8561188a565b6131699190614f64565b11156131aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a190614d3a565b60405180910390fd5b5b5b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561323a5742600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600060019050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132e15750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132eb57600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561339d57602060149054906101000a900460ff161580156133665750602060159054906101000a900460ff165b1561339c5760006133763061188a565b9050602754811061339a5760285481106133905760285490505b6133998161358a565b5b505b5b6133a98585858461382c565b9150509392505050565b60006133bd611d82565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561342b57506133fb611d82565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156134815750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156134d75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613511575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561354a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561358257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6001602060146101000a81548160ff02191690831515021790555060006015600301546015600201546015600001546135c39190614f64565b6135cd9190614f64565b14156135d85761380e565b600060026015600301546015600201546015600001546135f89190614f64565b6136029190614f64565b601560000154846136139190614feb565b61361d9190614fba565b6136279190614fba565b9050600081836136379190615045565b905061364281613b8f565b6000479050600060026015600301546015600201546015600001546136679190614f64565b6136719190614f64565b601560000154846136829190614feb565b61368c9190614fba565b6136969190614fba565b905060008411156136e7576136ab8482613db4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482866040516136de93929190614e78565b60405180910390a15b600084866136f59190615045565b111561380957601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60156003015460156002015461374d9190614f64565b601560020154848661375f9190615045565b6137699190614feb565b6137739190614fba565b9081150290604051600060405180830381858888f1935050505015801561379e573d6000803e3d6000fd5b50602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613807573d6000803e3d6000fd5b505b505050505b6000602060146101000a81548160ff02191690831515021790555050565b6000602960009054906101000a900460ff1615613a565761384c85611d0c565b8061385c575061385b84611d0c565b5b1561389c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161389390614cfa565b60405180910390fd5b602960019054906101000a900460ff16613922576138ba8585613e7b565b602960019054906101000a900460ff161580156138dd57506138dc85856133b3565b5b1561391d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161391490614c3a565b60405180910390fd5b613a55565b6000602b5411801561397d5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561398f575061398e85856133b3565b5b15613a5457602e54602b54436139a59190615045565b1015613a53576001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602f6000815480929190613a169061518d565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e584604051613a4a9190614ae2565b60405180910390a15b5b5b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613aa59190615045565b92505081905550600082613ab95783613ac5565b613ac4868686614031565b5b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b169190614f64565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b7a9190614dda565b60405180910390a36001915050949350505050565b6000600267ffffffffffffffff811115613bac57613bab615292565b5b604051908082528060200260200182016040528015613bda5781602001602082028036833780820191505090505b5090503081600081518110613bf257613bf1615263565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ccc919061449a565b81600181518110613ce057613cdf615263565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d7e959493929190614e1e565b600060405180830381600087803b158015613d9857600080fd5b505af1158015613dac573d6000803e3d6000fd5b505050505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613e00611d82565b426040518863ffffffff1660e01b8152600401613e2296959493929190614b41565b6060604051808303818588803b158015613e3b57600080fd5b505af1158015613e4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e7491906146f4565b5050505050565b602960019054906101000a900460ff1615613ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec290614c1a565b60405180910390fd5b613ed582826133b3565b158015613f2f5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561402d576003602e5414613f575761138843613f4c9190614f64565b602b81905550613f5f565b43602b819055505b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602960016101000a81548160ff02191690831515021790555042602c819055506001602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15960016040516140249190614ba2565b60405180910390a15b5050565b600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561412257601960010160009054906101000a900460ff16156141145742601960000154600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546140f39190614f64565b111561410657600d60030154905061410f565b600d6001015490505b61411d565b600d6001015490505b61418f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561418557600d60000154905061418e565b600d6002015490505b5b61419985856133b3565b156141bd576000602a5414806141b257506001602a5414155b156141bc57600080fd5b5b60006127106015600301546015600201546015600001546015600101546141e49190614f64565b6141ee9190614f64565b6141f89190614f64565b601560010154848761420a9190614feb565b6142149190614feb565b61421e9190614fba565b6142289190614fba565b9050600081612710848761423c9190614feb565b6142469190614fba565b6142509190615045565b9050816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546142a39190614f64565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546142f99190614f64565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161435f9190614dda565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516143c49190614dda565b60405180910390a38181866143d99190615045565b6143e39190615045565b93505050509392505050565b6000813590506143fe816155d6565b92915050565b600081519050614413816155d6565b92915050565b600081359050614428816155ed565b92915050565b60008135905061443d81615604565b92915050565b6000813590506144528161561b565b92915050565b6000815190506144678161561b565b92915050565b600060208284031215614483576144826152c1565b5b6000614491848285016143ef565b91505092915050565b6000602082840312156144b0576144af6152c1565b5b60006144be84828501614404565b91505092915050565b600080604083850312156144de576144dd6152c1565b5b60006144ec85828601614419565b92505060206144fd85828601614419565b9150509250929050565b6000806040838503121561451e5761451d6152c1565b5b600061452c858286016143ef565b925050602061453d858286016143ef565b9150509250929050565b6000806000606084860312156145605761455f6152c1565b5b600061456e868287016143ef565b935050602061457f868287016143ef565b925050604061459086828701614443565b9150509250925092565b600080604083850312156145b1576145b06152c1565b5b60006145bf858286016143ef565b92505060206145d08582860161442e565b9150509250929050565b600080604083850312156145f1576145f06152c1565b5b60006145ff858286016143ef565b925050602061461085828601614443565b9150509250929050565b6000602082840312156146305761462f6152c1565b5b600061463e8482850161442e565b91505092915050565b6000806040838503121561465e5761465d6152c1565b5b600061466c8582860161442e565b925050602061467d85828601614443565b9150509250929050565b60006020828403121561469d5761469c6152c1565b5b60006146ab84828501614443565b91505092915050565b600080604083850312156146cb576146ca6152c1565b5b60006146d985828601614443565b92505060206146ea85828601614443565b9150509250929050565b60008060006060848603121561470d5761470c6152c1565b5b600061471b86828701614458565b935050602061472c86828701614458565b925050604061473d86828701614458565b9150509250925092565b60008060008060808587031215614761576147606152c1565b5b600061476f87828801614443565b945050602061478087828801614443565b935050604061479187828801614443565b92505060606147a287828801614443565b91505092959194509250565b60006147ba83836147d5565b60208301905092915050565b6147cf8161508b565b82525050565b6147de81615079565b82525050565b6147ed81615079565b82525050565b60006147fe82614f1f565b6148088185614f42565b935061481383614f0f565b8060005b8381101561484457815161482b88826147ae565b975061483683614f35565b925050600181019050614817565b5085935050505092915050565b61485a8161509d565b82525050565b614869816150e0565b82525050565b614878816150f2565b82525050565b600061488982614f2a565b6148938185614f53565b93506148a3818560208601615128565b6148ac816152c6565b840191505092915050565b60006148c4601083614f53565b91506148cf826152d7565b602082019050919050565b60006148e7602383614f53565b91506148f282615300565b604082019050919050565b600061490a602583614f53565b91506149158261534f565b604082019050919050565b600061492d601783614f53565b91506149388261539e565b602082019050919050565b6000614950601483614f53565b915061495b826153c7565b602082019050919050565b6000614973601283614f53565b915061497e826153f0565b602082019050919050565b6000614996600883614f53565b91506149a182615419565b602082019050919050565b60006149b9601383614f53565b91506149c482615442565b602082019050919050565b60006149dc601083614f53565b91506149e78261546b565b602082019050919050565b60006149ff600683614f53565b9150614a0a82615494565b602082019050919050565b6000614a22601a83614f53565b9150614a2d826154bd565b602082019050919050565b6000614a45601883614f53565b9150614a50826154e6565b602082019050919050565b6000614a68602583614f53565b9150614a738261550f565b604082019050919050565b6000614a8b603d83614f53565b9150614a968261555e565b604082019050919050565b6000614aae600583614f53565b9150614ab9826155ad565b602082019050919050565b614acd816150c9565b82525050565b614adc816150d3565b82525050565b6000602082019050614af760008301846147e4565b92915050565b6000602082019050614b1260008301846147c6565b92915050565b6000604082019050614b2d60008301856147e4565b614b3a60208301846147e4565b9392505050565b600060c082019050614b5660008301896147e4565b614b636020830188614ac4565b614b70604083018761486f565b614b7d606083018661486f565b614b8a60808301856147e4565b614b9760a0830184614ac4565b979650505050505050565b6000602082019050614bb76000830184614851565b92915050565b6000602082019050614bd26000830184614860565b92915050565b60006020820190508181036000830152614bf2818461487e565b905092915050565b60006020820190508181036000830152614c13816148b7565b9050919050565b60006020820190508181036000830152614c33816148da565b9050919050565b60006020820190508181036000830152614c53816148fd565b9050919050565b60006020820190508181036000830152614c7381614920565b9050919050565b60006020820190508181036000830152614c9381614943565b9050919050565b60006020820190508181036000830152614cb381614966565b9050919050565b60006020820190508181036000830152614cd381614989565b9050919050565b60006020820190508181036000830152614cf3816149ac565b9050919050565b60006020820190508181036000830152614d13816149cf565b9050919050565b60006020820190508181036000830152614d33816149f2565b9050919050565b60006020820190508181036000830152614d5381614a15565b9050919050565b60006020820190508181036000830152614d7381614a38565b9050919050565b60006020820190508181036000830152614d9381614a5b565b9050919050565b60006020820190508181036000830152614db381614a7e565b9050919050565b60006020820190508181036000830152614dd381614aa1565b9050919050565b6000602082019050614def6000830184614ac4565b92915050565b6000604082019050614e0a6000830185614ac4565b614e176020830184614851565b9392505050565b600060a082019050614e336000830188614ac4565b614e40602083018761486f565b8181036040830152614e5281866147f3565b9050614e6160608301856147e4565b614e6e6080830184614ac4565b9695505050505050565b6000606082019050614e8d6000830186614ac4565b614e9a6020830185614ac4565b614ea76040830184614ac4565b949350505050565b6000608082019050614ec46000830187614ac4565b614ed16020830186614ac4565b614ede6040830185614ac4565b614eeb6060830184614ac4565b95945050505050565b6000602082019050614f096000830184614ad3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614f6f826150c9565b9150614f7a836150c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614faf57614fae6151d6565b5b828201905092915050565b6000614fc5826150c9565b9150614fd0836150c9565b925082614fe057614fdf615205565b5b828204905092915050565b6000614ff6826150c9565b9150615001836150c9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561503a576150396151d6565b5b828202905092915050565b6000615050826150c9565b915061505b836150c9565b92508282101561506e5761506d6151d6565b5b828203905092915050565b6000615084826150a9565b9050919050565b6000615096826150a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006150eb82615104565b9050919050565b60006150fd826150c9565b9050919050565b600061510f82615116565b9050919050565b6000615121826150a9565b9050919050565b60005b8381101561514657808201518184015260208101905061512b565b83811115615155576000848401525b50505050565b6000600282049050600182168061517357607f821691505b6020821081141561518757615186615234565b5b50919050565b6000615198826150c9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156151cb576151ca6151d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f43616c6c657220213d206f776e65722e00000000000000000000000000000000600082015250565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000600082015250565b7f45524332303a205a65726f20616464726573732e000000000000000000000000600082015250565b7f4f6e65207765656b20636f6f6c646f776e2e0000000000000000000000000000600082015250565b7f4d757374203e302e000000000000000000000000000000000000000000000000600082015250565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b7f4572726f722e0000000000000000000000000000000000000000000000000000600082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b7f4d7573742062652061626f766520302e33337e25206f6620746f74616c20737560008201527f70706c792e000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b7f2128314b29000000000000000000000000000000000000000000000000000000600082015250565b6155df81615079565b81146155ea57600080fd5b50565b6155f68161508b565b811461560157600080fd5b50565b61560d8161509d565b811461561857600080fd5b50565b615624816150c9565b811461562f57600080fd5b5056fea2646970667358221220a97304ea62aecee0da0469d9c8dc8aba902b33cf3994f8e1a1ddacbfc932645c64736f6c63430008070033
Deployed Bytecode Sourcemap
3808:20606:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6151:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11155:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5963:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11768:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15298:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10890:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12501:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16651:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10979:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15666:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12815:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4770:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;16391:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6005:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6538:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9553:775;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14198:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7099:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12254:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14331:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11468:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10336:195;;;;;;;;;;;;;:::i;:::-;;13780:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14955:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11241:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14815:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4277:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9466:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11065:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15871:512;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12382:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13038:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11593:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5326:116;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14641:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17463:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6297:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14475:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17213:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5572:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11327:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6404:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7367:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5032:101;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;13271:501;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15149:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16916:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6151:73;6182:42;6151:73;:::o;11155:80::-;11203:13;11227:5;11220:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11155:80;:::o;5963:35::-;;;;;;;;;;;;;:::o;11768:161::-;11843:4;11860:39;11869:12;:10;:12::i;:::-;11883:7;11892:6;11860:8;:39::i;:::-;11917:4;11910:11;;11768:161;;;;:::o;15298:360::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15478:4:::1;15468:5;15457:10;15439:17;15428:10;:28;;;;:::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;15427:55;15417:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15522:10;15503:6;:16;;:29;;;;15569:17;15543:6;:23;;:43;;;;15616:10;15597:6;:16;;:29;;;;15651:5;15637:6;:11;;:19;;;;15298:360:::0;;;;:::o;10890:83::-;10945:7;10963;;10956:14;;10890:83;:::o;12501:306::-;12601:4;12657:17;12622:11;:19;12634:6;12622:19;;;;;;;;;;;;;;;:31;12642:10;12622:31;;;;;;;;;;;;;;;;:52;12618:126;;12726:6;12691:11;:19;12703:6;12691:19;;;;;;;;;;;;;;;:31;12711:10;12691:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;12618:126;12763:36;12773:6;12781:9;12792:6;12763:9;:36::i;:::-;12756:43;;12501:306;;;;;:::o;16651:257::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16735:13:::1;16773:7;16762;16752;;:17;;;;:::i;:::-;16751:29;;;;:::i;:::-;16735:45;;16819:3;16809:7;;:13;;;;:::i;:::-;16799:5;:24;;16791:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16893:5;16876:14;:22;;;;16724:184;16651:257:::0;;:::o;10979:80::-;11031:5;5854:1;11040:16;;10979:80;:::o;15666:197::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15776:2:::1;15763:9;:15;;15755:24;;;::::0;::::1;;15819:7;15807:9;:19;;;;:::i;:::-;15790:5;:14;;:36;;;;15853:8;15837:5;:13;;;:24;;;;;;;;;;;;;;;;;;15666:197:::0;;:::o;12815:215::-;12903:4;12920:80;12929:12;:10;:12::i;:::-;12943:7;12989:10;12952:11;:25;12964:12;:10;:12::i;:::-;12952:25;;;;;;;;;;;;;;;:34;12978:7;12952:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12920:8;:80::i;:::-;13018:4;13011:11;;12815:215;;;;:::o;4770:95::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;16391:252::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16474:13:::1;16512:7;16501;16491;;:17;;;;:::i;:::-;16490:29;;;;:::i;:::-;16474:45;;16558:3;16548:7;;:13;;;;:::i;:::-;16538:5;:24;;16530:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16630:5;16615:12;:20;;;;16463:180;16391:252:::0;;:::o;6005:21::-;;;;;;;;;;;;;:::o;6538:41::-;;;;;;;;;;;;;:::o;9553:775::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9654:1:::1;9634:22;;:8;:22;;;;9626:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;6182:42;9741:16;;:8;:16;;;;9733:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;9834:34;9854:6;::::0;::::1;;;;;;;;9862:5;9834:19;:34::i;:::-;9879:35;9899:8;9909:4;9879:19;:35::i;:::-;9974:6;::::0;::::1;;;;;;;;9939:42;;:23;;;;;;;;;;;:42;;;9935:104;;;10030:8;9996:23;;:43;;;;;;;;;;;;;;;;;;9935:104;10092:17;10102:6;::::0;::::1;;;;;;;;10092:9;:17::i;:::-;10060:11;:19;10072:6:::0;::::1;;;;;;;;;;10060:19;;;;;;;;;;;;;;;:29;10080:8;10060:29;;;;;;;;;;;;;;;:49;;;;10143:1;10123:17;10133:6;::::0;::::1;;;;;;;;10123:9;:17::i;:::-;:21;10120:99;;;10161:46;10171:6;::::0;::::1;;;;;;;;10179:8;10189:17;10199:6;::::0;::::1;;;;;;;;10189:9;:17::i;:::-;10161:9;:46::i;:::-;;10120:99;10248:8;10239:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10301:8;10272:38;;10293:6;::::0;::::1;;;;;;;;10272:38;;;;;;;;;;;;9553:775:::0;:::o;14198:125::-;14263:4;14287:19;:28;14307:7;14287:28;;;;;;;;;;;;;;;;;;;;;;;;;14280:35;;14198:125;;;:::o;7099:36::-;;;;;;;;;;;;;:::o;12254:120::-;12307:4;12331:35;12339:7;12348:17;12331:7;:35::i;:::-;12324:42;;12254:120;;;:::o;14331:134::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14450:7:::1;14419:19;:28;14439:7;14419:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14331:134:::0;;:::o;11468:117::-;11534:7;11561;:16;11569:7;11561:16;;;;;;;;;;;;;;;;11554:23;;11468:117;;;:::o;10336:195::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;10403:34:::1;10423:6;::::0;::::1;;;;;;;;10431:5;10403:19;:34::i;:::-;10465:1;10448:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10520:1;10483:40;;10504:6;::::0;::::1;;;;;;;;10483:40;;;;;;;;;;;;10336:195::o:0;13780:410::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13872:5:::1;13861:16;;:7;:16;;;13857:326;;;13910:5;13894:7;:13;13902:4;13894:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13857:326;;;13973:1;13952:17;;:22;13948:139;;14041:7;14021:17;;14003:15;:35;;;;:::i;:::-;:45;13995:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13948:139;14117:4;14101:7;:13;14109:4;14101:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14156:15;14136:17;:35;;;;13857:326;13780:410:::0;;:::o;14955:186::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15054:1:::1;15037:13;;:18;15028:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15093:12;15077:13;:28;;;;15132:1;15116:13;:17;;;;14955:186:::0;:::o;11241:80::-;11293:7;11311;:5;:7::i;:::-;11304:14;;11241:80;:::o;14815:132::-;14884:4;14908:22;:31;14931:7;14908:31;;;;;;;;;;;;;;;;;;;;;;;;;14901:38;;14815:132;;;:::o;4277:68::-;;;;;;;;;;;;;;;;;;;;;;:::o;9466:79::-;9504:7;9531:6;;;;;;;;;;;9524:13;;9466:79;:::o;11065:84::-;11115:13;11139:7;11132:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11065:84;:::o;15871:512::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16004:7:::1;:14;;;15993:7;:25;;:73;;;;;16051:7;:15;;;16039:8;:27;;15993:73;:129;;;;;16103:7;:19;;;16087:12;:35;;15993:129;:184;;;;;16158:7;:19;;;16143:11;:34;;15993:184;15985:237;;;;;;;;;;;;:::i;:::-;;;;;;;;;16248:7;16234:4;:11;;:21;;;;16282:8;16267:4;:12;;:23;;;;16321:12;16302:4;:16;;:31;;;;16362:11;16345:4;:15;;:28;;;;15871:512:::0;;;;:::o;12382:111::-;12441:7;12468:8;:17;12477:7;12468:17;;;;;;;;;;;;;;;;12461:24;;12382:111;;;:::o;13038:225::-;13131:4;13148:85;13157:12;:10;:12::i;:::-;13171:7;13217:15;13180:11;:25;13192:12;:10;:12::i;:::-;13180:25;;;;;;;;;;;;;;;:34;13206:7;13180:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;13148:8;:85::i;:::-;13251:4;13244:11;;13038:225;;;;:::o;11593:167::-;11671:4;11688:42;11698:12;:10;:12::i;:::-;11712:9;11723:6;11688:9;:42::i;:::-;;11748:4;11741:11;;11593:167;;;;:::o;5326:116::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14641:166::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14794:5:::1;14739:35;:52;14775:15;14739:52;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;14641:166:::0;:::o;17463:171::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17564:8:::1;17540:21;;:32;;;;;;;;;;;;;;;;;;17588:38;17617:8;17588:38;;;;;;:::i;:::-;;;;;;;;17463:171:::0;:::o;6297:100::-;;;;;;;;;;;;;:::o;14475:158::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14621:4:::1;14566:35;:52;14602:15;14566:52;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;14475:158:::0;:::o;17213:242::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17370:22:::1;17336:23;;:57;;;;;;;;;;;;;;;;;;17431:15;17404:16;;:43;;;;;;;;;;;;;;;;;;17213:242:::0;;:::o;5572:87::-;;;;;;;;;;;;;;;;;;;;;;;:::o;11327:133::-;11411:7;11429:11;:19;11441:6;11429:19;;;;;;;;;;;;;;;:28;11449:7;11429:28;;;;;;;;;;;;;;;;11422:35;;11327:133;;;;:::o;6404:93::-;;;;;;;;;;;;;:::o;7367:32::-;;;;:::o;5032:101::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;13271:501::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13342:29:::1;13393:9;13342:61;;13414:16;13451:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13433:47;;;13489:4;13496:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13433:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13414:100;;13549:1;13529:22;;:8;:22;;;13525:207;;;13595:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13577:50;;;13636:4;13643:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13577:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13568:6;;:93;;;;;;;;;;;;;;;;;;13525:207;;;13712:8;13703:6;;:17;;;;;;;;;;;;;;;;;;13525:207;13754:10;13742:9;;:22;;;;;;;;;;;;;;;;;;13331:441;;13271:501:::0;:::o;15149:141::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15275:7:::1;15241:22;:31;15264:7;15241:31;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;15149:141:::0;;:::o;16916:289::-;7976:12;:10;:12::i;:::-;7966:22;;:6;;;;;;;;;;:22;;;7958:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17116:16:::1;17096;17086:7;;:26;;;;:::i;:::-;17085:47;;;;:::i;:::-;17069:13;:63;;;;17184:13;17167;17157:7;;:23;;;;:::i;:::-;17156:41;;;;:::i;:::-;17143:10;:54;;;;16916:289:::0;;;;:::o;272:107::-;317:15;360:10;345:26;;272:107;:::o;11937:309::-;12049:1;12031:20;;:6;:20;;;;12023:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12113:1;12094:21;;:7;:21;;;;12086:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;12183:6;12152:11;:19;12164:6;12152:19;;;;;;;;;;;;;;;:28;12172:7;12152:28;;;;;;;;;;;;;;;:37;;;;12222:7;12205:33;;12214:6;12205:33;;;12231:6;12205:33;;;;;;:::i;:::-;;;;;;;;11937:309;;;:::o;17973:1536::-;18052:4;18093:1;18077:18;;:4;:18;;;;18069:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:1;18139:16;;:2;:16;;;;18131:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18208:1;18199:6;:10;18191:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;18236:20;18247:4;18253:2;18236:10;:20::i;:::-;18233:504;;;18278:35;:41;18314:4;18278:41;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;18323:35;:39;18359:2;18323:39;;;;;;;;;;;;;;;;;;;;;;;;;18278:84;18273:439;;18387:7;:13;18395:4;18387:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;18404:7;:11;18412:2;18404:11;;;;;;;;;;;;;;;;;;;;;;;;;18387:28;18384:130;;;18453:12;;18443:6;:22;;18435:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18384:130;6096:42;18535:20;;:2;:20;;;;:36;;;;;18560:7;:11;18568:2;18560:11;;;;;;;;;;;;;;;;;;;;;;;;;18559:12;18535:36;18532:163;;;18630:14;;18620:6;18604:13;18614:2;18604:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18596:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18532:163;18273:439;18233:504;18770:1;18755:7;:11;18763:2;18755:11;;;;;;;;;;;;;;;;:16;18751:79;;;18803:15;18788:8;:12;18797:2;18788:12;;;;;;;;;;;;;;;:30;;;;18751:79;18842:12;18857:4;18842:19;;18875;:25;18895:4;18875:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18904:19;:23;18924:2;18904:23;;;;;;;;;;;;;;;;;;;;;;;;;18875:52;18872:98;;;18953:5;18943:15;;18872:98;18986:7;:11;18994:2;18986:11;;;;;;;;;;;;;;;;;;;;;;;;;18982:457;;;19019:16;;;;;;;;;;;19018:17;:59;;;;;19056:21;;;;;;;;;;;19018:59;19014:408;;;19112:28;19143:24;19161:4;19143:9;:24::i;:::-;19112:55;;19214:13;;19190:20;:37;19186:221;;19279:10;;19255:20;:34;19252:77;;19316:10;;19293:33;;19252:77;19351:36;19366:20;19351:14;:36::i;:::-;19186:221;19093:329;19014:408;18982:457;19457:44;19475:4;19481:2;19485:6;19493:7;19457:17;:44::i;:::-;19450:51;;;17973:1536;;;;;:::o;17642:323::-;17710:4;17742:7;:5;:7::i;:::-;17734:15;;:4;:15;;;;:45;;;;;17772:7;:5;:7::i;:::-;17766:13;;:2;:13;;;;17734:45;:84;;;;;17797:17;:21;17815:2;17797:21;;;;;;;;;;;;;;;;;;;;;;;;;17796:22;17734:84;:125;;;;;17836:17;:23;17854:4;17836:23;;;;;;;;;;;;;;;;;;;;;;;;;17835:24;17734:125;:152;;;;;6182:42;17876:10;;:2;:10;;;;17734:152;:185;;;;;17917:1;17903:16;;:2;:16;;;;17734:185;:223;;;;;17952:4;17936:21;;:4;:21;;;;17734:223;17727:230;;17642:323;;;;:::o;19517:1102::-;7859:4;7840:16;;:23;;;;;;;;;;;;;;;;;;19671:1:::1;19651:6;:16;;;19625:6;:23;;;19606:6;:16;;;:42;;;;:::i;:::-;:61;;;;:::i;:::-;:66;19602:92;;;19687:7;;19602:92;19704:17;19837:1;19815:6;:16;;;19789:6;:23;;;19770:6;:16;;;:42;;;;:::i;:::-;:61;;;;:::i;:::-;19749:6;:16;;;19726:20;:39;;;;:::i;:::-;19725:107;;;;:::i;:::-;19724:114;;;;:::i;:::-;19704:134;;19851:20;19897:9;19874:20;:32;;;;:::i;:::-;19851:55;;19917:30;19934:12;19917:16;:30::i;:::-;19960:22;19985:21;19960:46;;20017:24;20151:1;20129:6;:16;;;20103:6;:23;;;20084:6;:16;;;:42;;;;:::i;:::-;:61;;;;:::i;:::-;20063:6;:16;;;20046:14;:33;;;;:::i;:::-;20045:101;;;;:::i;:::-;20044:108;;;;:::i;:::-;20017:135;;20181:1;20169:9;:13;20165:161;;;20199:41;20212:9;20223:16;20199:12;:41::i;:::-;20260:54;20275:9;20286:16;20304:9;20260:54;;;;;;;;:::i;:::-;;;;;;;;20165:161;20375:1;20363:9;20340:20;:32;;;;:::i;:::-;:36;20336:276;;;20393:23;;;;;;;;;;;:32;;:144;20519:6;:16;;;20493:6;:23;;;:42;;;;:::i;:::-;20465:6;:23;;;20445:16;20428:14;:33;;;;:::i;:::-;20427:61;;;;:::i;:::-;20426:110;;;;:::i;:::-;20393:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20552:16;;;;;;;;;;;:25;;:48;20578:21;20552:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20336:276;19591:1028;;;;7874:1;7905:5:::0;7886:16;;:24;;;;;;;;;;;;;;;;;;19517:1102;:::o;22018:1220::-;22118:4;22139:16;;;;;;;;;;;22135:858;;;22175:27;22197:4;22175:21;:27::i;:::-;:56;;;;22206:25;22228:2;22206:21;:25::i;:::-;22175:56;22171:123;;;22252:26;;;;;;;;;;:::i;:::-;;;;;;;;22171:123;22315:16;;;;;;;;;;;22310:672;;22352:28;22371:4;22377:2;22352:18;:28::i;:::-;22404:16;;;;;;;;;;;22403:17;:41;;;;;22424:20;22435:4;22441:2;22424:10;:20::i;:::-;22403:41;22399:137;;;22469:47;;;;;;;;;;:::i;:::-;;;;;;;;22399:137;22310:672;;;22595:1;22580:12;;:16;:55;;;;;22622:7;:13;22630:4;22622:13;;;;;;;;;;;;;;;;;;;;;;;;;22580:55;:101;;;;;22661:20;22672:4;22678:2;22661:10;:20::i;:::-;22580:101;22576:391;;;22758:13;;22743:12;;22728;:27;;;;:::i;:::-;:43;22724:224;;;22829:4;22800:22;:26;22823:2;22800:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;22860:13;;:16;;;;;;;;;:::i;:::-;;;;;;22908;22921:2;22908:16;;;;;;:::i;:::-;;;;;;;;22724:224;22576:391;22310:672;22135:858;23022:6;23005:7;:13;23013:4;23005:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;23039:22;23065:7;23064:48;;23106:6;23064:48;;;23076:27;23086:4;23092:2;23096:6;23076:9;:27::i;:::-;23064:48;23039:73;;23142:14;23127:7;:11;23135:2;23127:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;23189:2;23174:34;;23183:4;23174:34;;;23193:14;23174:34;;;;;;:::i;:::-;;;;;;;;23226:4;23219:11;;;22018:1220;;;;;;:::o;20627:417::-;20694:21;20732:1;20718:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20694:40;;20763:4;20745;20750:1;20745:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20789:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20779:4;20784:1;20779:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;20818:9;;;;;;;;;;;:60;;;20893:11;20919:1;20963:4;20990;21010:15;20818:218;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20683:361;20627:417;:::o;21052:335::-;21133:9;;;;;;;;;;;:25;;;21166:9;21199:4;21219:11;21245:1;21288;21331:7;:5;:7::i;:::-;21353:15;21133:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21052:335;;:::o;21395:615::-;21477:16;;;;;;;;;;;21476:17;21468:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21549:20;21560:4;21566:2;21549:10;:20::i;:::-;21548:21;:37;;;;;21579:6;;;;;;;;;;;21573:12;;:2;:12;;;21548:37;21544:459;;;21623:1;21606:13;;:18;21602:161;;21675:4;21660:12;:19;;;;:::i;:::-;21645:12;:34;;;;21602:161;;;21735:12;21720;:27;;;;21602:161;21805:4;21779:17;:23;21797:4;21779:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21843:4;21824:16;;:23;;;;;;;;;;;;;;;;;;21877:15;21862:12;:30;;;;21933:4;21909:21;;:28;;;;;;;;;;;;;;;;;;21957:34;21986:4;21957:34;;;;;;:::i;:::-;;;;;;;;21544:459;21395:615;;:::o;23246:1165::-;23325:7;23345:18;23386:6;;;;;;;;;;;23380:12;;:2;:12;;;23376:399;;;23413:5;:13;;;;;;;;;;;;23409:236;;;23484:15;23467:5;:14;;;23450:8;:14;23459:4;23450:14;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:49;23446:139;;;23515:4;:15;;;23502:28;;23446:139;;;23571:4;:12;;;23558:25;;23446:139;23409:236;;;23631:4;:12;;;23620:23;;23409:236;23376:399;;;23690:6;;;;;;;;;;;23682:14;;:4;:14;;;23678:97;;;23712:4;:11;;;23699:24;;23678:97;;;23757:4;:16;;;23744:29;;23678:97;23376:399;23791:20;23802:4;23808:2;23791:10;:20::i;:::-;23787:142;;;23848:1;23831:13;;:18;:42;;;;23871:1;23853:13;;:20;;23831:42;23827:91;;;23894:8;;;23827:91;23787:142;23939:15;5758:5;24055:6;:16;;;24029:6;:23;;;24010:6;:16;;;23996:6;:11;;;:30;;;;:::i;:::-;:56;;;;:::i;:::-;:75;;;;:::i;:::-;23980:6;:11;;;23967:10;23958:6;:19;;;;:::i;:::-;:33;;;;:::i;:::-;23957:116;;;;:::i;:::-;:135;;;;:::i;:::-;23939:153;;24103:17;24166:7;5758:5;24133:10;24124:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;24123:50;;;;:::i;:::-;24103:70;;24201:7;24184;:13;6182:42;24184:13;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;24246:9;24219:7;:22;24235:4;24219:22;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;6182:42;24272:29;;24281:4;24272:29;;;24293:7;24272:29;;;;;;:::i;:::-;;;;;;;;24340:4;24317:40;;24326:4;24317:40;;;24347:9;24317:40;;;;;;:::i;:::-;;;;;;;;24396:7;24384:9;24375:6;:18;;;;:::i;:::-;:28;;;;:::i;:::-;24368:35;;;;;23246:1165;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;462:133;;;;:::o;601:139::-;647:5;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;601:139;;;;:::o;746:143::-;803:5;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;746:143;;;;:::o;895:329::-;954:6;1003:2;991:9;982:7;978:23;974:32;971:119;;;1009:79;;:::i;:::-;971:119;1129:1;1154:53;1199:7;1190:6;1179:9;1175:22;1154:53;:::i;:::-;1144:63;;1100:117;895:329;;;;:::o;1230:351::-;1300:6;1349:2;1337:9;1328:7;1324:23;1320:32;1317:119;;;1355:79;;:::i;:::-;1317:119;1475:1;1500:64;1556:7;1547:6;1536:9;1532:22;1500:64;:::i;:::-;1490:74;;1446:128;1230:351;;;;:::o;1587:506::-;1671:6;1679;1728:2;1716:9;1707:7;1703:23;1699:32;1696:119;;;1734:79;;:::i;:::-;1696:119;1854:1;1879:61;1932:7;1923:6;1912:9;1908:22;1879:61;:::i;:::-;1869:71;;1825:125;1989:2;2015:61;2068:7;2059:6;2048:9;2044:22;2015:61;:::i;:::-;2005:71;;1960:126;1587:506;;;;;:::o;2099:474::-;2167:6;2175;2224:2;2212:9;2203:7;2199:23;2195:32;2192:119;;;2230:79;;:::i;:::-;2192:119;2350:1;2375:53;2420:7;2411:6;2400:9;2396:22;2375:53;:::i;:::-;2365:63;;2321:117;2477:2;2503:53;2548:7;2539:6;2528:9;2524:22;2503:53;:::i;:::-;2493:63;;2448:118;2099:474;;;;;:::o;2579:619::-;2656:6;2664;2672;2721:2;2709:9;2700:7;2696:23;2692:32;2689:119;;;2727:79;;:::i;:::-;2689:119;2847:1;2872:53;2917:7;2908:6;2897:9;2893:22;2872:53;:::i;:::-;2862:63;;2818:117;2974:2;3000:53;3045:7;3036:6;3025:9;3021:22;3000:53;:::i;:::-;2990:63;;2945:118;3102:2;3128:53;3173:7;3164:6;3153:9;3149:22;3128:53;:::i;:::-;3118:63;;3073:118;2579:619;;;;;:::o;3204:468::-;3269:6;3277;3326:2;3314:9;3305:7;3301:23;3297:32;3294:119;;;3332:79;;:::i;:::-;3294:119;3452:1;3477:53;3522:7;3513:6;3502:9;3498:22;3477:53;:::i;:::-;3467:63;;3423:117;3579:2;3605:50;3647:7;3638:6;3627:9;3623:22;3605:50;:::i;:::-;3595:60;;3550:115;3204:468;;;;;:::o;3678:474::-;3746:6;3754;3803:2;3791:9;3782:7;3778:23;3774:32;3771:119;;;3809:79;;:::i;:::-;3771:119;3929:1;3954:53;3999:7;3990:6;3979:9;3975:22;3954:53;:::i;:::-;3944:63;;3900:117;4056:2;4082:53;4127:7;4118:6;4107:9;4103:22;4082:53;:::i;:::-;4072:63;;4027:118;3678:474;;;;;:::o;4158:323::-;4214:6;4263:2;4251:9;4242:7;4238:23;4234:32;4231:119;;;4269:79;;:::i;:::-;4231:119;4389:1;4414:50;4456:7;4447:6;4436:9;4432:22;4414:50;:::i;:::-;4404:60;;4360:114;4158:323;;;;:::o;4487:468::-;4552:6;4560;4609:2;4597:9;4588:7;4584:23;4580:32;4577:119;;;4615:79;;:::i;:::-;4577:119;4735:1;4760:50;4802:7;4793:6;4782:9;4778:22;4760:50;:::i;:::-;4750:60;;4706:114;4859:2;4885:53;4930:7;4921:6;4910:9;4906:22;4885:53;:::i;:::-;4875:63;;4830:118;4487:468;;;;;:::o;4961:329::-;5020:6;5069:2;5057:9;5048:7;5044:23;5040:32;5037:119;;;5075:79;;:::i;:::-;5037:119;5195:1;5220:53;5265:7;5256:6;5245:9;5241:22;5220:53;:::i;:::-;5210:63;;5166:117;4961:329;;;;:::o;5296:474::-;5364:6;5372;5421:2;5409:9;5400:7;5396:23;5392:32;5389:119;;;5427:79;;:::i;:::-;5389:119;5547:1;5572:53;5617:7;5608:6;5597:9;5593:22;5572:53;:::i;:::-;5562:63;;5518:117;5674:2;5700:53;5745:7;5736:6;5725:9;5721:22;5700:53;:::i;:::-;5690:63;;5645:118;5296:474;;;;;:::o;5776:663::-;5864:6;5872;5880;5929:2;5917:9;5908:7;5904:23;5900:32;5897:119;;;5935:79;;:::i;:::-;5897:119;6055:1;6080:64;6136:7;6127:6;6116:9;6112:22;6080:64;:::i;:::-;6070:74;;6026:128;6193:2;6219:64;6275:7;6266:6;6255:9;6251:22;6219:64;:::i;:::-;6209:74;;6164:129;6332:2;6358:64;6414:7;6405:6;6394:9;6390:22;6358:64;:::i;:::-;6348:74;;6303:129;5776:663;;;;;:::o;6445:765::-;6531:6;6539;6547;6555;6604:3;6592:9;6583:7;6579:23;6575:33;6572:120;;;6611:79;;:::i;:::-;6572:120;6731:1;6756:53;6801:7;6792:6;6781:9;6777:22;6756:53;:::i;:::-;6746:63;;6702:117;6858:2;6884:53;6929:7;6920:6;6909:9;6905:22;6884:53;:::i;:::-;6874:63;;6829:118;6986:2;7012:53;7057:7;7048:6;7037:9;7033:22;7012:53;:::i;:::-;7002:63;;6957:118;7114:2;7140:53;7185:7;7176:6;7165:9;7161:22;7140:53;:::i;:::-;7130:63;;7085:118;6445:765;;;;;;;:::o;7216:179::-;7285:10;7306:46;7348:3;7340:6;7306:46;:::i;:::-;7384:4;7379:3;7375:14;7361:28;;7216:179;;;;:::o;7401:142::-;7504:32;7530:5;7504:32;:::i;:::-;7499:3;7492:45;7401:142;;:::o;7549:108::-;7626:24;7644:5;7626:24;:::i;:::-;7621:3;7614:37;7549:108;;:::o;7663:118::-;7750:24;7768:5;7750:24;:::i;:::-;7745:3;7738:37;7663:118;;:::o;7817:732::-;7936:3;7965:54;8013:5;7965:54;:::i;:::-;8035:86;8114:6;8109:3;8035:86;:::i;:::-;8028:93;;8145:56;8195:5;8145:56;:::i;:::-;8224:7;8255:1;8240:284;8265:6;8262:1;8259:13;8240:284;;;8341:6;8335:13;8368:63;8427:3;8412:13;8368:63;:::i;:::-;8361:70;;8454:60;8507:6;8454:60;:::i;:::-;8444:70;;8300:224;8287:1;8284;8280:9;8275:14;;8240:284;;;8244:14;8540:3;8533:10;;7941:608;;;7817:732;;;;:::o;8555:109::-;8636:21;8651:5;8636:21;:::i;:::-;8631:3;8624:34;8555:109;;:::o;8670:183::-;8783:63;8840:5;8783:63;:::i;:::-;8778:3;8771:76;8670:183;;:::o;8859:147::-;8954:45;8993:5;8954:45;:::i;:::-;8949:3;8942:58;8859:147;;:::o;9012:364::-;9100:3;9128:39;9161:5;9128:39;:::i;:::-;9183:71;9247:6;9242:3;9183:71;:::i;:::-;9176:78;;9263:52;9308:6;9303:3;9296:4;9289:5;9285:16;9263:52;:::i;:::-;9340:29;9362:6;9340:29;:::i;:::-;9335:3;9331:39;9324:46;;9104:272;9012:364;;;;:::o;9382:366::-;9524:3;9545:67;9609:2;9604:3;9545:67;:::i;:::-;9538:74;;9621:93;9710:3;9621:93;:::i;:::-;9739:2;9734:3;9730:12;9723:19;;9382:366;;;:::o;9754:::-;9896:3;9917:67;9981:2;9976:3;9917:67;:::i;:::-;9910:74;;9993:93;10082:3;9993:93;:::i;:::-;10111:2;10106:3;10102:12;10095:19;;9754:366;;;:::o;10126:::-;10268:3;10289:67;10353:2;10348:3;10289:67;:::i;:::-;10282:74;;10365:93;10454:3;10365:93;:::i;:::-;10483:2;10478:3;10474:12;10467:19;;10126:366;;;:::o;10498:::-;10640:3;10661:67;10725:2;10720:3;10661:67;:::i;:::-;10654:74;;10737:93;10826:3;10737:93;:::i;:::-;10855:2;10850:3;10846:12;10839:19;;10498:366;;;:::o;10870:::-;11012:3;11033:67;11097:2;11092:3;11033:67;:::i;:::-;11026:74;;11109:93;11198:3;11109:93;:::i;:::-;11227:2;11222:3;11218:12;11211:19;;10870:366;;;:::o;11242:::-;11384:3;11405:67;11469:2;11464:3;11405:67;:::i;:::-;11398:74;;11481:93;11570:3;11481:93;:::i;:::-;11599:2;11594:3;11590:12;11583:19;;11242:366;;;:::o;11614:365::-;11756:3;11777:66;11841:1;11836:3;11777:66;:::i;:::-;11770:73;;11852:93;11941:3;11852:93;:::i;:::-;11970:2;11965:3;11961:12;11954:19;;11614:365;;;:::o;11985:366::-;12127:3;12148:67;12212:2;12207:3;12148:67;:::i;:::-;12141:74;;12224:93;12313:3;12224:93;:::i;:::-;12342:2;12337:3;12333:12;12326:19;;11985:366;;;:::o;12357:::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:365::-;12871:3;12892:66;12956:1;12951:3;12892:66;:::i;:::-;12885:73;;12967:93;13056:3;12967:93;:::i;:::-;13085:2;13080:3;13076:12;13069:19;;12729:365;;;:::o;13100:366::-;13242:3;13263:67;13327:2;13322:3;13263:67;:::i;:::-;13256:74;;13339:93;13428:3;13339:93;:::i;:::-;13457:2;13452:3;13448:12;13441:19;;13100:366;;;:::o;13472:::-;13614:3;13635:67;13699:2;13694:3;13635:67;:::i;:::-;13628:74;;13711:93;13800:3;13711:93;:::i;:::-;13829:2;13824:3;13820:12;13813:19;;13472:366;;;:::o;13844:::-;13986:3;14007:67;14071:2;14066:3;14007:67;:::i;:::-;14000:74;;14083:93;14172:3;14083:93;:::i;:::-;14201:2;14196:3;14192:12;14185:19;;13844:366;;;:::o;14216:::-;14358:3;14379:67;14443:2;14438:3;14379:67;:::i;:::-;14372:74;;14455:93;14544:3;14455:93;:::i;:::-;14573:2;14568:3;14564:12;14557:19;;14216:366;;;:::o;14588:365::-;14730:3;14751:66;14815:1;14810:3;14751:66;:::i;:::-;14744:73;;14826:93;14915:3;14826:93;:::i;:::-;14944:2;14939:3;14935:12;14928:19;;14588:365;;;:::o;14959:118::-;15046:24;15064:5;15046:24;:::i;:::-;15041:3;15034:37;14959:118;;:::o;15083:112::-;15166:22;15182:5;15166:22;:::i;:::-;15161:3;15154:35;15083:112;;:::o;15201:222::-;15294:4;15332:2;15321:9;15317:18;15309:26;;15345:71;15413:1;15402:9;15398:17;15389:6;15345:71;:::i;:::-;15201:222;;;;:::o;15429:254::-;15538:4;15576:2;15565:9;15561:18;15553:26;;15589:87;15673:1;15662:9;15658:17;15649:6;15589:87;:::i;:::-;15429:254;;;;:::o;15689:332::-;15810:4;15848:2;15837:9;15833:18;15825:26;;15861:71;15929:1;15918:9;15914:17;15905:6;15861:71;:::i;:::-;15942:72;16010:2;15999:9;15995:18;15986:6;15942:72;:::i;:::-;15689:332;;;;;:::o;16027:807::-;16276:4;16314:3;16303:9;16299:19;16291:27;;16328:71;16396:1;16385:9;16381:17;16372:6;16328:71;:::i;:::-;16409:72;16477:2;16466:9;16462:18;16453:6;16409:72;:::i;:::-;16491:80;16567:2;16556:9;16552:18;16543:6;16491:80;:::i;:::-;16581;16657:2;16646:9;16642:18;16633:6;16581:80;:::i;:::-;16671:73;16739:3;16728:9;16724:19;16715:6;16671:73;:::i;:::-;16754;16822:3;16811:9;16807:19;16798:6;16754:73;:::i;:::-;16027:807;;;;;;;;;:::o;16840:210::-;16927:4;16965:2;16954:9;16950:18;16942:26;;16978:65;17040:1;17029:9;17025:17;17016:6;16978:65;:::i;:::-;16840:210;;;;:::o;17056:274::-;17175:4;17213:2;17202:9;17198:18;17190:26;;17226:97;17320:1;17309:9;17305:17;17296:6;17226:97;:::i;:::-;17056:274;;;;:::o;17336:313::-;17449:4;17487:2;17476:9;17472:18;17464:26;;17536:9;17530:4;17526:20;17522:1;17511:9;17507:17;17500:47;17564:78;17637:4;17628:6;17564:78;:::i;:::-;17556:86;;17336:313;;;;:::o;17655:419::-;17821:4;17859:2;17848:9;17844:18;17836:26;;17908:9;17902:4;17898:20;17894:1;17883:9;17879:17;17872:47;17936:131;18062:4;17936:131;:::i;:::-;17928:139;;17655:419;;;:::o;18080:::-;18246:4;18284:2;18273:9;18269:18;18261:26;;18333:9;18327:4;18323:20;18319:1;18308:9;18304:17;18297:47;18361:131;18487:4;18361:131;:::i;:::-;18353:139;;18080:419;;;:::o;18505:::-;18671:4;18709:2;18698:9;18694:18;18686:26;;18758:9;18752:4;18748:20;18744:1;18733:9;18729:17;18722:47;18786:131;18912:4;18786:131;:::i;:::-;18778:139;;18505:419;;;:::o;18930:::-;19096:4;19134:2;19123:9;19119:18;19111:26;;19183:9;19177:4;19173:20;19169:1;19158:9;19154:17;19147:47;19211:131;19337:4;19211:131;:::i;:::-;19203:139;;18930:419;;;:::o;19355:::-;19521:4;19559:2;19548:9;19544:18;19536:26;;19608:9;19602:4;19598:20;19594:1;19583:9;19579:17;19572:47;19636:131;19762:4;19636:131;:::i;:::-;19628:139;;19355:419;;;:::o;19780:::-;19946:4;19984:2;19973:9;19969:18;19961:26;;20033:9;20027:4;20023:20;20019:1;20008:9;20004:17;19997:47;20061:131;20187:4;20061:131;:::i;:::-;20053:139;;19780:419;;;:::o;20205:::-;20371:4;20409:2;20398:9;20394:18;20386:26;;20458:9;20452:4;20448:20;20444:1;20433:9;20429:17;20422:47;20486:131;20612:4;20486:131;:::i;:::-;20478:139;;20205:419;;;:::o;20630:::-;20796:4;20834:2;20823:9;20819:18;20811:26;;20883:9;20877:4;20873:20;20869:1;20858:9;20854:17;20847:47;20911:131;21037:4;20911:131;:::i;:::-;20903:139;;20630:419;;;:::o;21055:::-;21221:4;21259:2;21248:9;21244:18;21236:26;;21308:9;21302:4;21298:20;21294:1;21283:9;21279:17;21272:47;21336:131;21462:4;21336:131;:::i;:::-;21328:139;;21055:419;;;:::o;21480:::-;21646:4;21684:2;21673:9;21669:18;21661:26;;21733:9;21727:4;21723:20;21719:1;21708:9;21704:17;21697:47;21761:131;21887:4;21761:131;:::i;:::-;21753:139;;21480:419;;;:::o;21905:::-;22071:4;22109:2;22098:9;22094:18;22086:26;;22158:9;22152:4;22148:20;22144:1;22133:9;22129:17;22122:47;22186:131;22312:4;22186:131;:::i;:::-;22178:139;;21905:419;;;:::o;22330:::-;22496:4;22534:2;22523:9;22519:18;22511:26;;22583:9;22577:4;22573:20;22569:1;22558:9;22554:17;22547:47;22611:131;22737:4;22611:131;:::i;:::-;22603:139;;22330:419;;;:::o;22755:::-;22921:4;22959:2;22948:9;22944:18;22936:26;;23008:9;23002:4;22998:20;22994:1;22983:9;22979:17;22972:47;23036:131;23162:4;23036:131;:::i;:::-;23028:139;;22755:419;;;:::o;23180:::-;23346:4;23384:2;23373:9;23369:18;23361:26;;23433:9;23427:4;23423:20;23419:1;23408:9;23404:17;23397:47;23461:131;23587:4;23461:131;:::i;:::-;23453:139;;23180:419;;;:::o;23605:::-;23771:4;23809:2;23798:9;23794:18;23786:26;;23858:9;23852:4;23848:20;23844:1;23833:9;23829:17;23822:47;23886:131;24012:4;23886:131;:::i;:::-;23878:139;;23605:419;;;:::o;24030:222::-;24123:4;24161:2;24150:9;24146:18;24138:26;;24174:71;24242:1;24231:9;24227:17;24218:6;24174:71;:::i;:::-;24030:222;;;;:::o;24258:320::-;24373:4;24411:2;24400:9;24396:18;24388:26;;24424:71;24492:1;24481:9;24477:17;24468:6;24424:71;:::i;:::-;24505:66;24567:2;24556:9;24552:18;24543:6;24505:66;:::i;:::-;24258:320;;;;;:::o;24584:831::-;24847:4;24885:3;24874:9;24870:19;24862:27;;24899:71;24967:1;24956:9;24952:17;24943:6;24899:71;:::i;:::-;24980:80;25056:2;25045:9;25041:18;25032:6;24980:80;:::i;:::-;25107:9;25101:4;25097:20;25092:2;25081:9;25077:18;25070:48;25135:108;25238:4;25229:6;25135:108;:::i;:::-;25127:116;;25253:72;25321:2;25310:9;25306:18;25297:6;25253:72;:::i;:::-;25335:73;25403:3;25392:9;25388:19;25379:6;25335:73;:::i;:::-;24584:831;;;;;;;;:::o;25421:442::-;25570:4;25608:2;25597:9;25593:18;25585:26;;25621:71;25689:1;25678:9;25674:17;25665:6;25621:71;:::i;:::-;25702:72;25770:2;25759:9;25755:18;25746:6;25702:72;:::i;:::-;25784;25852:2;25841:9;25837:18;25828:6;25784:72;:::i;:::-;25421:442;;;;;;:::o;25869:553::-;26046:4;26084:3;26073:9;26069:19;26061:27;;26098:71;26166:1;26155:9;26151:17;26142:6;26098:71;:::i;:::-;26179:72;26247:2;26236:9;26232:18;26223:6;26179:72;:::i;:::-;26261;26329:2;26318:9;26314:18;26305:6;26261:72;:::i;:::-;26343;26411:2;26400:9;26396:18;26387:6;26343:72;:::i;:::-;25869:553;;;;;;;:::o;26428:214::-;26517:4;26555:2;26544:9;26540:18;26532:26;;26568:67;26632:1;26621:9;26617:17;26608:6;26568:67;:::i;:::-;26428:214;;;;:::o;26729:132::-;26796:4;26819:3;26811:11;;26849:4;26844:3;26840:14;26832:22;;26729:132;;;:::o;26867:114::-;26934:6;26968:5;26962:12;26952:22;;26867:114;;;:::o;26987:99::-;27039:6;27073:5;27067:12;27057:22;;26987:99;;;:::o;27092:113::-;27162:4;27194;27189:3;27185:14;27177:22;;27092:113;;;:::o;27211:184::-;27310:11;27344:6;27339:3;27332:19;27384:4;27379:3;27375:14;27360:29;;27211:184;;;;:::o;27401:169::-;27485:11;27519:6;27514:3;27507:19;27559:4;27554:3;27550:14;27535:29;;27401:169;;;;:::o;27576:305::-;27616:3;27635:20;27653:1;27635:20;:::i;:::-;27630:25;;27669:20;27687:1;27669:20;:::i;:::-;27664:25;;27823:1;27755:66;27751:74;27748:1;27745:81;27742:107;;;27829:18;;:::i;:::-;27742:107;27873:1;27870;27866:9;27859:16;;27576:305;;;;:::o;27887:185::-;27927:1;27944:20;27962:1;27944:20;:::i;:::-;27939:25;;27978:20;27996:1;27978:20;:::i;:::-;27973:25;;28017:1;28007:35;;28022:18;;:::i;:::-;28007:35;28064:1;28061;28057:9;28052:14;;27887:185;;;;:::o;28078:348::-;28118:7;28141:20;28159:1;28141:20;:::i;:::-;28136:25;;28175:20;28193:1;28175:20;:::i;:::-;28170:25;;28363:1;28295:66;28291:74;28288:1;28285:81;28280:1;28273:9;28266:17;28262:105;28259:131;;;28370:18;;:::i;:::-;28259:131;28418:1;28415;28411:9;28400:20;;28078:348;;;;:::o;28432:191::-;28472:4;28492:20;28510:1;28492:20;:::i;:::-;28487:25;;28526:20;28544:1;28526:20;:::i;:::-;28521:25;;28565:1;28562;28559:8;28556:34;;;28570:18;;:::i;:::-;28556:34;28615:1;28612;28608:9;28600:17;;28432:191;;;;:::o;28629:96::-;28666:7;28695:24;28713:5;28695:24;:::i;:::-;28684:35;;28629:96;;;:::o;28731:104::-;28776:7;28805:24;28823:5;28805:24;:::i;:::-;28794:35;;28731:104;;;:::o;28841:90::-;28875:7;28918:5;28911:13;28904:21;28893:32;;28841:90;;;:::o;28937:126::-;28974:7;29014:42;29007:5;29003:54;28992:65;;28937:126;;;:::o;29069:77::-;29106:7;29135:5;29124:16;;29069:77;;;:::o;29152:86::-;29187:7;29227:4;29220:5;29216:16;29205:27;;29152:86;;;:::o;29244:152::-;29320:9;29353:37;29384:5;29353:37;:::i;:::-;29340:50;;29244:152;;;:::o;29402:121::-;29460:9;29493:24;29511:5;29493:24;:::i;:::-;29480:37;;29402:121;;;:::o;29529:126::-;29579:9;29612:37;29643:5;29612:37;:::i;:::-;29599:50;;29529:126;;;:::o;29661:113::-;29711:9;29744:24;29762:5;29744:24;:::i;:::-;29731:37;;29661:113;;;:::o;29780:307::-;29848:1;29858:113;29872:6;29869:1;29866:13;29858:113;;;29957:1;29952:3;29948:11;29942:18;29938:1;29933:3;29929:11;29922:39;29894:2;29891:1;29887:10;29882:15;;29858:113;;;29989:6;29986:1;29983:13;29980:101;;;30069:1;30060:6;30055:3;30051:16;30044:27;29980:101;29829:258;29780:307;;;:::o;30093:320::-;30137:6;30174:1;30168:4;30164:12;30154:22;;30221:1;30215:4;30211:12;30242:18;30232:81;;30298:4;30290:6;30286:17;30276:27;;30232:81;30360:2;30352:6;30349:14;30329:18;30326:38;30323:84;;;30379:18;;:::i;:::-;30323:84;30144:269;30093:320;;;:::o;30419:233::-;30458:3;30481:24;30499:5;30481:24;:::i;:::-;30472:33;;30527:66;30520:5;30517:77;30514:103;;;30597:18;;:::i;:::-;30514:103;30644:1;30637:5;30633:13;30626:20;;30419:233;;;:::o;30658:180::-;30706:77;30703:1;30696:88;30803:4;30800:1;30793:15;30827:4;30824:1;30817:15;30844:180;30892:77;30889:1;30882:88;30989:4;30986:1;30979:15;31013:4;31010:1;31003:15;31030:180;31078:77;31075:1;31068:88;31175:4;31172:1;31165:15;31199:4;31196:1;31189:15;31216:180;31264:77;31261:1;31254:88;31361:4;31358:1;31351:15;31385:4;31382:1;31375:15;31402:180;31450:77;31447:1;31440:88;31547:4;31544:1;31537:15;31571:4;31568:1;31561:15;31711:117;31820:1;31817;31810:12;31834:102;31875:6;31926:2;31922:7;31917:2;31910:5;31906:14;31902:28;31892:38;;31834:102;;;:::o;31942:166::-;32082:18;32078:1;32070:6;32066:14;32059:42;31942:166;:::o;32114:222::-;32254:34;32250:1;32242:6;32238:14;32231:58;32323:5;32318:2;32310:6;32306:15;32299:30;32114:222;:::o;32342:224::-;32482:34;32478:1;32470:6;32466:14;32459:58;32551:7;32546:2;32538:6;32534:15;32527:32;32342:224;:::o;32572:173::-;32712:25;32708:1;32700:6;32696:14;32689:49;32572:173;:::o;32751:170::-;32891:22;32887:1;32879:6;32875:14;32868:46;32751:170;:::o;32927:168::-;33067:20;33063:1;33055:6;33051:14;33044:44;32927:168;:::o;33101:158::-;33241:10;33237:1;33229:6;33225:14;33218:34;33101:158;:::o;33265:169::-;33405:21;33401:1;33393:6;33389:14;33382:45;33265:169;:::o;33440:166::-;33580:18;33576:1;33568:6;33564:14;33557:42;33440:166;:::o;33612:156::-;33752:8;33748:1;33740:6;33736:14;33729:32;33612:156;:::o;33774:176::-;33914:28;33910:1;33902:6;33898:14;33891:52;33774:176;:::o;33956:174::-;34096:26;34092:1;34084:6;34080:14;34073:50;33956:174;:::o;34136:224::-;34276:34;34272:1;34264:6;34260:14;34253:58;34345:7;34340:2;34332:6;34328:15;34321:32;34136:224;:::o;34366:248::-;34506:34;34502:1;34494:6;34490:14;34483:58;34575:31;34570:2;34562:6;34558:15;34551:56;34366:248;:::o;34620:155::-;34760:7;34756:1;34748:6;34744:14;34737:31;34620:155;:::o;34781:122::-;34854:24;34872:5;34854:24;:::i;:::-;34847:5;34844:35;34834:63;;34893:1;34890;34883:12;34834:63;34781:122;:::o;34909:138::-;34990:32;35016:5;34990:32;:::i;:::-;34983:5;34980:43;34970:71;;35037:1;35034;35027:12;34970:71;34909:138;:::o;35053:116::-;35123:21;35138:5;35123:21;:::i;:::-;35116:5;35113:32;35103:60;;35159:1;35156;35149:12;35103:60;35053:116;:::o;35175:122::-;35248:24;35266:5;35248:24;:::i;:::-;35241:5;35238:35;35228:63;;35287:1;35284;35277:12;35228:63;35175:122;:::o
Swarm Source
ipfs://a97304ea62aecee0da0469d9c8dc8aba902b33cf3994f8e1a1ddacbfc932645c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.