ERC-20
Overview
Max Total Supply
100,000,000,000 RAGNAR
Holders
69
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
98,289,300.373960223043009704 RAGNARValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RAGNAR
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-09 */ /** */ /** */ /** */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } return true; } 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 _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } 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 _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); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB); } interface ILpPair { function sync() external; } contract RAGNAR is ERC20, Ownable { IDexRouter public immutable dexRouter; address public immutable lpPair; bool private swapping; address public operationsWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; uint256 public liquidityActiveBlock = 0; // 0 means liquidity is not active yet uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public earlyBuyPenaltyEnd; // determines when snipers/bots can sell without extra penalty bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; uint256 public constant feeDivisor = 10000; uint256 public totalSellFees; uint256 public operationsSellFee; uint256 public liquiditySellFee; uint256 public totalBuyFees; uint256 public operationsBuyFee; uint256 public liquidityBuyFee; uint256 public tokensForOperations; uint256 public tokensForLiquidity; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; address[] private earlyBuyers; uint256 private deadBlocks; mapping (address => bool) public _isBot; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event ExcludedMaxTransactionAmount(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event OperationsWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor() ERC20("RAGNAR", "RAGNAR", 18) { address _dexRouter; if(block.chainid == 1){ _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uni V2 Router } else if(block.chainid == 5){ _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Goerli Router } else if(block.chainid == 56){ _dexRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // Pancake V2 Router } else { revert("Chain not configured"); } dexRouter = IDexRouter(_dexRouter); lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH()); _setAutomatedMarketMakerPair(address(lpPair), true); uint256 totalSupply = 100 * 1e9 * (10 ** decimals()); maxTransactionAmount = totalSupply * 20 / 1000; // 2% maxTransactionAmountTxn swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap tokens amount maxWallet = totalSupply * 2 / 100; // 2% Max wallet operationsBuyFee = 1000; // 100 = 1% liquidityBuyFee = 500; totalBuyFees = operationsBuyFee + liquidityBuyFee; operationsSellFee = 1000; liquiditySellFee = 500; totalSellFees = operationsSellFee + liquiditySellFee; operationsWallet = address(msg.sender); // set as operations wallet // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(address(_dexRouter), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(_dexRouter), true); excludeFromMaxTransaction(address(0xdead), true); _createInitialSupply(address(owner()), totalSupply); _approve(address(this), address(dexRouter), type(uint256).max); _approve(owner(), address(dexRouter), totalSupply); } receive() external payable {} // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool){ transferDelayEnabled = false; return true; } // once enabled, can never be turned off function enableTrading(uint256 _deadBlocks) external onlyOwner { require(!tradingActive, "Cannot re-enable trading"); tradingActive = true; swapEnabled = true; tradingActiveBlock = block.number; deadBlocks = _deadBlocks; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function updateMaxAmount(uint256 newNum) external onlyOwner { require(newNum > (totalSupply() * 1 / 1000) / (10 ** decimals()), "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10 ** decimals()); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum > (totalSupply() * 1 / 100)/(10 ** decimals()), "Cannot set maxWallet lower than 1%"); maxWallet = newNum * (10 ** decimals()); } function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner { operationsBuyFee = _operationsFee; liquidityBuyFee = _liquidityFee; totalBuyFees = operationsBuyFee + liquidityBuyFee; require(totalBuyFees <= 4000, "Must keep fees at 40% or less"); } function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner { operationsSellFee = _operationsFee; liquiditySellFee = _liquidityFee; totalSellFees = operationsSellFee + liquiditySellFee; require(totalSellFees <= 4000, "Must keep fees at 40% or less"); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; emit ExcludedMaxTransactionAmount(updAds, isEx); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } emit ExcludeMultipleAccountsFromFees(accounts, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != lpPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateOperationsWallet(address newOperationsWallet) external onlyOwner { require(newOperationsWallet != address(0), "may not set to 0 address"); excludeFromFees(newOperationsWallet, true); emit OperationsWalletUpdated(newOperationsWallet, operationsWallet); operationsWallet = newOperationsWallet; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool){ limitsInEffect = false; transferDelayEnabled = false; return true; } 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(!_isBot[to] && !_isBot[from], "No bots"); if(amount == 0) { super._transfer(from, to, 0); return; } if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active yet."); } if(limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ){ // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ require(_holderLastTransferTimestamp[tx.origin] + 15 < block.number, "Transfer Delay enabled."); if (to != address(dexRouter) && to != address(lpPair)){ _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // no taxes on transfers (non buys/sells) if(takeFee){ if(tradingActiveBlock + deadBlocks >= block.number && (automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from])){ fees = amount * totalBuyFees / feeDivisor; tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees; tokensForOperations += fees * operationsBuyFee / totalBuyFees; earlyBuyers.push(to); } // on sell else if (automatedMarketMakerPairs[to] && totalSellFees > 0){ fees = amount * totalSellFees / feeDivisor; tokensForLiquidity += fees * liquiditySellFee / totalSellFees; tokensForOperations += fees * operationsSellFee / totalSellFees; } // on buy else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) { fees = amount * totalBuyFees / feeDivisor; tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees; tokensForOperations += fees * operationsBuyFee / totalBuyFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(operationsWallet), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(tokensForLiquidity > 0){ uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap; super._transfer(address(this), lpPair, liquidityTokens); try ILpPair(lpPair).sync(){} catch {} contractBalance -= liquidityTokens; totalTokensToSwap -= tokensForLiquidity; tokensForLiquidity = 0; } if(contractBalance > 0){ swapTokensForEth(contractBalance); } } function Ragnartime () external onlyOwner { require(earlyBuyers.length > 0, "No bots to block"); for(uint256 i = 0; i < earlyBuyers.length; i++){ if(!_isBot[earlyBuyers[i]]){ _isBot[earlyBuyers[i]] = true; } } delete earlyBuyers; } function freeToSee (address[] memory _addresses) external onlyOwner { for(uint256 i = 0; i < _addresses.length; i++){ _isBot[_addresses[i]] = false; } } function addragnar (address[] memory _addresses) external onlyOwner { for(uint256 i = 0; i < _addresses.length; i++){ _isBot[_addresses[i]] = true; } } function sendToWallets(address[] memory wallets, uint256[] memory amountsInWei) external onlyOwner { require(wallets.length == amountsInWei.length, "arrays must be the same length"); require(wallets.length < 600, "Can only airdrop 600 wallets per txn due to gas limits"); for(uint256 i = 0; i < wallets.length; i++){ super._transfer(msg.sender, wallets[i], amountsInWei[i]); } } }
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":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":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedMaxTransactionAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OperationsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Ragnartime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addragnar","outputs":[],"stateMutability":"nonpayable","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":"automatedMarketMakerPairs","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":"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":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"freeToSee","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":"account","type":"address"}],"name":"isExcludedFromFees","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":"liquidityActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInWei","type":"uint256[]"}],"name":"sendToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","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":"tradingActiveBlock","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":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600a819055600b55600d805462ffffff19166001908117909155600f805460ff191690911790553480156200003a57600080fd5b506040805180820182526006808252652920a3a720a960d11b602080840182905284518086019095529184529083015290601260036200007b84826200098a565b5060046200008a83826200098a565b506005805460ff191660ff929092169190911790555060009050620000ac3390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600046600103620001295750737a250d5630b4cf539739df2c5dacb4c659f2488d620001c0565b466005036200014e5750737a250d5630b4cf539739df2c5dacb4c659f2488d620001c0565b466038036200017357507310ed43c718714eb63d5aa57b78b54704e256024e620001c0565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000231919062000a56565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000a56565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000a56565b6001600160a01b031660a08190526200033690600162000511565b60006200034560055460ff1690565b6200035290600a62000b9d565b620003639064174876e80062000bae565b90506103e86200037582601462000bae565b62000381919062000bc8565b6007556127106200039482600562000bae565b620003a0919062000bc8565b6008556064620003b282600262000bae565b620003be919062000bc8565b6009556103e860148190556101f46015819055620003dc9162000beb565b6013556103e860118190556101f46012819055620003fa9162000beb565b601055600680546001600160a01b03191633179055620004336200042b60055461010090046001600160a01b031690565b60016200057d565b620004403060016200057d565b6200044f61dead60016200057d565b6200045c8260016200057d565b620004806200047860055461010090046001600160a01b031690565b60016200062e565b6200048d3060016200062e565b6200049a8260016200062e565b620004a961dead60016200062e565b620004cc620004c560055461010090046001600160a01b031690565b82620006d8565b620004e330608051600019620007bd60201b60201c565b62000509620004ff60055461010090046001600160a01b031690565b60805183620007bd565b505062000c01565b6001600160a01b0382166000908152601d60205260409020805460ff19168215151790556200054182826200062e565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03610100909104163314620005ce5760405162461bcd60e51b8152602060048201819052602482015260008051602062003e1d8339815191526044820152606401620001b7565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b6005546001600160a01b036101009091041633146200067f5760405162461bcd60e51b8152602060048201819052602482015260008051602062003e1d8339815191526044820152606401620001b7565b6001600160a01b0382166000818152601c6020908152604091829020805460ff191685151590811790915591519182527f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d95910162000622565b6001600160a01b038216620007305760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620001b7565b806002600082825462000744919062000beb565b90915550506001600160a01b038216600090815260208190526040812080548392906200077390849062000beb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316620008215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620001b7565b6001600160a01b038216620008845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620001b7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200091057607f821691505b6020821081036200093157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200098557600081815260208120601f850160051c81016020861015620009605750805b601f850160051c820191505b8181101562000981578281556001016200096c565b5050505b505050565b81516001600160401b03811115620009a657620009a6620008e5565b620009be81620009b78454620008fb565b8462000937565b602080601f831160018114620009f65760008415620009dd5750858301515b600019600386901b1c1916600185901b17855562000981565b600085815260208120601f198616915b8281101562000a275788860151825594840194600190910190840162000a06565b508582101562000a465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a6957600080fd5b81516001600160a01b038116811462000a8157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000adf57816000190482111562000ac35762000ac362000a88565b8085161562000ad157918102915b93841c939080029062000aa3565b509250929050565b60008262000af85750600162000b97565b8162000b075750600062000b97565b816001811462000b20576002811462000b2b5762000b4b565b600191505062000b97565b60ff84111562000b3f5762000b3f62000a88565b50506001821b62000b97565b5060208310610133831016604e8410600b841016171562000b70575081810a62000b97565b62000b7c838362000a9e565b806000190482111562000b935762000b9362000a88565b0290505b92915050565b600062000a8160ff84168362000ae7565b808202811582820484141762000b975762000b9762000a88565b60008262000be657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000b975762000b9762000a88565b60805160a0516131c562000c58600039600081816105ee015281816113e801528181611fc80152818161276d01526127940152600081816103e501528181611f8b01528181612887015261294201526131c56000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c876d0b911610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610a4a578063f8b45b0514610a6a578063fb002c9714610a80578063fd72e22a14610a9657600080fd5b8063e884f260146109e9578063e988f975146109fe578063ee40166e14610a1e578063efcc1b2f14610a3457600080fd5b8063d0a39814116100dc578063d0a3981414610962578063d95fa66214610978578063dd62ed3e1461098d578063e2f45605146109d357600080fd5b8063c876d0b91461091c578063c8c8ebe414610936578063ccb613581461094c57600080fd5b8063abb810521161016f578063bbc0c74211610149578063bbc0c7421461089d578063c0246668146108bc578063c18bc195146108dc578063c492f046146108fc57600080fd5b8063abb8105214610827578063b62496f514610857578063b9e937001461088757600080fd5b80639a36f932116101ab5780639a36f932146107b15780639a7a23d6146107c7578063a457c2d7146107e7578063a9059cbb1461080757600080fd5b80638da5cb5b14610759578063924de9b71461077c57806395d89b411461079c57600080fd5b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146106ee578063751039fc146107045780637571336a1461071957806382aa7c681461073957600080fd5b80636ddd17131461068357806370a08231146106a3578063715018a6146106d957600080fd5b8063452ed4f111610285578063452ed4f1146105dc5780634a62bb65146106105780634fbee1931461062a57806366ca9b831461066357600080fd5b8063313ce5671461057a57806333220b741461059c57806339509351146105bc57600080fd5b806310c1622e116103185780631a8145bb116102f25780631a8145bb1461050e5780631fc851bd1461052457806323b872dd1461053a57806330d5d18d1461055a57600080fd5b806310c1622e146104a957806310d5de53146104c957806318160ddd146104f957600080fd5b8063095ea7b311610354578063095ea7b31461041f578063099d0d301461044f5780630f4432e314610473578063106b5da11461048957600080fd5b806302dbd8f81461038657806306fdde03146103a85780630758d924146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a13660046129f2565b610ab6565b005b3480156103b457600080fd5b506103bd610b5d565b6040516103ca9190612a14565b60405180910390f35b3480156103df57600080fd5b506104077f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103ca565b34801561042b57600080fd5b5061043f61043a366004612a77565b610bef565b60405190151581526020016103ca565b34801561045b57600080fd5b5061046560125481565b6040519081526020016103ca565b34801561047f57600080fd5b50610465600a5481565b34801561049557600080fd5b506103a66104a4366004612aa3565b610c06565b3480156104b557600080fd5b506103a66104c4366004612b9b565b610cf9565b3480156104d557600080fd5b5061043f6104e4366004612c56565b601c6020526000908152604090205460ff1681565b34801561050557600080fd5b50600254610465565b34801561051a57600080fd5b5061046560175481565b34801561053057600080fd5b50610465600c5481565b34801561054657600080fd5b5061043f610555366004612c7a565b610e4b565b34801561056657600080fd5b506103a6610575366004612c56565b610efe565b34801561058657600080fd5b5060055460405160ff90911681526020016103ca565b3480156105a857600080fd5b506103a66105b7366004612cbb565b610fec565b3480156105c857600080fd5b5061043f6105d7366004612a77565b611084565b3480156105e857600080fd5b506104077f000000000000000000000000000000000000000000000000000000000000000081565b34801561061c57600080fd5b50600d5461043f9060ff1681565b34801561063657600080fd5b5061043f610645366004612c56565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561066f57600080fd5b506103a661067e3660046129f2565b6110c0565b34801561068f57600080fd5b50600d5461043f9062010000900460ff1681565b3480156106af57600080fd5b506104656106be366004612c56565b6001600160a01b031660009081526020819052604090205490565b3480156106e557600080fd5b506103a661115a565b3480156106fa57600080fd5b5061046560115481565b34801561071057600080fd5b5061043f6111da565b34801561072557600080fd5b506103a6610734366004612d0d565b611229565b34801561074557600080fd5b506103a6610754366004612aa3565b6112b9565b34801561076557600080fd5b5060055461010090046001600160a01b0316610407565b34801561078857600080fd5b506103a6610797366004612d42565b61135b565b3480156107a857600080fd5b506103bd6113a7565b3480156107bd57600080fd5b5061046561271081565b3480156107d357600080fd5b506103a66107e2366004612d0d565b6113b6565b3480156107f357600080fd5b5061043f610802366004612a77565b6114a5565b34801561081357600080fd5b5061043f610822366004612a77565b61153e565b34801561083357600080fd5b5061043f610842366004612c56565b601b6020526000908152604090205460ff1681565b34801561086357600080fd5b5061043f610872366004612c56565b601d6020526000908152604090205460ff1681565b34801561089357600080fd5b5061046560135481565b3480156108a957600080fd5b50600d5461043f90610100900460ff1681565b3480156108c857600080fd5b506103a66108d7366004612d0d565b61154b565b3480156108e857600080fd5b506103a66108f7366004612aa3565b6115d3565b34801561090857600080fd5b506103a6610917366004612d5d565b6116b8565b34801561092857600080fd5b50600f5461043f9060ff1681565b34801561094257600080fd5b5061046560075481565b34801561095857600080fd5b5061046560155481565b34801561096e57600080fd5b5061046560105481565b34801561098457600080fd5b506103a661179a565b34801561099957600080fd5b506104656109a8366004612de1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109df57600080fd5b5061046560085481565b3480156109f557600080fd5b5061043f6118cb565b348015610a0a57600080fd5b506103a6610a19366004612cbb565b61190e565b348015610a2a57600080fd5b50610465600b5481565b348015610a4057600080fd5b5061046560145481565b348015610a5657600080fd5b506103a6610a65366004612c56565b6119a6565b348015610a7657600080fd5b5061046560095481565b348015610a8c57600080fd5b5061046560165481565b348015610aa257600080fd5b50600654610407906001600160a01b031681565b6005546001600160a01b03610100909104163314610aef5760405162461bcd60e51b8152600401610ae690612e1a565b60405180910390fd5b60118290556012819055610b038183612e65565b6010819055610fa01015610b595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420343025206f72206c6573730000006044820152606401610ae6565b5050565b606060038054610b6c90612e78565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890612e78565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610bfc338484611aa2565b5060015b92915050565b6005546001600160a01b03610100909104163314610c365760405162461bcd60e51b8152600401610ae690612e1a565b60055460ff16610c4790600a612f96565b6103e8610c5360025490565b610c5e906001612fa5565b610c689190612fbc565b610c729190612fbc565b8111610cd85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ae6565b60055460ff16610ce990600a612f96565b610cf39082612fa5565b60075550565b6005546001600160a01b03610100909104163314610d295760405162461bcd60e51b8152600401610ae690612e1a565b8051825114610d7a5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610ae6565b610258825110610deb5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203630302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610ae6565b60005b8251811015610e4657610e3433848381518110610e0d57610e0d612fde565b6020026020010151848481518110610e2757610e27612fde565b6020026020010151611bc6565b80610e3e81612ff4565b915050610dee565b505050565b6000610e58848484611d1b565b6001600160a01b03841660009081526001602090815260408083203384529091529020546000198114610ef35782811015610ee65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ae6565b610ef38533858403611aa2565b506001949350505050565b6005546001600160a01b03610100909104163314610f2e5760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038116610f845760405162461bcd60e51b815260206004820152601860248201527f6d6179206e6f742073657420746f2030206164647265737300000000000000006044820152606401610ae6565b610f8f81600161154b565b6006546040516001600160a01b03918216918316907f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f890600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461101c5760405162461bcd60e51b8152600401610ae690612e1a565b60005b8151811015610b59576001601b600084848151811061104057611040612fde565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061107c81612ff4565b91505061101f565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bfc9185906110bb908690612e65565b611aa2565b6005546001600160a01b036101009091041633146110f05760405162461bcd60e51b8152600401610ae690612e1a565b601482905560158190556111048183612e65565b6013819055610fa01015610b595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420343025206f72206c6573730000006044820152606401610ae6565b6005546001600160a01b0361010090910416331461118a5760405162461bcd60e51b8152600401610ae690612e1a565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546000906001600160a01b0361010090910416331461120d5760405162461bcd60e51b8152600401610ae690612e1a565b50600d805460ff19908116909155600f80549091169055600190565b6005546001600160a01b036101009091041633146112595760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b0382166000818152601c6020908152604091829020805460ff191685151590811790915591519182527f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9591015b60405180910390a25050565b6005546001600160a01b036101009091041633146112e95760405162461bcd60e51b8152600401610ae690612e1a565b600d54610100900460ff16156113415760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610ae6565b600d805462ffff0019166201010017905543600b55601a55565b6005546001600160a01b0361010090910416331461138b5760405162461bcd60e51b8152600401610ae690612e1a565b600d8054911515620100000262ff000019909216919091179055565b606060048054610b6c90612e78565b6005546001600160a01b036101009091041633146113e65760405162461bcd60e51b8152600401610ae690612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361149b5760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401610ae6565b610b59828261269e565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156115275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ae6565b6115343385858403611aa2565b5060019392505050565b6000610bfc338484611d1b565b6005546001600160a01b0361010090910416331461157b5760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016112ad565b6005546001600160a01b036101009091041633146116035760405162461bcd60e51b8152600401610ae690612e1a565b60055460ff1661161490600a612f96565b606461161f60025490565b61162a906001612fa5565b6116349190612fbc565b61163e9190612fbc565b81116116975760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b6064820152608401610ae6565b60055460ff166116a890600a612f96565b6116b29082612fa5565b60095550565b6005546001600160a01b036101009091041633146116e85760405162461bcd60e51b8152600401610ae690612e1a565b60005b8281101561175957816018600086868581811061170a5761170a612fde565b905060200201602081019061171f9190612c56565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061175181612ff4565b9150506116eb565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161178d9392919061300d565b60405180910390a1505050565b6005546001600160a01b036101009091041633146117ca5760405162461bcd60e51b8152600401610ae690612e1a565b60195461180c5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320746f20626c6f636b60801b6044820152606401610ae6565b60005b6019548110156118bc57601b60006019838154811061183057611830612fde565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff166118aa576001601b60006019848154811061187557611875612fde565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790555b806118b481612ff4565b91505061180f565b506118c9601960006129b8565b565b6005546000906001600160a01b036101009091041633146118fe5760405162461bcd60e51b8152600401610ae690612e1a565b50600f805460ff19169055600190565b6005546001600160a01b0361010090910416331461193e5760405162461bcd60e51b8152600401610ae690612e1a565b60005b8151811015610b59576000601b600084848151811061196257611962612fde565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061199e81612ff4565b915050611941565b6005546001600160a01b036101009091041633146119d65760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038116611a3b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae6565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316611b045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ae6565b6001600160a01b038216611b655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ae6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611bec5760405162461bcd60e51b8152600401610ae690613066565b6001600160a01b038216611c125760405162461bcd60e51b8152600401610ae6906130ab565b6001600160a01b03831660009081526020819052604090205481811015611c8a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ae6565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611cc1908490612e65565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d0d91815260200190565b60405180910390a350505050565b6001600160a01b038316611d415760405162461bcd60e51b8152600401610ae690613066565b6001600160a01b038216611d675760405162461bcd60e51b8152600401610ae6906130ab565b6001600160a01b0382166000908152601b602052604090205460ff16158015611da957506001600160a01b0383166000908152601b602052604090205460ff16155b611ddf5760405162461bcd60e51b81526020600482015260076024820152664e6f20626f747360c81b6044820152606401610ae6565b80600003611df357610e4683836000611bc6565b600d54610100900460ff16611e8d576001600160a01b03831660009081526018602052604090205460ff1680611e4157506001600160a01b03821660009081526018602052604090205460ff165b611e8d5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420616374697665207965742e0000000000006044820152606401610ae6565b600d5460ff16156122a1576005546001600160a01b038481166101009092041614801590611ece57506005546001600160a01b038381166101009092041614155b8015611ee257506001600160a01b03821615155b8015611ef957506001600160a01b03821661dead14155b8015611f0f5750600554600160a81b900460ff16155b156122a157600f5460ff161561202757326000908152600e60205260409020544390611f3c90600f612e65565b10611f895760405162461bcd60e51b815260206004820152601760248201527f5472616e736665722044656c617920656e61626c65642e0000000000000000006044820152606401610ae6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015611ffd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561202757326000908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601d602052604090205460ff16801561206857506001600160a01b0382166000908152601c602052604090205460ff16155b15612156576007548111156120dd5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ae6565b6009546001600160a01b0383166000908152602081905260409020546121039083612e65565b11156121515760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610ae6565b6122a1565b6001600160a01b0382166000908152601d602052604090205460ff16801561219757506001600160a01b0383166000908152601c602052604090205460ff16155b1561220d576007548111156121515760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ae6565b6001600160a01b0382166000908152601c602052604090205460ff166122a1576009546001600160a01b0383166000908152602081905260409020546122539083612e65565b11156122a15760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610ae6565b30600090815260208190526040902054600854811080159081906122cd5750600d5462010000900460ff165b80156122e35750600554600160a81b900460ff16155b801561230857506001600160a01b0385166000908152601d602052604090205460ff16155b801561232d57506001600160a01b03851660009081526018602052604090205460ff16155b801561235257506001600160a01b03841660009081526018602052604090205460ff16155b15612380576005805460ff60a81b1916600160a81b179055612372612708565b6005805460ff60a81b191690555b6005546001600160a01b03861660009081526018602052604090205460ff600160a81b9092048216159116806123ce57506001600160a01b03851660009081526018602052604090205460ff165b156123d7575060005b6000811561268a5743601a54600b546123f09190612e65565b1015801561243857506001600160a01b0386166000908152601d602052604090205460ff168061243857506001600160a01b0387166000908152601d602052604090205460ff165b1561250b576127106013548661244e9190612fa5565b6124589190612fbc565b90506013546015548261246b9190612fa5565b6124759190612fbc565b601760008282546124869190612e65565b909155505060135460145461249b9083612fa5565b6124a59190612fbc565b601660008282546124b69190612e65565b9091555050601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b03881617905561266c565b6001600160a01b0386166000908152601d602052604090205460ff16801561253557506000601054115b156125be576127106010548661254b9190612fa5565b6125559190612fbc565b9050601054601254826125689190612fa5565b6125729190612fbc565b601760008282546125839190612e65565b90915550506010546011546125989083612fa5565b6125a29190612fbc565b601660008282546125b39190612e65565b9091555061266c9050565b6001600160a01b0387166000908152601d602052604090205460ff1680156125e857506000601354115b1561266c57612710601354866125fe9190612fa5565b6126089190612fbc565b90506013546015548261261b9190612fa5565b6126259190612fbc565b601760008282546126369190612e65565b909155505060135460145461264b9083612fa5565b6126559190612fbc565b601660008282546126669190612e65565b90915550505b801561267d5761267d873083611bc6565b61268781866130ee565b94505b612695878787611bc6565b50505050505050565b6001600160a01b0382166000908152601d60205260409020805460ff19168215151790556126cc8282611229565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060165460175461272c9190612e65565b9050811580612739575080155b15612742575050565b60175415612822576000816017548461275b9190612fa5565b6127659190612fbc565b9050612792307f000000000000000000000000000000000000000000000000000000000000000083611bc6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127ed57600080fd5b505af19250505080156127fe575060015b5061280981846130ee565b92506017548261281991906130ee565b60006017559150505b8115610b5957604080516002808252606082018352610b599285926000929091602083019080368337019050509050308160008151811061286557612865612fde565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129079190613101565b8160018151811061291a5761291a612fde565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b81527f000000000000000000000000000000000000000000000000000000000000000083169263791ac947926129829287926000928892911690429060040161311e565b600060405180830381600087803b15801561299c57600080fd5b505af11580156129b0573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906129d691906129d9565b50565b5b808211156129ee57600081556001016129da565b5090565b60008060408385031215612a0557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612a4157858101830151858201604001528201612a25565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146129d657600080fd5b60008060408385031215612a8a57600080fd5b8235612a9581612a62565b946020939093013593505050565b600060208284031215612ab557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612afb57612afb612abc565b604052919050565b600067ffffffffffffffff821115612b1d57612b1d612abc565b5060051b60200190565b600082601f830112612b3857600080fd5b81356020612b4d612b4883612b03565b612ad2565b82815260059290921b84018101918181019086841115612b6c57600080fd5b8286015b84811015612b90578035612b8381612a62565b8352918301918301612b70565b509695505050505050565b60008060408385031215612bae57600080fd5b823567ffffffffffffffff80821115612bc657600080fd5b612bd286838701612b27565b9350602091508185013581811115612be957600080fd5b85019050601f81018613612bfc57600080fd5b8035612c0a612b4882612b03565b81815260059190911b82018301908381019088831115612c2957600080fd5b928401925b82841015612c4757833582529284019290840190612c2e565b80955050505050509250929050565b600060208284031215612c6857600080fd5b8135612c7381612a62565b9392505050565b600080600060608486031215612c8f57600080fd5b8335612c9a81612a62565b92506020840135612caa81612a62565b929592945050506040919091013590565b600060208284031215612ccd57600080fd5b813567ffffffffffffffff811115612ce457600080fd5b612cf084828501612b27565b949350505050565b80358015158114612d0857600080fd5b919050565b60008060408385031215612d2057600080fd5b8235612d2b81612a62565b9150612d3960208401612cf8565b90509250929050565b600060208284031215612d5457600080fd5b612c7382612cf8565b600080600060408486031215612d7257600080fd5b833567ffffffffffffffff80821115612d8a57600080fd5b818601915086601f830112612d9e57600080fd5b813581811115612dad57600080fd5b8760208260051b8501011115612dc257600080fd5b602092830195509350612dd89186019050612cf8565b90509250925092565b60008060408385031215612df457600080fd5b8235612dff81612a62565b91506020830135612e0f81612a62565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0057610c00612e4f565b600181811c90821680612e8c57607f821691505b602082108103612eac57634e487b7160e01b600052602260045260246000fd5b50919050565b600181815b80851115612eed578160001904821115612ed357612ed3612e4f565b80851615612ee057918102915b93841c9390800290612eb7565b509250929050565b600082612f0457506001610c00565b81612f1157506000610c00565b8160018114612f275760028114612f3157612f4d565b6001915050610c00565b60ff841115612f4257612f42612e4f565b50506001821b610c00565b5060208310610133831016604e8410600b8410161715612f70575081810a610c00565b612f7a8383612eb2565b8060001904821115612f8e57612f8e612e4f565b029392505050565b6000612c7360ff841683612ef5565b8082028115828204841417610c0057610c00612e4f565b600082612fd957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161300657613006612e4f565b5060010190565b6040808252810183905260008460608301825b8681101561305057823561303381612a62565b6001600160a01b0316825260209283019290910190600101613020565b5080925050508215156020830152949350505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610c0057610c00612e4f565b60006020828403121561311357600080fd5b8151612c7381612a62565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561316e5784516001600160a01b031683529383019391830191600101613149565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122048a296e54641d226fbe102e6f68227fb49c529528b8c040493d329f2cec1f68464736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c876d0b911610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610a4a578063f8b45b0514610a6a578063fb002c9714610a80578063fd72e22a14610a9657600080fd5b8063e884f260146109e9578063e988f975146109fe578063ee40166e14610a1e578063efcc1b2f14610a3457600080fd5b8063d0a39814116100dc578063d0a3981414610962578063d95fa66214610978578063dd62ed3e1461098d578063e2f45605146109d357600080fd5b8063c876d0b91461091c578063c8c8ebe414610936578063ccb613581461094c57600080fd5b8063abb810521161016f578063bbc0c74211610149578063bbc0c7421461089d578063c0246668146108bc578063c18bc195146108dc578063c492f046146108fc57600080fd5b8063abb8105214610827578063b62496f514610857578063b9e937001461088757600080fd5b80639a36f932116101ab5780639a36f932146107b15780639a7a23d6146107c7578063a457c2d7146107e7578063a9059cbb1461080757600080fd5b80638da5cb5b14610759578063924de9b71461077c57806395d89b411461079c57600080fd5b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146106ee578063751039fc146107045780637571336a1461071957806382aa7c681461073957600080fd5b80636ddd17131461068357806370a08231146106a3578063715018a6146106d957600080fd5b8063452ed4f111610285578063452ed4f1146105dc5780634a62bb65146106105780634fbee1931461062a57806366ca9b831461066357600080fd5b8063313ce5671461057a57806333220b741461059c57806339509351146105bc57600080fd5b806310c1622e116103185780631a8145bb116102f25780631a8145bb1461050e5780631fc851bd1461052457806323b872dd1461053a57806330d5d18d1461055a57600080fd5b806310c1622e146104a957806310d5de53146104c957806318160ddd146104f957600080fd5b8063095ea7b311610354578063095ea7b31461041f578063099d0d301461044f5780630f4432e314610473578063106b5da11461048957600080fd5b806302dbd8f81461038657806306fdde03146103a85780630758d924146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a13660046129f2565b610ab6565b005b3480156103b457600080fd5b506103bd610b5d565b6040516103ca9190612a14565b60405180910390f35b3480156103df57600080fd5b506104077f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103ca565b34801561042b57600080fd5b5061043f61043a366004612a77565b610bef565b60405190151581526020016103ca565b34801561045b57600080fd5b5061046560125481565b6040519081526020016103ca565b34801561047f57600080fd5b50610465600a5481565b34801561049557600080fd5b506103a66104a4366004612aa3565b610c06565b3480156104b557600080fd5b506103a66104c4366004612b9b565b610cf9565b3480156104d557600080fd5b5061043f6104e4366004612c56565b601c6020526000908152604090205460ff1681565b34801561050557600080fd5b50600254610465565b34801561051a57600080fd5b5061046560175481565b34801561053057600080fd5b50610465600c5481565b34801561054657600080fd5b5061043f610555366004612c7a565b610e4b565b34801561056657600080fd5b506103a6610575366004612c56565b610efe565b34801561058657600080fd5b5060055460405160ff90911681526020016103ca565b3480156105a857600080fd5b506103a66105b7366004612cbb565b610fec565b3480156105c857600080fd5b5061043f6105d7366004612a77565b611084565b3480156105e857600080fd5b506104077f0000000000000000000000008c95a01a69790bc665960b5d9d1d34031dcafac581565b34801561061c57600080fd5b50600d5461043f9060ff1681565b34801561063657600080fd5b5061043f610645366004612c56565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561066f57600080fd5b506103a661067e3660046129f2565b6110c0565b34801561068f57600080fd5b50600d5461043f9062010000900460ff1681565b3480156106af57600080fd5b506104656106be366004612c56565b6001600160a01b031660009081526020819052604090205490565b3480156106e557600080fd5b506103a661115a565b3480156106fa57600080fd5b5061046560115481565b34801561071057600080fd5b5061043f6111da565b34801561072557600080fd5b506103a6610734366004612d0d565b611229565b34801561074557600080fd5b506103a6610754366004612aa3565b6112b9565b34801561076557600080fd5b5060055461010090046001600160a01b0316610407565b34801561078857600080fd5b506103a6610797366004612d42565b61135b565b3480156107a857600080fd5b506103bd6113a7565b3480156107bd57600080fd5b5061046561271081565b3480156107d357600080fd5b506103a66107e2366004612d0d565b6113b6565b3480156107f357600080fd5b5061043f610802366004612a77565b6114a5565b34801561081357600080fd5b5061043f610822366004612a77565b61153e565b34801561083357600080fd5b5061043f610842366004612c56565b601b6020526000908152604090205460ff1681565b34801561086357600080fd5b5061043f610872366004612c56565b601d6020526000908152604090205460ff1681565b34801561089357600080fd5b5061046560135481565b3480156108a957600080fd5b50600d5461043f90610100900460ff1681565b3480156108c857600080fd5b506103a66108d7366004612d0d565b61154b565b3480156108e857600080fd5b506103a66108f7366004612aa3565b6115d3565b34801561090857600080fd5b506103a6610917366004612d5d565b6116b8565b34801561092857600080fd5b50600f5461043f9060ff1681565b34801561094257600080fd5b5061046560075481565b34801561095857600080fd5b5061046560155481565b34801561096e57600080fd5b5061046560105481565b34801561098457600080fd5b506103a661179a565b34801561099957600080fd5b506104656109a8366004612de1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109df57600080fd5b5061046560085481565b3480156109f557600080fd5b5061043f6118cb565b348015610a0a57600080fd5b506103a6610a19366004612cbb565b61190e565b348015610a2a57600080fd5b50610465600b5481565b348015610a4057600080fd5b5061046560145481565b348015610a5657600080fd5b506103a6610a65366004612c56565b6119a6565b348015610a7657600080fd5b5061046560095481565b348015610a8c57600080fd5b5061046560165481565b348015610aa257600080fd5b50600654610407906001600160a01b031681565b6005546001600160a01b03610100909104163314610aef5760405162461bcd60e51b8152600401610ae690612e1a565b60405180910390fd5b60118290556012819055610b038183612e65565b6010819055610fa01015610b595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420343025206f72206c6573730000006044820152606401610ae6565b5050565b606060038054610b6c90612e78565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890612e78565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610bfc338484611aa2565b5060015b92915050565b6005546001600160a01b03610100909104163314610c365760405162461bcd60e51b8152600401610ae690612e1a565b60055460ff16610c4790600a612f96565b6103e8610c5360025490565b610c5e906001612fa5565b610c689190612fbc565b610c729190612fbc565b8111610cd85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ae6565b60055460ff16610ce990600a612f96565b610cf39082612fa5565b60075550565b6005546001600160a01b03610100909104163314610d295760405162461bcd60e51b8152600401610ae690612e1a565b8051825114610d7a5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610ae6565b610258825110610deb5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203630302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610ae6565b60005b8251811015610e4657610e3433848381518110610e0d57610e0d612fde565b6020026020010151848481518110610e2757610e27612fde565b6020026020010151611bc6565b80610e3e81612ff4565b915050610dee565b505050565b6000610e58848484611d1b565b6001600160a01b03841660009081526001602090815260408083203384529091529020546000198114610ef35782811015610ee65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ae6565b610ef38533858403611aa2565b506001949350505050565b6005546001600160a01b03610100909104163314610f2e5760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038116610f845760405162461bcd60e51b815260206004820152601860248201527f6d6179206e6f742073657420746f2030206164647265737300000000000000006044820152606401610ae6565b610f8f81600161154b565b6006546040516001600160a01b03918216918316907f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f890600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461101c5760405162461bcd60e51b8152600401610ae690612e1a565b60005b8151811015610b59576001601b600084848151811061104057611040612fde565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061107c81612ff4565b91505061101f565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bfc9185906110bb908690612e65565b611aa2565b6005546001600160a01b036101009091041633146110f05760405162461bcd60e51b8152600401610ae690612e1a565b601482905560158190556111048183612e65565b6013819055610fa01015610b595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420343025206f72206c6573730000006044820152606401610ae6565b6005546001600160a01b0361010090910416331461118a5760405162461bcd60e51b8152600401610ae690612e1a565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546000906001600160a01b0361010090910416331461120d5760405162461bcd60e51b8152600401610ae690612e1a565b50600d805460ff19908116909155600f80549091169055600190565b6005546001600160a01b036101009091041633146112595760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b0382166000818152601c6020908152604091829020805460ff191685151590811790915591519182527f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9591015b60405180910390a25050565b6005546001600160a01b036101009091041633146112e95760405162461bcd60e51b8152600401610ae690612e1a565b600d54610100900460ff16156113415760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610ae6565b600d805462ffff0019166201010017905543600b55601a55565b6005546001600160a01b0361010090910416331461138b5760405162461bcd60e51b8152600401610ae690612e1a565b600d8054911515620100000262ff000019909216919091179055565b606060048054610b6c90612e78565b6005546001600160a01b036101009091041633146113e65760405162461bcd60e51b8152600401610ae690612e1a565b7f0000000000000000000000008c95a01a69790bc665960b5d9d1d34031dcafac56001600160a01b0316826001600160a01b03160361149b5760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401610ae6565b610b59828261269e565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156115275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ae6565b6115343385858403611aa2565b5060019392505050565b6000610bfc338484611d1b565b6005546001600160a01b0361010090910416331461157b5760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016112ad565b6005546001600160a01b036101009091041633146116035760405162461bcd60e51b8152600401610ae690612e1a565b60055460ff1661161490600a612f96565b606461161f60025490565b61162a906001612fa5565b6116349190612fbc565b61163e9190612fbc565b81116116975760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b6064820152608401610ae6565b60055460ff166116a890600a612f96565b6116b29082612fa5565b60095550565b6005546001600160a01b036101009091041633146116e85760405162461bcd60e51b8152600401610ae690612e1a565b60005b8281101561175957816018600086868581811061170a5761170a612fde565b905060200201602081019061171f9190612c56565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061175181612ff4565b9150506116eb565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161178d9392919061300d565b60405180910390a1505050565b6005546001600160a01b036101009091041633146117ca5760405162461bcd60e51b8152600401610ae690612e1a565b60195461180c5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320746f20626c6f636b60801b6044820152606401610ae6565b60005b6019548110156118bc57601b60006019838154811061183057611830612fde565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff166118aa576001601b60006019848154811061187557611875612fde565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790555b806118b481612ff4565b91505061180f565b506118c9601960006129b8565b565b6005546000906001600160a01b036101009091041633146118fe5760405162461bcd60e51b8152600401610ae690612e1a565b50600f805460ff19169055600190565b6005546001600160a01b0361010090910416331461193e5760405162461bcd60e51b8152600401610ae690612e1a565b60005b8151811015610b59576000601b600084848151811061196257611962612fde565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061199e81612ff4565b915050611941565b6005546001600160a01b036101009091041633146119d65760405162461bcd60e51b8152600401610ae690612e1a565b6001600160a01b038116611a3b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae6565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316611b045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ae6565b6001600160a01b038216611b655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ae6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611bec5760405162461bcd60e51b8152600401610ae690613066565b6001600160a01b038216611c125760405162461bcd60e51b8152600401610ae6906130ab565b6001600160a01b03831660009081526020819052604090205481811015611c8a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ae6565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611cc1908490612e65565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d0d91815260200190565b60405180910390a350505050565b6001600160a01b038316611d415760405162461bcd60e51b8152600401610ae690613066565b6001600160a01b038216611d675760405162461bcd60e51b8152600401610ae6906130ab565b6001600160a01b0382166000908152601b602052604090205460ff16158015611da957506001600160a01b0383166000908152601b602052604090205460ff16155b611ddf5760405162461bcd60e51b81526020600482015260076024820152664e6f20626f747360c81b6044820152606401610ae6565b80600003611df357610e4683836000611bc6565b600d54610100900460ff16611e8d576001600160a01b03831660009081526018602052604090205460ff1680611e4157506001600160a01b03821660009081526018602052604090205460ff165b611e8d5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420616374697665207965742e0000000000006044820152606401610ae6565b600d5460ff16156122a1576005546001600160a01b038481166101009092041614801590611ece57506005546001600160a01b038381166101009092041614155b8015611ee257506001600160a01b03821615155b8015611ef957506001600160a01b03821661dead14155b8015611f0f5750600554600160a81b900460ff16155b156122a157600f5460ff161561202757326000908152600e60205260409020544390611f3c90600f612e65565b10611f895760405162461bcd60e51b815260206004820152601760248201527f5472616e736665722044656c617920656e61626c65642e0000000000000000006044820152606401610ae6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614158015611ffd57507f0000000000000000000000008c95a01a69790bc665960b5d9d1d34031dcafac56001600160a01b0316826001600160a01b031614155b1561202757326000908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601d602052604090205460ff16801561206857506001600160a01b0382166000908152601c602052604090205460ff16155b15612156576007548111156120dd5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ae6565b6009546001600160a01b0383166000908152602081905260409020546121039083612e65565b11156121515760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610ae6565b6122a1565b6001600160a01b0382166000908152601d602052604090205460ff16801561219757506001600160a01b0383166000908152601c602052604090205460ff16155b1561220d576007548111156121515760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ae6565b6001600160a01b0382166000908152601c602052604090205460ff166122a1576009546001600160a01b0383166000908152602081905260409020546122539083612e65565b11156122a15760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610ae6565b30600090815260208190526040902054600854811080159081906122cd5750600d5462010000900460ff165b80156122e35750600554600160a81b900460ff16155b801561230857506001600160a01b0385166000908152601d602052604090205460ff16155b801561232d57506001600160a01b03851660009081526018602052604090205460ff16155b801561235257506001600160a01b03841660009081526018602052604090205460ff16155b15612380576005805460ff60a81b1916600160a81b179055612372612708565b6005805460ff60a81b191690555b6005546001600160a01b03861660009081526018602052604090205460ff600160a81b9092048216159116806123ce57506001600160a01b03851660009081526018602052604090205460ff165b156123d7575060005b6000811561268a5743601a54600b546123f09190612e65565b1015801561243857506001600160a01b0386166000908152601d602052604090205460ff168061243857506001600160a01b0387166000908152601d602052604090205460ff165b1561250b576127106013548661244e9190612fa5565b6124589190612fbc565b90506013546015548261246b9190612fa5565b6124759190612fbc565b601760008282546124869190612e65565b909155505060135460145461249b9083612fa5565b6124a59190612fbc565b601660008282546124b69190612e65565b9091555050601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b03881617905561266c565b6001600160a01b0386166000908152601d602052604090205460ff16801561253557506000601054115b156125be576127106010548661254b9190612fa5565b6125559190612fbc565b9050601054601254826125689190612fa5565b6125729190612fbc565b601760008282546125839190612e65565b90915550506010546011546125989083612fa5565b6125a29190612fbc565b601660008282546125b39190612e65565b9091555061266c9050565b6001600160a01b0387166000908152601d602052604090205460ff1680156125e857506000601354115b1561266c57612710601354866125fe9190612fa5565b6126089190612fbc565b90506013546015548261261b9190612fa5565b6126259190612fbc565b601760008282546126369190612e65565b909155505060135460145461264b9083612fa5565b6126559190612fbc565b601660008282546126669190612e65565b90915550505b801561267d5761267d873083611bc6565b61268781866130ee565b94505b612695878787611bc6565b50505050505050565b6001600160a01b0382166000908152601d60205260409020805460ff19168215151790556126cc8282611229565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060165460175461272c9190612e65565b9050811580612739575080155b15612742575050565b60175415612822576000816017548461275b9190612fa5565b6127659190612fbc565b9050612792307f0000000000000000000000008c95a01a69790bc665960b5d9d1d34031dcafac583611bc6565b7f0000000000000000000000008c95a01a69790bc665960b5d9d1d34031dcafac56001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127ed57600080fd5b505af19250505080156127fe575060015b5061280981846130ee565b92506017548261281991906130ee565b60006017559150505b8115610b5957604080516002808252606082018352610b599285926000929091602083019080368337019050509050308160008151811061286557612865612fde565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129079190613101565b8160018151811061291a5761291a612fde565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83169263791ac947926129829287926000928892911690429060040161311e565b600060405180830381600087803b15801561299c57600080fd5b505af11580156129b0573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906129d691906129d9565b50565b5b808211156129ee57600081556001016129da565b5090565b60008060408385031215612a0557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612a4157858101830151858201604001528201612a25565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146129d657600080fd5b60008060408385031215612a8a57600080fd5b8235612a9581612a62565b946020939093013593505050565b600060208284031215612ab557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612afb57612afb612abc565b604052919050565b600067ffffffffffffffff821115612b1d57612b1d612abc565b5060051b60200190565b600082601f830112612b3857600080fd5b81356020612b4d612b4883612b03565b612ad2565b82815260059290921b84018101918181019086841115612b6c57600080fd5b8286015b84811015612b90578035612b8381612a62565b8352918301918301612b70565b509695505050505050565b60008060408385031215612bae57600080fd5b823567ffffffffffffffff80821115612bc657600080fd5b612bd286838701612b27565b9350602091508185013581811115612be957600080fd5b85019050601f81018613612bfc57600080fd5b8035612c0a612b4882612b03565b81815260059190911b82018301908381019088831115612c2957600080fd5b928401925b82841015612c4757833582529284019290840190612c2e565b80955050505050509250929050565b600060208284031215612c6857600080fd5b8135612c7381612a62565b9392505050565b600080600060608486031215612c8f57600080fd5b8335612c9a81612a62565b92506020840135612caa81612a62565b929592945050506040919091013590565b600060208284031215612ccd57600080fd5b813567ffffffffffffffff811115612ce457600080fd5b612cf084828501612b27565b949350505050565b80358015158114612d0857600080fd5b919050565b60008060408385031215612d2057600080fd5b8235612d2b81612a62565b9150612d3960208401612cf8565b90509250929050565b600060208284031215612d5457600080fd5b612c7382612cf8565b600080600060408486031215612d7257600080fd5b833567ffffffffffffffff80821115612d8a57600080fd5b818601915086601f830112612d9e57600080fd5b813581811115612dad57600080fd5b8760208260051b8501011115612dc257600080fd5b602092830195509350612dd89186019050612cf8565b90509250925092565b60008060408385031215612df457600080fd5b8235612dff81612a62565b91506020830135612e0f81612a62565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0057610c00612e4f565b600181811c90821680612e8c57607f821691505b602082108103612eac57634e487b7160e01b600052602260045260246000fd5b50919050565b600181815b80851115612eed578160001904821115612ed357612ed3612e4f565b80851615612ee057918102915b93841c9390800290612eb7565b509250929050565b600082612f0457506001610c00565b81612f1157506000610c00565b8160018114612f275760028114612f3157612f4d565b6001915050610c00565b60ff841115612f4257612f42612e4f565b50506001821b610c00565b5060208310610133831016604e8410600b8410161715612f70575081810a610c00565b612f7a8383612eb2565b8060001904821115612f8e57612f8e612e4f565b029392505050565b6000612c7360ff841683612ef5565b8082028115828204841417610c0057610c00612e4f565b600082612fd957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161300657613006612e4f565b5060010190565b6040808252810183905260008460608301825b8681101561305057823561303381612a62565b6001600160a01b0316825260209283019290910190600101613020565b5080925050508215156020830152949350505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610c0057610c00612e4f565b60006020828403121561311357600080fd5b8151612c7381612a62565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561316e5784516001600160a01b031683529383019391830191600101613149565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122048a296e54641d226fbe102e6f68227fb49c529528b8c040493d329f2cec1f68464736f6c63430008130033
Deployed Bytecode Sourcemap
10945:15251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17083:323;;;;;;;;;;-1:-1:-1;17083:323:0;;;;;:::i;:::-;;:::i;:::-;;4187:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10988:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1002:32:1;;;984:51;;972:2;957:18;10988:37:0;820:221:1;5108:169:0;;;;;;;;;;-1:-1:-1;5108:169:0;;;;;:::i;:::-;;:::i;:::-;;;1667:14:1;;1660:22;1642:41;;1630:2;1615:18;5108:169:0;1502:187:1;12016:31:0;;;;;;;;;;;;;;;;;;;1840:25:1;;;1828:2;1813:18;12016:31:0;1694:177:1;11265:39:0;;;;;;;;;;;;;;;;16240:256;;;;;;;;;;-1:-1:-1;16240:256:0;;;;;:::i;:::-;;:::i;25755:434::-;;;;;;;;;;-1:-1:-1;25755:434:0;;;;;:::i;:::-;;:::i;12518:64::-;;;;;;;;;;-1:-1:-1;12518:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4515:108;;;;;;;;;;-1:-1:-1;4603:12:0;;4515:108;;12216:33;;;;;;;;;;;;;;;;11427;;;;;;;;;;;;;;;;5285:573;;;;;;;;;;-1:-1:-1;5285:573:0;;;;;:::i;:::-;;:::i;18634:349::-;;;;;;;;;;-1:-1:-1;18634:349:0;;;;;:::i;:::-;;:::i;4407:100::-;;;;;;;;;;-1:-1:-1;4490:9:0;;4407:100;;4490:9;;;;5401:36:1;;5389:2;5374:18;4407:100:0;5259:184:1;25560:187:0;;;;;;;;;;-1:-1:-1;25560:187:0;;;;;:::i;:::-;;:::i;5866:215::-;;;;;;;;;;-1:-1:-1;5866:215:0;;;;;:::i;:::-;;:::i;11032:31::-;;;;;;;;;;;;;;;11536:33;;;;;;;;;;-1:-1:-1;11536:33:0;;;;;;;;18991:127;;;;;;;;;;-1:-1:-1;18991:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;19082:28:0;19058:4;19082:28;;;:19;:28;;;;;;;;;18991:127;16755:316;;;;;;;;;;-1:-1:-1;16755:316:0;;;;;:::i;:::-;;:::i;11616:31::-;;;;;;;;;;-1:-1:-1;11616:31:0;;;;;;;;;;;4631:127;;;;;;;;;;-1:-1:-1;4631:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4732:18:0;4705:7;4732:18;;;;;;;;;;;;4631:127;8954:148;;;;;;;;;;;;;:::i;11977:32::-;;;;;;;;;;;;;;;;19168:159;;;;;;;;;;;;;:::i;17414:202::-;;;;;;;;;;-1:-1:-1;17414:202:0;;;;;:::i;:::-;;:::i;15759:272::-;;;;;;;;;;-1:-1:-1;15759:272:0;;;;;:::i;:::-;;:::i;8312:79::-;;;;;;;;;;-1:-1:-1;8377:6:0;;;;;-1:-1:-1;;;;;8377:6:0;8312:79;;16131:101;;;;;;;;;;-1:-1:-1;16131:101:0;;;;;:::i;:::-;;:::i;4295:104::-;;;;;;;;;;;;;:::i;11891:42::-;;;;;;;;;;;;11928:5;11891:42;;18130:251;;;;;;;;;;-1:-1:-1;18130:251:0;;;;;:::i;:::-;;:::i;6089:413::-;;;;;;;;;;-1:-1:-1;6089:413:0;;;;;:::i;:::-;;:::i;4766:175::-;;;;;;;;;;-1:-1:-1;4766:175:0;;;;;:::i;:::-;;:::i;12470:39::-;;;;;;;;;;-1:-1:-1;12470:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12740:58;;;;;;;;;;-1:-1:-1;12740:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12060:27;;;;;;;;;;;;;;;;11576:33;;;;;;;;;;-1:-1:-1;11576:33:0;;;;;;;;;;;17624:184;;;;;;;;;;-1:-1:-1;17624:184:0;;;;;:::i;:::-;;:::i;16508:235::-;;;;;;;;;;-1:-1:-1;16508:235:0;;;;;:::i;:::-;;:::i;17816:306::-;;;;;;;;;;-1:-1:-1;17816:306:0;;;;;:::i;:::-;;:::i;11839:39::-;;;;;;;;;;-1:-1:-1;11839:39:0;;;;;;;;11146:35;;;;;;;;;;;;;;;;12132:30;;;;;;;;;;;;;;;;11942:28;;;;;;;;;;;;;;;;25037:319;;;;;;;;;;;;;:::i;4949:151::-;;;;;;;;;;-1:-1:-1;4949:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5065:18:0;;;5038:7;5065:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4949:151;11188:33;;;;;;;;;;;;;;;;15567:134;;;;;;;;;;;;;:::i;25364:188::-;;;;;;;;;;-1:-1:-1;25364:188:0;;;;;:::i;:::-;;:::i;11350:37::-;;;;;;;;;;;;;;;;12094:31;;;;;;;;;;;;;;;;9257:244;;;;;;;;;;-1:-1:-1;9257:244:0;;;;;:::i;:::-;;:::i;11228:24::-;;;;;;;;;;;;;;;;12175:34;;;;;;;;;;;;;;;;11102:31;;;;;;;;;;-1:-1:-1;11102:31:0;;;;-1:-1:-1;;;;;11102:31:0;;;17083:323;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;;;;;;;;;17184:17:::1;:34:::0;;;17229:16:::1;:32:::0;;;17288:36:::1;17248:13:::0;17204:14;17288:36:::1;:::i;:::-;17272:13;:52:::0;;;17360:4:::1;-1:-1:-1::0;17343:21:0::1;17335:63;;;::::0;-1:-1:-1;;;17335:63:0;;8591:2:1;17335:63:0::1;::::0;::::1;8573:21:1::0;8630:2;8610:18;;;8603:30;8669:31;8649:18;;;8642:59;8718:18;;17335:63:0::1;8389:353:1::0;17335:63:0::1;17083:323:::0;;:::o;4187:100::-;4241:13;4274:5;4267:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4187:100;:::o;5108:169::-;5191:4;5208:39;215:10;5231:7;5240:6;5208:8;:39::i;:::-;-1:-1:-1;5265:4:0;5108:169;;;;;:::o;16240:256::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;4490:9;;;;16358:16:::1;::::0;:2:::1;:16;:::i;:::-;16349:4;16329:13;4603:12:::0;;;4515:108;16329:13:::1;:17;::::0;16345:1:::1;16329:17;:::i;:::-;:24;;;;:::i;:::-;16328:47;;;;:::i;:::-;16319:6;:56;16311:116;;;::::0;-1:-1:-1;;;16311:116:0;;11112:2:1;16311:116:0::1;::::0;::::1;11094:21:1::0;11151:2;11131:18;;;11124:30;11190:34;11170:18;;;11163:62;-1:-1:-1;;;11241:18:1;;;11234:45;11296:19;;16311:116:0::1;10910:411:1::0;16311:116:0::1;4490:9:::0;;;;16471:16:::1;::::0;:2:::1;:16;:::i;:::-;16461:27;::::0;:6;:27:::1;:::i;:::-;16438:20;:50:::0;-1:-1:-1;16240:256:0:o;25755:434::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;25891:12:::1;:19;25873:7;:14;:37;25865:80;;;::::0;-1:-1:-1;;;25865:80:0;;11528:2:1;25865:80:0::1;::::0;::::1;11510:21:1::0;11567:2;11547:18;;;11540:30;11606:32;11586:18;;;11579:60;11656:18;;25865:80:0::1;11326:354:1::0;25865:80:0::1;25981:3;25964:7;:14;:20;25956:87;;;::::0;-1:-1:-1;;;25956:87:0;;11887:2:1;25956:87:0::1;::::0;::::1;11869:21:1::0;11926:2;11906:18;;;11899:30;11965:34;11945:18;;;11938:62;-1:-1:-1;;;12016:18:1;;;12009:52;12078:19;;25956:87:0::1;11685:418:1::0;25956:87:0::1;26058:9;26054:126;26077:7;:14;26073:1;:18;26054:126;;;26112:56;26128:10;26140:7;26148:1;26140:10;;;;;;;;:::i;:::-;;;;;;;26152:12;26165:1;26152:15;;;;;;;;:::i;:::-;;;;;;;26112;:56::i;:::-;26093:3:::0;::::1;::::0;::::1;:::i;:::-;;;;26054:126;;;;25755:434:::0;;:::o;5285:573::-;5425:4;5442:36;5452:6;5460:9;5471:6;5442:9;:36::i;:::-;-1:-1:-1;;;;;5518:19:0;;5491:24;5518:19;;;:11;:19;;;;;;;;215:10;5518:33;;;;;;;;-1:-1:-1;;5566:37:0;;5562:265;;5648:6;5628:16;:26;;5620:79;;;;-1:-1:-1;;;5620:79:0;;12582:2:1;5620:79:0;;;12564:21:1;12621:2;12601:18;;;12594:30;12660:34;12640:18;;;12633:62;-1:-1:-1;;;12711:18:1;;;12704:38;12759:19;;5620:79:0;12380:404:1;5620:79:0;5743:57;5752:6;215:10;5793:6;5774:16;:25;5743:8;:57::i;:::-;-1:-1:-1;5846:4:0;;5285:573;-1:-1:-1;;;;5285:573:0:o;18634:349::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18733:33:0;::::1;18725:70;;;::::0;-1:-1:-1;;;18725:70:0;;12991:2:1;18725:70:0::1;::::0;::::1;12973:21:1::0;13030:2;13010:18;;;13003:30;13069:26;13049:18;;;13042:54;13113:18;;18725:70:0::1;12789:348:1::0;18725:70:0::1;18806:42;18822:19;18843:4;18806:15;:42::i;:::-;18909:16;::::0;18864:62:::1;::::0;-1:-1:-1;;;;;18909:16:0;;::::1;::::0;18864:62;::::1;::::0;::::1;::::0;18909:16:::1;::::0;18864:62:::1;18937:16;:38:::0;;-1:-1:-1;;;;;;18937:38:0::1;-1:-1:-1::0;;;;;18937:38:0;;;::::1;::::0;;;::::1;::::0;;18634:349::o;25560:187::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;25643:9:::1;25639:101;25662:10;:17;25658:1;:21;25639:101;;;25724:4;25700:6;:21;25707:10;25718:1;25707:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25700:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25700:21:0;:28;;-1:-1:-1;;25700:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25681:3;::::1;::::0;::::1;:::i;:::-;;;;25639:101;;5866:215:::0;215:10;5954:4;6003:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6003:34:0;;;;;;;;;;5954:4;;5971:80;;5994:7;;6003:47;;6040:10;;6003:47;:::i;:::-;5971:8;:80::i;16755:316::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;16855:16:::1;:33:::0;;;16899:15:::1;:31:::0;;;16956:34:::1;16917:13:::0;16874:14;16956:34:::1;:::i;:::-;16941:12;:49:::0;;;17025:4:::1;-1:-1:-1::0;17009:20:0::1;17001:62;;;::::0;-1:-1:-1;;;17001:62:0;;8591:2:1;17001:62:0::1;::::0;::::1;8573:21:1::0;8630:2;8610:18;;;8603:30;8669:31;8649:18;;;8642:59;8718:18;;17001:62:0::1;8389:353:1::0;8954:148:0;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;9045:6:::1;::::0;9024:40:::1;::::0;9061:1:::1;::::0;9045:6:::1;::::0;::::1;-1:-1:-1::0;;;;;9045:6:0::1;::::0;9024:40:::1;::::0;9061:1;;9024:40:::1;9075:6;:19:::0;;-1:-1:-1;;;;;;9075:19:0::1;::::0;;8954:148::o;19168:159::-;8524:6;;19220:4;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;19236:14:0::1;:22:::0;;-1:-1:-1;;19236:22:0;;::::1;::::0;;;19269:20:::1;:28:::0;;;;::::1;::::0;;19236:22;19168:159;:::o;17414:202::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17504:39:0;::::1;;::::0;;;:31:::1;:39;::::0;;;;;;;;:46;;-1:-1:-1;;17504:46:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17566:42;;1642:41:1;;;17566:42:0::1;::::0;1615:18:1;17566:42:0::1;;;;;;;;17414:202:::0;;:::o;15759:272::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;15842:13:::1;::::0;::::1;::::0;::::1;;;15841:14;15833:51;;;::::0;-1:-1:-1;;;15833:51:0;;13344:2:1;15833:51:0::1;::::0;::::1;13326:21:1::0;13383:2;13363:18;;;13356:30;13422:26;13402:18;;;13395:54;13466:18;;15833:51:0::1;13142:348:1::0;15833:51:0::1;15895:13;:20:::0;;-1:-1:-1;;15926:18:0;;;;;15976:12:::1;15955:18;:33:::0;15999:10:::1;:24:::0;15759:272::o;16131:101::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;16203:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;16203:21:0;;::::1;::::0;;;::::1;::::0;;16131:101::o;4295:104::-;4351:13;4384:7;4377:14;;;;;:::i;18130:251::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;18239:6:::1;-1:-1:-1::0;;;;;18231:14:0::1;:4;-1:-1:-1::0;;;;;18231:14:0::1;::::0;18223:96:::1;;;::::0;-1:-1:-1;;;18223:96:0;;13697:2:1;18223:96:0::1;::::0;::::1;13679:21:1::0;13736:2;13716:18;;;13709:30;13775:34;13755:18;;;13748:62;13846:34;13826:18;;;13819:62;-1:-1:-1;;;13897:19:1;;;13890:36;13943:19;;18223:96:0::1;13495:473:1::0;18223:96:0::1;18332:41;18361:4;18367:5;18332:28;:41::i;6089:413::-:0;215:10;6182:4;6226:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6226:34:0;;;;;;;;;;6279:35;;;;6271:85;;;;-1:-1:-1;;;6271:85:0;;14175:2:1;6271:85:0;;;14157:21:1;14214:2;14194:18;;;14187:30;14253:34;14233:18;;;14226:62;-1:-1:-1;;;14304:18:1;;;14297:35;14349:19;;6271:85:0;13973:401:1;6271:85:0;6392:67;215:10;6415:7;6443:15;6424:16;:34;6392:8;:67::i;:::-;-1:-1:-1;6490:4:0;;6089:413;-1:-1:-1;;;6089:413:0:o;4766:175::-;4852:4;4869:42;215:10;4893:9;4904:6;4869:9;:42::i;17624:184::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17709:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17709:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17766:34;;1642:41:1;;;17766:34:0::1;::::0;1615:18:1;17766:34:0::1;1502:187:1::0;16508:235:0;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;4490:9;;;;16629:16:::1;::::0;:2:::1;:16;:::i;:::-;16623:3;16603:13;4603:12:::0;;;4515:108;16603:13:::1;:17;::::0;16619:1:::1;16603:17;:::i;:::-;:23;;;;:::i;:::-;16602:44;;;;:::i;:::-;16593:6;:53;16585:100;;;::::0;-1:-1:-1;;;16585:100:0;;14581:2:1;16585:100:0::1;::::0;::::1;14563:21:1::0;14620:2;14600:18;;;14593:30;14659:34;14639:18;;;14632:62;-1:-1:-1;;;14710:18:1;;;14703:32;14752:19;;16585:100:0::1;14379:398:1::0;16585:100:0::1;4490:9:::0;;;;16718:16:::1;::::0;:2:::1;:16;:::i;:::-;16708:27;::::0;:6;:27:::1;:::i;:::-;16696:9;:39:::0;-1:-1:-1;16508:235:0:o;17816:306::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;17935:9:::1;17931:115;17950:19:::0;;::::1;17931:115;;;18026:8;17991:19;:32;18011:8;;18020:1;18011:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17991:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17991:32:0;:43;;-1:-1:-1;;17991:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17971:3;::::1;::::0;::::1;:::i;:::-;;;;17931:115;;;;18063:51;18095:8;;18105;18063:51;;;;;;;;:::i;:::-;;;;;;;;17816:306:::0;;;:::o;25037:319::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;25098:11:::1;:18:::0;25090:51:::1;;;::::0;-1:-1:-1;;;25090:51:0;;15783:2:1;25090:51:0::1;::::0;::::1;15765:21:1::0;15822:2;15802:18;;;15795:30;-1:-1:-1;;;15841:18:1;;;15834:46;15897:18;;25090:51:0::1;15581:340:1::0;25090:51:0::1;25158:9;25154:164;25177:11;:18:::0;25173:22;::::1;25154:164;;;25220:6;:22;25227:11;25239:1;25227:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;25227:14:0::1;25220:22:::0;;;::::1;::::0;;;;;;;;;::::1;;25216:91;;25287:4;25262:6;:22;25269:11;25281:1;25269:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;25269:14:0::1;25262:22:::0;;;::::1;::::0;;;;;;;;:29;;-1:-1:-1;;25262:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25216:91:::1;25197:3:::0;::::1;::::0;::::1;:::i;:::-;;;;25154:164;;;-1:-1:-1::0;25330:18:0::1;25337:11;;25330:18;:::i;:::-;25037:319::o:0;15567:134::-;8524:6;;15627:4;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;15643:20:0::1;:28:::0;;-1:-1:-1;;15643:28:0::1;::::0;;;15567:134;:::o;25364:188::-;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;25447:9:::1;25443:102;25466:10;:17;25462:1;:21;25443:102;;;25528:5;25504:6;:21;25511:10;25522:1;25511:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25504:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25504:21:0;:29;;-1:-1:-1;;25504:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25485:3;::::1;::::0;::::1;:::i;:::-;;;;25443:102;;9257:244:::0;8524:6;;-1:-1:-1;;;;;8524:6:0;;;;;215:10;8524:22;8516:67;;;;-1:-1:-1;;;8516:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9346:22:0;::::1;9338:73;;;::::0;-1:-1:-1;;;9338:73:0;;16128:2:1;9338:73:0::1;::::0;::::1;16110:21:1::0;16167:2;16147:18;;;16140:30;16206:34;16186:18;;;16179:62;-1:-1:-1;;;16257:18:1;;;16250:36;16303:19;;9338:73:0::1;15926:402:1::0;9338:73:0::1;9448:6;::::0;9427:38:::1;::::0;-1:-1:-1;;;;;9427:38:0;;::::1;::::0;9448:6:::1;::::0;::::1;;::::0;9427:38:::1;::::0;;;::::1;9476:6;:17:::0;;-1:-1:-1;;;;;9476:17:0;;::::1;;;-1:-1:-1::0;;;;;;9476:17:0;;::::1;::::0;;;::::1;::::0;;9257:244::o;7429:380::-;-1:-1:-1;;;;;7565:19:0;;7557:68;;;;-1:-1:-1;;;7557:68:0;;16535:2:1;7557:68:0;;;16517:21:1;16574:2;16554:18;;;16547:30;16613:34;16593:18;;;16586:62;-1:-1:-1;;;16664:18:1;;;16657:34;16708:19;;7557:68:0;16333:400:1;7557:68:0;-1:-1:-1;;;;;7644:21:0;;7636:68;;;;-1:-1:-1;;;7636:68:0;;16940:2:1;7636:68:0;;;16922:21:1;16979:2;16959:18;;;16952:30;17018:34;16998:18;;;16991:62;-1:-1:-1;;;17069:18:1;;;17062:32;17111:19;;7636:68:0;16738:398:1;7636:68:0;-1:-1:-1;;;;;7717:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7769:32;;1840:25:1;;;7769:32:0;;1813:18:1;7769:32:0;;;;;;;7429:380;;;:::o;6510:614::-;-1:-1:-1;;;;;6650:20:0;;6642:70;;;;-1:-1:-1;;;6642:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6731:23:0;;6723:71;;;;-1:-1:-1;;;6723:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6831:17:0;;6807:21;6831:17;;;;;;;;;;;6867:23;;;;6859:74;;;;-1:-1:-1;;;6859:74:0;;18153:2:1;6859:74:0;;;18135:21:1;18192:2;18172:18;;;18165:30;18231:34;18211:18;;;18204:62;-1:-1:-1;;;18282:18:1;;;18275:36;18328:19;;6859:74:0;17951:402:1;6859:74:0;-1:-1:-1;;;;;6969:17:0;;;:9;:17;;;;;;;;;;;6989:22;;;6969:42;;7033:20;;;;;;;;:30;;7005:6;;6969:9;7033:30;;7005:6;;7033:30;:::i;:::-;;;;;;;;7098:9;-1:-1:-1;;;;;7081:35:0;7090:6;-1:-1:-1;;;;;7081:35:0;;7109:6;7081:35;;;;1840:25:1;;1828:2;1813:18;;1694:177;7081:35:0;;;;;;;;6631:493;6510:614;;;:::o;19339:4392::-;-1:-1:-1;;;;;19471:18:0;;19463:68;;;;-1:-1:-1;;;19463:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19550:16:0;;19542:64;;;;-1:-1:-1;;;19542:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19626:10:0;;;;;;:6;:10;;;;;;;;19625:11;:28;;;;-1:-1:-1;;;;;;19641:12:0;;;;;;:6;:12;;;;;;;;19640:13;19625:28;19617:48;;;;-1:-1:-1;;;19617:48:0;;18560:2:1;19617:48:0;;;18542:21:1;18599:1;18579:18;;;18572:29;-1:-1:-1;;;18617:18:1;;;18610:37;18664:18;;19617:48:0;18358:330:1;19617:48:0;19682:6;19692:1;19682:11;19679:92;;19710:28;19726:4;19732:2;19736:1;19710:15;:28::i;19679:92::-;19795:13;;;;;;;19791:136;;-1:-1:-1;;;;;19832:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19861:23:0;;;;;;:19;:23;;;;;;;;19832:52;19824:91;;;;-1:-1:-1;;;19824:91:0;;18895:2:1;19824:91:0;;;18877:21:1;18934:2;18914:18;;;18907:30;18973:28;18953:18;;;18946:56;19019:18;;19824:91:0;18693:350:1;19824:91:0;19950:14;;;;19947:1657;;;8377:6;;-1:-1:-1;;;;;20002:15:0;;;8377:6;;;;;20002:15;;;;:49;;-1:-1:-1;8377:6:0;;-1:-1:-1;;;;;20038:13:0;;;8377:6;;;;;20038:13;;20002:49;:86;;;;-1:-1:-1;;;;;;20072:16:0;;;;20002:86;:128;;;;-1:-1:-1;;;;;;20109:21:0;;20123:6;20109:21;;20002:128;:158;;;;-1:-1:-1;20152:8:0;;-1:-1:-1;;;20152:8:0;;;;20151:9;20002:158;19980:1613;;;20334:20;;;;20330:418;;;20415:9;20386:39;;;;:28;:39;;;;;;20433:12;;20386:44;;20428:2;20386:44;:::i;:::-;:59;20378:95;;;;-1:-1:-1;;;20378:95:0;;19250:2:1;20378:95:0;;;19232:21:1;19289:2;19269:18;;;19262:30;19328:25;19308:18;;;19301:53;19371:18;;20378:95:0;19048:347:1;20378:95:0;20514:9;-1:-1:-1;;;;;20500:24:0;:2;-1:-1:-1;;;;;20500:24:0;;;:49;;;;;20542:6;-1:-1:-1;;;;;20528:21:0;:2;-1:-1:-1;;;;;20528:21:0;;;20500:49;20496:233;;;20606:9;20577:39;;;;:28;:39;;;;;;20619:12;20577:54;;;;-1:-1:-1;;;;;20658:32:0;;;;;;:47;20496:233;-1:-1:-1;;;;;20816:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;20852:35:0;;;;;;:31;:35;;;;;;;;20851:36;20816:71;20812:766;;;20930:20;;20920:6;:30;;20912:96;;;;-1:-1:-1;;;20912:96:0;;19602:2:1;20912:96:0;;;19584:21:1;19641:2;19621:18;;;19614:30;19680:34;19660:18;;;19653:62;-1:-1:-1;;;19731:18:1;;;19724:51;19792:19;;20912:96:0;19400:417:1;20912:96:0;21065:9;;-1:-1:-1;;;;;4732:18:0;;4705:7;4732:18;;;;;;;;;;;21039:22;;:6;:22;:::i;:::-;:35;;21031:75;;;;-1:-1:-1;;;21031:75:0;;20024:2:1;21031:75:0;;;20006:21:1;20063:2;20043:18;;;20036:30;20102:29;20082:18;;;20075:57;20149:18;;21031:75:0;19822:351:1;21031:75:0;20812:766;;;-1:-1:-1;;;;;21183:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;21217:37:0;;;;;;:31;:37;;;;;;;;21216:38;21183:71;21179:399;;;21297:20;;21287:6;:30;;21279:97;;;;-1:-1:-1;;;21279:97:0;;20380:2:1;21279:97:0;;;20362:21:1;20419:2;20399:18;;;20392:30;20458:34;20438:18;;;20431:62;-1:-1:-1;;;20509:18:1;;;20502:52;20571:19;;21279:97:0;20178:418:1;21179:399:0;-1:-1:-1;;;;;21423:35:0;;;;;;:31;:35;;;;;;;;21419:159;;21517:9;;-1:-1:-1;;;;;4732:18:0;;4705:7;4732:18;;;;;;;;;;;21491:22;;:6;:22;:::i;:::-;:35;;21483:75;;;;-1:-1:-1;;;21483:75:0;;20024:2:1;21483:75:0;;;20006:21:1;20063:2;20043:18;;;20036:30;20102:29;20082:18;;;20075:57;20149:18;;21483:75:0;19822:351:1;21483:75:0;21659:4;21610:28;4732:18;;;;;;;;;;;21725;;21701:42;;;;;;;21774:35;;-1:-1:-1;21798:11:0;;;;;;;21774:35;:61;;;;-1:-1:-1;21827:8:0;;-1:-1:-1;;;21827:8:0;;;;21826:9;21774:61;:110;;;;-1:-1:-1;;;;;;21853:31:0;;;;;;:25;:31;;;;;;;;21852:32;21774:110;:153;;;;-1:-1:-1;;;;;;21902:25:0;;;;;;:19;:25;;;;;;;;21901:26;21774:153;:194;;;;-1:-1:-1;;;;;;21945:23:0;;;;;;:19;:23;;;;;;;;21944:24;21774:194;21756:322;;;21995:8;:15;;-1:-1:-1;;;;21995:15:0;-1:-1:-1;;;21995:15:0;;;22025:10;:8;:10::i;:::-;22050:8;:16;;-1:-1:-1;;;;22050:16:0;;;21756:322;22106:8;;-1:-1:-1;;;;;22215:25:0;;22090:12;22215:25;;;:19;:25;;;;;;22106:8;-1:-1:-1;;;22106:8:0;;;;;22105:9;;22215:25;;:52;;-1:-1:-1;;;;;;22244:23:0;;;;;;:19;:23;;;;;;;;22215:52;22212:99;;;-1:-1:-1;22294:5:0;22212:99;22331:12;22422:7;22419:1259;;;22483:12;22469:10;;22448:18;;:31;;;;:::i;:::-;:47;;:117;;;;-1:-1:-1;;;;;;22500:29:0;;;;;;:25;:29;;;;;;;;;:64;;-1:-1:-1;;;;;;22533:31:0;;;;;;:25;:31;;;;;;;;22500:64;22445:1076;;;11928:5;22601:12;;22592:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;22585:41;;22692:12;;22674:15;;22667:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;22645:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;22772:12:0;;22753:16;;22746:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;22723:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;22803:11:0;:20;;;;;;;-1:-1:-1;22803:20:0;;;;;;;;-1:-1:-1;;;;;;22803:20:0;-1:-1:-1;;;;;22803:20:0;;;;;22445:1076;;;-1:-1:-1;;;;;22888:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;22937:1;22921:13;;:17;22888:50;22884:637;;;11928:5;22974:13;;22965:6;:22;;;;:::i;:::-;:35;;;;:::i;:::-;22958:42;;23067:13;;23048:16;;23041:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23019:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;23149:13:0;;23129:17;;23122:24;;:4;:24;:::i;:::-;:40;;;;:::i;:::-;23099:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;22884:637:0;;-1:-1:-1;22884:637:0;;-1:-1:-1;;;;;23237:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;23287:1;23272:12;;:16;23237:51;23234:287;;;11928:5;23322:12;;23313:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;23306:41;;23413:12;;23395:15;;23388:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;23366:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;23493:12:0;;23474:16;;23467:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;23444:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;23234:287:0;23540:8;;23537:93;;23572:42;23588:4;23602;23609;23572:15;:42::i;:::-;23652:14;23662:4;23652:14;;:::i;:::-;;;22419:1259;23690:33;23706:4;23712:2;23716:6;23690:15;:33::i;:::-;19452:4279;;;;19339:4392;;;:::o;18389:237::-;-1:-1:-1;;;;;18472:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;18472:39:0;;;;;;;18524:38;18472:31;:39;18524:25;:38::i;:::-;18578:40;;;;;;-1:-1:-1;;;;;18578:40:0;;;;;;;;18389:237;;:::o;24268:761::-;24351:4;24307:23;4732:18;;;;;;;;;;;24307:50;;24368:25;24417:19;;24396:18;;:40;;;;:::i;:::-;24368:68;-1:-1:-1;24460:20:0;;;:46;;-1:-1:-1;24484:22:0;;24460:46;24457:60;;;24509:7;;24268:761::o;24457:60::-;24534:18;;:22;24531:396;;24572:23;24637:17;24616:18;;24598:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;24572:82;;24669:55;24693:4;24700:6;24708:15;24669;:55::i;:::-;24751:6;-1:-1:-1;;;;;24743:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24739:37;24790:34;24809:15;24790:34;;:::i;:::-;;;24860:18;;24839:39;;;;;:::i;:::-;24914:1;24893:18;:22;24839:39;-1:-1:-1;;24531:396:0;24942:19;;24939:83;;23891:16;;;23905:1;23891:16;;;;;;;;24977:33;;24994:15;;23867:21;;23891:16;;;;;;;;;;;;-1:-1:-1;23891:16:0;23867:40;;23936:4;23918;23923:1;23918:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23918:23:0;;;-1:-1:-1;;;;;23918:23:0;;;;;23962:9;-1:-1:-1;;;;;23962:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23952:4;23957:1;23952:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23952:26:0;;;:7;;;;;;;;;:26;24189:16;;24017:230;;-1:-1:-1;;;24017:230:0;;:9;:60;;;;;:230;;24092:11;;24118:1;;24162:4;;24189:16;;;24221:15;;24017:230;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23794:466;23739:521;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;1046:131::-;-1:-1:-1;;;;;1121:31:1;;1111:42;;1101:70;;1167:1;1164;1157:12;1182:315;1250:6;1258;1311:2;1299:9;1290:7;1286:23;1282:32;1279:52;;;1327:1;1324;1317:12;1279:52;1366:9;1353:23;1385:31;1410:5;1385:31;:::i;:::-;1435:5;1487:2;1472:18;;;;1459:32;;-1:-1:-1;;;1182:315:1:o;1876:180::-;1935:6;1988:2;1976:9;1967:7;1963:23;1959:32;1956:52;;;2004:1;2001;1994:12;1956:52;-1:-1:-1;2027:23:1;;1876:180;-1:-1:-1;1876:180:1:o;2061:127::-;2122:10;2117:3;2113:20;2110:1;2103:31;2153:4;2150:1;2143:15;2177:4;2174:1;2167:15;2193:275;2264:2;2258:9;2329:2;2310:13;;-1:-1:-1;;2306:27:1;2294:40;;2364:18;2349:34;;2385:22;;;2346:62;2343:88;;;2411:18;;:::i;:::-;2447:2;2440:22;2193:275;;-1:-1:-1;2193:275:1:o;2473:183::-;2533:4;2566:18;2558:6;2555:30;2552:56;;;2588:18;;:::i;:::-;-1:-1:-1;2633:1:1;2629:14;2645:4;2625:25;;2473:183::o;2661:737::-;2715:5;2768:3;2761:4;2753:6;2749:17;2745:27;2735:55;;2786:1;2783;2776:12;2735:55;2822:6;2809:20;2848:4;2872:60;2888:43;2928:2;2888:43;:::i;:::-;2872:60;:::i;:::-;2966:15;;;3052:1;3048:10;;;;3036:23;;3032:32;;;2997:12;;;;3076:15;;;3073:35;;;3104:1;3101;3094:12;3073:35;3140:2;3132:6;3128:15;3152:217;3168:6;3163:3;3160:15;3152:217;;;3248:3;3235:17;3265:31;3290:5;3265:31;:::i;:::-;3309:18;;3347:12;;;;3185;;3152:217;;;-1:-1:-1;3387:5:1;2661:737;-1:-1:-1;;;;;;2661:737:1:o;3403:1138::-;3521:6;3529;3582:2;3570:9;3561:7;3557:23;3553:32;3550:52;;;3598:1;3595;3588:12;3550:52;3638:9;3625:23;3667:18;3708:2;3700:6;3697:14;3694:34;;;3724:1;3721;3714:12;3694:34;3747:61;3800:7;3791:6;3780:9;3776:22;3747:61;:::i;:::-;3737:71;;3827:2;3817:12;;3882:2;3871:9;3867:18;3854:32;3911:2;3901:8;3898:16;3895:36;;;3927:1;3924;3917:12;3895:36;3950:24;;;-1:-1:-1;4005:4:1;3997:13;;3993:27;-1:-1:-1;3983:55:1;;4034:1;4031;4024:12;3983:55;4070:2;4057:16;4093:60;4109:43;4149:2;4109:43;:::i;4093:60::-;4187:15;;;4269:1;4265:10;;;;4257:19;;4253:28;;;4218:12;;;;4293:19;;;4290:39;;;4325:1;4322;4315:12;4290:39;4349:11;;;;4369:142;4385:6;4380:3;4377:15;4369:142;;;4451:17;;4439:30;;4402:12;;;;4489;;;;4369:142;;;4530:5;4520:15;;;;;;;3403:1138;;;;;:::o;4546:247::-;4605:6;4658:2;4646:9;4637:7;4633:23;4629:32;4626:52;;;4674:1;4671;4664:12;4626:52;4713:9;4700:23;4732:31;4757:5;4732:31;:::i;:::-;4782:5;4546:247;-1:-1:-1;;;4546:247:1:o;4798:456::-;4875:6;4883;4891;4944:2;4932:9;4923:7;4919:23;4915:32;4912:52;;;4960:1;4957;4950:12;4912:52;4999:9;4986:23;5018:31;5043:5;5018:31;:::i;:::-;5068:5;-1:-1:-1;5125:2:1;5110:18;;5097:32;5138:33;5097:32;5138:33;:::i;:::-;4798:456;;5190:7;;-1:-1:-1;;;5244:2:1;5229:18;;;;5216:32;;4798:456::o;5448:348::-;5532:6;5585:2;5573:9;5564:7;5560:23;5556:32;5553:52;;;5601:1;5598;5591:12;5553:52;5641:9;5628:23;5674:18;5666:6;5663:30;5660:50;;;5706:1;5703;5696:12;5660:50;5729:61;5782:7;5773:6;5762:9;5758:22;5729:61;:::i;:::-;5719:71;5448:348;-1:-1:-1;;;;5448:348:1:o;6009:160::-;6074:20;;6130:13;;6123:21;6113:32;;6103:60;;6159:1;6156;6149:12;6103:60;6009:160;;;:::o;6174:315::-;6239:6;6247;6300:2;6288:9;6279:7;6275:23;6271:32;6268:52;;;6316:1;6313;6306:12;6268:52;6355:9;6342:23;6374:31;6399:5;6374:31;:::i;:::-;6424:5;-1:-1:-1;6448:35:1;6479:2;6464:18;;6448:35;:::i;:::-;6438:45;;6174:315;;;;;:::o;6494:180::-;6550:6;6603:2;6591:9;6582:7;6578:23;6574:32;6571:52;;;6619:1;6616;6609:12;6571:52;6642:26;6658:9;6642:26;:::i;6679:689::-;6771:6;6779;6787;6840:2;6828:9;6819:7;6815:23;6811:32;6808:52;;;6856:1;6853;6846:12;6808:52;6896:9;6883:23;6925:18;6966:2;6958:6;6955:14;6952:34;;;6982:1;6979;6972:12;6952:34;7020:6;7009:9;7005:22;6995:32;;7065:7;7058:4;7054:2;7050:13;7046:27;7036:55;;7087:1;7084;7077:12;7036:55;7127:2;7114:16;7153:2;7145:6;7142:14;7139:34;;;7169:1;7166;7159:12;7139:34;7224:7;7217:4;7207:6;7204:1;7200:14;7196:2;7192:23;7188:34;7185:47;7182:67;;;7245:1;7242;7235:12;7182:67;7276:4;7268:13;;;;-1:-1:-1;7300:6:1;-1:-1:-1;7325:37:1;;7341:20;;;-1:-1:-1;7325:37:1;:::i;:::-;7315:47;;6679:689;;;;;:::o;7373:388::-;7441:6;7449;7502:2;7490:9;7481:7;7477:23;7473:32;7470:52;;;7518:1;7515;7508:12;7470:52;7557:9;7544:23;7576:31;7601:5;7576:31;:::i;:::-;7626:5;-1:-1:-1;7683:2:1;7668:18;;7655:32;7696:33;7655:32;7696:33;:::i;:::-;7748:7;7738:17;;;7373:388;;;;;:::o;7766:356::-;7968:2;7950:21;;;7987:18;;;7980:30;8046:34;8041:2;8026:18;;8019:62;8113:2;8098:18;;7766:356::o;8127:127::-;8188:10;8183:3;8179:20;8176:1;8169:31;8219:4;8216:1;8209:15;8243:4;8240:1;8233:15;8259:125;8324:9;;;8345:10;;;8342:36;;;8358:18;;:::i;8747:380::-;8826:1;8822:12;;;;8869;;;8890:61;;8944:4;8936:6;8932:17;8922:27;;8890:61;8997:2;8989:6;8986:14;8966:18;8963:38;8960:161;;9043:10;9038:3;9034:20;9031:1;9024:31;9078:4;9075:1;9068:15;9106:4;9103:1;9096:15;8960:161;;8747:380;;;:::o;9132:422::-;9221:1;9264:5;9221:1;9278:270;9299:7;9289:8;9286:21;9278:270;;;9358:4;9354:1;9350:6;9346:17;9340:4;9337:27;9334:53;;;9367:18;;:::i;:::-;9417:7;9407:8;9403:22;9400:55;;;9437:16;;;;9400:55;9516:22;;;;9476:15;;;;9278:270;;;9282:3;9132:422;;;;;:::o;9559:806::-;9608:5;9638:8;9628:80;;-1:-1:-1;9679:1:1;9693:5;;9628:80;9727:4;9717:76;;-1:-1:-1;9764:1:1;9778:5;;9717:76;9809:4;9827:1;9822:59;;;;9895:1;9890:130;;;;9802:218;;9822:59;9852:1;9843:10;;9866:5;;;9890:130;9927:3;9917:8;9914:17;9911:43;;;9934:18;;:::i;:::-;-1:-1:-1;;9990:1:1;9976:16;;10005:5;;9802:218;;10104:2;10094:8;10091:16;10085:3;10079:4;10076:13;10072:36;10066:2;10056:8;10053:16;10048:2;10042:4;10039:12;10035:35;10032:77;10029:159;;;-1:-1:-1;10141:19:1;;;10173:5;;10029:159;10220:34;10245:8;10239:4;10220:34;:::i;:::-;10290:6;10286:1;10282:6;10278:19;10269:7;10266:32;10263:58;;;10301:18;;:::i;:::-;10339:20;;9559:806;-1:-1:-1;;;9559:806:1:o;10370:140::-;10428:5;10457:47;10498:4;10488:8;10484:19;10478:4;10457:47;:::i;10515:168::-;10588:9;;;10619;;10636:15;;;10630:22;;10616:37;10606:71;;10657:18;;:::i;10688:217::-;10728:1;10754;10744:132;;10798:10;10793:3;10789:20;10786:1;10779:31;10833:4;10830:1;10823:15;10861:4;10858:1;10851:15;10744:132;-1:-1:-1;10890:9:1;;10688:217::o;12108:127::-;12169:10;12164:3;12160:20;12157:1;12150:31;12200:4;12197:1;12190:15;12224:4;12221:1;12214:15;12240:135;12279:3;12300:17;;;12297:43;;12320:18;;:::i;:::-;-1:-1:-1;12367:1:1;12356:13;;12240:135::o;14782:794::-;15004:2;15016:21;;;14989:18;;15072:22;;;14956:4;15151:6;15125:2;15110:18;;14956:4;15185:304;15199:6;15196:1;15193:13;15185:304;;;15274:6;15261:20;15294:31;15319:5;15294:31;:::i;:::-;-1:-1:-1;;;;;15350:31:1;15338:44;;15405:4;15464:15;;;;15429:12;;;;15378:1;15214:9;15185:304;;;15189:3;15506;15498:11;;;;15561:6;15554:14;15547:22;15540:4;15529:9;15525:20;15518:52;14782:794;;;;;;:::o;17141:401::-;17343:2;17325:21;;;17382:2;17362:18;;;17355:30;17421:34;17416:2;17401:18;;17394:62;-1:-1:-1;;;17487:2:1;17472:18;;17465:35;17532:3;17517:19;;17141:401::o;17547:399::-;17749:2;17731:21;;;17788:2;17768:18;;;17761:30;17827:34;17822:2;17807:18;;17800:62;-1:-1:-1;;;17893:2:1;17878:18;;17871:33;17936:3;17921:19;;17547:399::o;20601:128::-;20668:9;;;20689:11;;;20686:37;;;20703:18;;:::i;20734:251::-;20804:6;20857:2;20845:9;20836:7;20832:23;20828:32;20825:52;;;20873:1;20870;20863:12;20825:52;20905:9;20899:16;20924:31;20949:5;20924:31;:::i;20990:980::-;21252:4;21300:3;21289:9;21285:19;21331:6;21320:9;21313:25;21357:2;21395:6;21390:2;21379:9;21375:18;21368:34;21438:3;21433:2;21422:9;21418:18;21411:31;21462:6;21497;21491:13;21528:6;21520;21513:22;21566:3;21555:9;21551:19;21544:26;;21605:2;21597:6;21593:15;21579:29;;21626:1;21636:195;21650:6;21647:1;21644:13;21636:195;;;21715:13;;-1:-1:-1;;;;;21711:39:1;21699:52;;21806:15;;;;21771:12;;;;21747:1;21665:9;21636:195;;;-1:-1:-1;;;;;;;21887:32:1;;;;21882:2;21867:18;;21860:60;-1:-1:-1;;;21951:3:1;21936:19;21929:35;21848:3;20990:980;-1:-1:-1;;;20990:980:1:o
Swarm Source
ipfs://48a296e54641d226fbe102e6f68227fb49c529528b8c040493d329f2cec1f684
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.