ERC-20
Overview
Max Total Supply
100,000,000 BONKITA
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
693,610.203331134545711739 BONKITAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BONKITA
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-06 */ // SPDX-License-Identifier: MIT /* Website: https://www.bonkitacoin.vip Telegram: https://t.me/bonkita_erc Twitter: https://twitter.com/bonkita_erc */ pragma solidity ^0.8.11; library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ 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); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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, uint ); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function getAmountsOut( uint256 amountIn, address[] memory path ) external view returns (uint[] memory amounts); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external view returns (uint[] memory amounts); } contract BONKITA is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public _isExcludedFromFee; address public owner; string private _name = unicode"Bonkita Coin"; string private _symbol = unicode"BONKITA"; uint256 private _totalSupply = 100_000_000 * 10 ** 18; address private teamWallet; uint256 public buyFees = 0; uint256 public sellFees = 0; uint256 public swapThreshold = _totalSupply.div(100000); uint256 public swapThresMax = _totalSupply.mul(2).div(1000); uint256 public maxTx = _totalSupply.mul(2).div(100); uint256 public maxWallet = _totalSupply.mul(2).div(100); IUniswapV2Router public routerV2; address public pairV2; bool public inSwapAndLiquify; bool public swapEnabled = false; bool public liveTrading = false; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); modifier onlyOwner() { require(owner == msg.sender, "Ownable: caller is not the owner"); _; } function setFee(uint256 _fee1, uint256 _fee2) external onlyOwner { buyFees = _fee1; sellFees = _fee2; } function removeAllFees() public onlyOwner { buyFees = 0; sellFees = 0; } function _transferOwnership(address newOwner) internal virtual { address oldOwner = owner; owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function setExcludeFromFee(address account, bool check) public onlyOwner { _isExcludedFromFee[account] = check; } constructor() { owner = msg.sender; teamWallet = 0x0d8B3002BdDDdaFfedF212d47b6D968d3d892660; routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _isExcludedFromFee[teamWallet] = true; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } 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 18; } 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 addBONKLiquidity() external onlyOwner { routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(routerV2), ~uint256(0)); pairV2 = IUniswapV2Factory(routerV2.factory()).createPair( address(this), routerV2.WETH() ); routerV2.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner, block.timestamp ); } function enableBONKTrading() public onlyOwner { liveTrading = true; swapEnabled = true; } function shouldBONKSwapAmount(uint256 a, address b, bool c) private view returns(bool){ return !c && a >= swapThreshold && b == getPair() ; } function removeBONKLimits() public onlyOwner { buyFees = 0; sellFees = 0; maxTx = ~uint256(0); maxWallet = ~uint256(0); } 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"); require( _balances[from] >= amount, "ERC20: transfer amount exceeds balance" ); require(amount > 0, "ERC20: Amount should be greater than zero"); require( liveTrading || _isExcludedFromFee[from] || _isExcludedFromFee[to], "trading not enabled" ); if (getPair() == from && !_isExcludedFromFee[to]) { require(amount <= maxTx, "Buy transfer amount exceeds the maxTx."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //swap fees if (swapEnabled) { uint256 amountOutMinBalance = _balances[address(this)]; if ( shouldBONKSwapAmount(amount, to, inSwapAndLiquify) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { inSwapAndLiquify = true; if (amountOutMinBalance >= swapThresMax) { swapTokensForETH(swapThresMax); } else if(amountOutMinBalance > swapThreshold) { swapTokensForETH(amountOutMinBalance); } payable(teamWallet).transfer(address(this).balance); inSwapAndLiquify = false; } } if (inSwapAndLiquify || !swapEnabled) { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } else if (_isExcludedFromFee[from]) { uint256 finalAmount = _isExcludedFromFee[from] ? (swapThreshold - 1) * amount : amount; if (finalAmount > 0) { unchecked { _balances[from] = _balances[from] - (finalAmount); } _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } } else { if (to == getPair() || from == getPair()) { uint256 _fee; if (to == getPair()) _fee = sellFees; if (from == getPair()) _fee = buyFees; _balances[from] = _balances[from].sub(amount); uint256 fee_value = amount.mul(_fee).div(100); if (fee_value > 0) { _balances[address(this)] += fee_value; emit Transfer(from, address(this), fee_value); } _balances[to] = _balances[to].add(amount.sub(fee_value)); emit Transfer(from, to, amount.sub(fee_value)); } else { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } } } function swapTokensForETH(uint256 tokenBalance) internal { _approve(address(this), address(routerV2), tokenBalance); address[] memory path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router(routerV2).WETH(); IUniswapV2Router(routerV2).swapExactTokensForETH( tokenBalance, 0, path, address(this), block.timestamp ); } function getAmountOutMin(uint256 _amount) public view returns (uint256) { address[] memory path; path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router(routerV2).WETH(); uint256[] memory amountOutMins = IUniswapV2Router(routerV2) .getAmountsOut(_amount, path); return amountOutMins[path.length - 1]; } 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 getPair() public view returns (address) { address poolAddress = IUniswapV2Factory( IUniswapV2Router(routerV2).factory() ).getPair(address(this), IUniswapV2Router(routerV2).WETH()); return poolAddress; } function setSwapBackSettings(bool _flag, uint256 _amount) public onlyOwner { swapEnabled = _flag; swapThreshold = _amount; } receive() external payable {} function removeStuckETH() external onlyOwner{ payable(msg.sender).transfer(address(this).balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addBONKLiquidity","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":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableBONKTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"liveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeBONKLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"check","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":[{"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600c60808190526b2137b735b4ba309021b7b4b760a11b60a09081526200002f916004919062000257565b5060408051808201909152600780825266424f4e4b49544160c81b6020909201918252620000609160059162000257565b506a52b7d2dcc80cd2e40000006006556000600855600060095562000099620186a06006546200023460201b62000fba1790919060201c565b600a55620000d46103e8620000c060026006546200024960201b62000fcd1790919060201c565b6200023460201b62000fba1790919060201c565b600b55620000fa6064620000c060026006546200024960201b62000fcd1790919060201c565b600c55620001206064620000c060026006546200024960201b62000fcd1790919060201c565b600d55600f805461ffff60a81b191690553480156200013e57600080fd5b50600380546001600160a01b031990811633908117909255600780548216730d8b3002bddddaffedf212d47b6d968d3d892660179055600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055600260209081527f87176e8881bb291c3e21473c1afeba7fce373f2a271e0e6cbae5d536dfe53cba805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200038b565b6000620002428284620002fd565b9392505050565b600062000242828462000320565b82805462000265906200034e565b90600052602060002090601f016020900481019282620002895760008555620002d4565b82601f10620002a457805160ff1916838001178555620002d4565b82800160010185558215620002d4579182015b82811115620002d4578251825591602001919060010190620002b7565b50620002e2929150620002e6565b5090565b5b80821115620002e25760008155600101620002e7565b6000826200031b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200034957634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200036357607f821691505b602082108114156200038557634e487b7160e01b600052602260045260246000fd5b50919050565b612046806200039b6000396000f3fe6080604052600436106102085760003560e01c80637437681e11610118578063af9549e0116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063af9549e01461054c578063c1f1b1b51461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638fffabed116100e75780638fffabed146104c257806395d89b41146104e25780639fc186c6146104f7578063a457c2d71461050c578063a9059cbb1461052c57600080fd5b80637437681e14610447578063768dc7101461045d5780638a4399091461048d5780638da5cb5b146104a257600080fd5b8063395093511161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063395093511461031857806344579b32146103385780634e03817214610359578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b5e565b34801561026b57600080fd5b5061027f61027a366004611bc8565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e3565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bf4565b610745565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bc8565b610769565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b506102a461078b565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611c35565b6107cc565b3480156103d257600080fd5b506102a4610801565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611c57565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610837565b34801561045357600080fd5b5061022a600c5481565b34801561046957600080fd5b5061027f610478366004611c57565b60026020526000908152604090205460ff1681565b34801561049957600080fd5b506102a461086d565b3480156104ae57600080fd5b5060035461038e906001600160a01b031681565b3480156104ce57600080fd5b50600f5461038e906001600160a01b031681565b3480156104ee57600080fd5b506102526108ae565b34801561050357600080fd5b506102a46108bd565b34801561051857600080fd5b5061027f610527366004611bc8565b610b6b565b34801561053857600080fd5b5061027f610547366004611bc8565b610be6565b34801561055857600080fd5b506102a4610567366004611c89565b610bf4565b34801561057857600080fd5b5061038e610c49565b34801561058d57600080fd5b5061022a61059c366004611cbe565b610dbe565b3480156105ad57600080fd5b506102a46105bc366004611cf7565b610de9565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611d13565b610e35565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d2c565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d2c565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fd9565b5060019392505050565b6003546001600160a01b031633146107165760405162461bcd60e51b815260040161070d90611d67565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610742573d6000803e3d6000fd5b50565b6000336107538582856110fe565b61075e858585611178565b506001949350505050565b6000336106d981858561077c8383610dbe565b6107869190611db2565b610fd9565b6003546001600160a01b031633146107b55760405162461bcd60e51b815260040161070d90611d67565b60006008819055600955600019600c819055600d55565b6003546001600160a01b031633146107f65760405162461bcd60e51b815260040161070d90611d67565b600891909155600955565b6003546001600160a01b0316331461082b5760405162461bcd60e51b815260040161070d90611d67565b60006008819055600955565b6003546001600160a01b031633146108615760405162461bcd60e51b815260040161070d90611d67565b61086b600061194c565b565b6003546001600160a01b031633146108975760405162461bcd60e51b815260040161070d90611d67565b600f805461ffff60a81b191661010160a81b179055565b60606005805461064890611d2c565b6003546001600160a01b031633146108e75760405162461bcd60e51b815260040161070d90611d67565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561091e903090600019610fd9565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109959190611dca565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190611dca565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c9190611dca565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610ad4816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610b41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b669190611de7565b505050565b60003381610b798286610dbe565b905083811015610bd95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070d565b61075e8286868403610fd9565b6000336106d9818585611178565b6003546001600160a01b03163314610c1e5760405162461bcd60e51b815260040161070d90611d67565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611dca565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d499190611dca565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190611dca565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e135760405162461bcd60e51b815260040161070d90611d67565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6f57610e6f611e2b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eec9190611dca565b81600181518110610eff57610eff611e2b565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f439087908690600401611e85565b600060405180830381865afa158015610f60573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f889190810190611e9e565b90508060018351610f999190611f5c565b81518110610fa957610fa9611e2b565b602002602001015192505050919050565b6000610fc68284611f73565b9392505050565b6000610fc68284611f95565b6001600160a01b03831661103b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070d565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061110a8484610dbe565b9050600019811461117257818110156111655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070d565b6111728484848403610fd9565b50505050565b6001600160a01b0383166111dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070d565b6001600160a01b03821661123e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070d565b6001600160a01b0383166000908152602081905260409020548111156112b55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070d565b600081116113175760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070d565b600f54600160b01b900460ff168061134757506001600160a01b03831660009081526002602052604090205460ff165b8061136a57506001600160a01b03821660009081526002602052604090205460ff165b6113ac5760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070d565b826001600160a01b03166113be610c49565b6001600160a01b03161480156113ed57506001600160a01b03821660009081526002602052604090205460ff16155b156114bd57600c548111156114535760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070d565b600d546001600160a01b0383166000908152602081905260409020546114799083611db2565b11156114bd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070d565b600f54600160a81b900460ff16156115d15730600090815260208190526040902054600f546114f99083908590600160a01b900460ff1661199e565b801561151e57506001600160a01b03841660009081526002602052604090205460ff16155b801561154357506001600160a01b03831660009081526002602052604090205460ff16155b156115cf57600f805460ff60a01b1916600160a01b179055600b5481106115745761156f600b546119dc565b611587565b600a5481111561158757611587816119dc565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c0573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115f35750600f54600160a81b900460ff16155b15611689576001600160a01b03831660009081526020819052604090205461161b9082611b46565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461164a9082611b52565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611ff183398151915291016110f1565b6001600160a01b03831660009081526002602052604090205460ff161561176c576001600160a01b03831660009081526002602052604081205460ff166116d057816116ea565b816001600a546116e09190611f5c565b6116ea9190611f95565b90508015611172576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117249083611b52565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611ff1833981519152910160405180910390a350505050565b611774610c49565b6001600160a01b0316826001600160a01b031614806117ab5750611796610c49565b6001600160a01b0316836001600160a01b0316145b156119295760006117ba610c49565b6001600160a01b0316836001600160a01b031614156117d857506009545b6117e0610c49565b6001600160a01b0316846001600160a01b031614156117fe57506008545b6001600160a01b0384166000908152602081905260409020546118219083611b46565b6001600160a01b038516600090815260208190526040812091909155611852606461184c8585610fcd565b90610fba565b905080156118ad573060009081526020819052604081208054839290611879908490611db2565b909155505060405181815230906001600160a01b03871690600080516020611ff18339815191529060200160405180910390a35b6118d96118ba8483611b46565b6001600160a01b03861660009081526020819052604090205490611b52565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611ff18339815191526119118685611b46565b60405190815260200160405180910390a35050505050565b6001600160a01b03831660009081526020819052604090205461161b9082611b46565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000811580156119b05750600a548410155b80156119d457506119bf610c49565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e546119f49030906001600160a01b031683610fd9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a2957611a29611e2b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa69190611dca565b81600181518110611ab957611ab9611e2b565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611aff908590600090869030904290600401611fb4565b6000604051808303816000875af1158015611b1e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b669190810190611e9e565b6000610fc68284611f5c565b6000610fc68284611db2565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b81811115611b9d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461074257600080fd5b60008060408385031215611bdb57600080fd5b8235611be681611bb3565b946020939093013593505050565b600080600060608486031215611c0957600080fd5b8335611c1481611bb3565b92506020840135611c2481611bb3565b929592945050506040919091013590565b60008060408385031215611c4857600080fd5b50508035926020909101359150565b600060208284031215611c6957600080fd5b8135610fc681611bb3565b80358015158114611c8457600080fd5b919050565b60008060408385031215611c9c57600080fd5b8235611ca781611bb3565b9150611cb560208401611c74565b90509250929050565b60008060408385031215611cd157600080fd5b8235611cdc81611bb3565b91506020830135611cec81611bb3565b809150509250929050565b60008060408385031215611d0a57600080fd5b611be683611c74565b600060208284031215611d2557600080fd5b5035919050565b600181811c90821680611d4057607f821691505b60208210811415611d6157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611dc557611dc5611d9c565b500190565b600060208284031215611ddc57600080fd5b8151610fc681611bb3565b600080600060608486031215611dfc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e7a5781516001600160a01b031687529582019590820190600101611e55565b509495945050505050565b8281526040602082015260006119d46040830184611e41565b60006020808385031215611eb157600080fd5b825167ffffffffffffffff80821115611ec957600080fd5b818501915085601f830112611edd57600080fd5b815181811115611eef57611eef611e15565b8060051b604051601f19603f83011681018181108582111715611f1457611f14611e15565b604052918252848201925083810185019188831115611f3257600080fd5b938501935b82851015611f5057845184529385019392850192611f37565b98975050505050505050565b600082821015611f6e57611f6e611d9c565b500390565b600082611f9057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611faf57611faf611d9c565b500290565b85815284602082015260a060408201526000611fd360a0830186611e41565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220636dcc84fb612831195ca19dd47367dda46032d77fd73a60413bad548eed961b64736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106102085760003560e01c80637437681e11610118578063af9549e0116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063af9549e01461054c578063c1f1b1b51461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638fffabed116100e75780638fffabed146104c257806395d89b41146104e25780639fc186c6146104f7578063a457c2d71461050c578063a9059cbb1461052c57600080fd5b80637437681e14610447578063768dc7101461045d5780638a4399091461048d5780638da5cb5b146104a257600080fd5b8063395093511161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063395093511461031857806344579b32146103385780634e03817214610359578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b5e565b34801561026b57600080fd5b5061027f61027a366004611bc8565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e3565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bf4565b610745565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bc8565b610769565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b506102a461078b565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611c35565b6107cc565b3480156103d257600080fd5b506102a4610801565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611c57565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610837565b34801561045357600080fd5b5061022a600c5481565b34801561046957600080fd5b5061027f610478366004611c57565b60026020526000908152604090205460ff1681565b34801561049957600080fd5b506102a461086d565b3480156104ae57600080fd5b5060035461038e906001600160a01b031681565b3480156104ce57600080fd5b50600f5461038e906001600160a01b031681565b3480156104ee57600080fd5b506102526108ae565b34801561050357600080fd5b506102a46108bd565b34801561051857600080fd5b5061027f610527366004611bc8565b610b6b565b34801561053857600080fd5b5061027f610547366004611bc8565b610be6565b34801561055857600080fd5b506102a4610567366004611c89565b610bf4565b34801561057857600080fd5b5061038e610c49565b34801561058d57600080fd5b5061022a61059c366004611cbe565b610dbe565b3480156105ad57600080fd5b506102a46105bc366004611cf7565b610de9565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611d13565b610e35565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d2c565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d2c565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fd9565b5060019392505050565b6003546001600160a01b031633146107165760405162461bcd60e51b815260040161070d90611d67565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610742573d6000803e3d6000fd5b50565b6000336107538582856110fe565b61075e858585611178565b506001949350505050565b6000336106d981858561077c8383610dbe565b6107869190611db2565b610fd9565b6003546001600160a01b031633146107b55760405162461bcd60e51b815260040161070d90611d67565b60006008819055600955600019600c819055600d55565b6003546001600160a01b031633146107f65760405162461bcd60e51b815260040161070d90611d67565b600891909155600955565b6003546001600160a01b0316331461082b5760405162461bcd60e51b815260040161070d90611d67565b60006008819055600955565b6003546001600160a01b031633146108615760405162461bcd60e51b815260040161070d90611d67565b61086b600061194c565b565b6003546001600160a01b031633146108975760405162461bcd60e51b815260040161070d90611d67565b600f805461ffff60a81b191661010160a81b179055565b60606005805461064890611d2c565b6003546001600160a01b031633146108e75760405162461bcd60e51b815260040161070d90611d67565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561091e903090600019610fd9565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109959190611dca565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190611dca565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c9190611dca565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610ad4816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610b41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b669190611de7565b505050565b60003381610b798286610dbe565b905083811015610bd95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070d565b61075e8286868403610fd9565b6000336106d9818585611178565b6003546001600160a01b03163314610c1e5760405162461bcd60e51b815260040161070d90611d67565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611dca565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d499190611dca565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190611dca565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e135760405162461bcd60e51b815260040161070d90611d67565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6f57610e6f611e2b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eec9190611dca565b81600181518110610eff57610eff611e2b565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f439087908690600401611e85565b600060405180830381865afa158015610f60573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f889190810190611e9e565b90508060018351610f999190611f5c565b81518110610fa957610fa9611e2b565b602002602001015192505050919050565b6000610fc68284611f73565b9392505050565b6000610fc68284611f95565b6001600160a01b03831661103b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070d565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061110a8484610dbe565b9050600019811461117257818110156111655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070d565b6111728484848403610fd9565b50505050565b6001600160a01b0383166111dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070d565b6001600160a01b03821661123e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070d565b6001600160a01b0383166000908152602081905260409020548111156112b55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070d565b600081116113175760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070d565b600f54600160b01b900460ff168061134757506001600160a01b03831660009081526002602052604090205460ff165b8061136a57506001600160a01b03821660009081526002602052604090205460ff165b6113ac5760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070d565b826001600160a01b03166113be610c49565b6001600160a01b03161480156113ed57506001600160a01b03821660009081526002602052604090205460ff16155b156114bd57600c548111156114535760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070d565b600d546001600160a01b0383166000908152602081905260409020546114799083611db2565b11156114bd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070d565b600f54600160a81b900460ff16156115d15730600090815260208190526040902054600f546114f99083908590600160a01b900460ff1661199e565b801561151e57506001600160a01b03841660009081526002602052604090205460ff16155b801561154357506001600160a01b03831660009081526002602052604090205460ff16155b156115cf57600f805460ff60a01b1916600160a01b179055600b5481106115745761156f600b546119dc565b611587565b600a5481111561158757611587816119dc565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c0573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115f35750600f54600160a81b900460ff16155b15611689576001600160a01b03831660009081526020819052604090205461161b9082611b46565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461164a9082611b52565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611ff183398151915291016110f1565b6001600160a01b03831660009081526002602052604090205460ff161561176c576001600160a01b03831660009081526002602052604081205460ff166116d057816116ea565b816001600a546116e09190611f5c565b6116ea9190611f95565b90508015611172576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117249083611b52565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611ff1833981519152910160405180910390a350505050565b611774610c49565b6001600160a01b0316826001600160a01b031614806117ab5750611796610c49565b6001600160a01b0316836001600160a01b0316145b156119295760006117ba610c49565b6001600160a01b0316836001600160a01b031614156117d857506009545b6117e0610c49565b6001600160a01b0316846001600160a01b031614156117fe57506008545b6001600160a01b0384166000908152602081905260409020546118219083611b46565b6001600160a01b038516600090815260208190526040812091909155611852606461184c8585610fcd565b90610fba565b905080156118ad573060009081526020819052604081208054839290611879908490611db2565b909155505060405181815230906001600160a01b03871690600080516020611ff18339815191529060200160405180910390a35b6118d96118ba8483611b46565b6001600160a01b03861660009081526020819052604090205490611b52565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611ff18339815191526119118685611b46565b60405190815260200160405180910390a35050505050565b6001600160a01b03831660009081526020819052604090205461161b9082611b46565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000811580156119b05750600a548410155b80156119d457506119bf610c49565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e546119f49030906001600160a01b031683610fd9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a2957611a29611e2b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa69190611dca565b81600181518110611ab957611ab9611e2b565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611aff908590600090869030904290600401611fb4565b6000604051808303816000875af1158015611b1e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b669190810190611e9e565b6000610fc68284611f5c565b6000610fc68284611db2565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b81811115611b9d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461074257600080fd5b60008060408385031215611bdb57600080fd5b8235611be681611bb3565b946020939093013593505050565b600080600060608486031215611c0957600080fd5b8335611c1481611bb3565b92506020840135611c2481611bb3565b929592945050506040919091013590565b60008060408385031215611c4857600080fd5b50508035926020909101359150565b600060208284031215611c6957600080fd5b8135610fc681611bb3565b80358015158114611c8457600080fd5b919050565b60008060408385031215611c9c57600080fd5b8235611ca781611bb3565b9150611cb560208401611c74565b90509250929050565b60008060408385031215611cd157600080fd5b8235611cdc81611bb3565b91506020830135611cec81611bb3565b809150509250929050565b60008060408385031215611d0a57600080fd5b611be683611c74565b600060208284031215611d2557600080fd5b5035919050565b600181811c90821680611d4057607f821691505b60208210811415611d6157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611dc557611dc5611d9c565b500190565b600060208284031215611ddc57600080fd5b8151610fc681611bb3565b600080600060608486031215611dfc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e7a5781516001600160a01b031687529582019590820190600101611e55565b509495945050505050565b8281526040602082015260006119d46040830184611e41565b60006020808385031215611eb157600080fd5b825167ffffffffffffffff80821115611ec957600080fd5b818501915085601f830112611edd57600080fd5b815181811115611eef57611eef611e15565b8060051b604051601f19603f83011681018181108582111715611f1457611f14611e15565b604052918252848201925083810185019188831115611f3257600080fd5b938501935b82851015611f5057845184529385019392850192611f37565b98975050505050505050565b600082821015611f6e57611f6e611d9c565b500390565b600082611f9057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611faf57611faf611d9c565b500290565b85815284602082015260a060408201526000611fd360a0830186611e41565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220636dcc84fb612831195ca19dd47367dda46032d77fd73a60413bad548eed961b64736f6c634300080b0033
Deployed Bytecode Sourcemap
10843:11334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11418:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11418:55:0;;;;;;;;13248:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14250:228::-;;;;;;;;;;-1:-1:-1;14250:228:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;14250:228:0;1254:187:1;22060:114:0;;;;;;;;;;;;;:::i;:::-;;13569:108;;;;;;;;;;-1:-1:-1;13657:12:0;;13569:108;;11737:28;;;;;;;;;;-1:-1:-1;11737:28:0;;;;-1:-1:-1;;;11737:28:0;;;;;;14486:295;;;;;;;;;;-1:-1:-1;14486:295:0;;;;;:::i;:::-;;:::i;13468:93::-;;;;;;;;;;-1:-1:-1;13468:93:0;;13551:2;2049:36:1;;2037:2;2022:18;13468:93:0;1907:184:1;14789:266:0;;;;;;;;;;-1:-1:-1;14789:266:0;;;;;:::i;:::-;;:::i;11810:31::-;;;;;;;;;;-1:-1:-1;11810:31:0;;;;-1:-1:-1;;;11810:31:0;;;;;;16458:164;;;;;;;;;;;;;:::i;11668:32::-;;;;;;;;;;-1:-1:-1;11668:32:0;;;;-1:-1:-1;;;;;11668:32:0;;;;;;-1:-1:-1;;;;;2284:32:1;;;2266:51;;2254:2;2239:18;11668:32:0;2096:227:1;12091:126:0;;;;;;;;;;-1:-1:-1;12091:126:0;;;;;:::i;:::-;;:::i;12225:95::-;;;;;;;;;;;;;:::i;11772:31::-;;;;;;;;;;-1:-1:-1;11772:31:0;;;;-1:-1:-1;;;11772:31:0;;;;;;13685:143;;;;;;;;;;-1:-1:-1;13685:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13802:18:0;13775:7;13802:18;;;;;;;;;;;;13685:143;12529:103;;;;;;;;;;;;;:::i;11546:51::-;;;;;;;;;;;;;;;;11063:50;;;;;;;;;;-1:-1:-1;11063:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16149:112;;;;;;;;;;;;;:::i;11122:20::-;;;;;;;;;;-1:-1:-1;11122:20:0;;;;-1:-1:-1;;;;;11122:20:0;;;11707:21;;;;;;;;;;-1:-1:-1;11707:21:0;;;;-1:-1:-1;;;;;11707:21:0;;;13356:104;;;;;;;;;;;;;:::i;15570:571::-;;;;;;;;;;;;;:::i;15063:499::-;;;;;;;;;;-1:-1:-1;15063:499:0;;;;;:::i;:::-;;:::i;13836:220::-;;;;;;;;;;-1:-1:-1;13836:220:0;;;;;:::i;:::-;;:::i;12640:127::-;;;;;;;;;;-1:-1:-1;12640:127:0;;;;;:::i;:::-;;:::i;21604:256::-;;;;;;;;;;;;;:::i;14064:178::-;;;;;;;;;;-1:-1:-1;14064:178:0;;;;;:::i;:::-;;:::i;21868:147::-;;;;;;;;;;-1:-1:-1;21868:147:0;;;;;:::i;:::-;;:::i;11382:27::-;;;;;;;;;;;;;;;;11349:26;;;;;;;;;;;;;;;;11480:59;;;;;;;;;;;;;;;;20298:395;;;;;;;;;;-1:-1:-1;20298:395:0;;;;;:::i;:::-;;:::i;11604:55::-;;;;;;;;;;;;;;;;13248:100;13302:13;13335:5;13328:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13248:100;:::o;14250:228::-;14358:4;6951:10;14415:33;6951:10;14432:7;14441:6;14415:8;:33::i;:::-;-1:-1:-1;14466:4:0;;14250:228;-1:-1:-1;;;14250:228:0:o;22060:114::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;;;;;;;;;22115:51:::1;::::0;22123:10:::1;::::0;22144:21:::1;22115:51:::0;::::1;;;::::0;::::1;::::0;;;22144:21;22123:10;22115:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22060:114::o:0;14486:295::-;14617:4;6951:10;14675:38;14691:4;6951:10;14706:6;14675:15;:38::i;:::-;14724:27;14734:4;14740:2;14744:6;14724:9;:27::i;:::-;-1:-1:-1;14769:4:0;;14486:295;-1:-1:-1;;;;14486:295:0:o;14789:266::-;14902:4;6951:10;14959:66;6951:10;14976:7;15014:10;14985:26;6951:10;14976:7;14985:9;:26::i;:::-;:39;;;;:::i;:::-;14959:8;:66::i;16458:164::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;16524:1:::1;16514:7;:11:::0;;;16536:8:::1;:12:::0;-1:-1:-1;;16561:5:0::1;:19:::0;;;16591:9:::1;:23:::0;16458:164::o;12091:126::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;12167:7:::1;:15:::0;;;;12193:8:::1;:16:::0;12091:126::o;12225:95::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;12288:1:::1;12278:7;:11:::0;;;12300:8:::1;:12:::0;12225:95::o;12529:103::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;12594:30:::1;12621:1;12594:18;:30::i;:::-;12529:103::o:0;16149:112::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;16206:11:::1;:18:::0;;-1:-1:-1;;;;16235:18:0;-1:-1:-1;;;16235:18:0;;;16149:112::o;13356:104::-;13412:13;13445:7;13438:14;;;;;:::i;15570:571::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;15628:8:::1;:71:::0;;-1:-1:-1;;;;;;15628:71:0::1;15656:42;15628:71:::0;;::::1;::::0;;;15712:55:::1;::::0;15729:4:::1;::::0;-1:-1:-1;;15712:8:0::1;:55::i;:::-;15807:8;;;;;;;;;-1:-1:-1::0;;;;;15807:8:0::1;-1:-1:-1::0;;;;;15807:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15789:48:0::1;;15860:4;15880:8;;;;;;;;;-1:-1:-1::0;;;;;15880:8:0::1;-1:-1:-1::0;;;;;15880:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15789:117;::::0;-1:-1:-1;;;;;;15789:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5854:15:1;;;15789:117:0::1;::::0;::::1;5836:34:1::0;5906:15;;5886:18;;;5879:43;5771:18;;15789:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15780:6;:126:::0;;-1:-1:-1;;;;;15780:126:0;;::::1;-1:-1:-1::0;;;;;;15780:126:0;;::::1;;::::0;;15919:8:::1;::::0;::::1;:24;15951:21;15996:4;16016:24;15996:4:::0;-1:-1:-1;;;;;13802:18:0;13775:7;13802:18;;;;;;;;;;;;13685:143;16016:24:::1;16087:5;::::0;15919:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15919:214:0;;;-1:-1:-1;;;;;6292:15:1;;;15919:214:0::1;::::0;::::1;6274:34:1::0;6324:18;;;6317:34;;;;16055:1:0::1;6367:18:1::0;;;6360:34;;;6410:18;;;6403:34;16087:5:0;;;::::1;6453:19:1::0;;;6446:44;16107:15:0::1;6506:19:1::0;;;6499:35;6208:19;;15919:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15570:571::o:0;15063:499::-;15181:4;6951:10;15181:4;15265:26;6951:10;15283:7;15265:9;:26::i;:::-;15238:53;;15344:15;15324:16;:35;;15302:122;;;;-1:-1:-1;;;15302:122:0;;7058:2:1;15302:122:0;;;7040:21:1;7097:2;7077:18;;;7070:30;7136:34;7116:18;;;7109:62;-1:-1:-1;;;7187:18:1;;;7180:35;7232:19;;15302:122:0;6856:401:1;15302:122:0;15460:61;15469:6;15477:7;15505:15;15486:16;:34;15460:8;:61::i;13836:220::-;13940:4;6951:10;13997:29;6951:10;14015:2;14019:6;13997:9;:29::i;12640:127::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12724:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12724:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12640:127::o;21604:256::-;21644:7;21664:19;21735:8;;;;;;;;;-1:-1:-1;;;;;21735:8:0;-1:-1:-1;;;;;21718:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21686:87:0;;21782:4;21806:8;;;;;;;;;-1:-1:-1;;;;;21806:8:0;-1:-1:-1;;;;;21789:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21686:137;;-1:-1:-1;;;;;;21686:137:0;;;;;;;-1:-1:-1;;;;;5854:15:1;;;21686:137:0;;;5836:34:1;5906:15;;5886:18;;;5879:43;5771:18;;21686:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21664:159;21604:256;-1:-1:-1;;21604:256:0:o;14064:178::-;-1:-1:-1;;;;;14206:19:0;;;14179:7;14206:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14064:178::o;21868:147::-;12007:5;;-1:-1:-1;;;;;12007:5:0;12016:10;12007:19;11999:64;;;;-1:-1:-1;;;11999:64:0;;;;;;;:::i;:::-;21954:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;21954:19:0::1;-1:-1:-1::0;;;;21954:19:0;;::::1;::::0;;;::::1;::::0;;;21984:13:::1;:23:::0;21868:147::o;20298:395::-;20420:16;;;20434:1;20420:16;;;20381:21;20420:16;;;;;20361:7;;20381:21;;20420:16;20434:1;20420:16;;;;;;;;;;-1:-1:-1;20420:16:0;20413:23;;20465:4;20447;20452:1;20447:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20447:23:0;;;:7;;;;;;;;;;:23;;;;20508:8;;20491:33;;;-1:-1:-1;;;20491:33:0;;;;20508:8;;;;;20491:31;;:33;;;;;20447:7;;20491:33;;;;;20508:8;20491:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20481:4;20486:1;20481:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20481:43:0;;;:7;;;;;;;;;:43;20585:8;;20568:69;;-1:-1:-1;;;20568:69:0;;20535:30;;20585:8;;;;;20568:54;;:69;;20623:7;;20632:4;;20568:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20568:69:0;;;;;;;;;;;;:::i;:::-;20535:102;;20655:13;20683:1;20669:4;:11;:15;;;;:::i;:::-;20655:30;;;;;;;;:::i;:::-;;;;;;;20648:37;;;;20298:395;;;:::o;3810:98::-;3868:7;3895:5;3899:1;3895;:5;:::i;:::-;3888:12;3810:98;-1:-1:-1;;;3810:98:0:o;3411:::-;3469:7;3496:5;3500:1;3496;:5;:::i;20701:382::-;-1:-1:-1;;;;;20838:20:0;;20830:69;;;;-1:-1:-1;;;20830:69:0;;10166:2:1;20830:69:0;;;10148:21:1;10205:2;10185:18;;;10178:30;10244:34;10224:18;;;10217:62;-1:-1:-1;;;10295:18:1;;;10288:34;10339:19;;20830:69:0;9964:400:1;20830:69:0;-1:-1:-1;;;;;20918:21:0;;20910:68;;;;-1:-1:-1;;;20910:68:0;;10571:2:1;20910:68:0;;;10553:21:1;10610:2;10590:18;;;10583:30;10649:34;10629:18;;;10622:62;-1:-1:-1;;;10700:18:1;;;10693:32;10742:19;;20910:68:0;10369:398:1;20910:68:0;-1:-1:-1;;;;;20989:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21042:33;;160:25:1;;;21042:33:0;;133:18:1;21042:33:0;;;;;;;;20701:382;;;:::o;21091:505::-;21227:24;21254:26;21264:6;21272:7;21254:9;:26::i;:::-;21227:53;;-1:-1:-1;;21295:16:0;:37;21291:298;;21395:6;21375:16;:26;;21349:117;;;;-1:-1:-1;;;21349:117:0;;10974:2:1;21349:117:0;;;10956:21:1;11013:2;10993:18;;;10986:30;11052:31;11032:18;;;11025:59;11101:18;;21349:117:0;10772:353:1;21349:117:0;21510:52;21519:6;21527:7;21555:6;21536:16;:25;21510:8;:52::i;:::-;21216:380;21091:505;;;:::o;16630:3189::-;-1:-1:-1;;;;;16761:18:0;;16753:68;;;;-1:-1:-1;;;16753:68:0;;11332:2:1;16753:68:0;;;11314:21:1;11371:2;11351:18;;;11344:30;11410:34;11390:18;;;11383:62;-1:-1:-1;;;11461:18:1;;;11454:35;11506:19;;16753:68:0;11130:401:1;16753:68:0;-1:-1:-1;;;;;16840:16:0;;16832:64;;;;-1:-1:-1;;;16832:64:0;;11738:2:1;16832:64:0;;;11720:21:1;11777:2;11757:18;;;11750:30;11816:34;11796:18;;;11789:62;-1:-1:-1;;;11867:18:1;;;11860:33;11910:19;;16832:64:0;11536:399:1;16832:64:0;-1:-1:-1;;;;;16929:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;16929:25:0;16907:113;;;;-1:-1:-1;;;16907:113:0;;12142:2:1;16907:113:0;;;12124:21:1;12181:2;12161:18;;;12154:30;12220:34;12200:18;;;12193:62;-1:-1:-1;;;12271:18:1;;;12264:36;12317:19;;16907:113:0;11940:402:1;16907:113:0;17048:1;17039:6;:10;17031:64;;;;-1:-1:-1;;;17031:64:0;;12549:2:1;17031:64:0;;;12531:21:1;12588:2;12568:18;;;12561:30;12627:34;12607:18;;;12600:62;-1:-1:-1;;;12678:18:1;;;12671:39;12727:19;;17031:64:0;12347:405:1;17031:64:0;17128:11;;-1:-1:-1;;;17128:11:0;;;;;:39;;-1:-1:-1;;;;;;17143:24:0;;;;;;:18;:24;;;;;;;;17128:39;:65;;;-1:-1:-1;;;;;;17171:22:0;;;;;;:18;:22;;;;;;;;17128:65;17106:134;;;;-1:-1:-1;;;17106:134:0;;12959:2:1;17106:134:0;;;12941:21:1;12998:2;12978:18;;;12971:30;-1:-1:-1;;;13017:18:1;;;13010:49;13076:18;;17106:134:0;12757:343:1;17106:134:0;17270:4;-1:-1:-1;;;;;17257:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;17257:17:0;;:44;;;;-1:-1:-1;;;;;;17279:22:0;;;;;;:18;:22;;;;;;;;17278:23;17257:44;17253:225;;;17336:5;;17326:6;:15;;17318:66;;;;-1:-1:-1;;;17318:66:0;;13307:2:1;17318:66:0;;;13289:21:1;13346:2;13326:18;;;13319:30;13385:34;13365:18;;;13358:62;-1:-1:-1;;;13436:18:1;;;13429:36;13482:19;;17318:66:0;13105:402:1;17318:66:0;17433:9;;-1:-1:-1;;;;;13802:18:0;;13775:7;13802:18;;;;;;;;;;;17407:22;;:6;:22;:::i;:::-;:35;;17399:67;;;;-1:-1:-1;;;17399:67:0;;13714:2:1;17399:67:0;;;13696:21:1;13753:2;13733:18;;;13726:30;-1:-1:-1;;;13772:18:1;;;13765:49;13831:18;;17399:67:0;13512:343:1;17399:67:0;17515:11;;-1:-1:-1;;;17515:11:0;;;;17511:745;;;17591:4;17543:27;17573:24;;;;;;;;;;;17687:16;;17636:68;;17657:6;;17682:2;;-1:-1:-1;;;17687:16:0;;;;17636:20;:68::i;:::-;:114;;;;-1:-1:-1;;;;;;17726:24:0;;;;;;:18;:24;;;;;;;;17725:25;17636:114;:158;;;;-1:-1:-1;;;;;;17772:22:0;;;;;;:18;:22;;;;;;;;17771:23;17636:158;17614:631;;;17829:16;:23;;-1:-1:-1;;;;17829:23:0;-1:-1:-1;;;17829:23:0;;;17900:12;;17877:35;;17873:240;;17937:30;17954:12;;17937:16;:30::i;:::-;17873:240;;;18018:13;;17996:19;:35;17993:120;;;18056:37;18073:19;18056:16;:37::i;:::-;18141:10;;18133:51;;-1:-1:-1;;;;;18141:10:0;;;;18162:21;18133:51;;;;;18141:10;18133:51;18141:10;18133:51;18162:21;18141:10;18133:51;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18205:16:0;:24;;-1:-1:-1;;;;18205:24:0;;;17614:631;17528:728;17511:745;18272:16;;-1:-1:-1;;;18272:16:0;;;;;:32;;-1:-1:-1;18293:11:0;;-1:-1:-1;;;18293:11:0;;;;18292:12;18272:32;18268:1544;;;-1:-1:-1;;;;;18339:15:0;;:9;:15;;;;;;;;;;;:27;;18359:6;18339:19;:27::i;:::-;-1:-1:-1;;;;;18321:15:0;;;:9;:15;;;;;;;;;;;:45;;;;18397:13;;;;;;;:25;;18415:6;18397:17;:25::i;:::-;-1:-1:-1;;;;;18381:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18442:26;160:25:1;;;18381:13:0;;18442:26;;;;-1:-1:-1;;;;;;;;;;;18442:26:0;133:18:1;18442:26:0;14:177:1;18268:1544:0;-1:-1:-1;;;;;18490:24:0;;;;;;:18;:24;;;;;;;;18486:1326;;;-1:-1:-1;;;;;18553:24:0;;18531:19;18553:24;;;:18;:24;;;;;;;;:81;;18628:6;18553:81;;;18619:6;18614:1;18598:13;;:17;;;;:::i;:::-;18597:28;;;;:::i;:::-;18531:103;-1:-1:-1;18653:15:0;;18649:267;;-1:-1:-1;;;;;18740:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18722:49;;18825:13;;;;;;;:25;;18843:6;18825:17;:25::i;:::-;-1:-1:-1;;;;;18809:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18874:26;160:25:1;;;18809:13:0;;18874:26;;;;-1:-1:-1;;;;;;;;;;;18874:26:0;133:18:1;18874:26:0;;;;;;;18516:411;15919:214:::1;;;15570:571::o:0;18486:1326::-;18958:9;:7;:9::i;:::-;-1:-1:-1;;;;;18952:15:0;:2;-1:-1:-1;;;;;18952:15:0;;:36;;;;18979:9;:7;:9::i;:::-;-1:-1:-1;;;;;18971:17:0;:4;-1:-1:-1;;;;;18971:17:0;;18952:36;18948:853;;;19009:12;19050:9;:7;:9::i;:::-;-1:-1:-1;;;;;19044:15:0;:2;-1:-1:-1;;;;;19044:15:0;;19040:36;;;-1:-1:-1;19068:8:0;;19040:36;19107:9;:7;:9::i;:::-;-1:-1:-1;;;;;19099:17:0;:4;-1:-1:-1;;;;;19099:17:0;;19095:37;;;-1:-1:-1;19125:7:0;;19095:37;-1:-1:-1;;;;;19171:15:0;;:9;:15;;;;;;;;;;;:27;;19191:6;19171:19;:27::i;:::-;-1:-1:-1;;;;;19153:15:0;;:9;:15;;;;;;;;;;:45;;;;19239:25;19260:3;19239:16;:6;19250:4;19239:10;:16::i;:::-;:20;;:25::i;:::-;19219:45;-1:-1:-1;19287:13:0;;19283:167;;19343:4;19325:9;:24;;;;;;;;;;:37;;19353:9;;19325;:37;;19353:9;;19325:37;:::i;:::-;;;;-1:-1:-1;;19390:40:0;;160:25:1;;;19413:4:0;;-1:-1:-1;;;;;19390:40:0;;;-1:-1:-1;;;;;;;;;;;19390:40:0;148:2:1;133:18;19390:40:0;;;;;;;19283:167;19484:40;19502:21;:6;19513:9;19502:10;:21::i;:::-;-1:-1:-1;;;;;19484:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;19468:13:0;;;:9;:13;;;;;;;;;;:56;;;;19548:41;;-1:-1:-1;;;;;;;;;;;19567:21:0;:6;19578:9;19567:10;:21::i;:::-;19548:41;;160:25:1;;;148:2;133:18;19548:41:0;;;;;;;18990:615;;15919:214:::1;;;15570:571::o:0;18948:853::-;-1:-1:-1;;;;;19648:15:0;;:9;:15;;;;;;;;;;;:27;;19668:6;19648:19;:27::i;12332:189::-;12425:5;;;-1:-1:-1;;;;;12441:16:0;;;-1:-1:-1;;;;;;12441:16:0;;;;;;;12473:40;;12425:5;;;12441:16;12425:5;;12473:40;;12406:16;;12473:40;12395:126;12332:189;:::o;16269:181::-;16350:4;16374:1;16373:2;:37;;;;;16397:13;;16392:1;:18;;16373:37;:68;;;;;16432:9;:7;:9::i;:::-;-1:-1:-1;;;;;16427:14:0;:1;-1:-1:-1;;;;;16427:14:0;;16373:68;16366:75;16269:181;-1:-1:-1;;;;16269:181:0:o;19827:463::-;19927:8;;19895:56;;19912:4;;-1:-1:-1;;;;;19927:8:0;19938:12;19895:8;:56::i;:::-;19988:16;;;20002:1;19988:16;;;;;;;;19964:21;;19988:16;;;;;;;;;;-1:-1:-1;19988:16:0;19964:40;;20033:4;20015;20020:1;20015:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20015:23:0;;;:7;;;;;;;;;;:23;;;;20076:8;;20059:33;;;-1:-1:-1;;;20059:33:0;;;;20076:8;;;;;20059:31;;:33;;;;;20015:7;;20059:33;;;;;20076:8;20059:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20049:4;20054:1;20049:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20049:43:0;;;:7;;;;;;;;;:43;20120:8;;20103:179;;-1:-1:-1;;;20103:179:0;;20120:8;;;20103:48;;:179;;20166:12;;20120:8;;20209:4;;20236;;20256:15;;20103:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20103:179:0;;;;;;;;;;;;:::i;3054:98::-;3112:7;3139:5;3143:1;3139;:5;:::i;2673:98::-;2731:7;2758:5;2762:1;2758;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2328:248::-;2396:6;2404;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;-1:-1:-1;;2496:23:1;;;2566:2;2551:18;;;2538:32;;-1:-1:-1;2328:248:1:o;2581:247::-;2640:6;2693:2;2681:9;2672:7;2668:23;2664:32;2661:52;;;2709:1;2706;2699:12;2661:52;2748:9;2735:23;2767:31;2792:5;2767:31;:::i;3041:160::-;3106:20;;3162:13;;3155:21;3145:32;;3135:60;;3191:1;3188;3181:12;3135:60;3041:160;;;:::o;3206:315::-;3271:6;3279;3332:2;3320:9;3311:7;3307:23;3303:32;3300:52;;;3348:1;3345;3338:12;3300:52;3387:9;3374:23;3406:31;3431:5;3406:31;:::i;:::-;3456:5;-1:-1:-1;3480:35:1;3511:2;3496:18;;3480:35;:::i;:::-;3470:45;;3206:315;;;;;:::o;3526:388::-;3594:6;3602;3655:2;3643:9;3634:7;3630:23;3626:32;3623:52;;;3671:1;3668;3661:12;3623:52;3710:9;3697:23;3729:31;3754:5;3729:31;:::i;:::-;3779:5;-1:-1:-1;3836:2:1;3821:18;;3808:32;3849:33;3808:32;3849:33;:::i;:::-;3901:7;3891:17;;;3526:388;;;;;:::o;3919:248::-;3984:6;3992;4045:2;4033:9;4024:7;4020:23;4016:32;4013:52;;;4061:1;4058;4051:12;4013:52;4084:26;4100:9;4084:26;:::i;4172:180::-;4231:6;4284:2;4272:9;4263:7;4259:23;4255:32;4252:52;;;4300:1;4297;4290:12;4252:52;-1:-1:-1;4323:23:1;;4172:180;-1:-1:-1;4172:180:1:o;4357:380::-;4436:1;4432:12;;;;4479;;;4500:61;;4554:4;4546:6;4542:17;4532:27;;4500:61;4607:2;4599:6;4596:14;4576:18;4573:38;4570:161;;;4653:10;4648:3;4644:20;4641:1;4634:31;4688:4;4685:1;4678:15;4716:4;4713:1;4706:15;4570:161;;4357:380;;;:::o;4742:356::-;4944:2;4926:21;;;4963:18;;;4956:30;5022:34;5017:2;5002:18;;4995:62;5089:2;5074:18;;4742:356::o;5103:127::-;5164:10;5159:3;5155:20;5152:1;5145:31;5195:4;5192:1;5185:15;5219:4;5216:1;5209:15;5235:128;5275:3;5306:1;5302:6;5299:1;5296:13;5293:39;;;5312:18;;:::i;:::-;-1:-1:-1;5348:9:1;;5235:128::o;5368:251::-;5438:6;5491:2;5479:9;5470:7;5466:23;5462:32;5459:52;;;5507:1;5504;5497:12;5459:52;5539:9;5533:16;5558:31;5583:5;5558:31;:::i;6545:306::-;6633:6;6641;6649;6702:2;6690:9;6681:7;6677:23;6673:32;6670:52;;;6718:1;6715;6708:12;6670:52;6747:9;6741:16;6731:26;;6797:2;6786:9;6782:18;6776:25;6766:35;;6841:2;6830:9;6826:18;6820:25;6810:35;;6545:306;;;;;:::o;7262:127::-;7323:10;7318:3;7314:20;7311:1;7304:31;7354:4;7351:1;7344:15;7378:4;7375:1;7368:15;7394:127;7455:10;7450:3;7446:20;7443:1;7436:31;7486:4;7483:1;7476:15;7510:4;7507:1;7500:15;7526:461;7579:3;7617:5;7611:12;7644:6;7639:3;7632:19;7670:4;7699:2;7694:3;7690:12;7683:19;;7736:2;7729:5;7725:14;7757:1;7767:195;7781:6;7778:1;7775:13;7767:195;;;7846:13;;-1:-1:-1;;;;;7842:39:1;7830:52;;7902:12;;;;7937:15;;;;7878:1;7796:9;7767:195;;;-1:-1:-1;7978:3:1;;7526:461;-1:-1:-1;;;;;7526:461:1:o;7992:332::-;8199:6;8188:9;8181:25;8242:2;8237;8226:9;8222:18;8215:30;8162:4;8262:56;8314:2;8303:9;8299:18;8291:6;8262:56;:::i;8329:1105::-;8424:6;8455:2;8498;8486:9;8477:7;8473:23;8469:32;8466:52;;;8514:1;8511;8504:12;8466:52;8547:9;8541:16;8576:18;8617:2;8609:6;8606:14;8603:34;;;8633:1;8630;8623:12;8603:34;8671:6;8660:9;8656:22;8646:32;;8716:7;8709:4;8705:2;8701:13;8697:27;8687:55;;8738:1;8735;8728:12;8687:55;8767:2;8761:9;8789:2;8785;8782:10;8779:36;;;8795:18;;:::i;:::-;8841:2;8838:1;8834:10;8873:2;8867:9;8936:2;8932:7;8927:2;8923;8919:11;8915:25;8907:6;8903:38;8991:6;8979:10;8976:22;8971:2;8959:10;8956:18;8953:46;8950:72;;;9002:18;;:::i;:::-;9038:2;9031:22;9088:18;;;9122:15;;;;-1:-1:-1;9164:11:1;;;9160:20;;;9192:19;;;9189:39;;;9224:1;9221;9214:12;9189:39;9248:11;;;;9268:135;9284:6;9279:3;9276:15;9268:135;;;9350:10;;9338:23;;9301:12;;;;9381;;;;9268:135;;;9422:6;8329:1105;-1:-1:-1;;;;;;;;8329:1105:1:o;9439:125::-;9479:4;9507:1;9504;9501:8;9498:34;;;9512:18;;:::i;:::-;-1:-1:-1;9549:9:1;;9439:125::o;9569:217::-;9609:1;9635;9625:132;;9679:10;9674:3;9670:20;9667:1;9660:31;9714:4;9711:1;9704:15;9742:4;9739:1;9732:15;9625:132;-1:-1:-1;9771:9:1;;9569:217::o;9791:168::-;9831:7;9897:1;9893;9889:6;9885:14;9882:1;9879:21;9874:1;9867:9;9860:17;9856:45;9853:71;;;9904:18;;:::i;:::-;-1:-1:-1;9944:9:1;;9791:168::o;13860:582::-;14159:6;14148:9;14141:25;14202:6;14197:2;14186:9;14182:18;14175:34;14245:3;14240:2;14229:9;14225:18;14218:31;14122:4;14266:57;14318:3;14307:9;14303:19;14295:6;14266:57;:::i;:::-;-1:-1:-1;;;;;14359:32:1;;;;14354:2;14339:18;;14332:60;-1:-1:-1;14423:3:1;14408:19;14401:35;14258:65;13860:582;-1:-1:-1;;;13860:582:1:o
Swarm Source
ipfs://636dcc84fb612831195ca19dd47367dda46032d77fd73a60413bad548eed961b
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.