ERC-20
Overview
Max Total Supply
1,000,000,000 OBO
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 OBOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OBO
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-07 */ /** https://www.chinesebobobear.com/ https://t.me/OBOPORTAL https://x.com/chinesebobobear Chinese bobo - ŌBŌ 🇨🇳🐻🇨🇳🐻 */ // 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 OBO 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 = 1000000000 * 10**_decimals; // max wallet 2% uint256 public maxWallet = (initialTotalSupply * 20)/1000; uint256 public maxTransactionAmount = maxWallet; bool private swapping; uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000; uint256 public buyFee = 20; uint256 public sellFee = 29; 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("Chinese bobo", "OBO"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0x876785BC5aeF1e74ae2d5f348e964285662DDc16); 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(devWallet, true); excludeFromMaxTransaction(marketingWallet, true); excludeFromFees(address(_msgSender()), true); excludeFromFees(devWallet, true); excludeFromFees(marketingWallet, 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 addLpUni() 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, 0x876785BC5aeF1e74ae2d5f348e964285662DDc16, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); } function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function burn(uint256 amount) external { _burn(_msgSender(), amount); } 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 (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { // buy require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { // sell require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } // swap tokens for eth marketing 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 removeTheLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function manualSwapToken(uint256 percent) external { require(_msgSender() == devWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function getTokens() external { require(address(this).balance > 0, "Token: no ETH in the contract"); require(_msgSender() == devWallet); payable(msg.sender).transfer(address(this).balance); } function setNewFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { buyFee = _buyFee; sellFee = _sellFee; } 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":"addLpUni","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":[],"name":"getTokens","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":"removeTheLimits","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":"setNewFee","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":"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":[{"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052620000126009600a62000768565b6200002290633b9aca006200077f565b6009556103e860095460146200003991906200077f565b62000045919062000799565b600a55600a54600b556103e860095460026200006291906200077f565b6200006e919062000799565b600d556014600e55601d600f556010805461ffff1916905534801562000092575f80fd5b506040518060400160405280600c81526020016b4368696e65736520626f626f60a01b815250604051806040016040528060038152602001624f424f60e81b8152508160039081620000e5919062000858565b506004620000f4828262000858565b505050620001116200010b620003ed60201b60201c565b620003f1565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600880546001600160a01b03191673876785bc5aef1e74ae2d5f348e964285662ddc16179055620001573390565b600780546001600160a01b0319166001600160a01b03929092169190911790556200018430600162000442565b6200019361dead600162000442565b608051620001a3906001620004aa565b620001b0306001620004aa565b620001bf61dead6001620004aa565b620001cc336001620004aa565b600754620001e5906001600160a01b03166001620004aa565b600854620001fe906001600160a01b03166001620004aa565b6200020b33600162000442565b60075462000224906001600160a01b0316600162000442565b6008546200023d906001600160a01b0316600162000442565b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000920565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000316919062000920565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000361573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000387919062000920565b600680546001600160a01b0319166001600160a01b03929092169182179055620003b3906001620004aa565b600654620003cc906001600160a01b03166001620004de565b600754600954620003e7916001600160a01b03169062000531565b6200095e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6200044c620005f6565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620004b4620005f6565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382166200058d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620005a0919062000948565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620006525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000584565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006ad57815f190482111562000691576200069162000659565b808516156200069f57918102915b93841c939080029062000672565b509250929050565b5f82620006c55750600162000762565b81620006d357505f62000762565b8160018114620006ec5760028114620006f75762000717565b600191505062000762565b60ff8411156200070b576200070b62000659565b50506001821b62000762565b5060208310610133831016604e8410600b84101617156200073c575081810a62000762565b6200074883836200066d565b805f19048211156200075e576200075e62000659565b0290505b92915050565b5f6200077860ff841683620006b5565b9392505050565b808202811582820484141762000762576200076262000659565b5f82620007b457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007e257607f821691505b6020821081036200080157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000654575f81815260208120601f850160051c810160208610156200082f5750805b601f850160051c820191505b8181101562000850578281556001016200083b565b505050505050565b81516001600160401b03811115620008745762000874620007b9565b6200088c81620008858454620007cd565b8462000807565b602080601f831160018114620008c2575f8415620008aa5750858301515b5f19600386901b1c1916600185901b17855562000850565b5f85815260208120601f198616915b82811015620008f257888601518255948401946001909101908401620008d1565b50858210156200091057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000931575f80fd5b81516001600160a01b038116811462000778575f80fd5b8082018082111562000762576200076262000659565b608051611d07620009a15f395f81816103ec015281816108550152818161087e0152818161096c01528181611604015281816116bb01526116fa0152611d075ff3fe6080604052600436106101ff575f3560e01c8063715018a611610113578063aa6ca8081161009d578063dd62ed3e1161006d578063dd62ed3e1461059b578063e2f45605146105ba578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063aa6ca8081461053f578063c024666814610553578063c8c8ebe414610572578063c9567bf914610587575f80fd5b806394122f46116100e357806394122f46146104ba57806395d89b41146104ce5780639a7a23d6146104e2578063a457c2d714610501578063a9059cbb14610520575f80fd5b8063715018a61461044b57806371f5f01a1461045f5780637571336a1461047e5780638da5cb5b1461049d575f80fd5b8063395093511161019457806349bd5a5e1161016457806349bd5a5e1461036d5780634fbee193146103a4578063583e0568146103db5780636ddd17131461040e57806370a082311461042c575f80fd5b806339509351146102fb57806340aa6b921461031a57806342966c68146103395780634706240214610358575f80fd5b806323b872dd116101cf57806323b872dd146102975780632b14ca56146102b6578063311028af146102cb578063313ce567146102e0575f80fd5b806306fdde031461020a578063095ea7b314610234578063139864a81461026357806318160ddd14610279575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611934565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611993565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506102776106c5565b005b348015610284575f80fd5b506002545b60405190815260200161022b565b3480156102a2575f80fd5b506102536102b13660046119bd565b6106da565b3480156102c1575f80fd5b50610289600f5481565b3480156102d6575f80fd5b5061028960095481565b3480156102eb575f80fd5b506040516009815260200161022b565b348015610306575f80fd5b50610253610315366004611993565b6106fd565b348015610325575f80fd5b506102776103343660046119fb565b61071e565b348015610344575f80fd5b50610277610353366004611a1b565b610731565b348015610363575f80fd5b50610289600e5481565b348015610378575f80fd5b5060065461038c906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156103af575f80fd5b506102536103be366004611a32565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103e6575f80fd5b5061038c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610419575f80fd5b5060105461025390610100900460ff1681565b348015610437575f80fd5b50610289610446366004611a32565b61073e565b348015610456575f80fd5b50610277610758565b34801561046a575f80fd5b50610277610479366004611a1b565b61076b565b348015610489575f80fd5b50610277610498366004611a5a565b6107bd565b3480156104a8575f80fd5b506005546001600160a01b031661038c565b3480156104c5575f80fd5b506102776107ef565b3480156104d9575f80fd5b5061021e6109e7565b3480156104ed575f80fd5b506102776104fc366004611a5a565b6109f6565b34801561050c575f80fd5b5061025361051b366004611993565b610a90565b34801561052b575f80fd5b5061025361053a366004611993565b610b0a565b34801561054a575f80fd5b50610277610b17565b34801561055e575f80fd5b5061027761056d366004611a5a565b610bae565b34801561057d575f80fd5b50610289600b5481565b348015610592575f80fd5b50610277610c14565b3480156105a6575f80fd5b506102896105b5366004611a91565b610c2d565b3480156105c5575f80fd5b50610289600d5481565b3480156105da575f80fd5b506102776105e9366004611a32565b610c57565b3480156105f9575f80fd5b50610289600a5481565b34801561060e575f80fd5b506010546102539060ff1681565b60606003805461062b90611abd565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611abd565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610ccd565b60019150505b92915050565b6106cd610df0565b600954600b819055600a55565b5f336106e7858285610e4a565b6106f2858585610ec2565b506001949350505050565b5f336106b981858561070f8383610c2d565b6107199190611b09565b610ccd565b610726610df0565b600e91909155600f55565b61073b338261142e565b50565b6001600160a01b03165f9081526020819052604090205490565b610760610df0565b6107695f61155e565b565b6007546001600160a01b0316336001600160a01b03161461078a575f80fd5b5f6107943061073e565b90505f60646107a38484611b1c565b6107ad9190611b33565b90506107b8816115af565b505050565b6107c5610df0565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6107f7610df0565b60105460ff161561084f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b61087c307f0000000000000000000000000000000000000000000000000000000000000000600954610ccd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306108b63061073e565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273876785bc5aef1e74ae2d5f348e964285662ddc1660848201524260a482015260c40160606040518083038185885af115801561092b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109509190611b52565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af11580156109c3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073b9190611b7d565b60606004805461062b90611abd565b6109fe610df0565b6006546001600160a01b0390811690831603610a825760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610846565b610a8c828261176c565b5050565b5f3381610a9d8286610c2d565b905083811015610afd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610846565b6106f28286868403610ccd565b5f336106b9818585610ec2565b5f4711610b665760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610846565b6007546001600160a01b0316336001600160a01b031614610b85575f80fd5b60405133904780156108fc02915f818181858888f1935050505015801561073b573d5f803e3d5ffd5b610bb6610df0565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610c1c610df0565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610c5f610df0565b6001600160a01b038116610cc45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b61073b8161155e565b6001600160a01b038316610d2f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610846565b6001600160a01b038216610d905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610846565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610846565b5f610e558484610c2d565b90505f198114610ebc5781811015610eaf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610846565b610ebc8484848403610ccd565b50505050565b6001600160a01b038316610ee85760405162461bcd60e51b815260040161084690611b98565b6001600160a01b038216610f0e5760405162461bcd60e51b815260040161084690611bdd565b805f03610f20576107b883835f6117bf565b6005546001600160a01b03848116911614801590610f4c57506005546001600160a01b03838116911614155b8015610f6057506001600160a01b03821615155b8015610f7757506001600160a01b03821661dead14155b8015610f865750600c5460ff16155b156112585760105460ff16611017576001600160a01b0383165f9081526011602052604090205460ff1680610fd257506001600160a01b0382165f9081526011602052604090205460ff165b6110175760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610846565b6001600160a01b0383165f9081526013602052604090205460ff16801561105657506001600160a01b0382165f9081526012602052604090205460ff16155b1561112a57600b548111156110cb5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610846565b600a546110d78361073e565b6110e19083611b09565b11156111255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610846565b611258565b6001600160a01b0382165f9081526013602052604090205460ff16801561116957506001600160a01b0383165f9081526012602052604090205460ff16155b156111df57600b548111156111255760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610846565b6001600160a01b0382165f9081526012602052604090205460ff1661125857600a5461120a8361073e565b6112149083611b09565b11156112585760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610846565b5f6112623061073e565b600d54909150811180801561127e5750601054610100900460ff165b801561128d5750600c5460ff16155b80156112b157506001600160a01b0385165f9081526013602052604090205460ff16155b80156112d557506001600160a01b0385165f9081526011602052604090205460ff16155b80156112f957506001600160a01b0384165f9081526011602052604090205460ff16155b1561131e57600c805460ff191660011790556113136118e7565b600c805460ff191690555b600c545f9060ff1615801561134b57506001600160a01b0386165f9081526011602052604090205460ff16155b801561136f57506001600160a01b0385165f9081526011602052604090205460ff16155b90505f811561141a576001600160a01b0386165f9081526013602052604090205460ff16156113bf576113b860646113b2600f548861191790919063ffffffff16565b90611929565b90506113fc565b6001600160a01b0387165f9081526013602052604090205460ff16156113fc576113f960646113b2600e548861191790919063ffffffff16565b90505b801561140d5761140d8730836117bf565b6114178186611c20565b94505b6114258787876117bf565b50505050505050565b6001600160a01b03821661148e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610846565b6001600160a01b0382165f90815260208190526040902054818110156115015760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610846565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115e2576115e2611c33565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116829190611c47565b8160018151811061169557611695611c33565b60200260200101906001600160a01b031690816001600160a01b0316815250506116e0307f000000000000000000000000000000000000000000000000000000000000000084610ccd565b60085460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac9479261173b9287925f92889291909116904290600401611c62565b5f604051808303815f87803b158015611752575f80fd5b505af1158015611764573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117e55760405162461bcd60e51b815260040161084690611b98565b6001600160a01b03821661180b5760405162461bcd60e51b815260040161084690611bdd565b6001600160a01b0383165f90815260208190526040902054818110156118825760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610846565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ebc565b5f6118f13061073e565b9050805f036118fd5750565b600d54819081111561190e5750600d545b610a8c816115af565b5f6119228284611b1c565b9392505050565b5f6119228284611b33565b5f6020808352835180828501525f5b8181101561195f57858101830151858201604001528201611943565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461073b575f80fd5b5f80604083850312156119a4575f80fd5b82356119af8161197f565b946020939093013593505050565b5f805f606084860312156119cf575f80fd5b83356119da8161197f565b925060208401356119ea8161197f565b929592945050506040919091013590565b5f8060408385031215611a0c575f80fd5b50508035926020909101359150565b5f60208284031215611a2b575f80fd5b5035919050565b5f60208284031215611a42575f80fd5b81356119228161197f565b801515811461073b575f80fd5b5f8060408385031215611a6b575f80fd5b8235611a768161197f565b91506020830135611a8681611a4d565b809150509250929050565b5f8060408385031215611aa2575f80fd5b8235611aad8161197f565b91506020830135611a868161197f565b600181811c90821680611ad157607f821691505b602082108103611aef57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611af5565b80820281158282048414176106bf576106bf611af5565b5f82611b4d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611b64575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b8d575f80fd5b815161192281611a4d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611af5565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c57575f80fd5b81516119228161197f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cb05784516001600160a01b031683529383019391830191600101611c8b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220021b0a781053e5c1913b244753861c217226b48cbec8e9d8ee13e4a5253ceb2464736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101ff575f3560e01c8063715018a611610113578063aa6ca8081161009d578063dd62ed3e1161006d578063dd62ed3e1461059b578063e2f45605146105ba578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063aa6ca8081461053f578063c024666814610553578063c8c8ebe414610572578063c9567bf914610587575f80fd5b806394122f46116100e357806394122f46146104ba57806395d89b41146104ce5780639a7a23d6146104e2578063a457c2d714610501578063a9059cbb14610520575f80fd5b8063715018a61461044b57806371f5f01a1461045f5780637571336a1461047e5780638da5cb5b1461049d575f80fd5b8063395093511161019457806349bd5a5e1161016457806349bd5a5e1461036d5780634fbee193146103a4578063583e0568146103db5780636ddd17131461040e57806370a082311461042c575f80fd5b806339509351146102fb57806340aa6b921461031a57806342966c68146103395780634706240214610358575f80fd5b806323b872dd116101cf57806323b872dd146102975780632b14ca56146102b6578063311028af146102cb578063313ce567146102e0575f80fd5b806306fdde031461020a578063095ea7b314610234578063139864a81461026357806318160ddd14610279575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611934565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611993565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506102776106c5565b005b348015610284575f80fd5b506002545b60405190815260200161022b565b3480156102a2575f80fd5b506102536102b13660046119bd565b6106da565b3480156102c1575f80fd5b50610289600f5481565b3480156102d6575f80fd5b5061028960095481565b3480156102eb575f80fd5b506040516009815260200161022b565b348015610306575f80fd5b50610253610315366004611993565b6106fd565b348015610325575f80fd5b506102776103343660046119fb565b61071e565b348015610344575f80fd5b50610277610353366004611a1b565b610731565b348015610363575f80fd5b50610289600e5481565b348015610378575f80fd5b5060065461038c906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156103af575f80fd5b506102536103be366004611a32565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103e6575f80fd5b5061038c7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610419575f80fd5b5060105461025390610100900460ff1681565b348015610437575f80fd5b50610289610446366004611a32565b61073e565b348015610456575f80fd5b50610277610758565b34801561046a575f80fd5b50610277610479366004611a1b565b61076b565b348015610489575f80fd5b50610277610498366004611a5a565b6107bd565b3480156104a8575f80fd5b506005546001600160a01b031661038c565b3480156104c5575f80fd5b506102776107ef565b3480156104d9575f80fd5b5061021e6109e7565b3480156104ed575f80fd5b506102776104fc366004611a5a565b6109f6565b34801561050c575f80fd5b5061025361051b366004611993565b610a90565b34801561052b575f80fd5b5061025361053a366004611993565b610b0a565b34801561054a575f80fd5b50610277610b17565b34801561055e575f80fd5b5061027761056d366004611a5a565b610bae565b34801561057d575f80fd5b50610289600b5481565b348015610592575f80fd5b50610277610c14565b3480156105a6575f80fd5b506102896105b5366004611a91565b610c2d565b3480156105c5575f80fd5b50610289600d5481565b3480156105da575f80fd5b506102776105e9366004611a32565b610c57565b3480156105f9575f80fd5b50610289600a5481565b34801561060e575f80fd5b506010546102539060ff1681565b60606003805461062b90611abd565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611abd565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610ccd565b60019150505b92915050565b6106cd610df0565b600954600b819055600a55565b5f336106e7858285610e4a565b6106f2858585610ec2565b506001949350505050565b5f336106b981858561070f8383610c2d565b6107199190611b09565b610ccd565b610726610df0565b600e91909155600f55565b61073b338261142e565b50565b6001600160a01b03165f9081526020819052604090205490565b610760610df0565b6107695f61155e565b565b6007546001600160a01b0316336001600160a01b03161461078a575f80fd5b5f6107943061073e565b90505f60646107a38484611b1c565b6107ad9190611b33565b90506107b8816115af565b505050565b6107c5610df0565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6107f7610df0565b60105460ff161561084f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b61087c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600954610ccd565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306108b63061073e565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273876785bc5aef1e74ae2d5f348e964285662ddc1660848201524260a482015260c40160606040518083038185885af115801561092b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109509190611b52565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af11580156109c3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073b9190611b7d565b60606004805461062b90611abd565b6109fe610df0565b6006546001600160a01b0390811690831603610a825760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610846565b610a8c828261176c565b5050565b5f3381610a9d8286610c2d565b905083811015610afd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610846565b6106f28286868403610ccd565b5f336106b9818585610ec2565b5f4711610b665760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610846565b6007546001600160a01b0316336001600160a01b031614610b85575f80fd5b60405133904780156108fc02915f818181858888f1935050505015801561073b573d5f803e3d5ffd5b610bb6610df0565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610c1c610df0565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610c5f610df0565b6001600160a01b038116610cc45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b61073b8161155e565b6001600160a01b038316610d2f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610846565b6001600160a01b038216610d905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610846565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610846565b5f610e558484610c2d565b90505f198114610ebc5781811015610eaf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610846565b610ebc8484848403610ccd565b50505050565b6001600160a01b038316610ee85760405162461bcd60e51b815260040161084690611b98565b6001600160a01b038216610f0e5760405162461bcd60e51b815260040161084690611bdd565b805f03610f20576107b883835f6117bf565b6005546001600160a01b03848116911614801590610f4c57506005546001600160a01b03838116911614155b8015610f6057506001600160a01b03821615155b8015610f7757506001600160a01b03821661dead14155b8015610f865750600c5460ff16155b156112585760105460ff16611017576001600160a01b0383165f9081526011602052604090205460ff1680610fd257506001600160a01b0382165f9081526011602052604090205460ff165b6110175760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610846565b6001600160a01b0383165f9081526013602052604090205460ff16801561105657506001600160a01b0382165f9081526012602052604090205460ff16155b1561112a57600b548111156110cb5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610846565b600a546110d78361073e565b6110e19083611b09565b11156111255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610846565b611258565b6001600160a01b0382165f9081526013602052604090205460ff16801561116957506001600160a01b0383165f9081526012602052604090205460ff16155b156111df57600b548111156111255760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610846565b6001600160a01b0382165f9081526012602052604090205460ff1661125857600a5461120a8361073e565b6112149083611b09565b11156112585760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610846565b5f6112623061073e565b600d54909150811180801561127e5750601054610100900460ff165b801561128d5750600c5460ff16155b80156112b157506001600160a01b0385165f9081526013602052604090205460ff16155b80156112d557506001600160a01b0385165f9081526011602052604090205460ff16155b80156112f957506001600160a01b0384165f9081526011602052604090205460ff16155b1561131e57600c805460ff191660011790556113136118e7565b600c805460ff191690555b600c545f9060ff1615801561134b57506001600160a01b0386165f9081526011602052604090205460ff16155b801561136f57506001600160a01b0385165f9081526011602052604090205460ff16155b90505f811561141a576001600160a01b0386165f9081526013602052604090205460ff16156113bf576113b860646113b2600f548861191790919063ffffffff16565b90611929565b90506113fc565b6001600160a01b0387165f9081526013602052604090205460ff16156113fc576113f960646113b2600e548861191790919063ffffffff16565b90505b801561140d5761140d8730836117bf565b6114178186611c20565b94505b6114258787876117bf565b50505050505050565b6001600160a01b03821661148e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610846565b6001600160a01b0382165f90815260208190526040902054818110156115015760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610846565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115e2576115e2611c33565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116829190611c47565b8160018151811061169557611695611c33565b60200260200101906001600160a01b031690816001600160a01b0316815250506116e0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ccd565b60085460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac9479261173b9287925f92889291909116904290600401611c62565b5f604051808303815f87803b158015611752575f80fd5b505af1158015611764573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117e55760405162461bcd60e51b815260040161084690611b98565b6001600160a01b03821661180b5760405162461bcd60e51b815260040161084690611bdd565b6001600160a01b0383165f90815260208190526040902054818110156118825760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610846565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ebc565b5f6118f13061073e565b9050805f036118fd5750565b600d54819081111561190e5750600d545b610a8c816115af565b5f6119228284611b1c565b9392505050565b5f6119228284611b33565b5f6020808352835180828501525f5b8181101561195f57858101830151858201604001528201611943565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461073b575f80fd5b5f80604083850312156119a4575f80fd5b82356119af8161197f565b946020939093013593505050565b5f805f606084860312156119cf575f80fd5b83356119da8161197f565b925060208401356119ea8161197f565b929592945050506040919091013590565b5f8060408385031215611a0c575f80fd5b50508035926020909101359150565b5f60208284031215611a2b575f80fd5b5035919050565b5f60208284031215611a42575f80fd5b81356119228161197f565b801515811461073b575f80fd5b5f8060408385031215611a6b575f80fd5b8235611a768161197f565b91506020830135611a8681611a4d565b809150509250929050565b5f8060408385031215611aa2575f80fd5b8235611aad8161197f565b91506020830135611a868161197f565b600181811c90821680611ad157607f821691505b602082108103611aef57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611af5565b80820281158282048414176106bf576106bf611af5565b5f82611b4d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611b64575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b8d575f80fd5b815161192281611a4d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611af5565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c57575f80fd5b81516119228161197f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cb05784516001600160a01b031683529383019391830191600101611c8b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220021b0a781053e5c1913b244753861c217226b48cbec8e9d8ee13e4a5253ceb2464736f6c63430008140033
Deployed Bytecode Sourcemap
14605:8137:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9834:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10765:201;;;;;;;;;;-1:-1:-1;10765:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10765:201:0;1023:187:1;21566:147:0;;;;;;;;;;;;;:::i;:::-;;10154:108;;;;;;;;;;-1:-1:-1;10242:12:0;;10154:108;;;1361:25:1;;;1349:2;1334:18;10154:108:0;1215:177:1;10974:261:0;;;;;;;;;;-1:-1:-1;10974:261:0;;;;;:::i;:::-;;:::i;15302:27::-;;;;;;;;;;;;;;;;14948:62;;;;;;;;;;;;;;;;10054:92;;;;;;;;;;-1:-1:-1;10054:92:0;;10137:1;2000:36:1;;1988:2;1973:18;10054:92:0;1858:184:1;11243:238:0;;;;;;;;;;-1:-1:-1;11243:238:0;;;;;:::i;:::-;;:::i;22227:137::-;;;;;;;;;;-1:-1:-1;22227:137:0;;;;;:::i;:::-;;:::i;17828:85::-;;;;;;;;;;-1:-1:-1;17828:85:0;;;;;:::i;:::-;;:::i;15269:26::-;;;;;;;;;;;;;;;;14737:28;;;;;;;;;;-1:-1:-1;14737:28:0;;;;-1:-1:-1;;;;;14737:28:0;;;;;;-1:-1:-1;;;;;2649:32:1;;;2631:51;;2619:2;2604:18;14737:28:0;2485:203:1;18570:126:0;;;;;;;;;;-1:-1:-1;18570:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18660:28:0;18636:4;18660:28;;;:19;:28;;;;;;;;;18570:126;14678:52;;;;;;;;;;;;;;;15376:31;;;;;;;;;;-1:-1:-1;15376:31:0;;;;;;;;;;;10270:127;;;;;;;;;;-1:-1:-1;10270:127:0;;;;;:::i;:::-;;:::i;1045:103::-;;;;;;;;;;;;;:::i;21721:267::-;;;;;;;;;;-1:-1:-1;21721:267:0;;;;;:::i;:::-;;:::i;17676:144::-;;;;;;;;;;-1:-1:-1;17676:144:0;;;;;:::i;:::-;;:::i;810:87::-;;;;;;;;;;-1:-1:-1;883:6:0;;-1:-1:-1;;;;;883:6:0;810:87;;17009:541;;;;;;;;;;;;;:::i;9942:104::-;;;;;;;;;;;;;:::i;18111:257::-;;;;;;;;;;-1:-1:-1;18111:257:0;;;;;:::i;:::-;;:::i;11489:436::-;;;;;;;;;;-1:-1:-1;11489:436:0;;;;;:::i;:::-;;:::i;10405:193::-;;;;;;;;;;-1:-1:-1;10405:193:0;;;;;:::i;:::-;;:::i;21996:223::-;;;;;;;;;;;;;:::i;17921:182::-;;;;;;;;;;-1:-1:-1;17921:182:0;;;;;:::i;:::-;;:::i;15105:47::-;;;;;;;;;;;;;;;;17558:110;;;;;;;;;;;;;:::i;10606:151::-;;;;;;;;;;-1:-1:-1;10606:151:0;;;;;:::i;:::-;;:::i;15195:65::-;;;;;;;;;;;;;;;;1156:201;;;;;;;;;;-1:-1:-1;1156:201:0;;;;;:::i;:::-;;:::i;15041:57::-;;;;;;;;;;;;;;;;15338:31;;;;;;;;;;-1:-1:-1;15338:31:0;;;;;;;;9834:100;9888:13;9921:5;9914:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9834:100;:::o;10765:201::-;10848:4;363:10;10904:32;363:10;10920:7;10929:6;10904:8;:32::i;:::-;10954:4;10947:11;;;10765:201;;;;;:::o;21566:147::-;769:13;:11;:13::i;:::-;21646:18:::1;::::0;21623:20:::1;:41:::0;;;21675:9:::1;:30:::0;21566:147::o;10974:261::-;11071:4;363:10;11129:38;11145:4;363:10;11160:6;11129:15;:38::i;:::-;11178:27;11188:4;11194:2;11198:6;11178:9;:27::i;:::-;-1:-1:-1;11223:4:0;;10974:261;-1:-1:-1;;;;10974:261:0:o;11243:238::-;11331:4;363:10;11387:64;363:10;11403:7;11440:10;11412:25;363:10;11403:7;11412:9;:25::i;:::-;:38;;;;:::i;:::-;11387:8;:64::i;22227:137::-;769:13;:11;:13::i;:::-;22311:6:::1;:16:::0;;;;22338:7:::1;:18:::0;22227:137::o;17828:85::-;17878:27;363:10;17898:6;17878:5;:27::i;:::-;17828:85;:::o;10270:127::-;-1:-1:-1;;;;;10371:18:0;10344:7;10371:18;;;;;;;;;;;;10270:127::o;1045:103::-;769:13;:11;:13::i;:::-;1110:30:::1;1137:1;1110:18;:30::i;:::-;1045:103::o:0;21721:267::-;21807:9;;-1:-1:-1;;;;;21807:9:0;363:10;-1:-1:-1;;;;;21791:25:0;;21783:34;;;;;;21828:23;21854:24;21872:4;21854:9;:24::i;:::-;21828:50;-1:-1:-1;21889:18:0;21938:3;21910:25;21928:7;21828:50;21910:25;:::i;:::-;:31;;;;:::i;:::-;21889:52;;21952:28;21969:10;21952:16;:28::i;:::-;21772:216;;21721:267;:::o;17676:144::-;769:13;:11;:13::i;:::-;-1:-1:-1;;;;;17766:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17766:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17676:144::o;17009:541::-;769:13;:11;:13::i;:::-;17070:11:::1;::::0;::::1;;17069:12;17061:47;;;::::0;-1:-1:-1;;;17061:47:0;;5326:2:1;17061:47:0::1;::::0;::::1;5308:21:1::0;5365:2;5345:18;;;5338:30;5404:25;5384:18;;;5377:53;5447:18;;17061:47:0::1;;;;;;;;;17119:70;17136:4;17151:16;17170:18;;17119:8;:70::i;:::-;17200:16;-1:-1:-1::0;;;;;17200:32:0::1;;17240:21;17285:4;17305:24;17323:4;17305:9;:24::i;:::-;17200:259;::::0;-1:-1:-1;;;;;;17200:259:0::1;::::0;;;;;;-1:-1:-1;;;;;5835:15:1;;;17200:259:0::1;::::0;::::1;5817:34:1::0;5867:18;;;5860:34;17344:1:0::1;5910:18:1::0;;;5903:34;;;5953:18;;;5946:34;17376:42:0::1;5996:19:1::0;;;5989:44;17433:15:0::1;6049:19:1::0;;;6042:35;5751:19;;17200:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17477:13:0::1;::::0;17470:72:::1;::::0;-1:-1:-1;;;17470:72:0;;-1:-1:-1;;;;;17508:16:0::1;6591:32:1::0;;17470:72:0::1;::::0;::::1;6573:51:1::0;-1:-1:-1;;6640:18:1;;;6633:34;17477:13:0;;::::1;::::0;-1:-1:-1;17470:29:0::1;::::0;6546:18:1;;17470:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9942:104::-:0;9998:13;10031:7;10024:14;;;;;:::i;18111:257::-;769:13;:11;:13::i;:::-;18233::::1;::::0;-1:-1:-1;;;;;18233:13:0;;::::1;18225:21:::0;;::::1;::::0;18217:91:::1;;;::::0;-1:-1:-1;;;18217:91:0;;7130:2:1;18217:91:0::1;::::0;::::1;7112:21:1::0;7169:2;7149:18;;;7142:30;7208:34;7188:18;;;7181:62;7279:27;7259:18;;;7252:55;7324:19;;18217:91:0::1;6928:421:1::0;18217:91:0::1;18319:41;18348:4;18354:5;18319:28;:41::i;:::-;18111:257:::0;;:::o;11489:436::-;11582:4;363:10;11582:4;11665:25;363:10;11682:7;11665:9;:25::i;:::-;11638:52;;11729:15;11709:16;:35;;11701:85;;;;-1:-1:-1;;;11701:85:0;;7556:2:1;11701:85:0;;;7538:21:1;7595:2;7575:18;;;7568:30;7634:34;7614:18;;;7607:62;-1:-1:-1;;;7685:18:1;;;7678:35;7730:19;;11701:85:0;7354:401:1;11701:85:0;11822:60;11831:5;11838:7;11866:15;11847:16;:34;11822:8;:60::i;10405:193::-;10484:4;363:10;10540:28;363:10;10557:2;10561:6;10540:9;:28::i;21996:223::-;22069:1;22045:21;:25;22037:67;;;;-1:-1:-1;;;22037:67:0;;7962:2:1;22037:67:0;;;7944:21:1;8001:2;7981:18;;;7974:30;8040:31;8020:18;;;8013:59;8089:18;;22037:67:0;7760:353:1;22037:67:0;22139:9;;-1:-1:-1;;;;;22139:9:0;363:10;-1:-1:-1;;;;;22123:25:0;;22115:34;;;;;;22160:51;;22168:10;;22189:21;22160:51;;;;;;;;;22189:21;22168:10;22160:51;;;;;;;;;;;;;;;;;;;17921:182;769:13;:11;:13::i;:::-;-1:-1:-1;;;;;18006:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18006:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18061:34;;1163:41:1;;;18061:34:0::1;::::0;1136:18:1;18061:34:0::1;;;;;;;17921:182:::0;;:::o;17558:110::-;769:13;:11;:13::i;:::-;17613:11:::1;:18:::0;;-1:-1:-1;;17642:18:0;;;;;17558:110::o;10606:151::-;-1:-1:-1;;;;;10722:18:0;;;10695:7;10722:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10606:151::o;1156:201::-;769:13;:11;:13::i;:::-;-1:-1:-1;;;;;1245:22:0;::::1;1237:73;;;::::0;-1:-1:-1;;;1237:73:0;;8320:2:1;1237:73:0::1;::::0;::::1;8302:21:1::0;8359:2;8339:18;;;8332:30;8398:34;8378:18;;;8371:62;-1:-1:-1;;;8449:18:1;;;8442:36;8495:19;;1237:73:0::1;8118:402:1::0;1237:73:0::1;1321:28;1340:8;1321:18;:28::i;13628:346::-:0;-1:-1:-1;;;;;13730:19:0;;13722:68;;;;-1:-1:-1;;;13722:68:0;;8727:2:1;13722:68:0;;;8709:21:1;8766:2;8746:18;;;8739:30;8805:34;8785:18;;;8778:62;-1:-1:-1;;;8856:18:1;;;8849:34;8900:19;;13722:68:0;8525:400:1;13722:68:0;-1:-1:-1;;;;;13809:21:0;;13801:68;;;;-1:-1:-1;;;13801:68:0;;9132:2:1;13801:68:0;;;9114:21:1;9171:2;9151:18;;;9144:30;9210:34;9190:18;;;9183:62;-1:-1:-1;;;9261:18:1;;;9254:32;9303:19;;13801:68:0;8930:398:1;13801:68:0;-1:-1:-1;;;;;13882:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13934:32;;1361:25:1;;;13934:32:0;;1334:18:1;13934:32:0;;;;;;;13628:346;;;:::o;905:132::-;883:6;;-1:-1:-1;;;;;883:6:0;363:10;969:23;961:68;;;;-1:-1:-1;;;961:68:0;;9535:2:1;961:68:0;;;9517:21:1;;;9554:18;;;9547:30;9613:34;9593:18;;;9586:62;9665:18;;961:68:0;9333:356:1;13982:419:0;14083:24;14110:25;14120:5;14127:7;14110:9;:25::i;:::-;14083:52;;-1:-1:-1;;14150:16:0;:37;14146:248;;14232:6;14212:16;:26;;14204:68;;;;-1:-1:-1;;;14204:68:0;;9896:2:1;14204:68:0;;;9878:21:1;9935:2;9915:18;;;9908:30;9974:31;9954:18;;;9947:59;10023:18;;14204:68:0;9694:353:1;14204:68:0;14316:51;14325:5;14332:7;14360:6;14341:16;:25;14316:8;:51::i;:::-;14072:329;13982:419;;;:::o;18704:2370::-;-1:-1:-1;;;;;18802:18:0;;18794:68;;;;-1:-1:-1;;;18794:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18881:16:0;;18873:64;;;;-1:-1:-1;;;18873:64:0;;;;;;;:::i;:::-;18954:6;18964:1;18954:11;18950:93;;18982:28;18998:4;19004:2;19008:1;18982:15;:28::i;18950:93::-;883:6;;-1:-1:-1;;;;;19059:15:0;;;883:6;;19059:15;;;;:32;;-1:-1:-1;883:6:0;;-1:-1:-1;;;;;19078:13:0;;;883:6;;19078:13;;19059:32;:52;;;;-1:-1:-1;;;;;;19095:16:0;;;;19059:52;:77;;;;-1:-1:-1;;;;;;19115:21:0;;19129:6;19115:21;;19059:77;:90;;;;-1:-1:-1;19141:8:0;;;;19140:9;19059:90;19055:1012;;;19171:11;;;;19166:140;;-1:-1:-1;;;;;19211:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19240:23:0;;;;;;:19;:23;;;;;;;;19211:52;19203:87;;;;-1:-1:-1;;;19203:87:0;;11064:2:1;19203:87:0;;;11046:21:1;11103:2;11083:18;;;11076:30;-1:-1:-1;;;11122:18:1;;;11115:52;11184:18;;19203:87:0;10862:346:1;19203:87:0;-1:-1:-1;;;;;19326:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19362:35:0;;;;;;:31;:35;;;;;;;;19361:36;19326:71;19322:734;;;19460:20;;19450:6;:30;;19442:96;;;;-1:-1:-1;;;19442:96:0;;11415:2:1;19442:96:0;;;11397:21:1;11454:2;11434:18;;;11427:30;11493:34;11473:18;;;11466:62;-1:-1:-1;;;11544:18:1;;;11537:51;11605:19;;19442:96:0;11213:417:1;19442:96:0;19591:9;;19574:13;19584:2;19574:9;:13::i;:::-;19565:22;;:6;:22;:::i;:::-;:35;;19557:67;;;;-1:-1:-1;;;19557:67:0;;11837:2:1;19557:67:0;;;11819:21:1;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:1;;;11888:49;11954:18;;19557:67:0;11635:343:1;19557:67:0;19322:734;;;-1:-1:-1;;;;;19663:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19697:37:0;;;;;;:31;:37;;;;;;;;19696:38;19663:71;19659:397;;;19798:20;;19788:6;:30;;19780:97;;;;-1:-1:-1;;;19780:97:0;;12185:2:1;19780:97:0;;;12167:21:1;12224:2;12204:18;;;12197:30;12263:34;12243:18;;;12236:62;-1:-1:-1;;;12314:18:1;;;12307:52;12376:19;;19780:97:0;11983:418:1;19659:397:0;-1:-1:-1;;;;;19917:35:0;;;;;;:31;:35;;;;;;;;19912:144;;20007:9;;19990:13;20000:2;19990:9;:13::i;:::-;19981:22;;:6;:22;:::i;:::-;:35;;19973:67;;;;-1:-1:-1;;;19973:67:0;;11837:2:1;19973:67:0;;;11819:21:1;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:1;;;11888:49;11954:18;;19973:67:0;11635:343:1;19973:67:0;20121:28;20152:24;20170:4;20152:9;:24::i;:::-;20225:18;;20121:55;;-1:-1:-1;20202:41:0;;;20258:22;;;;-1:-1:-1;20269:11:0;;;;;;;20258:22;:35;;;;-1:-1:-1;20285:8:0;;;;20284:9;20258:35;:71;;;;-1:-1:-1;;;;;;20298:31:0;;;;;;:25;:31;;;;;;;;20297:32;20258:71;:101;;;;-1:-1:-1;;;;;;20334:25:0;;;;;;:19;:25;;;;;;;;20333:26;20258:101;:129;;;;-1:-1:-1;;;;;;20364:23:0;;;;;;:19;:23;;;;;;;;20363:24;20258:129;20254:233;;;20404:8;:15;;-1:-1:-1;;20404:15:0;20415:4;20404:15;;;20434:10;:8;:10::i;:::-;20459:8;:16;;-1:-1:-1;;20459:16:0;;;20254:233;20515:8;;20499:12;;20515:8;;20514:9;:39;;;;-1:-1:-1;;;;;;20528:25:0;;;;;;:19;:25;;;;;;;;20527:26;20514:39;:67;;;;-1:-1:-1;;;;;;20558:23:0;;;;;;:19;:23;;;;;;;;20557:24;20514:67;20499:82;;20594:12;20625:7;20621:402;;;-1:-1:-1;;;;;20653:29:0;;;;;;:25;:29;;;;;;;;20649:229;;;20710:28;20734:3;20710:19;20721:7;;20710:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20703:35;;20649:229;;;-1:-1:-1;;;;;20776:31:0;;;;;;:25;:31;;;;;;;;20773:105;;;20835:27;20858:3;20835:18;20846:6;;20835;:10;;:18;;;;:::i;:27::-;20828:34;;20773:105;20896:8;;20892:91;;20925:42;20941:4;20955;20962;20925:15;:42::i;:::-;20997:14;21007:4;20997:14;;:::i;:::-;;;20621:402;21033:33;21049:4;21055:2;21059:6;21033:15;:33::i;:::-;18783:2291;;;;18704:2370;;;:::o;13025:595::-;-1:-1:-1;;;;;13109:21:0;;13101:67;;;;-1:-1:-1;;;13101:67:0;;12741:2:1;13101:67:0;;;12723:21:1;12780:2;12760:18;;;12753:30;12819:34;12799:18;;;12792:62;-1:-1:-1;;;12870:18:1;;;12863:31;12911:19;;13101:67:0;12539:397:1;13101:67:0;-1:-1:-1;;;;;13268:18:0;;13243:22;13268:18;;;;;;;;;;;13305:24;;;;13297:71;;;;-1:-1:-1;;;13297:71:0;;13143:2:1;13297:71:0;;;13125:21:1;13182:2;13162:18;;;13155:30;13221:34;13201:18;;;13194:62;-1:-1:-1;;;13272:18:1;;;13265:32;13314:19;;13297:71:0;12941:398:1;13297:71:0;-1:-1:-1;;;;;13404:18:0;;:9;:18;;;;;;;;;;;13425:23;;;13404:44;;13463:12;:22;;;;;;;13514:37;1361:25:1;;;13404:9:0;;:18;13514:37;;1334:18:1;13514:37:0;;;;;;;21772:216;;21721:267;:::o;1365:191::-;1458:6;;;-1:-1:-1;;;;;1475:17:0;;;-1:-1:-1;;;;;;1475:17:0;;;;;;;1508:40;;1458:6;;;1475:17;1458:6;;1508:40;;1439:16;;1508:40;1428:128;1365:191;:::o;21082:476::-;21172:16;;;21186:1;21172:16;;;;;;;;21148:21;;21172:16;;;;;;;;;;-1:-1:-1;21172:16:0;21148:40;;21217:4;21199;21204:1;21199:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21199:23:0;;;-1:-1:-1;;;;;21199:23:0;;;;;21243:16;-1:-1:-1;;;;;21243:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21233:4;21238:1;21233:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21233:33:0;;;-1:-1:-1;;;;;21233:33:0;;;;;21277:63;21294:4;21309:16;21328:11;21277:8;:63::i;:::-;21494:15;;21351:199;;-1:-1:-1;;;21351:199:0;;-1:-1:-1;;;;;21351:16:0;:67;;;;;:199;;21433:11;;21459:1;;21475:4;;21494:15;;;;;21524;;21351:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21137:421;21082:476;:::o;18376:186::-;-1:-1:-1;;;;;18459:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18459:39:0;;;;;;;;;;18514:40;;18459:39;;:31;18514:40;;;18376:186;;:::o;11933:641::-;-1:-1:-1;;;;;12030:18:0;;12022:68;;;;-1:-1:-1;;;12022:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12109:16:0;;12101:64;;;;-1:-1:-1;;;12101:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12251:15:0;;12229:19;12251:15;;;;;;;;;;;12285:21;;;;12277:72;;;;-1:-1:-1;;;12277:72:0;;15051:2:1;12277:72:0;;;15033:21:1;15090:2;15070:18;;;15063:30;15129:34;15109:18;;;15102:62;-1:-1:-1;;;15180:18:1;;;15173:36;15226:19;;12277:72:0;14849:402:1;12277:72:0;-1:-1:-1;;;;;12385:15:0;;;:9;:15;;;;;;;;;;;12403:20;;;12385:38;;12438:13;;;;;;;;;;:23;;;;;;12490:26;;1361:25:1;;;12438:13:0;;12490:26;;1334:18:1;12490:26:0;;;;;;;12529:37;21721:267;22372:367;22411:23;22437:24;22455:4;22437:9;:24::i;:::-;22411:50;;22476:15;22495:1;22476:20;22472:59;;22513:7;22372:367::o;22472:59::-;22611:18;;22564:15;;22596:33;;22592:99;;;-1:-1:-1;22661:18:0;;22592:99;22701:30;22718:12;22701:16;:30::i;8291:98::-;8349:7;8376:5;8380:1;8376;:5;:::i;:::-;8369:12;8291:98;-1:-1:-1;;;8291:98:0:o;8397:::-;8455:7;8482:5;8486:1;8482;: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:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:180::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;-1:-1:-1;2451:23:1;;2300:180;-1:-1:-1;2300:180:1:o;2693:247::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2860:9;2847:23;2879:31;2904:5;2879:31;:::i;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;4467:127::-;4528:10;4523:3;4519:20;4516:1;4509:31;4559:4;4556:1;4549:15;4583:4;4580:1;4573:15;4599:125;4664:9;;;4685:10;;;4682:36;;;4698:18;;:::i;4729:168::-;4802:9;;;4833;;4850:15;;;4844:22;;4830:37;4820:71;;4871:18;;:::i;4902:217::-;4942:1;4968;4958:132;;5012:10;5007:3;5003:20;5000:1;4993:31;5047:4;5044:1;5037:15;5075:4;5072:1;5065:15;4958:132;-1:-1:-1;5104:9:1;;4902:217::o;6088:306::-;6176:6;6184;6192;6245:2;6233:9;6224:7;6220:23;6216:32;6213:52;;;6261:1;6258;6251:12;6213:52;6290:9;6284:16;6274:26;;6340:2;6329:9;6325:18;6319:25;6309:35;;6384:2;6373:9;6369:18;6363:25;6353:35;;6088:306;;;;;:::o;6678:245::-;6745:6;6798:2;6786:9;6777:7;6773:23;6769:32;6766:52;;;6814:1;6811;6804:12;6766:52;6846:9;6840:16;6865:28;6887:5;6865:28;:::i;10052:401::-;10254:2;10236:21;;;10293:2;10273:18;;;10266:30;10332:34;10327:2;10312:18;;10305:62;-1:-1:-1;;;10398:2:1;10383:18;;10376:35;10443:3;10428:19;;10052:401::o;10458:399::-;10660:2;10642:21;;;10699:2;10679:18;;;10672:30;10738:34;10733:2;10718:18;;10711:62;-1:-1:-1;;;10804:2:1;10789:18;;10782:33;10847:3;10832:19;;10458:399::o;12406:128::-;12473:9;;;12494:11;;;12491:37;;;12508:18;;:::i;13476:127::-;13537:10;13532:3;13528:20;13525:1;13518:31;13568:4;13565:1;13558:15;13592:4;13589:1;13582:15;13608:251;13678:6;13731:2;13719:9;13710:7;13706:23;13702:32;13699:52;;;13747:1;13744;13737:12;13699:52;13779:9;13773:16;13798:31;13823:5;13798:31;:::i;13864:980::-;14126:4;14174:3;14163:9;14159:19;14205:6;14194:9;14187:25;14231:2;14269:6;14264:2;14253:9;14249:18;14242:34;14312:3;14307:2;14296:9;14292:18;14285:31;14336:6;14371;14365:13;14402:6;14394;14387:22;14440:3;14429:9;14425:19;14418:26;;14479:2;14471:6;14467:15;14453:29;;14500:1;14510:195;14524:6;14521:1;14518:13;14510:195;;;14589:13;;-1:-1:-1;;;;;14585:39:1;14573:52;;14680:15;;;;14645:12;;;;14621:1;14539:9;14510:195;;;-1:-1:-1;;;;;;;14761:32:1;;;;14756:2;14741:18;;14734:60;-1:-1:-1;;;14825:3:1;14810:19;14803:35;14722:3;13864:980;-1:-1:-1;;;13864:980:1:o
Swarm Source
ipfs://021b0a781053e5c1913b244753861c217226b48cbec8e9d8ee13e4a5253ceb24
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.