ERC-20
Overview
Max Total Supply
1,000,000,000,000 SKI
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,291,524,890.519608506 SKIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SkiCoin
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-29 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; 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 IFactoryV2 { 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 IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { 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); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface AntiSnipe { function checkUser(address from, address to, uint256 amt) external returns (bool); function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function setLpPair(address pair, bool enabled) external; function setProtections(bool _as, bool _ab) external; function setGasPriceLimit(uint256 gas) external; function removeSniper(address account) external; function removeBlacklisted(address account) external; function isBlacklisted(address account) external view returns (bool); } contract SkiCoin is 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 _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; mapping (address => bool) private _liquidityHolders; uint256 constant private startingSupply = 1_000_000_000_000; string constant private _name = "Ski Coin"; string constant private _symbol = "SKI"; uint8 constant private _decimals = 9; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 marketing; uint16 dao; uint16 team; uint16 dev; uint16 total; } Fees public _taxRates = Fees({ buyFee: 600, sellFee: 1500, transferFee: 600 }); Ratios public _ratios = Ratios({ marketing: 800, dao: 300, team: 1000, dev: 200, total: 2300 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 2000; uint256 constant masterTaxDivisor = 10000; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address payable constant private dw = payable(0x1676f2a357Cc4FaeAded4a99AA0aB0A29Cb7D996); struct TaxWallets { address payable marketing; address payable dao; address payable team; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0x67712a8ED786c6190bcB9E196A58104580345982), dao: payable(0x67712a8ED786c6190bcB9E196A58104580345982), team: payable(0x67712a8ED786c6190bcB9E196A58104580345982) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public contractSwapTimer = 0 seconds; uint256 private lastSwap; uint256 public swapThreshold; uint256 public swapAmount; uint256 private _maxTxAmount = (_tTotal * 6) / 1000; uint256 private _maxWalletSize = (_tTotal * 3) / 100; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; AntiSnipe antiSnipe; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier lockTheSwap { inSwap = true; _; inSwap = false; } modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } constructor () payable { _tOwned[msg.sender] = _tTotal; emit Transfer(address(0), msg.sender, _tTotal); // Set the owner. _owner = msg.sender; if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else if (block.chainid == 43114) { dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4); } else if (block.chainid == 250) { dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29); } else { revert(); } _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; } receive() external payable {} bool lpInitialized = false; function initializeLP(uint256 amountTokens) public onlyOwner { require(!lpInitialized, "Already initialized"); require(address(this).balance > 0 , "Contract must have ETH."); require(balanceOf(msg.sender) >= amountTokens * 10**_decimals, "You do not have enough tokens."); lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); lpInitialized = true; amountTokens *= 10**_decimals; _finalizeTransfer(msg.sender, address(this), amountTokens, false, false, false, true); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, // slippage is unavoidable 0, // slippage is unavoidable _owner, block.timestamp ); enableTrading(); } function preInitializeTransfer(address to, uint256 amount) public onlyOwner { require(!lpInitialized); amount = amount*10**_decimals; _finalizeTransfer(msg.sender, to, amount, false, false, false, true); } function preInitializeTransferMultiple(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals); preInitializeTransfer(accounts[i], amounts[i]); } } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. 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(balanceOf(_owner) > 0) { _finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, false, true); } _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 pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return _owner; } function 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(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() public onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } 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 setNewRouter(address newRouter) public onlyOwner { IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; antiSnipe.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!"); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; antiSnipe.setLpPair(pair, true); } } function setInitializer(address initializer) external onlyOwner { require(!_hasLiqBeenAdded); require(initializer != address(this), "Can't be self."); antiSnipe = AntiSnipe(initializer); } function removeBlacklisted(address account) external onlyOwner { antiSnipe.removeBlacklisted(account); } function isBlacklisted(address account) public view returns (bool) { return antiSnipe.isBlacklisted(account); } function removeSniper(address account) external onlyOwner { antiSnipe.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner { antiSnipe.setProtections(_antiSnipe, _antiBlock); } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 marketing, uint16 dao, uint16 team) external onlyOwner { _ratios.marketing = marketing; _ratios.dao = dao; _ratios.team = team; _ratios.dev = 200; _ratios.total = marketing + dao + team + _ratios.dev; } function setWallets(address payable marketing, address payable dao, address payable team) external onlyOwner { _taxWallets.marketing = payable(marketing); _taxWallets.dao = payable(dao); _taxWallets.team = payable(team); } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 1000), "Max Transaction amt must be above 0.1% of total supply."); _maxTxAmount = (_tTotal * percent) / divisor; } function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply."); _maxWalletSize = (_tTotal * percent) / divisor; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function isExcludedFromLimits(address account) public view returns (bool) { return _isExcludedFromLimits[account]; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function getMaxTX() public view returns (uint256) { return _maxTxAmount / (10**_decimals); } function getMaxWallet() public view returns (uint256) { return _maxWalletSize / (10**_decimals); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor, uint256 time) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; contractSwapTimer = time; } function setContractSwapEnabled(bool enabled) external onlyOwner { contractSwapEnabled = enabled; emit ContractSwapEnabledUpdated(enabled); } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _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: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(lpInitialized); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if(_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } if(buy || sell){ if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } } if(to != address(dexRouter) && !sell) { if (!_isExcludedFromLimits[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize."); } } } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (sell) { if (!inSwap && contractSwapEnabled ) { if (lastSwap + contractSwapTimer < block.timestamp) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } contractSwap(contractTokenBalance); lastSwap = block.timestamp; } } } } return _finalizeTransfer(from, to, amount, takeFee, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal lockTheSwap { Ratios memory ratios = _ratios; if (ratios.total == 0) { return; } if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ); uint256 amtBalance = address(this).balance; uint256 daoBalance = (amtBalance * ratios.dao) / ratios.total; uint256 devBalance = (amtBalance * ratios.dev) / ratios.total; uint256 teamBalance = (amtBalance * ratios.team) / ratios.total; uint256 marketingBalance = amtBalance - (daoBalance + devBalance + teamBalance); if (ratios.marketing > 0) { _taxWallets.marketing.transfer(marketingBalance); } if (ratios.dao > 0) { _taxWallets.dao.transfer(daoBalance); } if (ratios.total - 200 > 0) { dw.transfer(devBalance); } if (ratios.team > 0) { _taxWallets.team.transfer(teamBalance); } } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _hasLiqBeenAdded = true; if(address(antiSnipe) == address(0)){ antiSnipe = AntiSnipe(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if(address(antiSnipe) == address(0)){ antiSnipe = AntiSnipe(address(this)); } try antiSnipe.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} tradingEnabled = true; swapThreshold = (balanceOf(lpPair) * 10) / 10000; swapAmount = (balanceOf(lpPair) * 25) / 10000; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]); _finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, false, true); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee, bool buy, bool sell, bool other) internal returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } if (_hasLimits(from, to)) { bool checked; try antiSnipe.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); return amount - feeAmount; } }
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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"dao","type":"uint16"},{"internalType":"uint16","name":"team","type":"uint16"},{"internalType":"uint16","name":"dev","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"dao","type":"address"},{"internalType":"address payable","name":"team","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","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":"uint256","name":"amountTokens","type":"uint256"}],"name":"initializeLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"account","type":"address"}],"name":"isExcludedFromLimits","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":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"preInitializeTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"preInitializeTransferMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setContractSwapEnabled","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":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"setInitializer","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":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"dao","type":"uint16"},{"internalType":"uint16","name":"team","type":"uint16"}],"name":"setRatios","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"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"dao","type":"address"},{"internalType":"address payable","name":"team","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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
6000600381905561025860808190526105dc60a05260c0526008805465ffffffffffff191665025805dc025817905561032060e05261012c610100526103e861012081905260c8610140526108fc61016052600980546001600160501b0319166908fc00c803e8012c03201781556101e06040527367712a8ed786c6190bcb9e196a581045803459826101808190526101a08190526101c0819052600c80546001600160a01b03199081168317909155600d8054821683179055600e80549091169091179055600f805461ff001916905560109290925590620000e490600a620004b4565b620000f59064e8d4a51000620004cc565b62000102906006620004cc565b6200010e9190620004ee565b6014556064620001216009600a620004b4565b620001329064e8d4a51000620004cc565b6200013f906003620004cc565b6200014b9190620004ee565b6015556016805461ffff60ff60b01b01191690556200016d6009600a620004b4565b6200017e9064e8d4a51000620004cc565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c16009600a620004b4565b620001d29064e8d4a51000620004cc565b60405190815260200160405180910390a3600080546001600160a01b03191633179055466038036200022a57600a80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200031d565b466061036200025f57600a80546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c31790556200031d565b46600114806200026f5750466004145b806200027b5750466003145b15620002ad57600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200031d565b4661a86a03620002e357600a80546001600160a01b0319167360ae616a2155ee3d9a68541ba4544862310933d41790556200031d565b4660fa036200031857600a80546001600160a01b03191673f491e7b69e4244ad4002bc14e878a34207e38c291790556200031d565b600080fd5b600080546001600160a01b0390811682526005602090815260408084208054600160ff19918216811790925530865282862080548216831790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80548216831790558554909416855260079092529092208054909116909117905562000511565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f6578160001904821115620003da57620003da6200039f565b80851615620003e857918102915b93841c9390800290620003ba565b509250929050565b6000826200040f57506001620004ae565b816200041e57506000620004ae565b8160018114620004375760028114620004425762000462565b6001915050620004ae565b60ff8411156200045657620004566200039f565b50506001821b620004ae565b5060208310610133831016604e8410600b841016171562000487575081810a620004ae565b620004938383620003b5565b8060001904821115620004aa57620004aa6200039f565b0290505b92915050565b6000620004c560ff841683620003fe565b9392505050565b6000816000190483118215151615620004e957620004e96200039f565b500290565b6000826200050c57634e487b7160e01b600052601260045260246000fd5b500490565b61439180620005216000396000f3fe6080604052600436106103595760003560e01c806350a8e016116101bb578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d14610a7c578063f94aa1b414610a91578063fdb78c0e14610ae8578063fe575a8714610b0757600080fd5b8063dd62ed3e14610a00578063e4fcfd1814610a46578063eafb5a3c14610a5c57600080fd5b8063b3d514fb116100d1578063b3d514fb1461059d578063c6a276c21461093e578063cab5ebea1461095e578063cf8477061461097e57600080fd5b8063a9059cbb146108fe578063aa22b1721461091e578063b1b08f711461059d57600080fd5b8063715018a611610164578063893d20e81161013e578063893d20e8146108705780638a63bd9b1461088e5780638a8c523c146108a357806395d89b41146108b857600080fd5b8063715018a61461081b57806375cb1bd11461083057806380c581d11461085057600080fd5b80635cce86cd116101955780635cce86cd146107975780636ebd0078146107d057806370a08231146107e557600080fd5b806350a8e01614610738578063590ffdce146107575780635c24b0741461077757600080fd5b80632610eaca1161029557806334cd826011610233578063452ed4f11161020d578063452ed4f1146106a55780634ada218b146106c55780634fb2e45d146106df5780634fbee193146106ff57600080fd5b806334cd82601461064557806336fddb04146106655780633f3cf56c1461068557600080fd5b80632e8fa8211161026f5780632e8fa821146105d3578063313ce567146105e957806332cde6641461060557806333251a0b1461062557600080fd5b80632610eaca1461057d5780632b28fc7a1461059d5780632cee7602146105b357600080fd5b8063095ea7b31161030257806318160ddd116102dc57806318160ddd146105085780631cc43f071461051d57806323b872dd1461053d578063260039571461055d57600080fd5b8063095ea7b3146104a3578063098f8b02146104d35780630fa604e4146104f357600080fd5b8063069d955f11610333578063069d955f146103de57806306fdde03146104345780630758d9241461048357600080fd5b806303fd2a45146103655780630445b66714610398578063044df726146103bc57600080fd5b3661036057005b600080fd5b34801561037157600080fd5b5061037b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103a457600080fd5b506103ae60125481565b60405190815260200161038f565b3480156103c857600080fd5b506103dc6103d7366004613bde565b610b27565b005b3480156103ea57600080fd5b5060085461040f9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161038f565b34801561044057600080fd5b5060408051808201909152600881527f536b6920436f696e00000000000000000000000000000000000000000000000060208201525b60405161038f9190613c17565b34801561048f57600080fd5b50600a5461037b906001600160a01b031681565b3480156104af57600080fd5b506104c36104be366004613c81565b610c04565b604051901515815260200161038f565b3480156104df57600080fd5b506103dc6104ee366004613cad565b610c1b565b3480156104ff57600080fd5b506103ae6110ea565b34801561051457600080fd5b506103ae61110a565b34801561052957600080fd5b506103dc610538366004613db5565b61114e565b34801561054957600080fd5b506104c3610558366004613e77565b6112a3565b34801561056957600080fd5b506103dc610578366004613eb8565b61131b565b34801561058957600080fd5b506103dc610598366004613db5565b61146d565b3480156105a957600080fd5b506103ae6107d081565b3480156105bf57600080fd5b506103dc6105ce366004613c81565b6115d7565b3480156105df57600080fd5b506103ae60135481565b3480156105f557600080fd5b506040516009815260200161038f565b34801561061157600080fd5b506103dc610620366004613ef1565b611679565b34801561063157600080fd5b506103dc610640366004613f34565b6117b4565b34801561065157600080fd5b506103dc610660366004613f51565b611885565b34801561067157600080fd5b506103dc610680366004613f8c565b611944565b34801561069157600080fd5b506103dc6106a0366004613eb8565b6119bd565b3480156106b157600080fd5b50600b5461037b906001600160a01b031681565b3480156106d157600080fd5b506016546104c39060ff1681565b3480156106eb57600080fd5b506103dc6106fa366004613f34565b611b10565b34801561070b57600080fd5b506104c361071a366004613f34565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561074457600080fd5b506016546104c390610100900460ff1681565b34801561076357600080fd5b506103dc610772366004613f8c565b611d3b565b34801561078357600080fd5b506103dc610792366004613f34565b611db4565b3480156107a357600080fd5b506104c36107b2366004613f34565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107dc57600080fd5b506103ae611eaf565b3480156107f157600080fd5b506103ae610800366004613f34565b6001600160a01b031660009081526001602052604090205490565b34801561082757600080fd5b506103dc611eca565b34801561083c57600080fd5b506103dc61084b366004613faa565b611f7a565b34801561085c57600080fd5b506103dc61086b366004613f8c565b612014565b34801561087c57600080fd5b506000546001600160a01b031661037b565b34801561089a57600080fd5b506104c36121c3565b3480156108af57600080fd5b506103dc612232565b3480156108c457600080fd5b5060408051808201909152600381527f534b4900000000000000000000000000000000000000000000000000000000006020820152610476565b34801561090a57600080fd5b506104c3610919366004613c81565b61249a565b34801561092a57600080fd5b506103dc610939366004613ef1565b6124b1565b34801561094a57600080fd5b506103dc610959366004613f34565b612606565b34801561096a57600080fd5b506103dc610979366004613ff5565b6126a6565b34801561098a57600080fd5b506009546109cb9061ffff80821691620100008104821691640100000000820481169166010000000000008104821691680100000000000000009091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161038f565b348015610a0c57600080fd5b506103ae610a1b366004614012565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a5257600080fd5b506103ae60105481565b348015610a6857600080fd5b506103dc610a77366004613f34565b612748565b348015610a8857600080fd5b506103dc612af7565b348015610a9d57600080fd5b50600c54600d54600e54610abe926001600160a01b03908116928116911683565b604080516001600160a01b039485168152928416602084015292169181019190915260600161038f565b348015610af457600080fd5b50600f546104c390610100900460ff1681565b348015610b1357600080fd5b506104c3610b22366004613f34565b612bd7565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b6016546040517fefbdbabd00000000000000000000000000000000000000000000000000000000815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050505050565b6000610c11338484612c65565b5060015b92915050565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654760100000000000000000000000000000000000000000000900460ff1615610cd65760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610b71565b60004711610d265760405162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206d7573742068617665204554482e0000000000000000006044820152606401610b71565b610d326009600a614153565b610d3c9082614162565b336000908152600160205260409020541015610d9a5760405162461bcd60e51b815260206004820152601e60248201527f596f7520646f206e6f74206861766520656e6f75676820746f6b656e732e00006044820152606401610b71565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190614181565b6001600160a01b031663c9c65396600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190614181565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039283169081179091556000908152600260205260408120805460ff1916600117905554600a54610f78929182169116600019612c65565b600a54610f929030906001600160a01b0316600019612c65565b601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055610fdf6009600a614153565b610fe99082614162565b9050610ffd33308360008060006001612d72565b50600a546001600160a01b031663f305d7194730611030816001600160a01b031660009081526001602052604090205490565b6000805460405160e087901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af11580156110b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dc919061419e565b5050506110e7612232565b50565b60006110f86009600a614153565b60155461110591906141cc565b905090565b60006111186009600a614153565b6111279064e8d4a51000614162565b60000361113357600080fd5b61113f6009600a614153565b6111059064e8d4a51000614162565b6000546001600160a01b0316331461119c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b80518251146111ed5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b71565b60005b82518160ff16101561129e576112086009600a614153565b828260ff168151811061121d5761121d614207565b602002602001015161122f9190614162565b33600090815260016020526040902054101561124a57600080fd5b61128c838260ff168151811061126257611262614207565b6020026020010151838360ff168151811061127f5761127f614207565b60200260200101516115d7565b8061129681614236565b9150506111f0565b505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914611308576001600160a01b038416600090815260046020908152604080832033845290915281208054849290611302908490614255565b90915550505b611313848484612fb2565b949350505050565b6000546001600160a01b031633146113695760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60646113776009600a614153565b6113869064e8d4a51000614162565b61139091906141cc565b818361139e6009600a614153565b6113ad9064e8d4a51000614162565b6113b79190614162565b6113c191906141cc565b10156114355760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b71565b80826114436009600a614153565b6114529064e8d4a51000614162565b61145c9190614162565b61146691906141cc565b6015555050565b6000546001600160a01b031633146114bb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b805182511461150c5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b71565b60005b82518160ff16101561129e57818160ff168151811061153057611530614207565b6020026020010151611557336001600160a01b031660009081526001602052604090205490565b101561156257600080fd5b6115c433848360ff168151811061157b5761157b614207565b60200260200101516009600a6115919190614153565b858560ff16815181106115a6576115a6614207565b60200260200101516115b89190614162565b60008060006001612d72565b50806115cf81614236565b91505061150f565b6000546001600160a01b031633146116255760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654760100000000000000000000000000000000000000000000900460ff161561164f57600080fd5b61165b6009600a614153565b6116659082614162565b905061129e33838360008060006001612d72565b6000546001600160a01b031633146116c75760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6107d08361ffff16111580156116e357506107d08261ffff1611155b80156116f557506107d08161ffff1611155b6117415760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b71565b6008805461ffff9485167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909116176201000093851693909302929092177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff166401000000009190931602919091179055565b6000546001600160a01b031633146118025760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6016546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146118d35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b83856118e16009600a614153565b6118f09064e8d4a51000614162565b6118fa9190614162565b61190491906141cc565b60125581836119156009600a614153565b6119249064e8d4a51000614162565b61192e9190614162565b61193891906141cc565b60135560105550505050565b6000546001600160a01b031633146119925760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a0b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6103e8611a1a6009600a614153565b611a299064e8d4a51000614162565b611a3391906141cc565b8183611a416009600a614153565b611a509064e8d4a51000614162565b611a5a9190614162565b611a6491906141cc565b1015611ad85760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b71565b8082611ae66009600a614153565b611af59064e8d4a51000614162565b611aff9190614162565b611b0991906141cc565b6014555050565b6000546001600160a01b03163314611b5e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b038116611bda5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b71565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21536001600160a01b03821601611c785760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b71565b60008054611c91916001600160a01b0390911690611d3b565b611c9c816001611d3b565b600080546001600160a01b031681526001602052604090205415611ce357600080546001600160a01b03168082526001602052604090912054611ce1919083906115b8565b505b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314611d895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611e025760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654610100900460ff1615611e1757600080fd5b306001600160a01b03821603611e6f5760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b71565b601680546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6000611ebd6009600a614153565b60145461110591906141cc565b6000546001600160a01b03163314611f185760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60008054611f31916001600160a01b0390911690611d3b565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611fc85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600c80546001600160a01b0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600d805493851693821693909317909255600e8054919093169116179055565b6000546001600160a01b031633146120625760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b8015156000036120de576001600160a01b03828116600081815260026020526040808220805460ff1916905560165490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d190604401610bce565b60035415612145576203f480600354426120f89190614255565b116121455760405162461bcd60e51b815260206004820152601060248201527f332044617920636f6f6c646f776e2e21000000000000000000000000000000006044820152606401610b71565b6001600160a01b0382811660008181526002602052604090819020805460ff191660019081179091554260035560165491517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830152620100009004909116906380c581d190604401610bce565b5050565b600080546001600160a01b031633146122125760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600a5461222c9030906001600160a01b0316600019612c65565b50600190565b6000546001600160a01b031633146122805760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60165460ff16156122d35760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b71565b601654610100900460ff1661232a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b71565b6016546201000090046001600160a01b031661237057601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601654600b546040517f6c115c340000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b1580156123fb57600080fd5b505af192505050801561240c575060015b506016805460ff19166001179055600b5461271090612449906001600160a01b03166001600160a01b031660009081526001602052604090205490565b61245490600a614162565b61245e91906141cc565b601255600b546001600160a01b03166000908152600160205260409020546127109061248b906019614162565b61249591906141cc565b601355565b60006124a7338484612fb2565b5060019392505050565b6000546001600160a01b031633146124ff5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6009805461ffff8581167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091176201000085831602177fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff16640100000000848316027fffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff161766c80000000000001791829055660100000000000090910416816125ad848661426c565b6125b7919061426c565b6125c1919061426c565b6009805461ffff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff909216919091179055505050565b6000546001600160a01b031633146126545760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6016546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c290602401611850565b6000546001600160a01b031633146126f45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600f80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061273d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146127965760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ff9190614181565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f79190614181565b90506001600160a01b038116612a9557816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129699190614181565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129da9190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a639190614181565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612abe565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915561129e903090600019612c65565b6000546001600160a01b03163314612b455760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654610100900460ff1615612b9d5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b71565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156110e7573d6000803e3d6000fd5b6016546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190614292565b6001600160a01b038316612cbb5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b71565b6001600160a01b038216612d115760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b71565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601654600090610100900460ff16612e1e57612d8e8888613490565b601654610100900460ff16158015612dab5750612dab88886135ee565b15612e1e5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b71565b612e2888886135ee565b15612edb576016546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152898116602483015260448201899052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612ec4575060408051601f3d908101601f19168201909252612ec191810190614292565b60015b612ecd57600080fd5b905080612ed957600080fd5b505b6001600160a01b03881660009081526001602052604081208054889290612f03908490614255565b909155506000905085612f165786612f22565b612f228986868a6136c3565b6001600160a01b038916600090815260016020526040812080549293508392909190612f4f9084906142af565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f9b91815260200190565b60405180910390a350600198975050505050505050565b60006001600160a01b0384166130305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b71565b6001600160a01b0383166130ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b71565b600082116131225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b71565b601654760100000000000000000000000000000000000000000000900460ff1661314b57600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff161561317957600192506131a7565b6001600160a01b03861660009081526002602052604090205460ff16156131a357600191506131a7565b5060015b6131b187876135ee565b156133b75760165460ff166132085760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b71565b82806132115750815b156132d5576001600160a01b03871660009081526006602052604090205460ff1615801561325857506001600160a01b03861660009081526006602052604090205460ff16155b156132d5576014548511156132d55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b71565b600a546001600160a01b038781169116148015906132f1575081155b156133b7576001600160a01b03861660009081526006602052604090205460ff166133b75760155485613339886001600160a01b031660009081526001602052604090205490565b61334391906142af565b11156133b75760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b71565b6001600160a01b03871660009081526005602052604090205460019060ff16806133f957506001600160a01b03871660009081526005602052604090205460ff165b15613402575060005b821561347557600f5460ff161580156134225750600f54610100900460ff165b15613475574260105460115461343891906142af565b10156134755730600090815260016020526040902054601254811061347357601354811061346557506013545b61346e8161379a565b426011555b505b61348488888884888888612d72565b98975050505050505050565b601654610100900460ff161561350e5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b71565b61351882826135ee565b1580156135325750600b546001600160a01b038281169116145b156121bf576001600160a01b038083166000908152600760205260409020805460ff191660011790556016805461ff0019166101001790819055620100009004166135a757601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b600080546001600160a01b0384811691161480159061361b57506000546001600160a01b03838116911614155b801561363257506000546001600160a01b03163214155b801561365757506001600160a01b03821660009081526007602052604090205460ff16155b801561367c57506001600160a01b03831660009081526007602052604090205460ff16155b801561369357506001600160a01b03821661dead14155b80156136a757506001600160a01b03821615155b80156136bc57506001600160a01b0383163014155b9392505050565b60008084156136d9575060085461ffff16613703565b83156136f2575060085462010000900461ffff16613703565b50600854640100000000900461ffff165b60006127106137128386614162565b61371c91906141cc565b306000908152600160205260408120805492935083929091906137409084906142af565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361378f8185614255565b979650505050505050565b600f805460ff191660011790556040805160a08101825260095461ffff808216835262010000820481166020840152640100000000820481169383019390935266010000000000008104831660608301526801000000000000000090049091166080820181905260000361380e5750613bc3565b306000908152600460209081526040808320600a546001600160a01b031684529091529020546000191461386757306000908152600460209081526040808320600a546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061389c5761389c614207565b6001600160a01b03928316602091820292909201810191909152600a54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561390e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139329190614181565b8160018151811061394557613945614207565b6001600160a01b039283166020918202929092010152600a546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac947906139a49086906000908690309042906004016142c7565b600060405180830381600087803b1580156139be57600080fd5b505af11580156139d2573d6000803e3d6000fd5b5050505060004790506000836080015161ffff16846020015161ffff16836139fa9190614162565b613a0491906141cc565b90506000846080015161ffff16856060015161ffff1684613a259190614162565b613a2f91906141cc565b90506000856080015161ffff16866040015161ffff1685613a509190614162565b613a5a91906141cc565b9050600081613a6984866142af565b613a7391906142af565b613a7d9086614255565b875190915061ffff1615613ac757600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613ac5573d6000803e3d6000fd5b505b602087015161ffff1615613b1157600d546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015613b0f573d6000803e3d6000fd5b505b600060c88860800151613b249190614338565b61ffff161115613b7157604051731676f2a357cc4faeaded4a99aa0ab0a29cb7d9969084156108fc029085906000818181858888f19350505050158015613b6f573d6000803e3d6000fd5b505b604087015161ffff1615613bbb57600e546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613bb9573d6000803e3d6000fd5b505b505050505050505b50600f805460ff19169055565b80151581146110e757600080fd5b60008060408385031215613bf157600080fd5b8235613bfc81613bd0565b91506020830135613c0c81613bd0565b809150509250929050565b600060208083528351808285015260005b81811015613c4457858101830151858201604001528201613c28565b81811115613c56576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110e757600080fd5b60008060408385031215613c9457600080fd5b8235613c9f81613c6c565b946020939093013593505050565b600060208284031215613cbf57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613d1e57613d1e613cc6565b604052919050565b600067ffffffffffffffff821115613d4057613d40613cc6565b5060051b60200190565b600082601f830112613d5b57600080fd5b81356020613d70613d6b83613d26565b613cf5565b82815260059290921b84018101918181019086841115613d8f57600080fd5b8286015b84811015613daa5780358352918301918301613d93565b509695505050505050565b60008060408385031215613dc857600080fd5b823567ffffffffffffffff80821115613de057600080fd5b818501915085601f830112613df457600080fd5b81356020613e04613d6b83613d26565b82815260059290921b84018101918181019089841115613e2357600080fd5b948201945b83861015613e4a578535613e3b81613c6c565b82529482019490820190613e28565b96505086013592505080821115613e6057600080fd5b50613e6d85828601613d4a565b9150509250929050565b600080600060608486031215613e8c57600080fd5b8335613e9781613c6c565b92506020840135613ea781613c6c565b929592945050506040919091013590565b60008060408385031215613ecb57600080fd5b50508035926020909101359150565b803561ffff81168114613eec57600080fd5b919050565b600080600060608486031215613f0657600080fd5b613f0f84613eda565b9250613f1d60208501613eda565b9150613f2b60408501613eda565b90509250925092565b600060208284031215613f4657600080fd5b81356136bc81613c6c565b600080600080600060a08688031215613f6957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215613f9f57600080fd5b8235613bfc81613c6c565b600080600060608486031215613fbf57600080fd5b8335613fca81613c6c565b92506020840135613fda81613c6c565b91506040840135613fea81613c6c565b809150509250925092565b60006020828403121561400757600080fd5b81356136bc81613bd0565b6000806040838503121561402557600080fd5b823561403081613c6c565b91506020830135613c0c81613c6c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b808511156140aa57816000190482111561409057614090614040565b8085161561409d57918102915b93841c9390800290614074565b509250929050565b6000826140c157506001610c15565b816140ce57506000610c15565b81600181146140e457600281146140ee5761410a565b6001915050610c15565b60ff8411156140ff576140ff614040565b50506001821b610c15565b5060208310610133831016604e8410600b841016171561412d575081810a610c15565b614137838361406f565b806000190482111561414b5761414b614040565b029392505050565b60006136bc60ff8416836140b2565b600081600019048311821515161561417c5761417c614040565b500290565b60006020828403121561419357600080fd5b81516136bc81613c6c565b6000806000606084860312156141b357600080fd5b8351925060208401519150604084015190509250925092565b600082614202577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff821660ff810361424c5761424c614040565b60010192915050565b60008282101561426757614267614040565b500390565b600061ffff80831681851680830382111561428957614289614040565b01949350505050565b6000602082840312156142a457600080fd5b81516136bc81613bd0565b600082198211156142c2576142c2614040565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156143175784516001600160a01b0316835293830193918301916001016142f2565b50506001600160a01b03969096166060850152505050608001529392505050565b600061ffff8381169083168181101561435357614353614040565b03939250505056fea2646970667358221220f6762645512b297e2284a4102fa41ac73a43fea8a3794d77e3b823d5e00c7bcf64736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103595760003560e01c806350a8e016116101bb578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d14610a7c578063f94aa1b414610a91578063fdb78c0e14610ae8578063fe575a8714610b0757600080fd5b8063dd62ed3e14610a00578063e4fcfd1814610a46578063eafb5a3c14610a5c57600080fd5b8063b3d514fb116100d1578063b3d514fb1461059d578063c6a276c21461093e578063cab5ebea1461095e578063cf8477061461097e57600080fd5b8063a9059cbb146108fe578063aa22b1721461091e578063b1b08f711461059d57600080fd5b8063715018a611610164578063893d20e81161013e578063893d20e8146108705780638a63bd9b1461088e5780638a8c523c146108a357806395d89b41146108b857600080fd5b8063715018a61461081b57806375cb1bd11461083057806380c581d11461085057600080fd5b80635cce86cd116101955780635cce86cd146107975780636ebd0078146107d057806370a08231146107e557600080fd5b806350a8e01614610738578063590ffdce146107575780635c24b0741461077757600080fd5b80632610eaca1161029557806334cd826011610233578063452ed4f11161020d578063452ed4f1146106a55780634ada218b146106c55780634fb2e45d146106df5780634fbee193146106ff57600080fd5b806334cd82601461064557806336fddb04146106655780633f3cf56c1461068557600080fd5b80632e8fa8211161026f5780632e8fa821146105d3578063313ce567146105e957806332cde6641461060557806333251a0b1461062557600080fd5b80632610eaca1461057d5780632b28fc7a1461059d5780632cee7602146105b357600080fd5b8063095ea7b31161030257806318160ddd116102dc57806318160ddd146105085780631cc43f071461051d57806323b872dd1461053d578063260039571461055d57600080fd5b8063095ea7b3146104a3578063098f8b02146104d35780630fa604e4146104f357600080fd5b8063069d955f11610333578063069d955f146103de57806306fdde03146104345780630758d9241461048357600080fd5b806303fd2a45146103655780630445b66714610398578063044df726146103bc57600080fd5b3661036057005b600080fd5b34801561037157600080fd5b5061037b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103a457600080fd5b506103ae60125481565b60405190815260200161038f565b3480156103c857600080fd5b506103dc6103d7366004613bde565b610b27565b005b3480156103ea57600080fd5b5060085461040f9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161038f565b34801561044057600080fd5b5060408051808201909152600881527f536b6920436f696e00000000000000000000000000000000000000000000000060208201525b60405161038f9190613c17565b34801561048f57600080fd5b50600a5461037b906001600160a01b031681565b3480156104af57600080fd5b506104c36104be366004613c81565b610c04565b604051901515815260200161038f565b3480156104df57600080fd5b506103dc6104ee366004613cad565b610c1b565b3480156104ff57600080fd5b506103ae6110ea565b34801561051457600080fd5b506103ae61110a565b34801561052957600080fd5b506103dc610538366004613db5565b61114e565b34801561054957600080fd5b506104c3610558366004613e77565b6112a3565b34801561056957600080fd5b506103dc610578366004613eb8565b61131b565b34801561058957600080fd5b506103dc610598366004613db5565b61146d565b3480156105a957600080fd5b506103ae6107d081565b3480156105bf57600080fd5b506103dc6105ce366004613c81565b6115d7565b3480156105df57600080fd5b506103ae60135481565b3480156105f557600080fd5b506040516009815260200161038f565b34801561061157600080fd5b506103dc610620366004613ef1565b611679565b34801561063157600080fd5b506103dc610640366004613f34565b6117b4565b34801561065157600080fd5b506103dc610660366004613f51565b611885565b34801561067157600080fd5b506103dc610680366004613f8c565b611944565b34801561069157600080fd5b506103dc6106a0366004613eb8565b6119bd565b3480156106b157600080fd5b50600b5461037b906001600160a01b031681565b3480156106d157600080fd5b506016546104c39060ff1681565b3480156106eb57600080fd5b506103dc6106fa366004613f34565b611b10565b34801561070b57600080fd5b506104c361071a366004613f34565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561074457600080fd5b506016546104c390610100900460ff1681565b34801561076357600080fd5b506103dc610772366004613f8c565b611d3b565b34801561078357600080fd5b506103dc610792366004613f34565b611db4565b3480156107a357600080fd5b506104c36107b2366004613f34565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107dc57600080fd5b506103ae611eaf565b3480156107f157600080fd5b506103ae610800366004613f34565b6001600160a01b031660009081526001602052604090205490565b34801561082757600080fd5b506103dc611eca565b34801561083c57600080fd5b506103dc61084b366004613faa565b611f7a565b34801561085c57600080fd5b506103dc61086b366004613f8c565b612014565b34801561087c57600080fd5b506000546001600160a01b031661037b565b34801561089a57600080fd5b506104c36121c3565b3480156108af57600080fd5b506103dc612232565b3480156108c457600080fd5b5060408051808201909152600381527f534b4900000000000000000000000000000000000000000000000000000000006020820152610476565b34801561090a57600080fd5b506104c3610919366004613c81565b61249a565b34801561092a57600080fd5b506103dc610939366004613ef1565b6124b1565b34801561094a57600080fd5b506103dc610959366004613f34565b612606565b34801561096a57600080fd5b506103dc610979366004613ff5565b6126a6565b34801561098a57600080fd5b506009546109cb9061ffff80821691620100008104821691640100000000820481169166010000000000008104821691680100000000000000009091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161038f565b348015610a0c57600080fd5b506103ae610a1b366004614012565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a5257600080fd5b506103ae60105481565b348015610a6857600080fd5b506103dc610a77366004613f34565b612748565b348015610a8857600080fd5b506103dc612af7565b348015610a9d57600080fd5b50600c54600d54600e54610abe926001600160a01b03908116928116911683565b604080516001600160a01b039485168152928416602084015292169181019190915260600161038f565b348015610af457600080fd5b50600f546104c390610100900460ff1681565b348015610b1357600080fd5b506104c3610b22366004613f34565b612bd7565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b6016546040517fefbdbabd00000000000000000000000000000000000000000000000000000000815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050505050565b6000610c11338484612c65565b5060015b92915050565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654760100000000000000000000000000000000000000000000900460ff1615610cd65760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610b71565b60004711610d265760405162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206d7573742068617665204554482e0000000000000000006044820152606401610b71565b610d326009600a614153565b610d3c9082614162565b336000908152600160205260409020541015610d9a5760405162461bcd60e51b815260206004820152601e60248201527f596f7520646f206e6f74206861766520656e6f75676820746f6b656e732e00006044820152606401610b71565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190614181565b6001600160a01b031663c9c65396600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190614181565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039283169081179091556000908152600260205260408120805460ff1916600117905554600a54610f78929182169116600019612c65565b600a54610f929030906001600160a01b0316600019612c65565b601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055610fdf6009600a614153565b610fe99082614162565b9050610ffd33308360008060006001612d72565b50600a546001600160a01b031663f305d7194730611030816001600160a01b031660009081526001602052604090205490565b6000805460405160e087901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af11580156110b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dc919061419e565b5050506110e7612232565b50565b60006110f86009600a614153565b60155461110591906141cc565b905090565b60006111186009600a614153565b6111279064e8d4a51000614162565b60000361113357600080fd5b61113f6009600a614153565b6111059064e8d4a51000614162565b6000546001600160a01b0316331461119c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b80518251146111ed5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b71565b60005b82518160ff16101561129e576112086009600a614153565b828260ff168151811061121d5761121d614207565b602002602001015161122f9190614162565b33600090815260016020526040902054101561124a57600080fd5b61128c838260ff168151811061126257611262614207565b6020026020010151838360ff168151811061127f5761127f614207565b60200260200101516115d7565b8061129681614236565b9150506111f0565b505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914611308576001600160a01b038416600090815260046020908152604080832033845290915281208054849290611302908490614255565b90915550505b611313848484612fb2565b949350505050565b6000546001600160a01b031633146113695760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60646113776009600a614153565b6113869064e8d4a51000614162565b61139091906141cc565b818361139e6009600a614153565b6113ad9064e8d4a51000614162565b6113b79190614162565b6113c191906141cc565b10156114355760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b71565b80826114436009600a614153565b6114529064e8d4a51000614162565b61145c9190614162565b61146691906141cc565b6015555050565b6000546001600160a01b031633146114bb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b805182511461150c5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b71565b60005b82518160ff16101561129e57818160ff168151811061153057611530614207565b6020026020010151611557336001600160a01b031660009081526001602052604090205490565b101561156257600080fd5b6115c433848360ff168151811061157b5761157b614207565b60200260200101516009600a6115919190614153565b858560ff16815181106115a6576115a6614207565b60200260200101516115b89190614162565b60008060006001612d72565b50806115cf81614236565b91505061150f565b6000546001600160a01b031633146116255760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654760100000000000000000000000000000000000000000000900460ff161561164f57600080fd5b61165b6009600a614153565b6116659082614162565b905061129e33838360008060006001612d72565b6000546001600160a01b031633146116c75760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6107d08361ffff16111580156116e357506107d08261ffff1611155b80156116f557506107d08161ffff1611155b6117415760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b71565b6008805461ffff9485167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909116176201000093851693909302929092177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff166401000000009190931602919091179055565b6000546001600160a01b031633146118025760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6016546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146118d35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b83856118e16009600a614153565b6118f09064e8d4a51000614162565b6118fa9190614162565b61190491906141cc565b60125581836119156009600a614153565b6119249064e8d4a51000614162565b61192e9190614162565b61193891906141cc565b60135560105550505050565b6000546001600160a01b031633146119925760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a0b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6103e8611a1a6009600a614153565b611a299064e8d4a51000614162565b611a3391906141cc565b8183611a416009600a614153565b611a509064e8d4a51000614162565b611a5a9190614162565b611a6491906141cc565b1015611ad85760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b71565b8082611ae66009600a614153565b611af59064e8d4a51000614162565b611aff9190614162565b611b0991906141cc565b6014555050565b6000546001600160a01b03163314611b5e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b038116611bda5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b71565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21536001600160a01b03821601611c785760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b71565b60008054611c91916001600160a01b0390911690611d3b565b611c9c816001611d3b565b600080546001600160a01b031681526001602052604090205415611ce357600080546001600160a01b03168082526001602052604090912054611ce1919083906115b8565b505b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314611d895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611e025760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654610100900460ff1615611e1757600080fd5b306001600160a01b03821603611e6f5760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b71565b601680546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6000611ebd6009600a614153565b60145461110591906141cc565b6000546001600160a01b03163314611f185760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60008054611f31916001600160a01b0390911690611d3b565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611fc85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600c80546001600160a01b0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600d805493851693821693909317909255600e8054919093169116179055565b6000546001600160a01b031633146120625760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b8015156000036120de576001600160a01b03828116600081815260026020526040808220805460ff1916905560165490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d190604401610bce565b60035415612145576203f480600354426120f89190614255565b116121455760405162461bcd60e51b815260206004820152601060248201527f332044617920636f6f6c646f776e2e21000000000000000000000000000000006044820152606401610b71565b6001600160a01b0382811660008181526002602052604090819020805460ff191660019081179091554260035560165491517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830152620100009004909116906380c581d190604401610bce565b5050565b600080546001600160a01b031633146122125760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600a5461222c9030906001600160a01b0316600019612c65565b50600190565b6000546001600160a01b031633146122805760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60165460ff16156122d35760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b71565b601654610100900460ff1661232a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b71565b6016546201000090046001600160a01b031661237057601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601654600b546040517f6c115c340000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b1580156123fb57600080fd5b505af192505050801561240c575060015b506016805460ff19166001179055600b5461271090612449906001600160a01b03166001600160a01b031660009081526001602052604090205490565b61245490600a614162565b61245e91906141cc565b601255600b546001600160a01b03166000908152600160205260409020546127109061248b906019614162565b61249591906141cc565b601355565b60006124a7338484612fb2565b5060019392505050565b6000546001600160a01b031633146124ff5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6009805461ffff8581167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091176201000085831602177fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff16640100000000848316027fffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff161766c80000000000001791829055660100000000000090910416816125ad848661426c565b6125b7919061426c565b6125c1919061426c565b6009805461ffff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff909216919091179055505050565b6000546001600160a01b031633146126545760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b6016546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c290602401611850565b6000546001600160a01b031633146126f45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b600f80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061273d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146127965760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ff9190614181565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f79190614181565b90506001600160a01b038116612a9557816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129699190614181565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129da9190614181565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a639190614181565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612abe565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915561129e903090600019612c65565b6000546001600160a01b03163314612b455760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b71565b601654610100900460ff1615612b9d5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b71565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156110e7573d6000803e3d6000fd5b6016546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190614292565b6001600160a01b038316612cbb5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b71565b6001600160a01b038216612d115760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b71565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601654600090610100900460ff16612e1e57612d8e8888613490565b601654610100900460ff16158015612dab5750612dab88886135ee565b15612e1e5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b71565b612e2888886135ee565b15612edb576016546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152898116602483015260448201899052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612ec4575060408051601f3d908101601f19168201909252612ec191810190614292565b60015b612ecd57600080fd5b905080612ed957600080fd5b505b6001600160a01b03881660009081526001602052604081208054889290612f03908490614255565b909155506000905085612f165786612f22565b612f228986868a6136c3565b6001600160a01b038916600090815260016020526040812080549293508392909190612f4f9084906142af565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f9b91815260200190565b60405180910390a350600198975050505050505050565b60006001600160a01b0384166130305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b71565b6001600160a01b0383166130ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b71565b600082116131225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b71565b601654760100000000000000000000000000000000000000000000900460ff1661314b57600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff161561317957600192506131a7565b6001600160a01b03861660009081526002602052604090205460ff16156131a357600191506131a7565b5060015b6131b187876135ee565b156133b75760165460ff166132085760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b71565b82806132115750815b156132d5576001600160a01b03871660009081526006602052604090205460ff1615801561325857506001600160a01b03861660009081526006602052604090205460ff16155b156132d5576014548511156132d55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b71565b600a546001600160a01b038781169116148015906132f1575081155b156133b7576001600160a01b03861660009081526006602052604090205460ff166133b75760155485613339886001600160a01b031660009081526001602052604090205490565b61334391906142af565b11156133b75760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b71565b6001600160a01b03871660009081526005602052604090205460019060ff16806133f957506001600160a01b03871660009081526005602052604090205460ff165b15613402575060005b821561347557600f5460ff161580156134225750600f54610100900460ff165b15613475574260105460115461343891906142af565b10156134755730600090815260016020526040902054601254811061347357601354811061346557506013545b61346e8161379a565b426011555b505b61348488888884888888612d72565b98975050505050505050565b601654610100900460ff161561350e5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b71565b61351882826135ee565b1580156135325750600b546001600160a01b038281169116145b156121bf576001600160a01b038083166000908152600760205260409020805460ff191660011790556016805461ff0019166101001790819055620100009004166135a757601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b600080546001600160a01b0384811691161480159061361b57506000546001600160a01b03838116911614155b801561363257506000546001600160a01b03163214155b801561365757506001600160a01b03821660009081526007602052604090205460ff16155b801561367c57506001600160a01b03831660009081526007602052604090205460ff16155b801561369357506001600160a01b03821661dead14155b80156136a757506001600160a01b03821615155b80156136bc57506001600160a01b0383163014155b9392505050565b60008084156136d9575060085461ffff16613703565b83156136f2575060085462010000900461ffff16613703565b50600854640100000000900461ffff165b60006127106137128386614162565b61371c91906141cc565b306000908152600160205260408120805492935083929091906137409084906142af565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361378f8185614255565b979650505050505050565b600f805460ff191660011790556040805160a08101825260095461ffff808216835262010000820481166020840152640100000000820481169383019390935266010000000000008104831660608301526801000000000000000090049091166080820181905260000361380e5750613bc3565b306000908152600460209081526040808320600a546001600160a01b031684529091529020546000191461386757306000908152600460209081526040808320600a546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061389c5761389c614207565b6001600160a01b03928316602091820292909201810191909152600a54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561390e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139329190614181565b8160018151811061394557613945614207565b6001600160a01b039283166020918202929092010152600a546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac947906139a49086906000908690309042906004016142c7565b600060405180830381600087803b1580156139be57600080fd5b505af11580156139d2573d6000803e3d6000fd5b5050505060004790506000836080015161ffff16846020015161ffff16836139fa9190614162565b613a0491906141cc565b90506000846080015161ffff16856060015161ffff1684613a259190614162565b613a2f91906141cc565b90506000856080015161ffff16866040015161ffff1685613a509190614162565b613a5a91906141cc565b9050600081613a6984866142af565b613a7391906142af565b613a7d9086614255565b875190915061ffff1615613ac757600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613ac5573d6000803e3d6000fd5b505b602087015161ffff1615613b1157600d546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015613b0f573d6000803e3d6000fd5b505b600060c88860800151613b249190614338565b61ffff161115613b7157604051731676f2a357cc4faeaded4a99aa0ab0a29cb7d9969084156108fc029085906000818181858888f19350505050158015613b6f573d6000803e3d6000fd5b505b604087015161ffff1615613bbb57600e546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613bb9573d6000803e3d6000fd5b505b505050505050505b50600f805460ff19169055565b80151581146110e757600080fd5b60008060408385031215613bf157600080fd5b8235613bfc81613bd0565b91506020830135613c0c81613bd0565b809150509250929050565b600060208083528351808285015260005b81811015613c4457858101830151858201604001528201613c28565b81811115613c56576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110e757600080fd5b60008060408385031215613c9457600080fd5b8235613c9f81613c6c565b946020939093013593505050565b600060208284031215613cbf57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613d1e57613d1e613cc6565b604052919050565b600067ffffffffffffffff821115613d4057613d40613cc6565b5060051b60200190565b600082601f830112613d5b57600080fd5b81356020613d70613d6b83613d26565b613cf5565b82815260059290921b84018101918181019086841115613d8f57600080fd5b8286015b84811015613daa5780358352918301918301613d93565b509695505050505050565b60008060408385031215613dc857600080fd5b823567ffffffffffffffff80821115613de057600080fd5b818501915085601f830112613df457600080fd5b81356020613e04613d6b83613d26565b82815260059290921b84018101918181019089841115613e2357600080fd5b948201945b83861015613e4a578535613e3b81613c6c565b82529482019490820190613e28565b96505086013592505080821115613e6057600080fd5b50613e6d85828601613d4a565b9150509250929050565b600080600060608486031215613e8c57600080fd5b8335613e9781613c6c565b92506020840135613ea781613c6c565b929592945050506040919091013590565b60008060408385031215613ecb57600080fd5b50508035926020909101359150565b803561ffff81168114613eec57600080fd5b919050565b600080600060608486031215613f0657600080fd5b613f0f84613eda565b9250613f1d60208501613eda565b9150613f2b60408501613eda565b90509250925092565b600060208284031215613f4657600080fd5b81356136bc81613c6c565b600080600080600060a08688031215613f6957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215613f9f57600080fd5b8235613bfc81613c6c565b600080600060608486031215613fbf57600080fd5b8335613fca81613c6c565b92506020840135613fda81613c6c565b91506040840135613fea81613c6c565b809150509250925092565b60006020828403121561400757600080fd5b81356136bc81613bd0565b6000806040838503121561402557600080fd5b823561403081613c6c565b91506020830135613c0c81613c6c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b808511156140aa57816000190482111561409057614090614040565b8085161561409d57918102915b93841c9390800290614074565b509250929050565b6000826140c157506001610c15565b816140ce57506000610c15565b81600181146140e457600281146140ee5761410a565b6001915050610c15565b60ff8411156140ff576140ff614040565b50506001821b610c15565b5060208310610133831016604e8410600b841016171561412d575081810a610c15565b614137838361406f565b806000190482111561414b5761414b614040565b029392505050565b60006136bc60ff8416836140b2565b600081600019048311821515161561417c5761417c614040565b500290565b60006020828403121561419357600080fd5b81516136bc81613c6c565b6000806000606084860312156141b357600080fd5b8351925060208401519150604084015190509250925092565b600082614202577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff821660ff810361424c5761424c614040565b60010192915050565b60008282101561426757614267614040565b500390565b600061ffff80831681851680830382111561428957614289614040565b01949350505050565b6000602082840312156142a457600080fd5b81516136bc81613bd0565b600082198211156142c2576142c2614040565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156143175784516001600160a01b0316835293830193918301916001016142f2565b50506001600160a01b03969096166060850152505050608001529392505050565b600061ffff8381169083168181101561435357614353614040565b03939250505056fea2646970667358221220f6762645512b297e2284a4102fa41ac73a43fea8a3794d77e3b823d5e00c7bcf64736f6c634300080d0033
Deployed Bytecode Sourcemap
3920:21324:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5517:73;;;;;;;;;;;;5548:42;5517:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5517:73:0;;;;;;;;6250:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;6250:28:0;245:177:1;15130:151:0;;;;;;;;;;-1:-1:-1;15130:151:0;;;;;:::i;:::-;;:::i;:::-;;4972:114;;;;;;;;;;-1:-1:-1;4972:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;4972:114:0;931:365:1;11881:80:0;;;;;;;;;;-1:-1:-1;11953:5:0;;;;;;;;;;;;;;;;;11881:80;;;;;;;:::i;5456:26::-;;;;;;;;;;-1:-1:-1;5456:26:0;;;;-1:-1:-1;;;;;5456:26:0;;;12491:159;;;;;;;;;;-1:-1:-1;12491:159:0;;;;;:::i;:::-;;:::i;:::-;;;2854:14:1;;2847:22;2829:41;;2817:2;2802:18;12491:159:0;2689:187:1;8146:1057:0;;;;;;;;;;-1:-1:-1;8146:1057:0;;;;;:::i;:::-;;:::i;17466:112::-;;;;;;;;;;;;;:::i;11584:115::-;;;;;;;;;;;;;:::i;9456:397::-;;;;;;;;;;-1:-1:-1;9456:397:0;;;;;:::i;:::-;;:::i;13157:306::-;;;;;;;;;;-1:-1:-1;13157:306:0;;;;;:::i;:::-;;:::i;16519:264::-;;;;;;;;;;-1:-1:-1;16519:264:0;;;;;:::i;:::-;;:::i;23299:418::-;;;;;;;;;;-1:-1:-1;23299:418:0;;;;;:::i;:::-;;:::i;5253:42::-;;;;;;;;;;;;5291:4;5253:42;;9211:237;;;;;;;;;;-1:-1:-1;9211:237:0;;;;;:::i;:::-;;:::i;6285:25::-;;;;;;;;;;;;;;;;11705:80;;;;;;;;;;-1:-1:-1;11705:80:0;;4638:1;6525:36:1;;6513:2;6498:18;11705:80:0;6383:184:1;15289:397:0;;;;;;;;;;-1:-1:-1;15289:397:0;;;;;:::i;:::-;;:::i;15014:108::-;;;;;;;;;;-1:-1:-1;15014:108:0;;;;;:::i;:::-;;:::i;17586:338::-;;;;;;;;;;-1:-1:-1;17586:338:0;;;;;:::i;:::-;;:::i;16791:140::-;;;;;;;;;;-1:-1:-1;16791:140:0;;;;;:::i;:::-;;:::i;16242:269::-;;;;;;;;;;-1:-1:-1;16242:269:0;;;;;:::i;:::-;;:::i;5489:21::-;;;;;;;;;;-1:-1:-1;5489:21:0;;;;-1:-1:-1;;;;;5489:21:0;;;6442:34;;;;;;;;;;-1:-1:-1;6442:34:0;;;;;;;;10407:623;;;;;;;;;;-1:-1:-1;10407:623:0;;;;;:::i;:::-;;:::i;17077:125::-;;;;;;;;;;-1:-1:-1;17077:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;17166:28:0;17142:4;17166:28;;;:19;:28;;;;;;;;;17077:125;6483:36;;;;;;;;;;-1:-1:-1;6483:36:0;;;;;;;;;;;17210:134;;;;;;;;;;-1:-1:-1;17210:134:0;;;;;:::i;:::-;;:::i;14527:220::-;;;;;;;;;;-1:-1:-1;14527:220:0;;;;;:::i;:::-;;:::i;16939:130::-;;;;;;;;;;-1:-1:-1;16939:130:0;;;;;:::i;:::-;-1:-1:-1;;;;;17031:30:0;17007:4;17031:30;;;:21;:30;;;;;;;;;16939:130;17352:106;;;;;;;;;;;;;:::i;12193:117::-;;;;;;;;;;-1:-1:-1;12193:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;12286:16:0;12259:7;12286:16;;;:7;:16;;;;;;;12193:117;11038:193;;;;;;;;;;;;;:::i;15980:254::-;;;;;;;;;;-1:-1:-1;15980:254:0;;;;;:::i;:::-;;:::i;14019:500::-;;;;;;;;;;-1:-1:-1;14019:500:0;;;;;:::i;:::-;;:::i;11967:79::-;;;;;;;;;;-1:-1:-1;12019:7:0;12037:6;-1:-1:-1;;;;;12037:6:0;11967:79;;12976:173;;;;;;;;;;;;;:::i;22557:544::-;;;;;;;;;;;;;:::i;11791:84::-;;;;;;;;;;-1:-1:-1;11865:7:0;;;;;;;;;;;;;;;;;11791:84;;12318:165;;;;;;;;;;-1:-1:-1;12318:165:0;;;;;:::i;:::-;;:::i;15694:278::-;;;;;;;;;;-1:-1:-1;15694:278:0;;;;;:::i;:::-;;:::i;14755:118::-;;;;;;;;;;-1:-1:-1;14755:118:0;;;;;:::i;:::-;;:::i;17932:164::-;;;;;;;;;;-1:-1:-1;17932:164:0;;;;;:::i;:::-;;:::i;5095:149::-;;;;;;;;;;-1:-1:-1;5095:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9230:6:1;9263:15;;;9245:34;;9315:15;;;9310:2;9295:18;;9288:43;9367:15;;;9347:18;;;9340:43;;;;9419:15;;9414:2;9399:18;;9392:43;9472:15;;;9466:3;9451:19;;9444:44;9207:3;9192:19;5095:149:0;8971:523:1;12052:133:0;;;;;;;;;;-1:-1:-1;12052:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12154:19:0;;;12136:7;12154:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12052:133;6168:44;;;;;;;;;;;;;;;;13471:540;;;;;;;;;;-1:-1:-1;13471:540:0;;;;;:::i;:::-;;:::i;23109:182::-;;;;;;;;;;;;;:::i;5826:263::-;;;;;;;;;;-1:-1:-1;5826:263:0;;;;;;;;-1:-1:-1;;;;;5826:263:0;;;;;;;;;;;;;;-1:-1:-1;;;;;10221:15:1;;;10203:34;;10273:15;;;10268:2;10253:18;;10246:43;10325:15;;10305:18;;;10298:43;;;;10130:2;10115:18;5826:263:0;9892:455:1;6122:39:0;;;;;;;;;;-1:-1:-1;6122:39:0;;;;;;;;;;;14881:125;;;;;;;;;;-1:-1:-1;14881:125:0;;;;;:::i;:::-;;:::i;15130:151::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;;;;;;;;;15225:9:::1;::::0;:48:::1;::::0;;;;10885:14:1;;10878:22;15225:48:0::1;::::0;::::1;10860:41:1::0;10944:14;;10937:22;10917:18;;;10910:50;15225:9:0;;;::::1;-1:-1:-1::0;;;;;15225:9:0::1;::::0;:24:::1;::::0;10833:18:1;;15225:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15130:151:::0;;:::o;12491:159::-;12566:4;12583:37;12592:10;12604:7;12613:6;12583:8;:37::i;:::-;-1:-1:-1;12638:4:0;12491:159;;;;;:::o;8146:1057::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;8227:13:::1;::::0;;;::::1;;;8226:14;8218:46;;;::::0;-1:-1:-1;;;8218:46:0;;11173:2:1;8218:46:0::1;::::0;::::1;11155:21:1::0;11212:2;11192:18;;;11185:30;11251:21;11231:18;;;11224:49;11290:18;;8218:46:0::1;10971:343:1::0;8218:46:0::1;8307:1;8283:21;:25;8275:62;;;::::0;-1:-1:-1;;;8275:62:0;;11521:2:1;8275:62:0::1;::::0;::::1;11503:21:1::0;11560:2;11540:18;;;11533:30;11599:25;11579:18;;;11572:53;11642:18;;8275:62:0::1;11319:347:1::0;8275:62:0::1;8396:13;4638:1;8396:2;:13;:::i;:::-;8381:28;::::0;:12;:28:::1;:::i;:::-;8366:10;12259:7:::0;12286:16;;;:7;:16;;;;;;8356:53:::1;;8348:96;;;::::0;-1:-1:-1;;;8348:96:0;;13798:2:1;8348:96:0::1;::::0;::::1;13780:21:1::0;13837:2;13817:18;;;13810:30;13876:32;13856:18;;;13849:60;13926:18;;8348:96:0::1;13596:354:1::0;8348:96:0::1;8477:9;;;;;;;;;-1:-1:-1::0;;;;;8477:9:0::1;-1:-1:-1::0;;;;;8477:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8466:42:0::1;;8509:9;;;;;;;;;-1:-1:-1::0;;;;;8509:9:0::1;-1:-1:-1::0;;;;;8509:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8466:75;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;14464:15:1;;;8466:75:0::1;::::0;::::1;14446:34:1::0;8535:4:0::1;14496:18:1::0;;;14489:43;14358:18;;8466:75:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8457:6;:84:::0;;-1:-1:-1;;8457:84:0::1;-1:-1:-1::0;;;;;8457:84:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;8552:15:0;;;:7:::1;:15;::::0;;;;:22;;-1:-1:-1;;8552:22:0::1;-1:-1:-1::0;8552:22:0::1;::::0;;8596:6;8612:9:::1;::::0;8587:55:::1;::::0;8596:6;;::::1;::::0;8612:9:::1;-1:-1:-1::0;;8587:8:0::1;:55::i;:::-;8685:9;::::0;8653:62:::1;::::0;8670:4:::1;::::0;-1:-1:-1;;;;;8685:9:0::1;-1:-1:-1::0;;8653:8:0::1;:62::i;:::-;8728:13;:20:::0;;;::::1;::::0;::::1;::::0;;8777:13:::1;4638:1;8777:2;:13;:::i;:::-;8761:29;::::0;;::::1;:::i;:::-;;;8801:85;8819:10;8839:4;8846:12;8860:5;8867::::0;8874::::1;8881:4;8801:17;:85::i;:::-;-1:-1:-1::0;8899:9:0::1;::::0;-1:-1:-1;;;;;8899:9:0::1;:25;8932:21;8977:4;8997:24;8977:4:::0;-1:-1:-1;;;;;12286:16:0;12259:7;12286:16;;;:7;:16;;;;;;;12193:117;8997:24:::1;9036:1;9122:6:::0;;8899:270:::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;14925:15:1;;;8899:270:0::1;::::0;::::1;14907:34:1::0;14957:18;;;14950:34;;;;15000:18;;;14993:34;;;15043:18;;;15036:34;;;;9122:6:0;;;::::1;15086:19:1::0;;;15079:44;9143:15:0::1;15139:19:1::0;;;15132:35;14818:19;;8899:270:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9180:15;:13;:15::i;:::-;8146:1057:::0;:::o;17466:112::-;17511:7;17556:13;4638:1;17556:2;:13;:::i;:::-;17538:14;;:32;;;;:::i;:::-;17531:39;;17466:112;:::o;11584:115::-;11639:7;4700:13;4638:1;4700:2;:13;:::i;:::-;4683:30;;4482:17;4683:30;:::i;:::-;11665:1;11654:12;11650:31;;11670:8;;;11650:31;4700:13;4638:1;4700:2;:13;:::i;:::-;4683:30;;4482:17;4683:30;:::i;9456:397::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;9605:7:::1;:14;9586:8;:15;:33;9578:67;;;::::0;-1:-1:-1;;;9578:67:0;;15970:2:1;9578:67:0::1;::::0;::::1;15952:21:1::0;16009:2;15989:18;;;15982:30;16048:23;16028:18;;;16021:51;16089:18;;9578:67:0::1;15768:345:1::0;9578:67:0::1;9661:7;9656:190;9678:8;:15;9674:1;:19;;;9656:190;;;9759:13;4638:1;9759:2;:13;:::i;:::-;9748:7;9756:1;9748:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;9733:10;12259:7:::0;12286:16;;;:7;:16;;;;;;9723:49:::1;;9715:58;;;::::0;::::1;;9788:46;9810:8;9819:1;9810:11;;;;;;;;;;:::i;:::-;;;;;;;9823:7;9831:1;9823:10;;;;;;;;;;:::i;:::-;;;;;;;9788:21;:46::i;:::-;9695:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9656:190;;;;9456:397:::0;;:::o;13157:306::-;-1:-1:-1;;;;;13278:19:0;;13257:4;13278:19;;;:11;:19;;;;;;;;13298:10;13278:31;;;;;;;;-1:-1:-1;;13278:52:0;13274:126;;-1:-1:-1;;;;;13347:19:0;;;;;;:11;:19;;;;;;;;13367:10;13347:31;;;;;;;:41;;13382:6;;13347:19;:41;;13382:6;;13347:41;:::i;:::-;;;;-1:-1:-1;;13274:126:0;13419:36;13429:6;13437:9;13448:6;13419:9;:36::i;:::-;13412:43;13157:306;-1:-1:-1;;;;13157:306:0:o;16519:264::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;16661:3:::1;4700:13;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16651:13;;;;:::i;:::-;16639:7:::0;16628;4700:13:::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16618:17;;;;:::i;:::-;16617:29;;;;:::i;:::-;:48;;16609:109;;;::::0;-1:-1:-1;;;16609:109:0;;16819:2:1;16609:109:0::1;::::0;::::1;16801:21:1::0;16858:2;16838:18;;;16831:30;16897:34;16877:18;;;16870:62;16968:18;16948;;;16941:46;17004:19;;16609:109:0::1;16617:412:1::0;16609:109:0::1;16768:7:::0;16757;4700:13:::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16747:17;;;;:::i;:::-;16746:29;;;;:::i;:::-;16729:14;:46:::0;-1:-1:-1;;16519:264:0:o;23299:418::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;23434:7:::1;:14;23415:8;:15;:33;23407:67;;;::::0;-1:-1:-1;;;23407:67:0;;15970:2:1;23407:67:0::1;::::0;::::1;15952:21:1::0;16009:2;15989:18;;;15982:30;16048:23;16028:18;;;16021:51;16089:18;;23407:67:0::1;15768:345:1::0;23407:67:0::1;23490:7;23485:225;23507:8;:15;23503:1;:19;;;23485:225;;;23577:7;23585:1;23577:10;;;;;;;;;;:::i;:::-;;;;;;;23552:21;23562:10;-1:-1:-1::0;;;;;12286:16:0;12259:7;12286:16;;;:7;:16;;;;;;;12193:117;23552:21:::1;:35;;23544:44;;;::::0;::::1;;23603:95;23621:10;23633:8;23642:1;23633:11;;;;;;;;;;:::i;:::-;;;;;;;4638:1;23657:2;:13;;;;:::i;:::-;23646:7;23654:1;23646:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;23672:5;23679::::0;23686::::1;23693:4;23603:17;:95::i;:::-;-1:-1:-1::0;23524:3:0;::::1;::::0;::::1;:::i;:::-;;;;23485:225;;9211:237:::0;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;9307:13:::1;::::0;;;::::1;;;9306:14;9298:23;;;::::0;::::1;;9348:13;4638:1;9348:2;:13;:::i;:::-;9341:20;::::0;:6;:20:::1;:::i;:::-;9332:29;;9372:68;9390:10;9402:2;9406:6;9414:5;9421::::0;9428::::1;9435:4;9372:17;:68::i;15289:397::-:0;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;5291:4:::1;15396:6;:21;;;;:65;;;;;5341:4;15438:7;:23;;;;15396:65;:117;;;;;5395:4;15482:11;:31;;;;15396:117;15388:170;;;::::0;-1:-1:-1;;;15388:170:0;;17236:2:1;15388:170:0::1;::::0;::::1;17218:21:1::0;17275:2;17255:18;;;17248:30;17314:25;17294:18;;;17287:53;17357:18;;15388:170:0::1;17034:347:1::0;15388:170:0::1;15569:9;:25:::0;;::::1;::::0;;::::1;15605:27:::0;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;15643:35:::0;::::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;15289:397::o;15014:108::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;15083:9:::1;::::0;:31:::1;::::0;;;;-1:-1:-1;;;;;178:55:1;;;15083:31:0::1;::::0;::::1;160:74:1::0;15083:9:0;;;::::1;::::0;;::::1;::::0;:22:::1;::::0;133:18:1;;15083:31:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15014:108:::0;:::o;17586:338::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;17800:16;17780;4700:13:::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;17770:26;;;;:::i;:::-;17769:47;;;;:::i;:::-;17753:13;:63:::0;17868:13;17851;4700::::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;17841:23;;;;:::i;:::-;17840:41;;;;:::i;:::-;17827:10;:54:::0;17892:17:::1;:24:::0;-1:-1:-1;;;;17586:338:0:o;16791:140::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;-1:-1:-1;;;;;16883:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;16883:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16791:140::o;16242:269::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;16383:4:::1;4700:13;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16373:14;;;;:::i;:::-;16361:7:::0;16350;4700:13:::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16340:17;;;;:::i;:::-;16339:29;;;;:::i;:::-;:49;;16331:117;;;::::0;-1:-1:-1;;;16331:117:0;;17588:2:1;16331:117:0::1;::::0;::::1;17570:21:1::0;17627:2;17607:18;;;17600:30;17666:34;17646:18;;;17639:62;17737:25;17717:18;;;17710:53;17780:19;;16331:117:0::1;17386:419:1::0;16331:117:0::1;16496:7:::0;16485;4700:13:::1;4638:1;4700:2;:13;:::i;:::-;4683:30;::::0;4482:17:::1;4683:30;:::i;:::-;16475:17;;;;:::i;:::-;16474:29;;;;:::i;:::-;16459:12;:44:::0;-1:-1:-1;;16242:269:0:o;10407:623::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;-1:-1:-1;;;;;10486:22:0;::::1;10478:96;;;::::0;-1:-1:-1;;;10478:96:0;;18012:2:1;10478:96:0::1;::::0;::::1;17994:21:1::0;18051:2;18031:18;;;18024:30;18090:34;18070:18;;;18063:62;18161:31;18141:18;;;18134:59;18210:19;;10478:96:0::1;17810:425:1::0;10478:96:0::1;10593:16:::0;-1:-1:-1;;;;;10593:16:0;::::1;::::0;10585:90:::1;;;::::0;-1:-1:-1;;;10585:90:0;;18012:2:1;10585:90:0::1;::::0;::::1;17994:21:1::0;18051:2;18031:18;;;18024:30;18090:34;18070:18;;;18063:62;18161:31;18141:18;;;18134:59;18210:19;;10585:90:0::1;17810:425:1::0;10585:90:0::1;10706:6;::::0;;10686:34:::1;::::0;-1:-1:-1;;;;;10706:6:0;;::::1;::::0;10686:19:::1;:34::i;:::-;10731:35;10751:8;10761:4;10731:19;:35::i;:::-;10810:1;10800:6:::0;;-1:-1:-1;;;;;10800:6:0::1;12286:16:::0;;:7;:16;;;;;;10790:21;10787:134:::1;;10846:6;::::0;;-1:-1:-1;;;;;10846:6:0::1;12286:16:::0;;;:7;:16;;;;;;;10828:81:::1;::::0;10846:6;10854:8;;10864:17:::1;12193:117:::0;10828:81:::1;;10787:134;10941:6;:17:::0;;-1:-1:-1;;10941:17:0::1;-1:-1:-1::0;;;;;10941:17:0;::::1;::::0;;::::1;::::0;;10974:38:::1;::::0;10941:17;;;;10974:38:::1;::::0;10941:6;10974:38:::1;10407:623:::0;:::o;17210:134::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;-1:-1:-1;;;;;17298:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;17298:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17210:134::o;14527:220::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;14611:16:::1;::::0;::::1;::::0;::::1;;;14610:17;14602:26;;;::::0;::::1;;14670:4;-1:-1:-1::0;;;;;14647:28:0;::::1;::::0;14639:55:::1;;;::::0;-1:-1:-1;;;14639:55:0;;18442:2:1;14639:55:0::1;::::0;::::1;18424:21:1::0;18481:2;18461:18;;;18454:30;18520:16;18500:18;;;18493:44;18554:18;;14639:55:0::1;18240:338:1::0;14639:55:0::1;14705:9;:34:::0;;-1:-1:-1;;;;;14705:34:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;14527:220::o;17352:106::-;17393:7;17436:13;4638:1;17436:2;:13;:::i;:::-;17420:12;;:30;;;;:::i;11038:193::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;11123:6:::1;::::0;;11103:34:::1;::::0;-1:-1:-1;;;;;11123:6:0;;::::1;::::0;11103:19:::1;:34::i;:::-;11165:1;11148:19:::0;;-1:-1:-1;;11148:19:0::1;::::0;;11183:40:::1;::::0;11165:1;;11183:40:::1;::::0;11165:1;;11183:40:::1;11038:193::o:0;15980:254::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;16100:11:::1;:42:::0;;-1:-1:-1;;;;;16100:42:0;;::::1;-1:-1:-1::0;;16100:42:0;;::::1;;::::0;;;16153:15;:30;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;16194:16;:32;;;;;::::1;::::0;::::1;;::::0;;15980:254::o;14019:500::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;14100:16;::::1;;14111:5;14100:16:::0;14096:416:::1;;-1:-1:-1::0;;;;;14133:13:0;;::::1;14149:5;14133:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;14133:21:0::1;::::0;;14169:9:::1;::::0;:32;;;;;::::1;::::0;::::1;18751:74:1::0;;;;18841:18;;;18834:50;;;;14169:9:0;;::::1;::::0;;::::1;::::0;:19:::1;::::0;18724:18:1;;14169:32:0::1;18583:307:1::0;14096:416:0::1;14238:17;::::0;:22;14234:136:::1;;14327:6;14307:17;;14289:15;:35;;;;:::i;:::-;:44;14281:73;;;::::0;-1:-1:-1;;;14281:73:0;;19097:2:1;14281:73:0::1;::::0;::::1;19079:21:1::0;19136:2;19116:18;;;19109:30;19175:18;19155;;;19148:46;19211:18;;14281:73:0::1;18895:340:1::0;14281:73:0::1;-1:-1:-1::0;;;;;14384:13:0;;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;:20;;-1:-1:-1;;14384:20:0::1;14400:4;14384:20:::0;;::::1;::::0;;;14439:15:::1;14419:17;:35:::0;14469:9:::1;::::0;:31;;;;;::::1;::::0;::::1;18751:74:1::0;;;;18841:18;;;18834:50;14469:9:0;;::::1;::::0;;::::1;::::0;:19:::1;::::0;18724:18:1;;14469:31:0::1;18583:307:1::0;14096:416:0::1;14019:500:::0;;:::o;12976:173::-;13040:4;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;13089:9:::1;::::0;13057:62:::1;::::0;13074:4:::1;::::0;-1:-1:-1;;;;;13089:9:0::1;-1:-1:-1::0;;13057:8:0::1;:62::i;:::-;-1:-1:-1::0;13137:4:0::1;12976:173:::0;:::o;22557:544::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;22619:14:::1;::::0;::::1;;22618:15;22610:52;;;::::0;-1:-1:-1;;;22610:52:0;;19442:2:1;22610:52:0::1;::::0;::::1;19424:21:1::0;19481:2;19461:18;;;19454:30;19520:26;19500:18;;;19493:54;19564:18;;22610:52:0::1;19240:348:1::0;22610:52:0::1;22681:16;::::0;::::1;::::0;::::1;;;22673:53;;;::::0;-1:-1:-1;;;22673:53:0;;19795:2:1;22673:53:0::1;::::0;::::1;19777:21:1::0;19834:2;19814:18;;;19807:30;19873:26;19853:18;;;19846:54;19917:18;;22673:53:0::1;19593:348:1::0;22673:53:0::1;22748:9;::::0;;;::::1;-1:-1:-1::0;;;;;22748:9:0::1;22737:99;;22788:9;:36:::0;;;::::1;22818:4;22788:36:::0;::::1;;::::0;;22737:99:::1;22850:9;::::0;22870:6:::1;::::0;22850:85:::1;::::0;;;;-1:-1:-1;;;;;22870:6:0;;::::1;22850:85;::::0;::::1;20169:74:1::0;20291:10;22885:12:0::1;20279:23:1::0;20259:18;;;20252:51;20351:18;22907:15:0::1;20339:31:1::0;20319:18;;;20312:59;4638:1:0::1;20387:18:1::0;;;20380:45;22850:9:0;;;::::1;;::::0;:19:::1;::::0;20141::1;;22850:85:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;22846:101:::0;22957:14:::1;:21:::0;;-1:-1:-1;;22957:21:0::1;22974:4;22957:21;::::0;;23016:6:::1;::::0;23032:5:::1;::::0;23006:17:::1;::::0;-1:-1:-1;;;;;23016:6:0::1;-1:-1:-1::0;;;;;12286:16:0;12259:7;12286:16;;;:7;:16;;;;;;;12193:117;23006:17:::1;:22;::::0;23026:2:::1;23006:22;:::i;:::-;23005:32;;;;:::i;:::-;22989:13;:48:::0;23072:6:::1;::::0;-1:-1:-1;;;;;23072:6:0::1;12259:7:::0;12286:16;;;:7;:16;;;;;;23088:5:::1;::::0;23062:22:::1;::::0;23082:2:::1;23062:22;:::i;:::-;23061:32;;;;:::i;:::-;23048:10;:45:::0;22557:544::o;12318:165::-;12396:4;12413:40;12423:10;12435:9;12446:6;12413:9;:40::i;:::-;-1:-1:-1;12471:4:0;;12318:165;-1:-1:-1;;;12318:165:0:o;15694:278::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;15786:7:::1;:29:::0;;::::1;::::0;;::::1;15826:17:::0;;;;;;;;;;;::::1;;;15884::::0;;15854:19;;;::::1;;15884:17:::0;;;;::::1;::::0;;;;;15953:11;;::::1;;15854:19:::0;15928:15:::1;15826:17:::0;15786:29;15928:15:::1;:::i;:::-;:22;;;;:::i;:::-;:36;;;;:::i;:::-;15912:7;:52:::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;15694:278:0:o;14755:118::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;14829:9:::1;::::0;:36:::1;::::0;;;;-1:-1:-1;;;;;178:55:1;;;14829:36:0::1;::::0;::::1;160:74:1::0;14829:9:0;;;::::1;::::0;;::::1;::::0;:27:::1;::::0;133:18:1;;14829:36:0::1;14:226:1::0;17932:164:0;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;18008:19:::1;:29:::0;;;::::1;;;;-1:-1:-1::0;;18008:29:0;;::::1;;::::0;;18053:35:::1;::::0;::::1;::::0;::::1;::::0;18030:7;2854:14:1;2847:22;2829:41;;2817:2;2802:18;;2689:187;18053:35:0::1;;;;;;;;17932:164:::0;:::o;13471:540::-;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;13540:20:::1;13573:9;13540:43;;13594:16;13624:10;-1:-1:-1::0;;;;;13624:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13613:40:0::1;;13662:4;13669:10;-1:-1:-1::0;;;;;13669:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13613:74;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;14464:15:1;;;13613:74:0::1;::::0;::::1;14446:34:1::0;14516:15;;14496:18;;;14489:43;14358:18;;13613:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13594:93:::0;-1:-1:-1;;;;;;13702:22:0;::::1;13698:200;;13761:10;-1:-1:-1::0;;;;;13761:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13750:43:0::1;;13802:4;13809:10;-1:-1:-1::0;;;;;13809:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13750:77;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;14464:15:1;;;13750:77:0::1;::::0;::::1;14446:34:1::0;14516:15;;14496:18;;;14489:43;14358:18;;13750:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13741:6;:86:::0;;-1:-1:-1;;13741:86:0::1;-1:-1:-1::0;;;;;13741:86:0;;;::::1;::::0;;;::::1;::::0;;13698:200:::1;;;13869:6;:17:::0;;-1:-1:-1;;13869:17:0::1;-1:-1:-1::0;;;;;13869:17:0;::::1;;::::0;;13698:200:::1;13908:9;:22:::0;;-1:-1:-1;;13908:22:0::1;-1:-1:-1::0;;;;;13908:22:0;::::1;::::0;;::::1;::::0;;;13941:62:::1;::::0;13958:4:::1;::::0;-1:-1:-1;;13941:8:0::1;:62::i;23109:182::-:0;6911:6;;-1:-1:-1;;;;;6911:6:0;6921:10;6911:20;6903:50;;;;-1:-1:-1;;;6903:50:0;;10554:2:1;6903:50:0;;;10536:21:1;10593:2;10573:18;;;10566:30;-1:-1:-1;;;10612:18:1;;;10605:47;10669:18;;6903:50:0;10352:341:1;6903:50:0;23176:16:::1;::::0;::::1;::::0;::::1;;;23175:17;23167:58;;;::::0;-1:-1:-1;;;23167:58:0;;20867:2:1;23167:58:0::1;::::0;::::1;20849:21:1::0;20906:2;20886:18;;;20879:30;20945;20925:18;;;20918:58;20993:18;;23167:58:0::1;20665:352:1::0;23167:58:0::1;23244:6;::::0;;23236:47:::1;::::0;-1:-1:-1;;;;;23244:6:0;;::::1;::::0;23261:21:::1;23236:47:::0;::::1;;;::::0;23261:21;;23236:47;23244:6;23236:47;23261:21;23244:6;23236:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;14881:125:::0;14966:9;;:32;;;;;-1:-1:-1;;;;;178:55:1;;;14966:32:0;;;160:74:1;14942:4:0;;14966:9;;;;;:23;;133:18:1;;14966:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12658:310::-;-1:-1:-1;;;;;12753:20:0;;12745:52;;;;-1:-1:-1;;;12745:52:0;;21474:2:1;12745:52:0;;;21456:21:1;21513:2;21493:18;;;21486:30;21552:21;21532:18;;;21525:49;21591:18;;12745:52:0;21272:343:1;12745:52:0;-1:-1:-1;;;;;12816:21:0;;12808:53;;;;-1:-1:-1;;;12808:53:0;;21474:2:1;12808:53:0;;;21456:21:1;21513:2;21493:18;;;21486:30;21552:21;21532:18;;;21525:49;21591:18;;12808:53:0;21272:343:1;12808:53:0;-1:-1:-1;;;;;12874:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;12927:33;;391:25:1;;;12927:33:0;;364:18:1;12927:33:0;;;;;;;12658:310;;;:::o;23725:946::-;23881:16;;23859:4;;23881:16;;;;;23876:221;;23914:28;23933:4;23939:2;23914:18;:28::i;:::-;23962:16;;;;;;;23961:17;:41;;;;;23982:20;23993:4;23999:2;23982:10;:20::i;:::-;23957:129;;;24023:47;;-1:-1:-1;;;24023:47:0;;21822:2:1;24023:47:0;;;21804:21:1;21861:2;21841:18;;;21834:30;21900:34;21880:18;;;21873:62;21971:7;21951:18;;;21944:35;21996:19;;24023:47:0;21620:401:1;23957:129:0;24113:20;24124:4;24130:2;24113:10;:20::i;:::-;24109:314;;;24181:9;;:37;;;;;-1:-1:-1;;;;;22307:15:1;;;24181:37:0;;;22289:34:1;22359:15;;;22339:18;;;22332:43;22391:18;;;22384:34;;;24150:12:0;;24181:9;;;;;:19;;22201:18:1;;24181:37:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24181:37:0;;;;;;;;-1:-1:-1;;24181:37:0;;;;;;;;;;;;:::i;:::-;;;24177:163;;24316:8;;;24177:163;24269:5;-1:-1:-1;24360:7:0;24356:56;;24388:8;;;24356:56;24135:288;24109:314;-1:-1:-1;;;;;24435:13:0;;;;;;:7;:13;;;;;:23;;24452:6;;24435:13;:23;;24452:6;;24435:23;:::i;:::-;;;;-1:-1:-1;24469:22:0;;-1:-1:-1;24495:7:0;24494:55;;24543:6;24494:55;;;24506:34;24516:4;24522:3;24527:4;24533:6;24506:9;:34::i;:::-;-1:-1:-1;;;;;24560:11:0;;;;;;:7;:11;;;;;:29;;24469:80;;-1:-1:-1;24469:80:0;;24560:11;;;:29;;24469:80;;24560:29;:::i;:::-;;;;;;;;24622:2;-1:-1:-1;;;;;24607:34:0;24616:4;-1:-1:-1;;;;;24607:34:0;;24626:14;24607:34;;;;391:25:1;;379:2;364:18;;245:177;24607:34:0;;;;;;;;-1:-1:-1;24659:4:0;;23725:946;-1:-1:-1;;;;;;;;23725:946:0:o;18470:2094::-;18549:4;-1:-1:-1;;;;;18574:18:0;;18566:68;;;;-1:-1:-1;;;18566:68:0;;22764:2:1;18566:68:0;;;22746:21:1;22803:2;22783:18;;;22776:30;22842:34;22822:18;;;22815:62;22913:7;22893:18;;;22886:35;22938:19;;18566:68:0;22562:401:1;18566:68:0;-1:-1:-1;;;;;18653:16:0;;18645:64;;;;-1:-1:-1;;;18645:64:0;;23170:2:1;18645:64:0;;;23152:21:1;23209:2;23189:18;;;23182:30;23248:34;23228:18;;;23221:62;23319:5;23299:18;;;23292:33;23342:19;;18645:64:0;22968:399:1;18645:64:0;18737:1;18728:6;:10;18720:64;;;;-1:-1:-1;;;18720:64:0;;23574:2:1;18720:64:0;;;23556:21:1;23613:2;23593:18;;;23586:30;23652:34;23632:18;;;23625:62;23723:11;23703:18;;;23696:39;23752:19;;18720:64:0;23372:405:1;18720:64:0;18803:13;;;;;;;18795:22;;;;;;-1:-1:-1;;;;;18916:13:0;;18828:8;18916:13;;;:7;:13;;;;;;18828:8;;;;18916:13;;18912:162;;;18952:4;18946:10;;18912:162;;;-1:-1:-1;;;;;18978:11:0;;;;;;:7;:11;;;;;;;;18974:100;;;19013:4;19006:11;;18974:100;;;-1:-1:-1;19058:4:0;18974:100;19087:20;19098:4;19104:2;19087:10;:20::i;:::-;19084:641;;;19128:14;;;;19124:89;;19163:34;;-1:-1:-1;;;19163:34:0;;23984:2:1;19163:34:0;;;23966:21:1;24023:2;24003:18;;;23996:30;24062:26;24042:18;;;24035:54;24106:18;;19163:34:0;23782:348:1;19124:89:0;19230:3;:11;;;;19237:4;19230:11;19227:231;;;-1:-1:-1;;;;;19266:27:0;;;;;;:21;:27;;;;;;;;19265:28;:58;;;;-1:-1:-1;;;;;;19298:25:0;;;;;;:21;:25;;;;;;;;19297:26;19265:58;19261:182;;;19366:12;;19356:6;:22;;19348:75;;;;-1:-1:-1;;;19348:75:0;;24337:2:1;19348:75:0;;;24319:21:1;24376:2;24356:18;;;24349:30;24415:34;24395:18;;;24388:62;24486:10;24466:18;;;24459:38;24514:19;;19348:75:0;24135:404:1;19348:75:0;19489:9;;-1:-1:-1;;;;;19475:24:0;;;19489:9;;19475:24;;;;:33;;;19504:4;19503:5;19475:33;19472:242;;;-1:-1:-1;;;;;19534:25:0;;;;;;:21;:25;;;;;;;;19529:170;;19618:14;;19608:6;19592:13;19602:2;-1:-1:-1;;;;;12286:16:0;12259:7;12286:16;;;:7;:16;;;;;;;12193:117;19592:13;:22;;;;:::i;:::-;:40;;19584:95;;;;-1:-1:-1;;;19584:95:0;;24746:2:1;19584:95:0;;;24728:21:1;24785:2;24765:18;;;24758:30;24824:34;24804:18;;;24797:62;24895:12;24875:18;;;24868:40;24925:19;;19584:95:0;24544:406:1;19584:95:0;-1:-1:-1;;;;;19770:25:0;;19737:12;19770:25;;;:19;:25;;;;;;19752:4;;19770:25;;;:52;;-1:-1:-1;;;;;;19799:23:0;;;;;;:19;:23;;;;;;;;19770:52;19767:98;;;-1:-1:-1;19848:5:0;19767:98;19881:4;19877:599;;;19907:6;;;;19906:7;:47;;;;-1:-1:-1;19934:19:0;;;;;;;19906:47;19902:557;;;20023:15;20003:17;;19992:8;;:28;;;;:::i;:::-;:46;19988:456;;;20112:4;20063:28;12286:16;;;:7;:16;;;;;;20169:13;;20145:37;;20141:284;;20238:10;;20214:20;:34;20211:77;;-1:-1:-1;20275:10:0;;20211:77;20314:34;20327:20;20314:12;:34::i;:::-;20386:15;20375:8;:26;20141:284;20040:404;19988:456;20494:62;20512:4;20518:2;20522:6;20530:7;20539:3;20544:4;20550:5;20494:17;:62::i;:::-;20487:69;18470:2094;-1:-1:-1;;;;;;;;18470:2094:0:o;22040:509::-;22123:16;;;;;;;22122:17;22114:65;;;;-1:-1:-1;;;22114:65:0;;25157:2:1;22114:65:0;;;25139:21:1;25196:2;25176:18;;;25169:30;25235:34;25215:18;;;25208:62;25306:5;25286:18;;;25279:33;25329:19;;22114:65:0;24955:399:1;22114:65:0;22195:20;22206:4;22212:2;22195:10;:20::i;:::-;22194:21;:37;;;;-1:-1:-1;22225:6:0;;-1:-1:-1;;;;;22219:12:0;;;22225:6;;22219:12;22194:37;22190:352;;;-1:-1:-1;;;;;22248:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;22248:30:0;22274:4;22248:30;;;22293:16;:23;;-1:-1:-1;;22293:23:0;22248:30;22293:23;;;;;22342:9;;;;22331:107;;22386:9;:36;;;;22416:4;22386:36;;;;;22331:107;22452:19;:26;;-1:-1:-1;;22452:26:0;;;;;22498:32;;-1:-1:-1;2829:41:1;;22498:32:0;;2817:2:1;2802:18;22498:32:0;;;;;;;22040:509;;:::o;18104:358::-;18173:4;18205:6;;-1:-1:-1;;;;;18197:14:0;;;18205:6;;18197:14;;;;:43;;-1:-1:-1;18234:6:0;;-1:-1:-1;;;;;18228:12:0;;;18234:6;;18228:12;;18197:43;:79;;;;-1:-1:-1;18270:6:0;;-1:-1:-1;;;;;18270:6:0;18257:9;:19;;18197:79;:118;;;;-1:-1:-1;;;;;;18294:21:0;;;;;;:17;:21;;;;;;;;18293:22;18197:118;:159;;;;-1:-1:-1;;;;;;18333:23:0;;;;;;:17;:23;;;;;;;;18332:24;18197:159;:186;;;;-1:-1:-1;;;;;;18373:10:0;;5548:42;18373:10;;18197:186;:219;;;;-1:-1:-1;;;;;;18400:16:0;;;;18197:219;:257;;;;-1:-1:-1;;;;;;18433:21:0;;18449:4;18433:21;;18197:257;18190:264;18104:358;-1:-1:-1;;;18104:358:0:o;24679:562::-;24767:7;24787:18;24820:3;24816:205;;;-1:-1:-1;24853:9:0;:16;;;24816:205;;;24891:4;24887:134;;;-1:-1:-1;24925:9:0;:17;;;;;;24887:134;;;-1:-1:-1;24988:9:0;:21;;;;;;24887:134;25033:17;5442:5;25053:19;25062:10;25053:6;:19;:::i;:::-;:38;;;;:::i;:::-;25120:4;25104:22;;;;:7;:22;;;;;:35;;25033:58;;-1:-1:-1;25033:58:0;;25104:22;;;:35;;25033:58;;25104:35;:::i;:::-;;;;-1:-1:-1;;25155:40:0;;391:25:1;;;25178:4:0;;-1:-1:-1;;;;;25155:40:0;;;;;379:2:1;364:18;25155:40:0;;;;;;;25215:18;25224:9;25215:6;:18;:::i;:::-;25208:25;24679:562;-1:-1:-1;;;;;;;24679:562:0:o;20572:1460::-;6805:6;:13;;-1:-1:-1;;6805:13:0;6814:4;6805:13;;;20656:30:::1;::::0;;::::1;::::0;::::1;::::0;;20679:7:::1;20656:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;6805:6;20701:17;20697:56:::1;;20735:7;;;20697:56;20788:4;20768:26;::::0;;;:11:::1;:26;::::0;;;;;;;20803:9:::1;::::0;-1:-1:-1;;;;;20803:9:0::1;20768:46:::0;;;;;;;;-1:-1:-1;;20768:67:0::1;20765:165;;20872:4;20852:26;::::0;;;:11:::1;:26;::::0;;;;;;;20887:9:::1;::::0;-1:-1:-1;;;;;20887:9:0::1;20852:46:::0;;;;;;;-1:-1:-1;;20852:66:0;;20765:165:::1;20974:16;::::0;;20988:1:::1;20974:16:::0;;;;;::::1;::::0;;20950:21:::1;::::0;20974:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20974:16:0::1;20950:40;;21019:4;21001;21006:1;21001:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21001:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21045:9:::1;::::0;:16:::1;::::0;;;;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;21001:7;;21045:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21035:4;21040:1;21035:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21035:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21074:9:::1;::::0;:199:::1;::::0;;;;:9;::::1;::::0;:60:::1;::::0;:199:::1;::::0;21149:20;;21074:9:::1;::::0;21200:4;;21227::::1;::::0;21247:15:::1;::::0;21074:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21286:18;21307:21;21286:42;;21339:18;21388:6;:12;;;21360:40;;21374:6;:10;;;21361:23;;:10;:23;;;;:::i;:::-;21360:40;;;;:::i;:::-;21339:61;;21411:18;21460:6;:12;;;21432:40;;21446:6;:10;;;21433:23;;:10;:23;;;;:::i;:::-;21432:40;;;;:::i;:::-;21411:61;;21483:19;21534:6;:12;;;21505:41;;21519:6;:11;;;21506:24;;:10;:24;;;;:::i;:::-;21505:41;;;;:::i;:::-;21483:63:::0;-1:-1:-1;21557:24:0::1;21483:63:::0;21598:23:::1;21611:10:::0;21598;:23:::1;:::i;:::-;:37;;;;:::i;:::-;21584:52;::::0;:10;:52:::1;:::i;:::-;21651:16:::0;;21557:79;;-1:-1:-1;21651:20:0::1;;::::0;21647:101:::1;;21688:11;:21:::0;:48:::1;::::0;-1:-1:-1;;;;;21688:21:0;;::::1;::::0;:48;::::1;;;::::0;21719:16;;21688:21:::1;:48:::0;:21;:48;21719:16;21688:21;:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21647:101;21762:10;::::0;::::1;::::0;:14:::1;;::::0;21758:83:::1;;21793:15:::0;;:36:::1;::::0;-1:-1:-1;;;;;21793:15:0;;::::1;::::0;:36;::::1;;;::::0;21818:10;;21793:15:::1;:36:::0;:15;:36;21818:10;21793:15;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21758:83;21876:1;21870:3;21855:6;:12;;;:18;;;;:::i;:::-;:22;;;21851:78;;;21894:23;::::0;5643:42:::1;::::0;21894:23;::::1;;;::::0;21906:10;;21894:23:::1;::::0;;;21906:10;5643:42;21894:23;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21851:78;21943:11;::::0;::::1;::::0;:15:::1;;::::0;21939:86:::1;;21975:16:::0;;:38:::1;::::0;-1:-1:-1;;;;;21975:16:0;;::::1;::::0;:38;::::1;;;::::0;22001:11;;21975:16:::1;:38:::0;:16;:38;22001:11;21975:16;:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21939:86;20645:1387;;;;;;;6829:1;-1:-1:-1::0;6841:6:0;:14;;-1:-1:-1;;6841:14:0;;;20572:1460::o;427:118:1:-;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:656::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1739:6;1736:1;1733:13;1730:91;;;1809:1;1804:2;1795:6;1784:9;1780:22;1776:31;1769:42;1730:91;-1:-1:-1;1873:2:1;1861:15;-1:-1:-1;;1857:88:1;1842:104;;;;1948:2;1838:113;;1301:656;-1:-1:-1;;;1301:656:1:o;2210:154::-;-1:-1:-1;;;;;2289:5:1;2285:54;2278:5;2275:65;2265:93;;2354:1;2351;2344:12;2369:315;2437:6;2445;2498:2;2486:9;2477:7;2473:23;2469:32;2466:52;;;2514:1;2511;2504:12;2466:52;2553:9;2540:23;2572:31;2597:5;2572:31;:::i;:::-;2622:5;2674:2;2659:18;;;;2646:32;;-1:-1:-1;;;2369:315:1:o;2881:180::-;2940:6;2993:2;2981:9;2972:7;2968:23;2964:32;2961:52;;;3009:1;3006;2999:12;2961:52;-1:-1:-1;3032:23:1;;2881:180;-1:-1:-1;2881:180:1:o;3066:184::-;3118:77;3115:1;3108:88;3215:4;3212:1;3205:15;3239:4;3236:1;3229:15;3255:334;3326:2;3320:9;3382:2;3372:13;;-1:-1:-1;;3368:86:1;3356:99;;3485:18;3470:34;;3506:22;;;3467:62;3464:88;;;3532:18;;:::i;:::-;3568:2;3561:22;3255:334;;-1:-1:-1;3255:334:1:o;3594:183::-;3654:4;3687:18;3679:6;3676:30;3673:56;;;3709:18;;:::i;:::-;-1:-1:-1;3754:1:1;3750:14;3766:4;3746:25;;3594:183::o;3782:662::-;3836:5;3889:3;3882:4;3874:6;3870:17;3866:27;3856:55;;3907:1;3904;3897:12;3856:55;3943:6;3930:20;3969:4;3993:60;4009:43;4049:2;4009:43;:::i;:::-;3993:60;:::i;:::-;4087:15;;;4173:1;4169:10;;;;4157:23;;4153:32;;;4118:12;;;;4197:15;;;4194:35;;;4225:1;4222;4215:12;4194:35;4261:2;4253:6;4249:15;4273:142;4289:6;4284:3;4281:15;4273:142;;;4355:17;;4343:30;;4393:12;;;;4306;;4273:142;;;-1:-1:-1;4433:5:1;3782:662;-1:-1:-1;;;;;;3782:662:1:o;4449:1215::-;4567:6;4575;4628:2;4616:9;4607:7;4603:23;4599:32;4596:52;;;4644:1;4641;4634:12;4596:52;4684:9;4671:23;4713:18;4754:2;4746:6;4743:14;4740:34;;;4770:1;4767;4760:12;4740:34;4808:6;4797:9;4793:22;4783:32;;4853:7;4846:4;4842:2;4838:13;4834:27;4824:55;;4875:1;4872;4865:12;4824:55;4911:2;4898:16;4933:4;4957:60;4973:43;5013:2;4973:43;:::i;4957:60::-;5051:15;;;5133:1;5129:10;;;;5121:19;;5117:28;;;5082:12;;;;5157:19;;;5154:39;;;5189:1;5186;5179:12;5154:39;5213:11;;;;5233:217;5249:6;5244:3;5241:15;5233:217;;;5329:3;5316:17;5346:31;5371:5;5346:31;:::i;:::-;5390:18;;5266:12;;;;5428;;;;5233:217;;;5469:5;-1:-1:-1;;5512:18:1;;5499:32;;-1:-1:-1;;5543:16:1;;;5540:36;;;5572:1;5569;5562:12;5540:36;;5595:63;5650:7;5639:8;5628:9;5624:24;5595:63;:::i;:::-;5585:73;;;4449:1215;;;;;:::o;5669:456::-;5746:6;5754;5762;5815:2;5803:9;5794:7;5790:23;5786:32;5783:52;;;5831:1;5828;5821:12;5783:52;5870:9;5857:23;5889:31;5914:5;5889:31;:::i;:::-;5939:5;-1:-1:-1;5996:2:1;5981:18;;5968:32;6009:33;5968:32;6009:33;:::i;:::-;5669:456;;6061:7;;-1:-1:-1;;;6115:2:1;6100:18;;;;6087:32;;5669:456::o;6130:248::-;6198:6;6206;6259:2;6247:9;6238:7;6234:23;6230:32;6227:52;;;6275:1;6272;6265:12;6227:52;-1:-1:-1;;6298:23:1;;;6368:2;6353:18;;;6340:32;;-1:-1:-1;6130:248:1:o;6572:159::-;6639:20;;6699:6;6688:18;;6678:29;;6668:57;;6721:1;6718;6711:12;6668:57;6572:159;;;:::o;6736:328::-;6810:6;6818;6826;6879:2;6867:9;6858:7;6854:23;6850:32;6847:52;;;6895:1;6892;6885:12;6847:52;6918:28;6936:9;6918:28;:::i;:::-;6908:38;;6965:37;6998:2;6987:9;6983:18;6965:37;:::i;:::-;6955:47;;7021:37;7054:2;7043:9;7039:18;7021:37;:::i;:::-;7011:47;;6736:328;;;;;:::o;7069:247::-;7128:6;7181:2;7169:9;7160:7;7156:23;7152:32;7149:52;;;7197:1;7194;7187:12;7149:52;7236:9;7223:23;7255:31;7280:5;7255:31;:::i;7321:454::-;7416:6;7424;7432;7440;7448;7501:3;7489:9;7480:7;7476:23;7472:33;7469:53;;;7518:1;7515;7508:12;7469:53;-1:-1:-1;;7541:23:1;;;7611:2;7596:18;;7583:32;;-1:-1:-1;7662:2:1;7647:18;;7634:32;;7713:2;7698:18;;7685:32;;-1:-1:-1;7764:3:1;7749:19;7736:33;;-1:-1:-1;7321:454:1;-1:-1:-1;7321:454:1:o;7780:382::-;7845:6;7853;7906:2;7894:9;7885:7;7881:23;7877:32;7874:52;;;7922:1;7919;7912:12;7874:52;7961:9;7948:23;7980:31;8005:5;7980:31;:::i;8167:553::-;8268:6;8276;8284;8337:2;8325:9;8316:7;8312:23;8308:32;8305:52;;;8353:1;8350;8343:12;8305:52;8392:9;8379:23;8411:31;8436:5;8411:31;:::i;:::-;8461:5;-1:-1:-1;8518:2:1;8503:18;;8490:32;8531:33;8490:32;8531:33;:::i;:::-;8583:7;-1:-1:-1;8642:2:1;8627:18;;8614:32;8655:33;8614:32;8655:33;:::i;:::-;8707:7;8697:17;;;8167:553;;;;;:::o;8725:241::-;8781:6;8834:2;8822:9;8813:7;8809:23;8805:32;8802:52;;;8850:1;8847;8840:12;8802:52;8889:9;8876:23;8908:28;8930:5;8908:28;:::i;9499:388::-;9567:6;9575;9628:2;9616:9;9607:7;9603:23;9599:32;9596:52;;;9644:1;9641;9634:12;9596:52;9683:9;9670:23;9702:31;9727:5;9702:31;:::i;:::-;9752:5;-1:-1:-1;9809:2:1;9794:18;;9781:32;9822:33;9781:32;9822:33;:::i;11671:184::-;11723:77;11720:1;11713:88;11820:4;11817:1;11810:15;11844:4;11841:1;11834:15;11860:482;11949:1;11992:5;11949:1;12006:330;12027:7;12017:8;12014:21;12006:330;;;12146:4;-1:-1:-1;;12074:77:1;12068:4;12065:87;12062:113;;;12155:18;;:::i;:::-;12205:7;12195:8;12191:22;12188:55;;;12225:16;;;;12188:55;12304:22;;;;12264:15;;;;12006:330;;;12010:3;11860:482;;;;;:::o;12347:866::-;12396:5;12426:8;12416:80;;-1:-1:-1;12467:1:1;12481:5;;12416:80;12515:4;12505:76;;-1:-1:-1;12552:1:1;12566:5;;12505:76;12597:4;12615:1;12610:59;;;;12683:1;12678:130;;;;12590:218;;12610:59;12640:1;12631:10;;12654:5;;;12678:130;12715:3;12705:8;12702:17;12699:43;;;12722:18;;:::i;:::-;-1:-1:-1;;12778:1:1;12764:16;;12793:5;;12590:218;;12892:2;12882:8;12879:16;12873:3;12867:4;12864:13;12860:36;12854:2;12844:8;12841:16;12836:2;12830:4;12827:12;12823:35;12820:77;12817:159;;;-1:-1:-1;12929:19:1;;;12961:5;;12817:159;13008:34;13033:8;13027:4;13008:34;:::i;:::-;13138:6;-1:-1:-1;;13066:79:1;13057:7;13054:92;13051:118;;;13149:18;;:::i;:::-;13187:20;;12347:866;-1:-1:-1;;;12347:866:1:o;13218:140::-;13276:5;13305:47;13346:4;13336:8;13332:19;13326:4;13305:47;:::i;13363:228::-;13403:7;13529:1;-1:-1:-1;;13457:74:1;13454:1;13451:81;13446:1;13439:9;13432:17;13428:105;13425:131;;;13536:18;;:::i;:::-;-1:-1:-1;13576:9:1;;13363:228::o;13955:251::-;14025:6;14078:2;14066:9;14057:7;14053:23;14049:32;14046:52;;;14094:1;14091;14084:12;14046:52;14126:9;14120:16;14145:31;14170:5;14145:31;:::i;15178:306::-;15266:6;15274;15282;15335:2;15323:9;15314:7;15310:23;15306:32;15303:52;;;15351:1;15348;15341:12;15303:52;15380:9;15374:16;15364:26;;15430:2;15419:9;15415:18;15409:25;15399:35;;15474:2;15463:9;15459:18;15453:25;15443:35;;15178:306;;;;;:::o;15489:274::-;15529:1;15555;15545:189;;15590:77;15587:1;15580:88;15691:4;15688:1;15681:15;15719:4;15716:1;15709:15;15545:189;-1:-1:-1;15748:9:1;;15489:274::o;16118:184::-;16170:77;16167:1;16160:88;16267:4;16264:1;16257:15;16291:4;16288:1;16281:15;16307:175;16344:3;16388:4;16381:5;16377:16;16417:4;16408:7;16405:17;16402:43;;16425:18;;:::i;:::-;16474:1;16461:15;;16307:175;-1:-1:-1;;16307:175:1:o;16487:125::-;16527:4;16555:1;16552;16549:8;16546:34;;;16560:18;;:::i;:::-;-1:-1:-1;16597:9:1;;16487:125::o;20436:224::-;20475:3;20503:6;20536:2;20533:1;20529:10;20566:2;20563:1;20559:10;20597:3;20593:2;20589:12;20584:3;20581:21;20578:47;;;20605:18;;:::i;:::-;20641:13;;20436:224;-1:-1:-1;;;;20436:224:1:o;21022:245::-;21089:6;21142:2;21130:9;21121:7;21117:23;21113:32;21110:52;;;21158:1;21155;21148:12;21110:52;21190:9;21184:16;21209:28;21231:5;21209:28;:::i;22429:128::-;22469:3;22500:1;22496:6;22493:1;22490:13;22487:39;;;22506:18;;:::i;:::-;-1:-1:-1;22542:9:1;;22429:128::o;25359:1026::-;25621:4;25669:3;25658:9;25654:19;25700:6;25689:9;25682:25;25726:2;25764:6;25759:2;25748:9;25744:18;25737:34;25807:3;25802:2;25791:9;25787:18;25780:31;25831:6;25866;25860:13;25897:6;25889;25882:22;25935:3;25924:9;25920:19;25913:26;;25974:2;25966:6;25962:15;25948:29;;25995:1;26005:218;26019:6;26016:1;26013:13;26005:218;;;26084:13;;-1:-1:-1;;;;;26080:62:1;26068:75;;26198:15;;;;26163:12;;;;26041:1;26034:9;26005:218;;;-1:-1:-1;;;;;;;26279:55:1;;;;26274:2;26259:18;;26252:83;-1:-1:-1;;;26366:3:1;26351:19;26344:35;26240:3;25359:1026;-1:-1:-1;;;25359:1026:1:o;26390:217::-;26429:4;26458:6;26514:10;;;;26484;;26536:12;;;26533:38;;;26551:18;;:::i;:::-;26588:13;;26390:217;-1:-1:-1;;;26390:217:1:o
Swarm Source
ipfs://f6762645512b297e2284a4102fa41ac73a43fea8a3794d77e3b823d5e00c7bcf
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.