ETH Price: $2,421.61 (+2.79%)

Token

Trading Simulator (SIM)
 

Overview

Max Total Supply

1,000,000 SIM

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,000 SIM

Value
$0.00
0xDe64A183ff3abcd5f59a30d3ec6300F2496dF6AB
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-01-22
*/

/*
   
   SPDX-License-Identifier: Unlicensed

// TG: https://t.me/TradingSimETH

// Twitter: https://twitter.com/TradingSimETH

// Web: https://TradingSimulator.tech

   
   */
   
   pragma solidity 0.8.23;
   
   abstract contract Context {
       function _msgSender() internal view virtual returns (address) {
           return msg.sender;
       }
   }
   
   interface IERC20 {
       function totalSupply() external view returns (uint256);
   
       function balanceOf(address account) external view returns (uint256);
   
       function transfer(
           address recipient,
           uint256 amount
       ) external returns (bool);
   
       function allowance(
           address owner,
           address spender
       ) external view returns (uint256);
   
       function approve(address spender, uint256 amount) external returns (bool);
   
       function transferFrom(
           address sender,
           address recipient,
           uint256 amount
       ) external returns (bool);
   
       event Transfer(address indexed from, address indexed to, uint256 value);
       event Approval(
           address indexed owner,
           address indexed spender,
           uint256 value
       );
   }
   
   contract Ownable is Context {
       address private _owner;
       address private _previousOwner;
       event OwnershipTransferred(
           address indexed previousOwner,
           address indexed newOwner
       );
   
       constructor() {
           address msgSender = _msgSender();
           _owner = msgSender;
           emit OwnershipTransferred(address(0), msgSender);
       }
   
       function owner() public view returns (address) {
           return _owner;
       }
   
       modifier onlyOwner() {
           require(_owner == _msgSender(), "Ownable: caller is not the owner");
           _;
       }
       
       function renounceOwnership() public virtual onlyOwner {
           emit OwnershipTransferred(_owner, address(0));
           _owner = address(0);
       }
   }
   
   interface IUniswapV2Factory {
       function createPair(
           address tokenA,
           address tokenB
       ) external returns (address pair);
   }
   
   interface IUniswapV2Router02 {
       function swapExactTokensForETHSupportingFeeOnTransferTokens(
           uint amountIn,
           uint amountOutMin,
           address[] calldata path,
           address to,
           uint deadline
       ) external;
   
       function factory() external pure returns (address);
   
       function WETH() external pure returns (address);
   
       function addLiquidityETH(
           address token,
           uint amountTokenDesired,
           uint amountTokenMin,
           uint amountETHMin,
           address to,
           uint deadline
       )
           external
           payable
           returns (uint amountToken, uint amountETH, uint liquidity);
   }
   
   contract ERC20 is Context, IERC20, Ownable {
       uint256 private constant _totalSupply = 1_000_000e18;
       uint256 private twoPercent = 20_000e18;
       uint256 private constant minSwap = 1_0000e18;
       uint8 private constant _decimals = 18;
   
       IUniswapV2Router02 immutable uniswapV2Router;
       address immutable uniswapV2Pair;
       address immutable WETH;
       address payable immutable marketingWallet;
   
       uint256 public buyTax;
       uint256 public sellTax;
   
       uint8 private launch;
       uint8 private inSwapAndLiquify;
   
       uint256 private launchBlock;
       uint256 public maxTxAmount = 20_000e18; //max Tx
   
       string public constant _name = "Trading Simulator";
       string public constant _symbol = "SIM";
   
       mapping(address => uint256) private _balance;
       mapping(address => mapping(address => uint256)) private _allowances;
       mapping(address => bool) private _isExcludedFromFeeWallet;
   
       constructor() {
           
           uniswapV2Router = IUniswapV2Router02(
               0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
           );
           WETH = uniswapV2Router.WETH();
           buyTax = 20;
           sellTax = 20;
   
           uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
               address(this),
               WETH
           );
   
           marketingWallet = payable(msg.sender);
           _balance[address(this)] = _totalSupply;
           _isExcludedFromFeeWallet[marketingWallet] = true;
           _isExcludedFromFeeWallet[msg.sender] = true;
           _isExcludedFromFeeWallet[address(this)] = true;
           _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
               .max;
           _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
           _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
               .max;
   
           emit Transfer(address(0), _msgSender(), _totalSupply);
       }
   
       function name() public pure returns (string memory) {
           return _name;
       }
   
       function symbol() public pure returns (string memory) {
           return _symbol;
       }
   
       function decimals() public pure returns (uint8) {
           return _decimals;
       }
   
       function totalSupply() public pure override returns (uint256) {
           return _totalSupply;
       }
   
       function balanceOf(address account) public view override returns (uint256) {
           return _balance[account];
       }
   
       function transfer(
           address recipient,
           uint256 amount
       ) public override returns (bool) {
           _transfer(_msgSender(), recipient, amount);
           return true;
       }
   
       function allowance(
           address owner,
           address spender
       ) public view override returns (uint256) {
           return _allowances[owner][spender];
       }
   
       function approve(
           address spender,
           uint256 amount
       ) public override returns (bool) {
           _approve(_msgSender(), spender, amount);
           return true;
       }
   
       function transferFrom(
           address sender,
           address recipient,
           uint256 amount
       ) public override returns (bool) {
           _transfer(sender, recipient, amount);
           _approve(
               sender,
               _msgSender(),
               _allowances[sender][_msgSender()] - amount
           );
           return true;
       }
   
       function _approve(address owner, address spender, uint256 amount) private {
           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 addLp() external payable onlyOwner {
           _approve(address(this), address(uniswapV2Router), type(uint).max);
           uniswapV2Router.addLiquidityETH{value: msg.value}(
               address(this),
               balanceOf(address(this)),
               0,
               0,
               owner(),
               block.timestamp
           );
           IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
       }
   
       function openTrading() external onlyOwner {
           launch = 1;
           launchBlock = block.number;
       }
   
       function removeLimits(uint256 finalTaxRate) external onlyOwner {
           maxTxAmount = _totalSupply;
           twoPercent = _totalSupply;
           buyTax = finalTaxRate;
           sellTax = finalTaxRate;
       }
   
     
   
       function _transfer(address from, address to, uint256 amount) private {
           require(from != address(0), "ERC20: transfer from the zero address");
           require(amount > 1e9, "Min transfer amt");
   
           uint256 _tax;
           if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
               _tax = 0;
           } else {
               require(
                   launch != 0 && amount <= maxTxAmount,
                   "Launch / Max TxAmount 2% at launch"
               );
   
               if (inSwapAndLiquify == 1) {
                   //No tax transfer
                   _balance[from] -= amount;
                   _balance[to] += amount;
   
                   emit Transfer(from, to, amount);
                   return;
               }
   
               if (from == uniswapV2Pair) {
                   _tax = buyTax;
               } else if (to == uniswapV2Pair) {
                   uint256 tokensToSwap = _balance[address(this)];
                   if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                       if (tokensToSwap > twoPercent) {
                           tokensToSwap = twoPercent;
                       }
                       inSwapAndLiquify = 1;
                       address[] memory path = new address[](2);
                       path[0] = address(this);
                       path[1] = WETH;
                       uniswapV2Router
                           .swapExactTokensForETHSupportingFeeOnTransferTokens(
                               tokensToSwap,
                               0,
                               path,
                               marketingWallet,
                               block.timestamp
                           );
                       inSwapAndLiquify = 0;
                   }
                   _tax = sellTax;
               } else {
                   _tax = 0;
               }
           }
   
           //Is there tax for sender|receiver?
           if (_tax != 0) {
               //Tax transfer
               uint256 taxTokens = (amount * _tax) / 100;
               uint256 transferAmount = amount - taxTokens;
   
               _balance[from] -= amount;
               _balance[to] += transferAmount;
               _balance[address(this)] += taxTokens;
               emit Transfer(from, address(this), taxTokens);
               emit Transfer(from, to, transferAmount);
           } else {
               //No tax transfer
               _balance[from] -= amount;
               _balance[to] += amount;
   
               emit Transfer(from, to, amount);
           }
       }
   
       receive() external payable {}
   }

