ERC-20
Overview
Max Total Supply
10,000,000,000 GROK2
Holders
1,351
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GROK2
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-11 */ /** */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; 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()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface 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 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 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } 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 per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } 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; } } } 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function 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 transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } 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; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), 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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract GROK2 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private devWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); uint8 private constant _decimals = 9; uint256 public initialTotalSupply = 10000000000 * 10**_decimals; // 1% is the max wallet uint256 public maxWallet = (initialTotalSupply * 10)/1000; uint256 public maxTransactionAmount = maxWallet; // buy / sell tax uint256 public buyFee = 10; uint256 public sellFee = 30; bool private swapping; bool public transferDelayEnabled = true; mapping(address => uint256) private _holderLastTransferTimestamp; //swap for 0.8% uint256 public swapTokensAtAmount = (initialTotalSupply * 8)/1000; bool public tradingOpen = false; bool public swapEnabled = false; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("Grok 2", "GROK2"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0xD1C73F390d3CC1c7b951f7DA508dF9886F2bbEb2); devWallet = payable(_msgSender()); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(devWallet, true); excludeFromFees(address(_msgSender()), true); excludeFromFees(marketingWallet, true); excludeFromFees(devWallet, true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); // mint _mint(devWallet, initialTotalSupply); } receive() external payable {} function addLP() external onlyOwner() { require(!tradingOpen,"Trading is already open"); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, 0xDECA70d669638782ec438623b9A73CdD086b2a1f, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (transferDelayEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){ if (to != address(_uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number && _holderLastTransferTimestamp[to] < block.number, "_transfer:: Transfer Delay enabled. Try again later."); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } 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 && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function stopDelay() external onlyOwner{ require(transferDelayEnabled, "Already disabled!"); transferDelayEnabled = false; } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { sellFee = _sellFee; buyFee = _buyFee; } function removeLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function updateTheSwapThreshold(uint256 newAmmount) external onlyOwner { swapTokensAtAmount = newAmmount * 10**_decimals; } function manualSwapToken(uint256 percent) external { require(_msgSender() == devWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function removeStuckEth() external { require(address(this).balance > 0, "Token: no ETH in the contract"); require(_msgSender() == devWallet); payable(msg.sender).transfer(address(this).balance); } function tokenWithdraw() external { require(_msgSender() == devWallet); uint256 amount = balanceOf(address(this)); _transfer(address(this), devWallet, amount); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } }
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":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":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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLP","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","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":[{"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopDelay","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":"tokenWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmmount","type":"uint256"}],"name":"updateTheSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052620000126009600a62000774565b62000023906402540be4006200078b565b6009556103e8600954600a6200003a91906200078b565b620000469190620007a5565b600a818155600b91909155600c55601e600d55600e805461ff0019166101001790556009546103e8906200007c9060086200078b565b620000889190620007a5565b6010556011805461ffff19169055348015620000a2575f80fd5b506040518060400160405280600681526020016523b937b5901960d11b8152506040518060400160405280600581526020016423a927a59960d91b8152508160039081620000f1919062000864565b50600462000100828262000864565b5050506200011d62000117620003f960201b60201c565b620003fd565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600880546001600160a01b03191673d1c73f390d3cc1c7b951f7da508df9886f2bbeb2179055620001633390565b600780546001600160a01b0319166001600160a01b0392909216919091179055620001903060016200044e565b6200019f61dead60016200044e565b608051620001af906001620004b6565b620001bc306001620004b6565b620001cb61dead6001620004b6565b620001d8336001620004b6565b600854620001f1906001600160a01b03166001620004b6565b6007546200020a906001600160a01b03166001620004b6565b620002173360016200044e565b60085462000230906001600160a01b031660016200044e565b60075462000249906001600160a01b031660016200044e565b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000288573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ae91906200092c565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032291906200092c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200036d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039391906200092c565b600680546001600160a01b0319166001600160a01b03929092169182179055620003bf906001620004b6565b600654620003d8906001600160a01b03166001620004ea565b600754600954620003f3916001600160a01b0316906200053d565b6200096a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6200045862000602565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620004c062000602565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005995760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620005ac919062000954565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146200065e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000590565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006b957815f19048211156200069d576200069d62000665565b80851615620006ab57918102915b93841c93908002906200067e565b509250929050565b5f82620006d1575060016200076e565b81620006df57505f6200076e565b8160018114620006f85760028114620007035762000723565b60019150506200076e565b60ff84111562000717576200071762000665565b50506001821b6200076e565b5060208310610133831016604e8410600b841016171562000748575081810a6200076e565b62000754838362000679565b805f19048211156200076a576200076a62000665565b0290505b92915050565b5f6200078460ff841683620006c1565b9392505050565b80820281158282048414176200076e576200076e62000665565b5f82620007c057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007ee57607f821691505b6020821081036200080d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000660575f81815260208120601f850160051c810160208610156200083b5750805b601f850160051c820191505b818110156200085c5782815560010162000847565b505050505050565b81516001600160401b03811115620008805762000880620007c5565b6200089881620008918454620007d9565b8462000813565b602080601f831160018114620008ce575f8415620008b65750858301515b5f19600386901b1c1916600185901b1785556200085c565b5f85815260208120601f198616915b82811015620008fe57888601518255948401946001909101908401620008dd565b50858210156200091c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200093d575f80fd5b81516001600160a01b038116811462000784575f80fd5b808201808211156200076e576200076e62000665565b6080516120b9620009b45f395f818161044b01528181610adb01528181610b0401528181610bf20152818161116d015281816118c80152818161197f01526119be01526120b95ff3fe60806040526004361061022b575f3560e01c8063715018a611610129578063c0246668116100a8578063de749dff1161006d578063de749dff14610637578063e2f456051461064b578063f2fde38b14610660578063f8b45b051461067f578063ffb54a9914610694575f80fd5b8063c0246668146105b2578063c876d0b9146105d1578063c8c8ebe4146105ef578063c9567bf914610604578063dd62ed3e14610618575f80fd5b806395d89b41116100ee57806395d89b411461052d5780639a7a23d614610541578063a457c2d714610560578063a9059cbb1461057f578063bc37e1a31461059e575f80fd5b8063715018a6146104aa57806371f5f01a146104be578063751039fc146104dd5780637571336a146104f15780638da5cb5b14610510575f80fd5b806339509351116101b5578063500116be1161017a578063500116be146103fc57806352f7c9881461041b578063583e05681461043a5780636ddd17131461046d57806370a082311461048b575f80fd5b8063395093511461033b57806342966c681461035a578063470624021461037957806349bd5a5e1461038e5780634fbee193146103c5575f80fd5b80632b14ca56116101fb5780632b14ca56146102cc5780632c8206ea146102e157806330c74e04146102f7578063311028af1461030b578063313ce56714610320575f80fd5b806306fdde0314610236578063095ea7b31461026057806318160ddd1461028f57806323b872dd146102ad575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5061024a6106ad565b6040516102579190611bf8565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611c57565b61073d565b6040519015158152602001610257565b34801561029a575f80fd5b506002545b604051908152602001610257565b3480156102b8575f80fd5b5061027f6102c7366004611c81565b610756565b3480156102d7575f80fd5b5061029f600d5481565b3480156102ec575f80fd5b506102f5610779565b005b348015610302575f80fd5b506102f56107de565b348015610316575f80fd5b5061029f60095481565b34801561032b575f80fd5b5060405160098152602001610257565b348015610346575f80fd5b5061027f610355366004611c57565b610825565b348015610365575f80fd5b506102f5610374366004611cbf565b610846565b348015610384575f80fd5b5061029f600c5481565b348015610399575f80fd5b506006546103ad906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156103d0575f80fd5b5061027f6103df366004611cd6565b6001600160a01b03165f9081526012602052604090205460ff1690565b348015610407575f80fd5b506102f5610416366004611cbf565b610850565b348015610426575f80fd5b506102f5610435366004611cf1565b610874565b348015610445575f80fd5b506103ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610478575f80fd5b5060115461027f90610100900460ff1681565b348015610496575f80fd5b5061029f6104a5366004611cd6565b610884565b3480156104b5575f80fd5b506102f561089e565b3480156104c9575f80fd5b506102f56104d8366004611cbf565b6108b1565b3480156104e8575f80fd5b506102f5610903565b3480156104fc575f80fd5b506102f561050b366004611d1e565b610918565b34801561051b575f80fd5b506005546001600160a01b03166103ad565b348015610538575f80fd5b5061024a61094a565b34801561054c575f80fd5b506102f561055b366004611d1e565b610959565b34801561056b575f80fd5b5061027f61057a366004611c57565b6109f3565b34801561058a575f80fd5b5061027f610599366004611c57565b610a6d565b3480156105a9575f80fd5b506102f5610a7a565b3480156105bd575f80fd5b506102f56105cc366004611d1e565b610c6d565b3480156105dc575f80fd5b50600e5461027f90610100900460ff1681565b3480156105fa575f80fd5b5061029f600b5481565b34801561060f575f80fd5b506102f5610cd3565b348015610623575f80fd5b5061029f610632366004611d55565b610cec565b348015610642575f80fd5b506102f5610d16565b348015610656575f80fd5b5061029f60105481565b34801561066b575f80fd5b506102f561067a366004611cd6565b610dad565b34801561068a575f80fd5b5061029f600a5481565b34801561069f575f80fd5b5060115461027f9060ff1681565b6060600380546106bc90611d81565b80601f01602080910402602001604051908101604052809291908181526020018280546106e890611d81565b80156107335780601f1061070a57610100808354040283529160200191610733565b820191905f5260205f20905b81548152906001019060200180831161071657829003601f168201915b5050505050905090565b5f3361074a818585610e23565b60019150505b92915050565b5f33610763858285610f46565b61076e858585610fbe565b506001949350505050565b610781611698565b600e54610100900460ff166107d15760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b60448201526064015b60405180910390fd5b600e805461ff0019169055565b6007546001600160a01b0316336001600160a01b0316146107fd575f80fd5b5f61080730610884565b6007549091506108229030906001600160a01b031683610fbe565b50565b5f3361074a8185856108378383610cec565b6108419190611dcd565b610e23565b61082233826116f2565b610858611698565b6108646009600a611ec0565b61086e9082611ece565b60105550565b61087c611698565b600d55600c55565b6001600160a01b03165f9081526020819052604090205490565b6108a6611698565b6108af5f611822565b565b6007546001600160a01b0316336001600160a01b0316146108d0575f80fd5b5f6108da30610884565b90505f60646108e98484611ece565b6108f39190611ee5565b90506108fe81611873565b505050565b61090b611698565b600954600b819055600a55565b610920611698565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6060600480546106bc90611d81565b610961611698565b6006546001600160a01b03908116908316036109e55760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107c8565b6109ef8282611a30565b5050565b5f3381610a008286610cec565b905083811015610a605760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c8565b61076e8286868403610e23565b5f3361074a818585610fbe565b610a82611698565b60115460ff1615610ad55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107c8565b610b02307f0000000000000000000000000000000000000000000000000000000000000000600954610e23565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610b3c30610884565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273deca70d669638782ec438623b9a73cdd086b2a1f60848201524260a482015260c40160606040518083038185885af1158015610bb1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd69190611f04565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610c49573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108229190611f2f565b610c75611698565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610cdb611698565b6011805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f4711610d655760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016107c8565b6007546001600160a01b0316336001600160a01b031614610d84575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610822573d5f803e3d5ffd5b610db5611698565b6001600160a01b038116610e1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c8565b61082281611822565b6001600160a01b038316610e855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c8565b6001600160a01b038216610ee65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c8565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f518484610cec565b90505f198114610fb85781811015610fab5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107c8565b610fb88484848403610e23565b50505050565b6001600160a01b038316610fe45760405162461bcd60e51b81526004016107c890611f4a565b6001600160a01b03821661100a5760405162461bcd60e51b81526004016107c890611f8f565b805f0361101c576108fe83835f611a83565b6005546001600160a01b0384811691161480159061104857506005546001600160a01b03838116911614155b801561105c57506001600160a01b03821615155b801561107357506001600160a01b03821661dead14155b80156110825750600e5460ff16155b156114c25760115460ff16611113576001600160a01b0383165f9081526012602052604090205460ff16806110ce57506001600160a01b0382165f9081526012602052604090205460ff165b6111135760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c8565b600e54610100900460ff16801561114257506001600160a01b0383165f9081526012602052604090205460ff16155b801561116657506001600160a01b0382165f9081526012602052604090205460ff16155b15611281577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141580156111bb57506006546001600160a01b03838116911614155b1561128157325f908152600f6020526040902054431180156111f357506001600160a01b0382165f908152600f602052604090205443115b61125d5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016107c8565b325f908152600f602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f9081526014602052604090205460ff1680156112c057506001600160a01b0382165f9081526013602052604090205460ff16155b1561139457600b548111156113355760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107c8565b600a5461134183610884565b61134b9083611dcd565b111561138f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c8565b6114c2565b6001600160a01b0382165f9081526014602052604090205460ff1680156113d357506001600160a01b0383165f9081526013602052604090205460ff16155b1561144957600b5481111561138f5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107c8565b6001600160a01b0382165f9081526013602052604090205460ff166114c257600a5461147483610884565b61147e9083611dcd565b11156114c25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c8565b5f6114cc30610884565b60105490915081118080156114e85750601154610100900460ff165b80156114f75750600e5460ff16155b801561151b57506001600160a01b0385165f9081526014602052604090205460ff16155b801561153f57506001600160a01b0385165f9081526012602052604090205460ff16155b801561156357506001600160a01b0384165f9081526012602052604090205460ff16155b1561158857600e805460ff1916600117905561157d611bab565b600e805460ff191690555b600e545f9060ff161580156115b557506001600160a01b0386165f9081526012602052604090205460ff16155b80156115d957506001600160a01b0385165f9081526012602052604090205460ff16155b90505f8115611684576001600160a01b0386165f9081526014602052604090205460ff161561162957611622606461161c600d5488611bdb90919063ffffffff16565b90611bed565b9050611666565b6001600160a01b0387165f9081526014602052604090205460ff161561166657611663606461161c600c5488611bdb90919063ffffffff16565b90505b801561167757611677873083611a83565b6116818186611fd2565b94505b61168f878787611a83565b50505050505050565b6005546001600160a01b031633146108af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c8565b6001600160a01b0382166117525760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107c8565b6001600160a01b0382165f90815260208190526040902054818110156117c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107c8565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106118a6576118a6611fe5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119469190611ff9565b8160018151811061195957611959611fe5565b60200260200101906001600160a01b031690816001600160a01b0316815250506119a4307f000000000000000000000000000000000000000000000000000000000000000084610e23565b60085460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926119ff9287925f92889291909116904290600401612014565b5f604051808303815f87803b158015611a16575f80fd5b505af1158015611a28573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611aa95760405162461bcd60e51b81526004016107c890611f4a565b6001600160a01b038216611acf5760405162461bcd60e51b81526004016107c890611f8f565b6001600160a01b0383165f9081526020819052604090205481811015611b465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c8565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fb8565b5f611bb530610884565b9050805f03611bc15750565b6010548190811115611bd257506010545b6109ef81611873565b5f611be68284611ece565b9392505050565b5f611be68284611ee5565b5f6020808352835180828501525f5b81811015611c2357858101830151858201604001528201611c07565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610822575f80fd5b5f8060408385031215611c68575f80fd5b8235611c7381611c43565b946020939093013593505050565b5f805f60608486031215611c93575f80fd5b8335611c9e81611c43565b92506020840135611cae81611c43565b929592945050506040919091013590565b5f60208284031215611ccf575f80fd5b5035919050565b5f60208284031215611ce6575f80fd5b8135611be681611c43565b5f8060408385031215611d02575f80fd5b50508035926020909101359150565b8015158114610822575f80fd5b5f8060408385031215611d2f575f80fd5b8235611d3a81611c43565b91506020830135611d4a81611d11565b809150509250929050565b5f8060408385031215611d66575f80fd5b8235611d7181611c43565b91506020830135611d4a81611c43565b600181811c90821680611d9557607f821691505b602082108103611db357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561075057610750611db9565b600181815b80851115611e1a57815f1904821115611e0057611e00611db9565b80851615611e0d57918102915b93841c9390800290611de5565b509250929050565b5f82611e3057506001610750565b81611e3c57505f610750565b8160018114611e525760028114611e5c57611e78565b6001915050610750565b60ff841115611e6d57611e6d611db9565b50506001821b610750565b5060208310610133831016604e8410600b8410161715611e9b575081810a610750565b611ea58383611de0565b805f1904821115611eb857611eb8611db9565b029392505050565b5f611be660ff841683611e22565b808202811582820484141761075057610750611db9565b5f82611eff57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611f16575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611f3f575f80fd5b8151611be681611d11565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561075057610750611db9565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612009575f80fd5b8151611be681611c43565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120625784516001600160a01b03168352938301939183019160010161203d565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122012dd0934933bb1c8e53008f71ff635c7e73f1d0037b90dfafe16e1133460835664736f6c63430008140033
Deployed Bytecode
0x60806040526004361061022b575f3560e01c8063715018a611610129578063c0246668116100a8578063de749dff1161006d578063de749dff14610637578063e2f456051461064b578063f2fde38b14610660578063f8b45b051461067f578063ffb54a9914610694575f80fd5b8063c0246668146105b2578063c876d0b9146105d1578063c8c8ebe4146105ef578063c9567bf914610604578063dd62ed3e14610618575f80fd5b806395d89b41116100ee57806395d89b411461052d5780639a7a23d614610541578063a457c2d714610560578063a9059cbb1461057f578063bc37e1a31461059e575f80fd5b8063715018a6146104aa57806371f5f01a146104be578063751039fc146104dd5780637571336a146104f15780638da5cb5b14610510575f80fd5b806339509351116101b5578063500116be1161017a578063500116be146103fc57806352f7c9881461041b578063583e05681461043a5780636ddd17131461046d57806370a082311461048b575f80fd5b8063395093511461033b57806342966c681461035a578063470624021461037957806349bd5a5e1461038e5780634fbee193146103c5575f80fd5b80632b14ca56116101fb5780632b14ca56146102cc5780632c8206ea146102e157806330c74e04146102f7578063311028af1461030b578063313ce56714610320575f80fd5b806306fdde0314610236578063095ea7b31461026057806318160ddd1461028f57806323b872dd146102ad575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5061024a6106ad565b6040516102579190611bf8565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611c57565b61073d565b6040519015158152602001610257565b34801561029a575f80fd5b506002545b604051908152602001610257565b3480156102b8575f80fd5b5061027f6102c7366004611c81565b610756565b3480156102d7575f80fd5b5061029f600d5481565b3480156102ec575f80fd5b506102f5610779565b005b348015610302575f80fd5b506102f56107de565b348015610316575f80fd5b5061029f60095481565b34801561032b575f80fd5b5060405160098152602001610257565b348015610346575f80fd5b5061027f610355366004611c57565b610825565b348015610365575f80fd5b506102f5610374366004611cbf565b610846565b348015610384575f80fd5b5061029f600c5481565b348015610399575f80fd5b506006546103ad906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156103d0575f80fd5b5061027f6103df366004611cd6565b6001600160a01b03165f9081526012602052604090205460ff1690565b348015610407575f80fd5b506102f5610416366004611cbf565b610850565b348015610426575f80fd5b506102f5610435366004611cf1565b610874565b348015610445575f80fd5b506103ad7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610478575f80fd5b5060115461027f90610100900460ff1681565b348015610496575f80fd5b5061029f6104a5366004611cd6565b610884565b3480156104b5575f80fd5b506102f561089e565b3480156104c9575f80fd5b506102f56104d8366004611cbf565b6108b1565b3480156104e8575f80fd5b506102f5610903565b3480156104fc575f80fd5b506102f561050b366004611d1e565b610918565b34801561051b575f80fd5b506005546001600160a01b03166103ad565b348015610538575f80fd5b5061024a61094a565b34801561054c575f80fd5b506102f561055b366004611d1e565b610959565b34801561056b575f80fd5b5061027f61057a366004611c57565b6109f3565b34801561058a575f80fd5b5061027f610599366004611c57565b610a6d565b3480156105a9575f80fd5b506102f5610a7a565b3480156105bd575f80fd5b506102f56105cc366004611d1e565b610c6d565b3480156105dc575f80fd5b50600e5461027f90610100900460ff1681565b3480156105fa575f80fd5b5061029f600b5481565b34801561060f575f80fd5b506102f5610cd3565b348015610623575f80fd5b5061029f610632366004611d55565b610cec565b348015610642575f80fd5b506102f5610d16565b348015610656575f80fd5b5061029f60105481565b34801561066b575f80fd5b506102f561067a366004611cd6565b610dad565b34801561068a575f80fd5b5061029f600a5481565b34801561069f575f80fd5b5060115461027f9060ff1681565b6060600380546106bc90611d81565b80601f01602080910402602001604051908101604052809291908181526020018280546106e890611d81565b80156107335780601f1061070a57610100808354040283529160200191610733565b820191905f5260205f20905b81548152906001019060200180831161071657829003601f168201915b5050505050905090565b5f3361074a818585610e23565b60019150505b92915050565b5f33610763858285610f46565b61076e858585610fbe565b506001949350505050565b610781611698565b600e54610100900460ff166107d15760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b60448201526064015b60405180910390fd5b600e805461ff0019169055565b6007546001600160a01b0316336001600160a01b0316146107fd575f80fd5b5f61080730610884565b6007549091506108229030906001600160a01b031683610fbe565b50565b5f3361074a8185856108378383610cec565b6108419190611dcd565b610e23565b61082233826116f2565b610858611698565b6108646009600a611ec0565b61086e9082611ece565b60105550565b61087c611698565b600d55600c55565b6001600160a01b03165f9081526020819052604090205490565b6108a6611698565b6108af5f611822565b565b6007546001600160a01b0316336001600160a01b0316146108d0575f80fd5b5f6108da30610884565b90505f60646108e98484611ece565b6108f39190611ee5565b90506108fe81611873565b505050565b61090b611698565b600954600b819055600a55565b610920611698565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6060600480546106bc90611d81565b610961611698565b6006546001600160a01b03908116908316036109e55760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107c8565b6109ef8282611a30565b5050565b5f3381610a008286610cec565b905083811015610a605760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c8565b61076e8286868403610e23565b5f3361074a818585610fbe565b610a82611698565b60115460ff1615610ad55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107c8565b610b02307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600954610e23565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610b3c30610884565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273deca70d669638782ec438623b9a73cdd086b2a1f60848201524260a482015260c40160606040518083038185885af1158015610bb1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd69190611f04565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610c49573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108229190611f2f565b610c75611698565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610cdb611698565b6011805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f4711610d655760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016107c8565b6007546001600160a01b0316336001600160a01b031614610d84575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610822573d5f803e3d5ffd5b610db5611698565b6001600160a01b038116610e1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c8565b61082281611822565b6001600160a01b038316610e855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c8565b6001600160a01b038216610ee65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c8565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f518484610cec565b90505f198114610fb85781811015610fab5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107c8565b610fb88484848403610e23565b50505050565b6001600160a01b038316610fe45760405162461bcd60e51b81526004016107c890611f4a565b6001600160a01b03821661100a5760405162461bcd60e51b81526004016107c890611f8f565b805f0361101c576108fe83835f611a83565b6005546001600160a01b0384811691161480159061104857506005546001600160a01b03838116911614155b801561105c57506001600160a01b03821615155b801561107357506001600160a01b03821661dead14155b80156110825750600e5460ff16155b156114c25760115460ff16611113576001600160a01b0383165f9081526012602052604090205460ff16806110ce57506001600160a01b0382165f9081526012602052604090205460ff165b6111135760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c8565b600e54610100900460ff16801561114257506001600160a01b0383165f9081526012602052604090205460ff16155b801561116657506001600160a01b0382165f9081526012602052604090205460ff16155b15611281577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b0316141580156111bb57506006546001600160a01b03838116911614155b1561128157325f908152600f6020526040902054431180156111f357506001600160a01b0382165f908152600f602052604090205443115b61125d5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016107c8565b325f908152600f602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f9081526014602052604090205460ff1680156112c057506001600160a01b0382165f9081526013602052604090205460ff16155b1561139457600b548111156113355760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107c8565b600a5461134183610884565b61134b9083611dcd565b111561138f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c8565b6114c2565b6001600160a01b0382165f9081526014602052604090205460ff1680156113d357506001600160a01b0383165f9081526013602052604090205460ff16155b1561144957600b5481111561138f5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107c8565b6001600160a01b0382165f9081526013602052604090205460ff166114c257600a5461147483610884565b61147e9083611dcd565b11156114c25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c8565b5f6114cc30610884565b60105490915081118080156114e85750601154610100900460ff165b80156114f75750600e5460ff16155b801561151b57506001600160a01b0385165f9081526014602052604090205460ff16155b801561153f57506001600160a01b0385165f9081526012602052604090205460ff16155b801561156357506001600160a01b0384165f9081526012602052604090205460ff16155b1561158857600e805460ff1916600117905561157d611bab565b600e805460ff191690555b600e545f9060ff161580156115b557506001600160a01b0386165f9081526012602052604090205460ff16155b80156115d957506001600160a01b0385165f9081526012602052604090205460ff16155b90505f8115611684576001600160a01b0386165f9081526014602052604090205460ff161561162957611622606461161c600d5488611bdb90919063ffffffff16565b90611bed565b9050611666565b6001600160a01b0387165f9081526014602052604090205460ff161561166657611663606461161c600c5488611bdb90919063ffffffff16565b90505b801561167757611677873083611a83565b6116818186611fd2565b94505b61168f878787611a83565b50505050505050565b6005546001600160a01b031633146108af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c8565b6001600160a01b0382166117525760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107c8565b6001600160a01b0382165f90815260208190526040902054818110156117c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107c8565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106118a6576118a6611fe5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119469190611ff9565b8160018151811061195957611959611fe5565b60200260200101906001600160a01b031690816001600160a01b0316815250506119a4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610e23565b60085460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926119ff9287925f92889291909116904290600401612014565b5f604051808303815f87803b158015611a16575f80fd5b505af1158015611a28573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611aa95760405162461bcd60e51b81526004016107c890611f4a565b6001600160a01b038216611acf5760405162461bcd60e51b81526004016107c890611f8f565b6001600160a01b0383165f9081526020819052604090205481811015611b465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c8565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fb8565b5f611bb530610884565b9050805f03611bc15750565b6010548190811115611bd257506010545b6109ef81611873565b5f611be68284611ece565b9392505050565b5f611be68284611ee5565b5f6020808352835180828501525f5b81811015611c2357858101830151858201604001528201611c07565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610822575f80fd5b5f8060408385031215611c68575f80fd5b8235611c7381611c43565b946020939093013593505050565b5f805f60608486031215611c93575f80fd5b8335611c9e81611c43565b92506020840135611cae81611c43565b929592945050506040919091013590565b5f60208284031215611ccf575f80fd5b5035919050565b5f60208284031215611ce6575f80fd5b8135611be681611c43565b5f8060408385031215611d02575f80fd5b50508035926020909101359150565b8015158114610822575f80fd5b5f8060408385031215611d2f575f80fd5b8235611d3a81611c43565b91506020830135611d4a81611d11565b809150509250929050565b5f8060408385031215611d66575f80fd5b8235611d7181611c43565b91506020830135611d4a81611c43565b600181811c90821680611d9557607f821691505b602082108103611db357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561075057610750611db9565b600181815b80851115611e1a57815f1904821115611e0057611e00611db9565b80851615611e0d57918102915b93841c9390800290611de5565b509250929050565b5f82611e3057506001610750565b81611e3c57505f610750565b8160018114611e525760028114611e5c57611e78565b6001915050610750565b60ff841115611e6d57611e6d611db9565b50506001821b610750565b5060208310610133831016604e8410600b8410161715611e9b575081810a610750565b611ea58383611de0565b805f1904821115611eb857611eb8611db9565b029392505050565b5f611be660ff841683611e22565b808202811582820484141761075057610750611db9565b5f82611eff57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611f16575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611f3f575f80fd5b8151611be681611d11565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561075057610750611db9565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612009575f80fd5b8151611be681611c43565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120625784516001600160a01b03168352938301939183019160010161203d565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122012dd0934933bb1c8e53008f71ff635c7e73f1d0037b90dfafe16e1133460835664736f6c63430008140033
Deployed Bytecode Sourcemap
14463:9298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9692:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10623:201;;;;;;;;;;-1:-1:-1;10623:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10623:201:0;1023:187:1;10012:108:0;;;;;;;;;;-1:-1:-1;10100:12:0;;10012:108;;;1361:25:1;;;1349:2;1334:18;10012:108:0;1215:177:1;10832:261:0;;;;;;;;;;-1:-1:-1;10832:261:0;;;;;:::i;:::-;;:::i;15085:27::-;;;;;;;;;;;;;;;;22081:147;;;;;;;;;;;;;:::i;:::-;;23188:193;;;;;;;;;;;;;:::i;14808:63::-;;;;;;;;;;;;;;;;9912:92;;;;;;;;;;-1:-1:-1;9912:92:0;;9995:1;2000:36:1;;1988:2;1973:18;9912:92:0;1858:184:1;11101:238:0;;;;;;;;;;-1:-1:-1;11101:238:0;;;;;:::i;:::-;;:::i;17582:85::-;;;;;;;;;;-1:-1:-1;17582:85:0;;;;;:::i;:::-;;:::i;15052:26::-;;;;;;;;;;;;;;;;14597:28;;;;;;;;;;-1:-1:-1;14597:28:0;;;;-1:-1:-1;;;;;14597:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14597:28:0;2232:203:1;18594:126:0;;;;;;;;;;-1:-1:-1;18594:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18684:28:0;18660:4;18684:28;;;:19;:28;;;;;;;;;18594:126;22532:137;;;;;;;;;;-1:-1:-1;22532:137:0;;;;;:::i;:::-;;:::i;22238:134::-;;;;;;;;;;-1:-1:-1;22238:134:0;;;;;:::i;:::-;;:::i;14538:52::-;;;;;;;;;;;;;;;15407:31;;;;;;;;;;-1:-1:-1;15407:31:0;;;;;;;;;;;10128:127;;;;;;;;;;-1:-1:-1;10128:127:0;;;;;:::i;:::-;;:::i;903:103::-;;;;;;;;;;;;;:::i;22677:267::-;;;;;;;;;;-1:-1:-1;22677:267:0;;;;;:::i;:::-;;:::i;22380:144::-;;;;;;;;;;;;;:::i;17793:::-;;;;;;;;;;-1:-1:-1;17793:144:0;;;;;:::i;:::-;;:::i;668:87::-;;;;;;;;;;-1:-1:-1;741:6:0;;-1:-1:-1;;;;;741:6:0;668:87;;9800:104;;;;;;;;;;;;;:::i;18135:257::-;;;;;;;;;;-1:-1:-1;18135:257:0;;;;;:::i;:::-;;:::i;11347:436::-;;;;;;;;;;-1:-1:-1;11347:436:0;;;;;:::i;:::-;;:::i;10263:193::-;;;;;;;;;;-1:-1:-1;10263:193:0;;;;;:::i;:::-;;:::i;17036:538::-;;;;;;;;;;;;;:::i;17945:182::-;;;;;;;;;;-1:-1:-1;17945:182:0;;;;;:::i;:::-;;:::i;15151:39::-;;;;;;;;;;-1:-1:-1;15151:39:0;;;;;;;;;;;14973:47;;;;;;;;;;;;;;;;17675:110;;;;;;;;;;;;;:::i;10464:151::-;;;;;;;;;;-1:-1:-1;10464:151:0;;;;;:::i;:::-;;:::i;22952:228::-;;;;;;;;;;;;;:::i;15295:65::-;;;;;;;;;;;;;;;;1014:201;;;;;;;;;;-1:-1:-1;1014:201:0;;;;;:::i;:::-;;:::i;14909:57::-;;;;;;;;;;;;;;;;15369:31;;;;;;;;;;-1:-1:-1;15369:31:0;;;;;;;;9692:100;9746:13;9779:5;9772:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9692:100;:::o;10623:201::-;10706:4;221:10;10762:32;221:10;10778:7;10787:6;10762:8;:32::i;:::-;10812:4;10805:11;;;10623:201;;;;;:::o;10832:261::-;10929:4;221:10;10987:38;11003:4;221:10;11018:6;10987:15;:38::i;:::-;11036:27;11046:4;11052:2;11056:6;11036:9;:27::i;:::-;-1:-1:-1;11081:4:0;;10832:261;-1:-1:-1;;;;10832:261:0:o;22081:147::-;627:13;:11;:13::i;:::-;22139:20:::1;::::0;::::1;::::0;::::1;;;22131:50;;;::::0;-1:-1:-1;;;22131:50:0;;4669:2:1;22131:50:0::1;::::0;::::1;4651:21:1::0;4708:2;4688:18;;;4681:30;-1:-1:-1;;;4727:18:1;;;4720:47;4784:18;;22131:50:0::1;;;;;;;;;22192:20;:28:::0;;-1:-1:-1;;22192:28:0::1;::::0;;22081:147::o;23188:193::-;23257:9;;-1:-1:-1;;;;;23257:9:0;221:10;-1:-1:-1;;;;;23241:25:0;;23233:34;;;;;;23278:14;23295:24;23313:4;23295:9;:24::i;:::-;23355:9;;23278:41;;-1:-1:-1;23330:43:0;;23348:4;;-1:-1:-1;;;;;23355:9:0;23278:41;23330:9;:43::i;:::-;23222:159;23188:193::o;11101:238::-;11189:4;221:10;11245:64;221:10;11261:7;11298:10;11270:25;221:10;11261:7;11270:9;:25::i;:::-;:38;;;;:::i;:::-;11245:8;:64::i;17582:85::-;17632:27;221:10;17652:6;17632:5;:27::i;22532:137::-;627:13;:11;:13::i;:::-;22648::::1;14800:1;22648:2;:13;:::i;:::-;22635:26;::::0;:10;:26:::1;:::i;:::-;22614:18;:47:::0;-1:-1:-1;22532:137:0:o;22238:134::-;627:13;:11;:13::i;:::-;22319:7:::1;:18:::0;22348:6:::1;:16:::0;22238:134::o;10128:127::-;-1:-1:-1;;;;;10229:18:0;10202:7;10229:18;;;;;;;;;;;;10128:127::o;903:103::-;627:13;:11;:13::i;:::-;968:30:::1;995:1;968:18;:30::i;:::-;903:103::o:0;22677:267::-;22763:9;;-1:-1:-1;;;;;22763:9:0;221:10;-1:-1:-1;;;;;22747:25:0;;22739:34;;;;;;22784:23;22810:24;22828:4;22810:9;:24::i;:::-;22784:50;-1:-1:-1;22845:18:0;22894:3;22866:25;22884:7;22784:50;22866:25;:::i;:::-;:31;;;;:::i;:::-;22845:52;;22908:28;22925:10;22908:16;:28::i;:::-;22728:216;;22677:267;:::o;22380:144::-;627:13;:11;:13::i;:::-;22457:18:::1;::::0;22434:20:::1;:41:::0;;;22486:9:::1;:30:::0;22380:144::o;17793:::-;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;17883:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17883:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17793:144::o;9800:104::-;9856:13;9889:7;9882:14;;;;;:::i;18135:257::-;627:13;:11;:13::i;:::-;18257::::1;::::0;-1:-1:-1;;;;;18257:13:0;;::::1;18249:21:::0;;::::1;::::0;18241:91:::1;;;::::0;-1:-1:-1;;;18241:91:0;;7055:2:1;18241:91:0::1;::::0;::::1;7037:21:1::0;7094:2;7074:18;;;7067:30;7133:34;7113:18;;;7106:62;7204:27;7184:18;;;7177:55;7249:19;;18241:91:0::1;6853:421:1::0;18241:91:0::1;18343:41;18372:4;18378:5;18343:28;:41::i;:::-;18135:257:::0;;:::o;11347:436::-;11440:4;221:10;11440:4;11523:25;221:10;11540:7;11523:9;:25::i;:::-;11496:52;;11587:15;11567:16;:35;;11559:85;;;;-1:-1:-1;;;11559:85:0;;7481:2:1;11559:85:0;;;7463:21:1;7520:2;7500:18;;;7493:30;7559:34;7539:18;;;7532:62;-1:-1:-1;;;7610:18:1;;;7603:35;7655:19;;11559:85:0;7279:401:1;11559:85:0;11680:60;11689:5;11696:7;11724:15;11705:16;:34;11680:8;:60::i;10263:193::-;10342:4;221:10;10398:28;221:10;10415:2;10419:6;10398:9;:28::i;17036:538::-;627:13;:11;:13::i;:::-;17094:11:::1;::::0;::::1;;17093:12;17085:47;;;::::0;-1:-1:-1;;;17085:47:0;;7887:2:1;17085:47:0::1;::::0;::::1;7869:21:1::0;7926:2;7906:18;;;7899:30;7965:25;7945:18;;;7938:53;8008:18;;17085:47:0::1;7685:347:1::0;17085:47:0::1;17143:70;17160:4;17175:16;17194:18;;17143:8;:70::i;:::-;17224:16;-1:-1:-1::0;;;;;17224:32:0::1;;17264:21;17309:4;17329:24;17347:4;17329:9;:24::i;:::-;17224:259;::::0;-1:-1:-1;;;;;;17224:259:0::1;::::0;;;;;;-1:-1:-1;;;;;8396:15:1;;;17224:259:0::1;::::0;::::1;8378:34:1::0;8428:18;;;8421:34;17368:1:0::1;8471:18:1::0;;;8464:34;;;8514:18;;;8507:34;17400:42:0::1;8557:19:1::0;;;8550:44;17457:15:0::1;8610:19:1::0;;;8603:35;8312:19;;17224:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17501:13:0::1;::::0;17494:72:::1;::::0;-1:-1:-1;;;17494:72:0;;-1:-1:-1;;;;;17532:16:0::1;9152:32:1::0;;17494:72:0::1;::::0;::::1;9134:51:1::0;-1:-1:-1;;9201:18:1;;;9194:34;17501:13:0;;::::1;::::0;-1:-1:-1;17494:29:0::1;::::0;9107:18:1;;17494:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17945:182::-:0;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;18030:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18030:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18085:34;;1163:41:1;;;18085:34:0::1;::::0;1136:18:1;18085:34:0::1;;;;;;;17945:182:::0;;:::o;17675:110::-;627:13;:11;:13::i;:::-;17730:11:::1;:18:::0;;-1:-1:-1;;17759:18:0;;;;;17675:110::o;10464:151::-;-1:-1:-1;;;;;10580:18:0;;;10553:7;10580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10464:151::o;22952:228::-;23030:1;23006:21;:25;22998:67;;;;-1:-1:-1;;;22998:67:0;;9691:2:1;22998:67:0;;;9673:21:1;9730:2;9710:18;;;9703:30;9769:31;9749:18;;;9742:59;9818:18;;22998:67:0;9489:353:1;22998:67:0;23100:9;;-1:-1:-1;;;;;23100:9:0;221:10;-1:-1:-1;;;;;23084:25:0;;23076:34;;;;;;23121:51;;23129:10;;23150:21;23121:51;;;;;;;;;23150:21;23129:10;23121:51;;;;;;;;;;;;;;;;;;;1014:201;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;1103:22:0;::::1;1095:73;;;::::0;-1:-1:-1;;;1095:73:0;;10049:2:1;1095:73:0::1;::::0;::::1;10031:21:1::0;10088:2;10068:18;;;10061:30;10127:34;10107:18;;;10100:62;-1:-1:-1;;;10178:18:1;;;10171:36;10224:19;;1095:73:0::1;9847:402:1::0;1095:73:0::1;1179:28;1198:8;1179:18;:28::i;13486:346::-:0;-1:-1:-1;;;;;13588:19:0;;13580:68;;;;-1:-1:-1;;;13580:68:0;;10456:2:1;13580:68:0;;;10438:21:1;10495:2;10475:18;;;10468:30;10534:34;10514:18;;;10507:62;-1:-1:-1;;;10585:18:1;;;10578:34;10629:19;;13580:68:0;10254:400:1;13580:68:0;-1:-1:-1;;;;;13667:21:0;;13659:68;;;;-1:-1:-1;;;13659:68:0;;10861:2:1;13659:68:0;;;10843:21:1;10900:2;10880:18;;;10873:30;10939:34;10919:18;;;10912:62;-1:-1:-1;;;10990:18:1;;;10983:32;11032:19;;13659:68:0;10659:398:1;13659:68:0;-1:-1:-1;;;;;13740:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13792:32;;1361:25:1;;;13792:32:0;;1334:18:1;13792:32:0;;;;;;;13486:346;;;:::o;13840:419::-;13941:24;13968:25;13978:5;13985:7;13968:9;:25::i;:::-;13941:52;;-1:-1:-1;;14008:16:0;:37;14004:248;;14090:6;14070:16;:26;;14062:68;;;;-1:-1:-1;;;14062:68:0;;11264:2:1;14062:68:0;;;11246:21:1;11303:2;11283:18;;;11276:30;11342:31;11322:18;;;11315:59;11391:18;;14062:68:0;11062:353:1;14062:68:0;14174:51;14183:5;14190:7;14218:6;14199:16;:25;14174:8;:51::i;:::-;13930:329;13840:419;;;:::o;18728:2861::-;-1:-1:-1;;;;;18826:18:0;;18818:68;;;;-1:-1:-1;;;18818:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18905:16:0;;18897:64;;;;-1:-1:-1;;;18897:64:0;;;;;;;:::i;:::-;18978:6;18988:1;18978:11;18974:93;;19006:28;19022:4;19028:2;19032:1;19006:15;:28::i;18974:93::-;741:6;;-1:-1:-1;;;;;19083:15:0;;;741:6;;19083:15;;;;:32;;-1:-1:-1;741:6:0;;-1:-1:-1;;;;;19102:13:0;;;741:6;;19102:13;;19083:32;:52;;;;-1:-1:-1;;;;;;19119:16:0;;;;19083:52;:77;;;;-1:-1:-1;;;;;;19139:21:0;;19153:6;19139:21;;19083:77;:90;;;;-1:-1:-1;19165:8:0;;;;19164:9;19083:90;19079:1545;;;19195:11;;;;19190:140;;-1:-1:-1;;;;;19235:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19264:23:0;;;;;;:19;:23;;;;;;;;19235:52;19227:87;;;;-1:-1:-1;;;19227:87:0;;12432:2:1;19227:87:0;;;12414:21:1;12471:2;12451:18;;;12444:30;-1:-1:-1;;;12490:18:1;;;12483:52;12552:18;;19227:87:0;12230:346:1;19227:87:0;19350:20;;;;;;;:50;;;;-1:-1:-1;;;;;;19375:25:0;;;;;;:19;:25;;;;;;;;19374:26;19350:50;:78;;;;-1:-1:-1;;;;;;19405:23:0;;;;;;:19;:23;;;;;;;;19404:24;19350:78;19346:566;;;19470:16;-1:-1:-1;;;;;19456:31:0;:2;-1:-1:-1;;;;;19456:31:0;;;:63;;;;-1:-1:-1;19505:13:0;;-1:-1:-1;;;;;19491:28:0;;;19505:13;;19491:28;;19456:63;19452:445;;;19584:9;19555:39;;;;:28;:39;;;;;;19597:12;-1:-1:-1;19555:105:0;;;;-1:-1:-1;;;;;;19613:32:0;;;;;;:28;:32;;;;;;19648:12;-1:-1:-1;19555:105:0;19547:171;;;;-1:-1:-1;;;19547:171:0;;12783:2:1;19547:171:0;;;12765:21:1;12822:2;12802:18;;;12795:30;12861:34;12841:18;;;12834:62;-1:-1:-1;;;12912:18:1;;;12905:51;12973:19;;19547:171:0;12581:417:1;19547:171:0;19774:9;19745:39;;;;:28;:39;;;;;;19787:12;19745:54;;;;-1:-1:-1;;;;;19826:32:0;;;;;;:47;19452:445;-1:-1:-1;;;;;19932:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19968:35:0;;;;;;:31;:35;;;;;;;;19967:36;19932:71;19928:685;;;20042:20;;20032:6;:30;;20024:96;;;;-1:-1:-1;;;20024:96:0;;13205:2:1;20024:96:0;;;13187:21:1;13244:2;13224:18;;;13217:30;13283:34;13263:18;;;13256:62;-1:-1:-1;;;13334:18:1;;;13327:51;13395:19;;20024:96:0;13003:417:1;20024:96:0;20173:9;;20156:13;20166:2;20156:9;:13::i;:::-;20147:22;;:6;:22;:::i;:::-;:35;;20139:67;;;;-1:-1:-1;;;20139:67:0;;13627:2:1;20139:67:0;;;13609:21:1;13666:2;13646:18;;;13639:30;-1:-1:-1;;;13685:18:1;;;13678:49;13744:18;;20139:67:0;13425:343:1;20139:67:0;19928:685;;;-1:-1:-1;;;;;20245:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20279:37:0;;;;;;:31;:37;;;;;;;;20278:38;20245:71;20241:372;;;20355:20;;20345:6;:30;;20337:97;;;;-1:-1:-1;;;20337:97:0;;13975:2:1;20337:97:0;;;13957:21:1;14014:2;13994:18;;;13987:30;14053:34;14033:18;;;14026:62;-1:-1:-1;;;14104:18:1;;;14097:52;14166:19;;20337:97:0;13773:418:1;20241:372:0;-1:-1:-1;;;;;20474:35:0;;;;;;:31;:35;;;;;;;;20469:144;;20564:9;;20547:13;20557:2;20547:9;:13::i;:::-;20538:22;;:6;:22;:::i;:::-;:35;;20530:67;;;;-1:-1:-1;;;20530:67:0;;13627:2:1;20530:67:0;;;13609:21:1;13666:2;13646:18;;;13639:30;-1:-1:-1;;;13685:18:1;;;13678:49;13744:18;;20530:67:0;13425:343:1;20530:67:0;20636:28;20667:24;20685:4;20667:9;:24::i;:::-;20740:18;;20636:55;;-1:-1:-1;20717:41:0;;;20773:22;;;;-1:-1:-1;20784:11:0;;;;;;;20773:22;:35;;;;-1:-1:-1;20800:8:0;;;;20799:9;20773:35;:71;;;;-1:-1:-1;;;;;;20813:31:0;;;;;;:25;:31;;;;;;;;20812:32;20773:71;:101;;;;-1:-1:-1;;;;;;20849:25:0;;;;;;:19;:25;;;;;;;;20848:26;20773:101;:129;;;;-1:-1:-1;;;;;;20879:23:0;;;;;;:19;:23;;;;;;;;20878:24;20773:129;20769:233;;;20919:8;:15;;-1:-1:-1;;20919:15:0;20930:4;20919:15;;;20949:10;:8;:10::i;:::-;20974:8;:16;;-1:-1:-1;;20974:16:0;;;20769:233;21030:8;;21014:12;;21030:8;;21029:9;:39;;;;-1:-1:-1;;;;;;21043:25:0;;;;;;:19;:25;;;;;;;;21042:26;21029:39;:67;;;;-1:-1:-1;;;;;;21073:23:0;;;;;;:19;:23;;;;;;;;21072:24;21029:67;21014:82;;21109:12;21140:7;21136:402;;;-1:-1:-1;;;;;21168:29:0;;;;;;:25;:29;;;;;;;;21164:229;;;21225:28;21249:3;21225:19;21236:7;;21225:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;21218:35;;21164:229;;;-1:-1:-1;;;;;21291:31:0;;;;;;:25;:31;;;;;;;;21288:105;;;21350:27;21373:3;21350:18;21361:6;;21350;:10;;:18;;;;:::i;:27::-;21343:34;;21288:105;21411:8;;21407:91;;21440:42;21456:4;21470;21477;21440:15;:42::i;:::-;21512:14;21522:4;21512:14;;:::i;:::-;;;21136:402;21548:33;21564:4;21570:2;21574:6;21548:15;:33::i;:::-;18807:2782;;;;18728:2861;;;:::o;763:132::-;741:6;;-1:-1:-1;;;;;741:6:0;221:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;14531:2:1;819:68:0;;;14513:21:1;;;14550:18;;;14543:30;14609:34;14589:18;;;14582:62;14661:18;;819:68:0;14329:356:1;12883:595:0;-1:-1:-1;;;;;12967:21:0;;12959:67;;;;-1:-1:-1;;;12959:67:0;;14892:2:1;12959:67:0;;;14874:21:1;14931:2;14911:18;;;14904:30;14970:34;14950:18;;;14943:62;-1:-1:-1;;;15021:18:1;;;15014:31;15062:19;;12959:67:0;14690:397:1;12959:67:0;-1:-1:-1;;;;;13126:18:0;;13101:22;13126:18;;;;;;;;;;;13163:24;;;;13155:71;;;;-1:-1:-1;;;13155:71:0;;15294:2:1;13155:71:0;;;15276:21:1;15333:2;15313:18;;;15306:30;15372:34;15352:18;;;15345:62;-1:-1:-1;;;15423:18:1;;;15416:32;15465:19;;13155:71:0;15092:398:1;13155:71:0;-1:-1:-1;;;;;13262:18:0;;:9;:18;;;;;;;;;;;13283:23;;;13262:44;;13321:12;:22;;;;;;;13372:37;1361:25:1;;;13262:9:0;;:18;13372:37;;1334:18:1;13372:37:0;;;;;;;22728:216;;22677:267;:::o;1223:191::-;1316:6;;;-1:-1:-1;;;;;1333:17:0;;;-1:-1:-1;;;;;;1333:17:0;;;;;;;1366:40;;1316:6;;;1333:17;1316:6;;1366:40;;1297:16;;1366:40;1286:128;1223:191;:::o;21597:476::-;21687:16;;;21701:1;21687:16;;;;;;;;21663:21;;21687:16;;;;;;;;;;-1:-1:-1;21687:16:0;21663:40;;21732:4;21714;21719:1;21714:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21714:23:0;;;-1:-1:-1;;;;;21714:23:0;;;;;21758:16;-1:-1:-1;;;;;21758:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21748:4;21753:1;21748:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21748:33:0;;;-1:-1:-1;;;;;21748:33:0;;;;;21792:63;21809:4;21824:16;21843:11;21792:8;:63::i;:::-;22009:15;;21866:199;;-1:-1:-1;;;21866:199:0;;-1:-1:-1;;;;;21866:16:0;:67;;;;;:199;;21948:11;;21974:1;;21990:4;;22009:15;;;;;22039;;21866:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21652:421;21597:476;:::o;18400:186::-;-1:-1:-1;;;;;18483:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18483:39:0;;;;;;;;;;18538:40;;18483:39;;:31;18538:40;;;18400:186;;:::o;11791:641::-;-1:-1:-1;;;;;11888:18:0;;11880:68;;;;-1:-1:-1;;;11880:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11967:16:0;;11959:64;;;;-1:-1:-1;;;11959:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12109:15:0;;12087:19;12109:15;;;;;;;;;;;12143:21;;;;12135:72;;;;-1:-1:-1;;;12135:72:0;;17202:2:1;12135:72:0;;;17184:21:1;17241:2;17221:18;;;17214:30;17280:34;17260:18;;;17253:62;-1:-1:-1;;;17331:18:1;;;17324:36;17377:19;;12135:72:0;17000:402:1;12135:72:0;-1:-1:-1;;;;;12243:15:0;;;:9;:15;;;;;;;;;;;12261:20;;;12243:38;;12296:13;;;;;;;;;;:23;;;;;;12348:26;;1361:25:1;;;12296:13:0;;12348:26;;1334:18:1;12348:26:0;;;;;;;12387:37;22677:267;23389:369;23428:23;23454:24;23472:4;23454:9;:24::i;:::-;23428:50;;23493:15;23512:1;23493:20;23489:59;;23530:7;23389:369::o;23489:59::-;23628:18;;23581:15;;23613:33;;23609:99;;;-1:-1:-1;23678:18:0;;23609:99;23720:30;23737:12;23720:16;:30::i;8149:98::-;8207:7;8234:5;8238:1;8234;:5;:::i;:::-;8227:12;8149:98;-1:-1:-1;;;8149:98:0:o;8255:::-;8313:7;8340:5;8344:1;8340;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3179:118::-;3265:5;3258:13;3251:21;3244:5;3241:32;3231:60;;3287:1;3284;3277:12;3302:382;3367:6;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3483:9;3470:23;3502:31;3527:5;3502:31;:::i;:::-;3552:5;-1:-1:-1;3609:2:1;3594:18;;3581:32;3622:30;3581:32;3622:30;:::i;:::-;3671:7;3661:17;;;3302:382;;;;;:::o;3689:388::-;3757:6;3765;3818:2;3806:9;3797:7;3793:23;3789:32;3786:52;;;3834:1;3831;3824:12;3786:52;3873:9;3860:23;3892:31;3917:5;3892:31;:::i;:::-;3942:5;-1:-1:-1;3999:2:1;3984:18;;3971:32;4012:33;3971:32;4012:33;:::i;4082:380::-;4161:1;4157:12;;;;4204;;;4225:61;;4279:4;4271:6;4267:17;4257:27;;4225:61;4332:2;4324:6;4321:14;4301:18;4298:38;4295:161;;4378:10;4373:3;4369:20;4366:1;4359:31;4413:4;4410:1;4403:15;4441:4;4438:1;4431:15;4295:161;;4082:380;;;:::o;4813:127::-;4874:10;4869:3;4865:20;4862:1;4855:31;4905:4;4902:1;4895:15;4929:4;4926:1;4919:15;4945:125;5010:9;;;5031:10;;;5028:36;;;5044:18;;:::i;5075:422::-;5164:1;5207:5;5164:1;5221:270;5242:7;5232:8;5229:21;5221:270;;;5301:4;5297:1;5293:6;5289:17;5283:4;5280:27;5277:53;;;5310:18;;:::i;:::-;5360:7;5350:8;5346:22;5343:55;;;5380:16;;;;5343:55;5459:22;;;;5419:15;;;;5221:270;;;5225:3;5075:422;;;;;:::o;5502:806::-;5551:5;5581:8;5571:80;;-1:-1:-1;5622:1:1;5636:5;;5571:80;5670:4;5660:76;;-1:-1:-1;5707:1:1;5721:5;;5660:76;5752:4;5770:1;5765:59;;;;5838:1;5833:130;;;;5745:218;;5765:59;5795:1;5786:10;;5809:5;;;5833:130;5870:3;5860:8;5857:17;5854:43;;;5877:18;;:::i;:::-;-1:-1:-1;;5933:1:1;5919:16;;5948:5;;5745:218;;6047:2;6037:8;6034:16;6028:3;6022:4;6019:13;6015:36;6009:2;5999:8;5996:16;5991:2;5985:4;5982:12;5978:35;5975:77;5972:159;;;-1:-1:-1;6084:19:1;;;6116:5;;5972:159;6163:34;6188:8;6182:4;6163:34;:::i;:::-;6233:6;6229:1;6225:6;6221:19;6212:7;6209:32;6206:58;;;6244:18;;:::i;:::-;6282:20;;5502:806;-1:-1:-1;;;5502:806:1:o;6313:140::-;6371:5;6400:47;6441:4;6431:8;6427:19;6421:4;6400:47;:::i;6458:168::-;6531:9;;;6562;;6579:15;;;6573:22;;6559:37;6549:71;;6600:18;;:::i;6631:217::-;6671:1;6697;6687:132;;6741:10;6736:3;6732:20;6729:1;6722:31;6776:4;6773:1;6766:15;6804:4;6801:1;6794:15;6687:132;-1:-1:-1;6833:9:1;;6631:217::o;8649:306::-;8737:6;8745;8753;8806:2;8794:9;8785:7;8781:23;8777:32;8774:52;;;8822:1;8819;8812:12;8774:52;8851:9;8845:16;8835:26;;8901:2;8890:9;8886:18;8880:25;8870:35;;8945:2;8934:9;8930:18;8924:25;8914:35;;8649:306;;;;;:::o;9239:245::-;9306:6;9359:2;9347:9;9338:7;9334:23;9330:32;9327:52;;;9375:1;9372;9365:12;9327:52;9407:9;9401:16;9426:28;9448:5;9426:28;:::i;11420:401::-;11622:2;11604:21;;;11661:2;11641:18;;;11634:30;11700:34;11695:2;11680:18;;11673:62;-1:-1:-1;;;11766:2:1;11751:18;;11744:35;11811:3;11796:19;;11420:401::o;11826:399::-;12028:2;12010:21;;;12067:2;12047:18;;;12040:30;12106:34;12101:2;12086:18;;12079:62;-1:-1:-1;;;12172:2:1;12157:18;;12150:33;12215:3;12200:19;;11826:399::o;14196:128::-;14263:9;;;14284:11;;;14281:37;;;14298:18;;:::i;15627:127::-;15688:10;15683:3;15679:20;15676:1;15669:31;15719:4;15716:1;15709:15;15743:4;15740:1;15733:15;15759:251;15829:6;15882:2;15870:9;15861:7;15857:23;15853:32;15850:52;;;15898:1;15895;15888:12;15850:52;15930:9;15924:16;15949:31;15974:5;15949:31;:::i;16015:980::-;16277:4;16325:3;16314:9;16310:19;16356:6;16345:9;16338:25;16382:2;16420:6;16415:2;16404:9;16400:18;16393:34;16463:3;16458:2;16447:9;16443:18;16436:31;16487:6;16522;16516:13;16553:6;16545;16538:22;16591:3;16580:9;16576:19;16569:26;;16630:2;16622:6;16618:15;16604:29;;16651:1;16661:195;16675:6;16672:1;16669:13;16661:195;;;16740:13;;-1:-1:-1;;;;;16736:39:1;16724:52;;16831:15;;;;16796:12;;;;16772:1;16690:9;16661:195;;;-1:-1:-1;;;;;;;16912:32:1;;;;16907:2;16892:18;;16885:60;-1:-1:-1;;;16976:3:1;16961:19;16954:35;16873:3;16015:980;-1:-1:-1;;;16015:980:1:o
Swarm Source
ipfs://12dd0934933bb1c8e53008f71ff635c7e73f1d0037b90dfafe16e11334608356
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.