Contract Security Audit

Contract ABI

[{"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":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLp","outputs":[],"stateMutability":"payable","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalTaxRate","type":"uint256"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

61010060405269043c33c193756480000060025569043c33c19375648000006007553480156200002d575f80fd5b505f6200003f620006e460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000195919062000750565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506014600381905550601460048190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000224573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024a919062000750565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b81526004016200028892919062000791565b6020604051808303815f875af1158015620002a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cb919062000750565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505069d3c21bcecceda100000060085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f60e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f60e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200066e620006e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620006d69190620007d6565b60405180910390a3620007f1565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200071a82620006ef565b9050919050565b6200072c816200070e565b811462000737575f80fd5b50565b5f815190506200074a8162000721565b92915050565b5f60208284031215620007685762000767620006eb565b5b5f62000777848285016200073a565b91505092915050565b6200078b816200070e565b82525050565b5f604082019050620007a65f83018562000780565b620007b5602083018462000780565b9392505050565b5f819050919050565b620007d081620007bc565b82525050565b5f602082019050620007eb5f830184620007c5565b92915050565b60805160a05160c05160e051612237620008485f395f6113cf01525f61132101525f818161070e0152818161113a015261119701525f8181610610015281816106570152818161074a015261139001526122375ff3fe608060405260043610610117575f3560e01c80638c0b5e221161009f578063c9567bf911610063578063c9567bf914610382578063cc1776d314610398578063d28d8852146103c2578063dd62ed3e146103ec578063e559d86a146104285761011e565b80638c0b5e221461029e5780638da5cb5b146102c857806395d89b41146102f2578063a9059cbb1461031c578063b09f1266146103585761011e565b8063313ce567116100e6578063313ce567146101ee578063427a5c02146102185780634f7041a51461022257806370a082311461024c578063715018a6146102885761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806323b872dd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610450565b6040516101439190611802565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906118b3565b61048d565b60405161017f919061190b565b60405180910390f35b348015610193575f80fd5b5061019c6104aa565b6040516101a99190611933565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d3919061194c565b6104bb565b6040516101e5919061190b565b60405180910390f35b3480156101f9575f80fd5b5061020261056e565b60405161020f91906119b7565b60405180910390f35b610220610576565b005b34801561022d575f80fd5b506102366107ea565b6040516102439190611933565b60405180910390f35b348015610257575f80fd5b50610272600480360381019061026d91906119d0565b6107f0565b60405161027f9190611933565b60405180910390f35b348015610293575f80fd5b5061029c610836565b005b3480156102a9575f80fd5b506102b2610984565b6040516102bf9190611933565b60405180910390f35b3480156102d3575f80fd5b506102dc61098a565b6040516102e99190611a0a565b60405180910390f35b3480156102fd575f80fd5b506103066109b1565b6040516103139190611802565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d91906118b3565b6109ee565b60405161034f919061190b565b60405180910390f35b348015610363575f80fd5b5061036c610a0b565b6040516103799190611802565b60405180910390f35b34801561038d575f80fd5b50610396610a44565b005b3480156103a3575f80fd5b506103ac610afc565b6040516103b99190611933565b60405180910390f35b3480156103cd575f80fd5b506103d6610b02565b6040516103e39190611802565b60405180910390f35b3480156103f7575f80fd5b50610412600480360381019061040d9190611a23565b610b3b565b60405161041f9190611933565b60405180910390f35b348015610433575f80fd5b5061044e60048036038101906104499190611a61565b610bbd565b005b60606040518060400160405280601181526020017f54726164696e672053696d756c61746f72000000000000000000000000000000815250905090565b5f6104a0610499610c84565b8484610c8b565b6001905092915050565b5f69d3c21bcecceda1000000905090565b5f6104c7848484610e4e565b610563846104d3610c84565b8460095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61051a610c84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461055e9190611ab9565b610c8b565b600190509392505050565b5f6012905090565b61057e610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060190611b36565b60405180910390fd5b610655307f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c8b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719343061069c306107f0565b5f806106a661098a565b426040518863ffffffff1660e01b81526004016106c896959493929190611b96565b60606040518083038185885af11580156106e4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107099190611c09565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016107a7929190611c59565b6020604051808303815f875af11580156107c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e79190611caa565b50565b60035481565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61083e610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190611b36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f53494d0000000000000000000000000000000000000000000000000000000000815250905090565b5f610a016109fa610c84565b8484610e4e565b6001905092915050565b6040518060400160405280600381526020017f53494d000000000000000000000000000000000000000000000000000000000081525081565b610a4c610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90611b36565b60405180910390fd5b600160055f6101000a81548160ff021916908360ff16021790555043600681905550565b60045481565b6040518060400160405280601181526020017f54726164696e672053696d756c61746f7200000000000000000000000000000081525081565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bc5610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890611b36565b60405180910390fd5b69d3c21bcecceda100000060078190555069d3c21bcecceda1000000600281905550806003819055508060048190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090611d45565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611dd3565b60405180910390fd5b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e419190611933565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390611e61565b60405180910390fd5b633b9aca008111610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990611ec9565b60405180910390fd5b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610f9e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15610fab575f905061146a565b5f60055f9054906101000a900460ff1660ff1614158015610fce57506007548211155b61100d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100490611f57565b60405180910390fd5b6001600560019054906101000a900460ff1660ff1603611138578160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110739190611ab9565b925050819055508160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110c69190611f75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112a9190611933565b60405180910390a350611773565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611195576003549050611469565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611464575f60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905069021e19e0c9bab24000008111801561125357505f600560019054906101000a900460ff1660ff16145b15611459576002548111156112685760025490505b6001600560016101000a81548160ff021916908360ff1602179055505f600267ffffffffffffffff8111156112a05761129f611fa8565b5b6040519080825280602002602001820160405280156112ce5781602001602082028036833780820191505090505b50905030815f815181106112e5576112e4611fd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061135457611353611fd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b815260040161140f95949392919061210b565b5f604051808303815f87803b158015611426575f80fd5b505af1158015611438573d5f803e3d5ffd5b505050505f600560016101000a81548160ff021916908360ff160217905550505b600454915050611468565b5f90505b5b5b5f8114611665575f606482846114809190612163565b61148a91906121d1565b90505f81846114999190611ab9565b90508360085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114e79190611ab9565b925050819055508060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461153a9190611f75565b925050819055508160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461158d9190611f75565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115f19190611933565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116569190611933565b60405180910390a35050611771565b8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b19190611ab9565b925050819055508160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117049190611f75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117689190611933565b60405180910390a35b505b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117af578082015181840152602081019050611794565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6117d482611778565b6117de8185611782565b93506117ee818560208601611792565b6117f7816117ba565b840191505092915050565b5f6020820190508181035f83015261181a81846117ca565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61184f82611826565b9050919050565b61185f81611845565b8114611869575f80fd5b50565b5f8135905061187a81611856565b92915050565b5f819050919050565b61189281611880565b811461189c575f80fd5b50565b5f813590506118ad81611889565b92915050565b5f80604083850312156118c9576118c8611822565b5b5f6118d68582860161186c565b92505060206118e78582860161189f565b9150509250929050565b5f8115159050919050565b611905816118f1565b82525050565b5f60208201905061191e5f8301846118fc565b92915050565b61192d81611880565b82525050565b5f6020820190506119465f830184611924565b92915050565b5f805f6060848603121561196357611962611822565b5b5f6119708682870161186c565b93505060206119818682870161186c565b92505060406119928682870161189f565b9150509250925092565b5f60ff82169050919050565b6119b18161199c565b82525050565b5f6020820190506119ca5f8301846119a8565b92915050565b5f602082840312156119e5576119e4611822565b5b5f6119f28482850161186c565b91505092915050565b611a0481611845565b82525050565b5f602082019050611a1d5f8301846119fb565b92915050565b5f8060408385031215611a3957611a38611822565b5b5f611a468582860161186c565b9250506020611a578582860161186c565b9150509250929050565b5f60208284031215611a7657611a75611822565b5b5f611a838482850161189f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ac382611880565b9150611ace83611880565b9250828203905081811115611ae657611ae5611a8c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611b20602083611782565b9150611b2b82611aec565b602082019050919050565b5f6020820190508181035f830152611b4d81611b14565b9050919050565b5f819050919050565b5f819050919050565b5f611b80611b7b611b7684611b54565b611b5d565b611880565b9050919050565b611b9081611b66565b82525050565b5f60c082019050611ba95f8301896119fb565b611bb66020830188611924565b611bc36040830187611b87565b611bd06060830186611b87565b611bdd60808301856119fb565b611bea60a0830184611924565b979650505050505050565b5f81519050611c0381611889565b92915050565b5f805f60608486031215611c2057611c1f611822565b5b5f611c2d86828701611bf5565b9350506020611c3e86828701611bf5565b9250506040611c4f86828701611bf5565b9150509250925092565b5f604082019050611c6c5f8301856119fb565b611c796020830184611924565b9392505050565b611c89816118f1565b8114611c93575f80fd5b50565b5f81519050611ca481611c80565b92915050565b5f60208284031215611cbf57611cbe611822565b5b5f611ccc84828501611c96565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611d2f602483611782565b9150611d3a82611cd5565b604082019050919050565b5f6020820190508181035f830152611d5c81611d23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611dbd602283611782565b9150611dc882611d63565b604082019050919050565b5f6020820190508181035f830152611dea81611db1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611e4b602583611782565b9150611e5682611df1565b604082019050919050565b5f6020820190508181035f830152611e7881611e3f565b9050919050565b7f4d696e207472616e7366657220616d74000000000000000000000000000000005f82015250565b5f611eb3601083611782565b9150611ebe82611e7f565b602082019050919050565b5f6020820190508181035f830152611ee081611ea7565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203225206174206c61756e5f8201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f41602283611782565b9150611f4c82611ee7565b604082019050919050565b5f6020820190508181035f830152611f6e81611f35565b9050919050565b5f611f7f82611880565b9150611f8a83611880565b9250828201905080821115611fa257611fa1611a8c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61203481611845565b82525050565b5f612045838361202b565b60208301905092915050565b5f602082019050919050565b5f61206782612002565b612071818561200c565b935061207c8361201c565b805f5b838110156120ac578151612093888261203a565b975061209e83612051565b92505060018101905061207f565b5085935050505092915050565b5f6120d36120ce6120c984611826565b611b5d565b611826565b9050919050565b5f6120e4826120b9565b9050919050565b5f6120f5826120da565b9050919050565b612105816120eb565b82525050565b5f60a08201905061211e5f830188611924565b61212b6020830187611b87565b818103604083015261213d818661205d565b905061214c60608301856120fc565b6121596080830184611924565b9695505050505050565b5f61216d82611880565b915061217883611880565b925082820261218681611880565b9150828204841483151761219d5761219c611a8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121db82611880565b91506121e683611880565b9250826121f6576121f56121a4565b5b82820490509291505056fea26469706673582212202a68545de6cd79a06310a8eb067e42ed5dd8b2d394910dd1a3ef6efd754fdc8864736f6c63430008170033

Deployed Bytecode

0x608060405260043610610117575f3560e01c80638c0b5e221161009f578063c9567bf911610063578063c9567bf914610382578063cc1776d314610398578063d28d8852146103c2578063dd62ed3e146103ec578063e559d86a146104285761011e565b80638c0b5e221461029e5780638da5cb5b146102c857806395d89b41146102f2578063a9059cbb1461031c578063b09f1266146103585761011e565b8063313ce567116100e6578063313ce567146101ee578063427a5c02146102185780634f7041a51461022257806370a082311461024c578063715018a6146102885761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806323b872dd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610450565b6040516101439190611802565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906118b3565b61048d565b60405161017f919061190b565b60405180910390f35b348015610193575f80fd5b5061019c6104aa565b6040516101a99190611933565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d3919061194c565b6104bb565b6040516101e5919061190b565b60405180910390f35b3480156101f9575f80fd5b5061020261056e565b60405161020f91906119b7565b60405180910390f35b610220610576565b005b34801561022d575f80fd5b506102366107ea565b6040516102439190611933565b60405180910390f35b348015610257575f80fd5b50610272600480360381019061026d91906119d0565b6107f0565b60405161027f9190611933565b60405180910390f35b348015610293575f80fd5b5061029c610836565b005b3480156102a9575f80fd5b506102b2610984565b6040516102bf9190611933565b60405180910390f35b3480156102d3575f80fd5b506102dc61098a565b6040516102e99190611a0a565b60405180910390f35b3480156102fd575f80fd5b506103066109b1565b6040516103139190611802565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d91906118b3565b6109ee565b60405161034f919061190b565b60405180910390f35b348015610363575f80fd5b5061036c610a0b565b6040516103799190611802565b60405180910390f35b34801561038d575f80fd5b50610396610a44565b005b3480156103a3575f80fd5b506103ac610afc565b6040516103b99190611933565b60405180910390f35b3480156103cd575f80fd5b506103d6610b02565b6040516103e39190611802565b60405180910390f35b3480156103f7575f80fd5b50610412600480360381019061040d9190611a23565b610b3b565b60405161041f9190611933565b60405180910390f35b348015610433575f80fd5b5061044e60048036038101906104499190611a61565b610bbd565b005b60606040518060400160405280601181526020017f54726164696e672053696d756c61746f72000000000000000000000000000000815250905090565b5f6104a0610499610c84565b8484610c8b565b6001905092915050565b5f69d3c21bcecceda1000000905090565b5f6104c7848484610e4e565b610563846104d3610c84565b8460095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61051a610c84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461055e9190611ab9565b610c8b565b600190509392505050565b5f6012905090565b61057e610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060190611b36565b60405180910390fd5b610655307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c8b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719343061069c306107f0565b5f806106a661098a565b426040518863ffffffff1660e01b81526004016106c896959493929190611b96565b60606040518083038185885af11580156106e4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107099190611c09565b5050507f000000000000000000000000836650ff1de2a6c58395a6ae523bcd11dd8da71d73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016107a7929190611c59565b6020604051808303815f875af11580156107c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e79190611caa565b50565b60035481565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61083e610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190611b36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f53494d0000000000000000000000000000000000000000000000000000000000815250905090565b5f610a016109fa610c84565b8484610e4e565b6001905092915050565b6040518060400160405280600381526020017f53494d000000000000000000000000000000000000000000000000000000000081525081565b610a4c610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90611b36565b60405180910390fd5b600160055f6101000a81548160ff021916908360ff16021790555043600681905550565b60045481565b6040518060400160405280601181526020017f54726164696e672053696d756c61746f7200000000000000000000000000000081525081565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bc5610c84565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890611b36565b60405180910390fd5b69d3c21bcecceda100000060078190555069d3c21bcecceda1000000600281905550806003819055508060048190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090611d45565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611dd3565b60405180910390fd5b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e419190611933565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390611e61565b60405180910390fd5b633b9aca008111610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990611ec9565b60405180910390fd5b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610f9e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15610fab575f905061146a565b5f60055f9054906101000a900460ff1660ff1614158015610fce57506007548211155b61100d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100490611f57565b60405180910390fd5b6001600560019054906101000a900460ff1660ff1603611138578160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110739190611ab9565b925050819055508160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110c69190611f75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112a9190611933565b60405180910390a350611773565b7f000000000000000000000000836650ff1de2a6c58395a6ae523bcd11dd8da71d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611195576003549050611469565b7f000000000000000000000000836650ff1de2a6c58395a6ae523bcd11dd8da71d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611464575f60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905069021e19e0c9bab24000008111801561125357505f600560019054906101000a900460ff1660ff16145b15611459576002548111156112685760025490505b6001600560016101000a81548160ff021916908360ff1602179055505f600267ffffffffffffffff8111156112a05761129f611fa8565b5b6040519080825280602002602001820160405280156112ce5781602001602082028036833780820191505090505b50905030815f815181106112e5576112e4611fd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061135457611353611fd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f00000000000000000000000002ee856a687fb317399a04128ee5c33713523f3e426040518663ffffffff1660e01b815260040161140f95949392919061210b565b5f604051808303815f87803b158015611426575f80fd5b505af1158015611438573d5f803e3d5ffd5b505050505f600560016101000a81548160ff021916908360ff160217905550505b600454915050611468565b5f90505b5b5b5f8114611665575f606482846114809190612163565b61148a91906121d1565b90505f81846114999190611ab9565b90508360085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114e79190611ab9565b925050819055508060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461153a9190611f75565b925050819055508160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461158d9190611f75565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115f19190611933565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116569190611933565b60405180910390a35050611771565b8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b19190611ab9565b925050819055508160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117049190611f75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117689190611933565b60405180910390a35b505b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117af578082015181840152602081019050611794565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6117d482611778565b6117de8185611782565b93506117ee818560208601611792565b6117f7816117ba565b840191505092915050565b5f6020820190508181035f83015261181a81846117ca565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61184f82611826565b9050919050565b61185f81611845565b8114611869575f80fd5b50565b5f8135905061187a81611856565b92915050565b5f819050919050565b61189281611880565b811461189c575f80fd5b50565b5f813590506118ad81611889565b92915050565b5f80604083850312156118c9576118c8611822565b5b5f6118d68582860161186c565b92505060206118e78582860161189f565b9150509250929050565b5f8115159050919050565b611905816118f1565b82525050565b5f60208201905061191e5f8301846118fc565b92915050565b61192d81611880565b82525050565b5f6020820190506119465f830184611924565b92915050565b5f805f6060848603121561196357611962611822565b5b5f6119708682870161186c565b93505060206119818682870161186c565b92505060406119928682870161189f565b9150509250925092565b5f60ff82169050919050565b6119b18161199c565b82525050565b5f6020820190506119ca5f8301846119a8565b92915050565b5f602082840312156119e5576119e4611822565b5b5f6119f28482850161186c565b91505092915050565b611a0481611845565b82525050565b5f602082019050611a1d5f8301846119fb565b92915050565b5f8060408385031215611a3957611a38611822565b5b5f611a468582860161186c565b9250506020611a578582860161186c565b9150509250929050565b5f60208284031215611a7657611a75611822565b5b5f611a838482850161189f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ac382611880565b9150611ace83611880565b9250828203905081811115611ae657611ae5611a8c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611b20602083611782565b9150611b2b82611aec565b602082019050919050565b5f6020820190508181035f830152611b4d81611b14565b9050919050565b5f819050919050565b5f819050919050565b5f611b80611b7b611b7684611b54565b611b5d565b611880565b9050919050565b611b9081611b66565b82525050565b5f60c082019050611ba95f8301896119fb565b611bb66020830188611924565b611bc36040830187611b87565b611bd06060830186611b87565b611bdd60808301856119fb565b611bea60a0830184611924565b979650505050505050565b5f81519050611c0381611889565b92915050565b5f805f60608486031215611c2057611c1f611822565b5b5f611c2d86828701611bf5565b9350506020611c3e86828701611bf5565b9250506040611c4f86828701611bf5565b9150509250925092565b5f604082019050611c6c5f8301856119fb565b611c796020830184611924565b9392505050565b611c89816118f1565b8114611c93575f80fd5b50565b5f81519050611ca481611c80565b92915050565b5f60208284031215611cbf57611cbe611822565b5b5f611ccc84828501611c96565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611d2f602483611782565b9150611d3a82611cd5565b604082019050919050565b5f6020820190508181035f830152611d5c81611d23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611dbd602283611782565b9150611dc882611d63565b604082019050919050565b5f6020820190508181035f830152611dea81611db1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611e4b602583611782565b9150611e5682611df1565b604082019050919050565b5f6020820190508181035f830152611e7881611e3f565b9050919050565b7f4d696e207472616e7366657220616d74000000000000000000000000000000005f82015250565b5f611eb3601083611782565b9150611ebe82611e7f565b602082019050919050565b5f6020820190508181035f830152611ee081611ea7565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203225206174206c61756e5f8201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f41602283611782565b9150611f4c82611ee7565b604082019050919050565b5f6020820190508181035f830152611f6e81611f35565b9050919050565b5f611f7f82611880565b9150611f8a83611880565b9250828201905080821115611fa257611fa1611a8c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61203481611845565b82525050565b5f612045838361202b565b60208301905092915050565b5f602082019050919050565b5f61206782612002565b612071818561200c565b935061207c8361201c565b805f5b838110156120ac578151612093888261203a565b975061209e83612051565b92505060018101905061207f565b5085935050505092915050565b5f6120d36120ce6120c984611826565b611b5d565b611826565b9050919050565b5f6120e4826120b9565b9050919050565b5f6120f5826120da565b9050919050565b612105816120eb565b82525050565b5f60a08201905061211e5f830188611924565b61212b6020830187611b87565b818103604083015261213d818661205d565b905061214c60608301856120fc565b6121596080830184611924565b9695505050505050565b5f61216d82611880565b915061217883611880565b925082820261218681611880565b9150828204841483151761219d5761219c611a8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121db82611880565b91506121e683611880565b9250826121f6576121f56121a4565b5b82820490509291505056fea26469706673582212202a68545de6cd79a06310a8eb067e42ed5dd8b2d394910dd1a3ef6efd754fdc8864736f6c63430008170033

Deployed Bytecode Sourcemap

3045:7671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5132:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6124:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5445:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6342:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5342:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7106:465;;;:::i;:::-;;3497:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5565:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:157;;;;;;;;;;;;;:::i;:::-;;3677:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1708:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5235:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3799:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7585:117;;;;;;;;;;;;;:::i;:::-;;3528:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3739:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7716:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5132:89;5169:13;5205:5;;;;;;;;;;;;;;;;;5198:12;;5132:89;:::o;6124:204::-;6233:4;6253:39;6262:12;:10;:12::i;:::-;6276:7;6285:6;6253:8;:39::i;:::-;6313:4;6306:11;;6124:204;;;;:::o;5445:106::-;5498:7;3138:12;5521:19;;5445:106;:::o;6342:386::-;6486:4;6506:36;6516:6;6524:9;6535:6;6506:9;:36::i;:::-;6556:136;6582:6;6606:12;:10;:12::i;:::-;6672:6;6636:11;:19;6648:6;6636:19;;;;;;;;;;;;;;;:33;6656:12;:10;:12::i;:::-;6636:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6556:8;:136::i;:::-;6713:4;6706:11;;6342:386;;;;;:::o;5342:89::-;5383:5;3297:2;5404:16;;5342:89;:::o;7106:465::-;1860:12;:10;:12::i;:::-;1850:22;;:6;;;;;;;;;;:22;;;1842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7164:65:::1;7181:4;7196:15;7214:14;7164:8;:65::i;:::-;7243:15;:31;;;7282:9;7318:4;7341:24;7359:4;7341:9;:24::i;:::-;7383:1;7402::::0;7421:7:::1;:5;:7::i;:::-;7446:15;7243:232;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7496:13;7489:29;;;7527:15;7545:14;7489:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7106:465::o:0;3497:21::-;;;;:::o;5565:124::-;5631:7;5661:8;:17;5670:7;5661:17;;;;;;;;;;;;;;;;5654:24;;5565:124;;;:::o;1953:157::-;1860:12;:10;:12::i;:::-;1850:22;;:6;;;;;;;;;;:22;;;1842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2063:1:::1;2026:40;;2047:6;::::0;::::1;;;;;;;;2026:40;;;;;;;;;;;;2097:1;2080:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1953:157::o:0;3677:38::-;;;;:::o;1708:85::-;1746:7;1776:6;;;;;;;;;;;1769:13;;1708:85;:::o;5235:93::-;5274:13;5310:7;;;;;;;;;;;;;;;;;5303:14;;5235:93;:::o;5703:210::-;5815:4;5835:42;5845:12;:10;:12::i;:::-;5859:9;5870:6;5835:9;:42::i;:::-;5898:4;5891:11;;5703:210;;;;:::o;3799:38::-;;;;;;;;;;;;;;;;;;;:::o;7585:117::-;1860:12;:10;:12::i;:::-;1850:22;;:6;;;;;;;;;;:22;;;1842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7650:1:::1;7641:6;;:10;;;;;;;;;;;;;;;;;;7679:12;7665:11;:26;;;;7585:117::o:0;3528:22::-;;;;:::o;3739:50::-;;;;;;;;;;;;;;;;;;;:::o;5927:183::-;6042:7;6072:11;:18;6084:5;6072:18;;;;;;;;;;;;;;;:27;6091:7;6072:27;;;;;;;;;;;;;;;;6065:34;;5927:183;;;;:::o;7716:224::-;1860:12;:10;:12::i;:::-;1850:22;;:6;;;;;;;;;;:22;;;1842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3138:12:::1;7793:11;:26;;;;3138:12;7833:10;:25;;;;7881:12;7872:6;:21;;;;7917:12;7907:7;:22;;;;7716:224:::0;:::o;267:104::-;320:7;350:10;343:17;;267:104;:::o;6742:350::-;6855:1;6838:19;;:5;:19;;;6830:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6939:1;6920:21;;:7;:21;;;6912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7024:6;6994:11;:18;7006:5;6994:18;;;;;;;;;;;;;;;:27;7013:7;6994:27;;;;;;;;;;;;;;;:36;;;;7065:7;7049:32;;7058:5;7049:32;;;7074:6;7049:32;;;;;;:::i;:::-;;;;;;;;6742:350;;;:::o;7966:2701::-;8073:1;8057:18;;:4;:18;;;8049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8148:3;8139:6;:12;8131:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8191:12;8221:24;:30;8246:4;8221:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;8255:24;:28;8280:2;8255:28;;;;;;;;;;;;;;;;;;;;;;;;;8221:62;8217:1733;;;8310:1;8303:8;;8217:1733;;;8389:1;8379:6;;;;;;;;;;;:11;;;;:36;;;;;8404:11;;8394:6;:21;;8379:36;8350:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;8538:1;8518:16;;;;;;;;;;;:21;;;8514:260;;8619:6;8601:8;:14;8610:4;8601:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;8663:6;8647:8;:12;8656:2;8647:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;8716:2;8701:26;;8710:4;8701:26;;;8720:6;8701:26;;;;;;:::i;:::-;;;;;;;;8749:7;;;8514:260;8808:13;8800:21;;:4;:21;;;8796:1140;;8852:6;;8845:13;;8796:1140;;;8893:13;8887:19;;:2;:19;;;8883:1053;;8930:20;8953:8;:23;8970:4;8953:23;;;;;;;;;;;;;;;;8930:46;;3243:9;9002:12;:22;:47;;;;;9048:1;9028:16;;;;;;;;;;;:21;;;9002:47;8998:829;;;9096:10;;9081:12;:25;9077:113;;;9153:10;;9138:25;;9077:113;9234:1;9215:16;;:20;;;;;;;;;;;;;;;;;;9261:21;9299:1;9285:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9261:40;;9345:4;9327;9332:1;9327:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9386:4;9376;9381:1;9376:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;9416:15;:95;;;9545:12;9591:1;9626:4;9664:15;9713;9416:342;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9803:1;9784:16;;:20;;;;;;;;;;;;;;;;;;9051:776;8998:829;9855:7;;9848:14;;8908:973;8883:1053;;;9916:1;9909:8;;8883:1053;8796:1140;8217:1733;10028:1;10020:4;:9;10016:641;;10080:17;10118:3;10110:4;10101:6;:13;;;;:::i;:::-;10100:21;;;;:::i;:::-;10080:41;;10139:22;10173:9;10164:6;:18;;;;:::i;:::-;10139:43;;10223:6;10205:8;:14;10214:4;10205:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;10263:14;10247:8;:12;10256:2;10247:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10322:9;10295:8;:23;10312:4;10295:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10377:4;10354:40;;10363:4;10354:40;;;10384:9;10354:40;;;;;;:::i;:::-;;;;;;;;10432:2;10417:34;;10426:4;10417:34;;;10436:14;10417:34;;;;;;:::i;:::-;;;;;;;;10031:435;;10016:641;;;10542:6;10524:8;:14;10533:4;10524:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;10582:6;10566:8;:12;10575:2;10566:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;10631:2;10616:26;;10625:4;10616:26;;;10635:6;10616:26;;;;;;:::i;:::-;;;;;;;;10016:641;8035:2632;7966:2701;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:194;6581:4;6601:20;6619:1;6601:20;:::i;:::-;6596:25;;6635:20;6653:1;6635:20;:::i;:::-;6630:25;;6679:1;6676;6672:9;6664:17;;6703:1;6697:4;6694:11;6691:37;;;6708:18;;:::i;:::-;6691:37;6541:194;;;;:::o;6741:182::-;6881:34;6877:1;6869:6;6865:14;6858:58;6741:182;:::o;6929:366::-;7071:3;7092:67;7156:2;7151:3;7092:67;:::i;:::-;7085:74;;7168:93;7257:3;7168:93;:::i;:::-;7286:2;7281:3;7277:12;7270:19;;6929:366;;;:::o;7301:419::-;7467:4;7505:2;7494:9;7490:18;7482:26;;7554:9;7548:4;7544:20;7540:1;7529:9;7525:17;7518:47;7582:131;7708:4;7582:131;:::i;:::-;7574:139;;7301:419;;;:::o;7726:85::-;7771:7;7800:5;7789:16;;7726:85;;;:::o;7817:60::-;7845:3;7866:5;7859:12;;7817:60;;;:::o;7883:158::-;7941:9;7974:61;7992:42;8001:32;8027:5;8001:32;:::i;:::-;7992:42;:::i;:::-;7974:61;:::i;:::-;7961:74;;7883:158;;;:::o;8047:147::-;8142:45;8181:5;8142:45;:::i;:::-;8137:3;8130:58;8047:147;;:::o;8200:807::-;8449:4;8487:3;8476:9;8472:19;8464:27;;8501:71;8569:1;8558:9;8554:17;8545:6;8501:71;:::i;:::-;8582:72;8650:2;8639:9;8635:18;8626:6;8582:72;:::i;:::-;8664:80;8740:2;8729:9;8725:18;8716:6;8664:80;:::i;:::-;8754;8830:2;8819:9;8815:18;8806:6;8754:80;:::i;:::-;8844:73;8912:3;8901:9;8897:19;8888:6;8844:73;:::i;:::-;8927;8995:3;8984:9;8980:19;8971:6;8927:73;:::i;:::-;8200:807;;;;;;;;;:::o;9013:143::-;9070:5;9101:6;9095:13;9086:22;;9117:33;9144:5;9117:33;:::i;:::-;9013:143;;;;:::o;9162:663::-;9250:6;9258;9266;9315:2;9303:9;9294:7;9290:23;9286:32;9283:119;;;9321:79;;:::i;:::-;9283:119;9441:1;9466:64;9522:7;9513:6;9502:9;9498:22;9466:64;:::i;:::-;9456:74;;9412:128;9579:2;9605:64;9661:7;9652:6;9641:9;9637:22;9605:64;:::i;:::-;9595:74;;9550:129;9718:2;9744:64;9800:7;9791:6;9780:9;9776:22;9744:64;:::i;:::-;9734:74;;9689:129;9162:663;;;;;:::o;9831:332::-;9952:4;9990:2;9979:9;9975:18;9967:26;;10003:71;10071:1;10060:9;10056:17;10047:6;10003:71;:::i;:::-;10084:72;10152:2;10141:9;10137:18;10128:6;10084:72;:::i;:::-;9831:332;;;;;:::o;10169:116::-;10239:21;10254:5;10239:21;:::i;:::-;10232:5;10229:32;10219:60;;10275:1;10272;10265:12;10219:60;10169:116;:::o;10291:137::-;10345:5;10376:6;10370:13;10361:22;;10392:30;10416:5;10392:30;:::i;:::-;10291:137;;;;:::o;10434:345::-;10501:6;10550:2;10538:9;10529:7;10525:23;10521:32;10518:119;;;10556:79;;:::i;:::-;10518:119;10676:1;10701:61;10754:7;10745:6;10734:9;10730:22;10701:61;:::i;:::-;10691:71;;10647:125;10434:345;;;;:::o;10785:223::-;10925:34;10921:1;10913:6;10909:14;10902:58;10994:6;10989:2;10981:6;10977:15;10970:31;10785:223;:::o;11014:366::-;11156:3;11177:67;11241:2;11236:3;11177:67;:::i;:::-;11170:74;;11253:93;11342:3;11253:93;:::i;:::-;11371:2;11366:3;11362:12;11355:19;;11014:366;;;:::o;11386:419::-;11552:4;11590:2;11579:9;11575:18;11567:26;;11639:9;11633:4;11629:20;11625:1;11614:9;11610:17;11603:47;11667:131;11793:4;11667:131;:::i;:::-;11659:139;;11386:419;;;:::o;11811:221::-;11951:34;11947:1;11939:6;11935:14;11928:58;12020:4;12015:2;12007:6;12003:15;11996:29;11811:221;:::o;12038:366::-;12180:3;12201:67;12265:2;12260:3;12201:67;:::i;:::-;12194:74;;12277:93;12366:3;12277:93;:::i;:::-;12395:2;12390:3;12386:12;12379:19;;12038:366;;;:::o;12410:419::-;12576:4;12614:2;12603:9;12599:18;12591:26;;12663:9;12657:4;12653:20;12649:1;12638:9;12634:17;12627:47;12691:131;12817:4;12691:131;:::i;:::-;12683:139;;12410:419;;;:::o;12835:224::-;12975:34;12971:1;12963:6;12959:14;12952:58;13044:7;13039:2;13031:6;13027:15;13020:32;12835:224;:::o;13065:366::-;13207:3;13228:67;13292:2;13287:3;13228:67;:::i;:::-;13221:74;;13304:93;13393:3;13304:93;:::i;:::-;13422:2;13417:3;13413:12;13406:19;;13065:366;;;:::o;13437:419::-;13603:4;13641:2;13630:9;13626:18;13618:26;;13690:9;13684:4;13680:20;13676:1;13665:9;13661:17;13654:47;13718:131;13844:4;13718:131;:::i;:::-;13710:139;;13437:419;;;:::o;13862:166::-;14002:18;13998:1;13990:6;13986:14;13979:42;13862:166;:::o;14034:366::-;14176:3;14197:67;14261:2;14256:3;14197:67;:::i;:::-;14190:74;;14273:93;14362:3;14273:93;:::i;:::-;14391:2;14386:3;14382:12;14375:19;;14034:366;;;:::o;14406:419::-;14572:4;14610:2;14599:9;14595:18;14587:26;;14659:9;14653:4;14649:20;14645:1;14634:9;14630:17;14623:47;14687:131;14813:4;14687:131;:::i;:::-;14679:139;;14406:419;;;:::o;14831:221::-;14971:34;14967:1;14959:6;14955:14;14948:58;15040:4;15035:2;15027:6;15023:15;15016:29;14831:221;:::o;15058:366::-;15200:3;15221:67;15285:2;15280:3;15221:67;:::i;:::-;15214:74;;15297:93;15386:3;15297:93;:::i;:::-;15415:2;15410:3;15406:12;15399:19;;15058:366;;;:::o;15430:419::-;15596:4;15634:2;15623:9;15619:18;15611:26;;15683:9;15677:4;15673:20;15669:1;15658:9;15654:17;15647:47;15711:131;15837:4;15711:131;:::i;:::-;15703:139;;15430:419;;;:::o;15855:191::-;15895:3;15914:20;15932:1;15914:20;:::i;:::-;15909:25;;15948:20;15966:1;15948:20;:::i;:::-;15943:25;;15991:1;15988;15984:9;15977:16;;16012:3;16009:1;16006:10;16003:36;;;16019:18;;:::i;:::-;16003:36;15855:191;;;;:::o;16052:180::-;16100:77;16097:1;16090:88;16197:4;16194:1;16187:15;16221:4;16218:1;16211:15;16238:180;16286:77;16283:1;16276:88;16383:4;16380:1;16373:15;16407:4;16404:1;16397:15;16424:114;16491:6;16525:5;16519:12;16509:22;;16424:114;;;:::o;16544:184::-;16643:11;16677:6;16672:3;16665:19;16717:4;16712:3;16708:14;16693:29;;16544:184;;;;:::o;16734:132::-;16801:4;16824:3;16816:11;;16854:4;16849:3;16845:14;16837:22;;16734:132;;;:::o;16872:108::-;16949:24;16967:5;16949:24;:::i;:::-;16944:3;16937:37;16872:108;;:::o;16986:179::-;17055:10;17076:46;17118:3;17110:6;17076:46;:::i;:::-;17154:4;17149:3;17145:14;17131:28;;16986:179;;;;:::o;17171:113::-;17241:4;17273;17268:3;17264:14;17256:22;;17171:113;;;:::o;17320:732::-;17439:3;17468:54;17516:5;17468:54;:::i;:::-;17538:86;17617:6;17612:3;17538:86;:::i;:::-;17531:93;;17648:56;17698:5;17648:56;:::i;:::-;17727:7;17758:1;17743:284;17768:6;17765:1;17762:13;17743:284;;;17844:6;17838:13;17871:63;17930:3;17915:13;17871:63;:::i;:::-;17864:70;;17957:60;18010:6;17957:60;:::i;:::-;17947:70;;17803:224;17790:1;17787;17783:9;17778:14;;17743:284;;;17747:14;18043:3;18036:10;;17444:608;;;17320:732;;;;:::o;18058:142::-;18108:9;18141:53;18159:34;18168:24;18186:5;18168:24;:::i;:::-;18159:34;:::i;:::-;18141:53;:::i;:::-;18128:66;;18058:142;;;:::o;18206:126::-;18256:9;18289:37;18320:5;18289:37;:::i;:::-;18276:50;;18206:126;;;:::o;18338:134::-;18396:9;18429:37;18460:5;18429:37;:::i;:::-;18416:50;;18338:134;;;:::o;18478:147::-;18573:45;18612:5;18573:45;:::i;:::-;18568:3;18561:58;18478:147;;:::o;18631:847::-;18902:4;18940:3;18929:9;18925:19;18917:27;;18954:71;19022:1;19011:9;19007:17;18998:6;18954:71;:::i;:::-;19035:80;19111:2;19100:9;19096:18;19087:6;19035:80;:::i;:::-;19162:9;19156:4;19152:20;19147:2;19136:9;19132:18;19125:48;19190:108;19293:4;19284:6;19190:108;:::i;:::-;19182:116;;19308:80;19384:2;19373:9;19369:18;19360:6;19308:80;:::i;:::-;19398:73;19466:3;19455:9;19451:19;19442:6;19398:73;:::i;:::-;18631:847;;;;;;;;:::o;19484:410::-;19524:7;19547:20;19565:1;19547:20;:::i;:::-;19542:25;;19581:20;19599:1;19581:20;:::i;:::-;19576:25;;19636:1;19633;19629:9;19658:30;19676:11;19658:30;:::i;:::-;19647:41;;19837:1;19828:7;19824:15;19821:1;19818:22;19798:1;19791:9;19771:83;19748:139;;19867:18;;:::i;:::-;19748:139;19532:362;19484:410;;;;:::o;19900:180::-;19948:77;19945:1;19938:88;20045:4;20042:1;20035:15;20069:4;20066:1;20059:15;20086:185;20126:1;20143:20;20161:1;20143:20;:::i;:::-;20138:25;;20177:20;20195:1;20177:20;:::i;:::-;20172:25;;20216:1;20206:35;;20221:18;;:::i;:::-;20206:35;20263:1;20260;20256:9;20251:14;;20086:185;;;;:::o

Swarm Source

ipfs://2a68545de6cd79a06310a8eb067e42ed5dd8b2d394910dd1a3ef6efd754fdc88
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.