ERC-20
Overview
Max Total Supply
10,000,000 TOA
Holders
79
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
32,259.093707023683676116 TOAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TOA
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-17 */ /** TG - https://t.me/taleofapes Twitter - https://twitter.com/taleofapes Buy/Sell Tax : 5% Experienced Team */ pragma solidity ^0.8.17; //SPDX-License-Identifier: UNLICENSED abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: generation to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * generation and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be generated for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract TOA is ERC20, Ownable { using Address for address payable; IRouter public router; address public pair; bool private _liquidityMutex = false; bool public providingLiquidity = false; bool public tradingEnabled = false; uint256 public tokenLiquidityThreshold = 2e4 * 10**18; uint256 public maxWalletLimit = 1e5 * 10**18; uint256 public genesis_block; uint256 private deadline = 1; uint256 private launchtax = 99; address public marketingWallet = 0x5552afF9767dcfAB9942AC65D606Dfe472AC813E; address private devWallet = 0x2cBCaD5C237A35473cDD216Bdd0c2879A4283d89; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(5, 0, 5); Taxes public sellTaxes = Taxes(20, 0, 20); mapping(address => bool) public exemptFee; //Anti Dump mapping(address => uint256) private _lastSell; modifier mutexLock() { if (!_liquidityMutex) { _liquidityMutex = true; _; _liquidityMutex = false; } } constructor() ERC20("Tale of Apes", "TOA") { _tokengeneration(msg.sender, 1e7 * 10**decimals()); exemptFee[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pair for this new token address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; exemptFee[address(this)] = true; exemptFee[marketingWallet] = true; exemptFee[devWallet] = true; exemptFee[deadWallet] = true; exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true; exemptFee[0xE2fE530C047f2d85298b07D9333C05737f1435fB] = true; exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; } 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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) { require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if ( sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex ) { if (recipient != pair) { require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } } uint256 feeswap; uint256 feesum; uint256 fee; Taxes memory currentTaxes; bool useLaunchFee = !exemptFee[sender] && !exemptFee[recipient] && block.number < genesis_block + deadline; //set fee to zero if fees in contract are handled or exempted if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == pair && !useLaunchFee) { feeswap = sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.dev ; feesum = feeswap; currentTaxes = sellTaxes; } else if (!useLaunchFee) { feeswap = taxes.liquidity + taxes.marketing + taxes.dev ; feesum = feeswap; currentTaxes = taxes; } else if (useLaunchFee) { feeswap = launchtax; feesum = launchtax; } fee = (amount * feesum) / 100; //send fees if threshold has been reached //don't do this on buys, breaks swap if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes); //rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock { if(feeswap == 0){ return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= tokenLiquidityThreshold) { if (tokenLiquidityThreshold > 1) { contractBalance = tokenLiquidityThreshold; } // Split the contract balance into halves uint256 denominator = feeswap * 2; uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * swapTaxes.dev; if (devAmt > 0) { payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { // generate the pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function updateLiquidityProvide(bool state) external onlyOwner { //update liquidity providing state providingLiquidity = state; } function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner { //update the treshhold tokenLiquidityThreshold = new_amount * 10**decimals(); } function UpdateBuyTaxes( uint256 _marketing, uint256 _liquidity, uint256 _dev ) external onlyOwner { taxes = Taxes(_marketing, _liquidity, _dev); require((_marketing + _liquidity + _dev) <= 10, "Must keep fees at 10% or less"); } function SetSellTaxes( uint256 _marketing, uint256 _liquidity, uint256 _dev ) external onlyOwner { require((_marketing + _liquidity + _dev) <= 30, "Must keep fees at 10% or less"); sellTaxes = Taxes(_marketing, _liquidity, _dev); } function enableTrading() external onlyOwner { require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; providingLiquidity = true; genesis_block = block.number; } function updatedeadline(uint256 _deadline) external onlyOwner { require(!tradingEnabled, "Can't change when trading has started"); require(_deadline < 10, "Block should be less than 10"); deadline = _deadline; } function updateMarketingWallet(address newWallet) external onlyOwner { marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateExemptFee(address _address, bool state) external onlyOwner { exemptFee[_address] = state; } function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { exemptFee[accounts[i]] = state; } } function updateMaxTxLimit(uint256 maxWallet) external onlyOwner { require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 0.1%"); maxWalletLimit = maxWallet * 10**decimals(); } function rescueETH(uint256 weiAmount) external { payable(devWallet).transfer(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external { IERC20(tokenAdd).transfer(devWallet, amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6007805462ffffff60a01b1916905569043c33c193756480000060085569152d02c7e14af68000006009556001600b556063600c55600d80546001600160a01b0319908116735552aff9767dcfab9942ac65d606dfe472ac813e17909155600e8054909116732cbcad5c237a35473cdd216bdd0c2879a4283d8917905560056080819052600060a081905260c0829052600f8290556010819055601191909155610140604052601460e081905261010082905261012081905260128190556013919091558055348015620000d257600080fd5b506040518060400160405280600c81526020016b54616c65206f66204170657360a01b81525060405180604001604052806003815260200162544f4160e81b8152508160039081620001259190620005e5565b506004620001348282620005e5565b505050620001516200014b6200042960201b60201c565b6200042d565b6200017933620001646012600a620007c6565b620001739062989680620007de565b6200047f565b336000908152601560209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a9190620007f8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e9190620007f8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f29190620007f8565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260156020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e54909416835290822080548416821790557f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e580548416821790557f61da876eafb9e7a52a8d714d77cf5d21023c5ef8c18b2a022eb674aa669677ca80548416821790557f208155f238468f0e2390753faefdd3c4aecf3117d0ee6942c52b7498f090ef80805484168217905573dba68f07d1b7ca219f78ae8582c213d975c25caf9091527f9204f95297540237c1e97586aaed698b8a9c613ec7eb2955d4f8790c9d2bbce6805490921617905562000823565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200056c57607f821691505b6020821081036200058d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200053c57600081815260208120601f850160051c81016020861015620005bc5750805b601f850160051c820191505b81811015620005dd57828155600101620005c8565b505050505050565b81516001600160401b0381111562000601576200060162000541565b620006198162000612845462000557565b8462000593565b602080601f831160018114620006515760008415620006385750858301515b600019600386901b1c1916600185901b178555620005dd565b600085815260208120601f198616915b82811015620006825788860151825594840194600190910190840162000661565b5085821015620006a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000708578160001904821115620006ec57620006ec620006b1565b80851615620006fa57918102915b93841c9390800290620006cc565b509250929050565b6000826200072157506001620007c0565b816200073057506000620007c0565b8160018114620007495760028114620007545762000774565b6001915050620007c0565b60ff841115620007685762000768620006b1565b50506001821b620007c0565b5060208310610133831016604e8410600b841016171562000799575081810a620007c0565b620007a58383620006c7565b8060001904821115620007bc57620007bc620006b1565b0290505b92915050565b6000620007d760ff84168362000710565b9392505050565b8082028115828204841417620007c057620007c0620006b1565b6000602082840312156200080b57600080fd5b81516001600160a01b0381168114620007d757600080fd5b6123ea80620008336000396000f3fe6080604052600436106102345760003560e01c806375f0a8741161012e578063a9059cbb116100ab578063edaa11681161006f578063edaa1168146106d0578063f2fde38b146106f0578063f66895a314610710578063f887ea401461072f578063fbe6324e1461074f57600080fd5b8063a9059cbb146105fa578063aacebbe31461061a578063c2c327d11461063a578063c5d32bb21461065a578063dd62ed3e1461068a57600080fd5b806395d89b41116100f257806395d89b41146105655780639d282cd61461057a5780639e252f001461059a578063a457c2d7146105ba578063a8aa1b31146105da57600080fd5b806375f0a874146104c457806385141a77146104fc5780638a8c523c146105125780638cd4426d146105275780638da5cb5b1461054757600080fd5b8063313ce567116101bc5780634e736f22116101805780634e736f221461040957806366a88d961461042957806370a082311461043f578063715018a614610475578063728f8eea1461048a57600080fd5b8063313ce5671461036c578063355496ca1461038857806339509351146103a857806342b6fa11146103c85780634ada218b146103e857600080fd5b80631675d802116102035780631675d802146102dd57806318160ddd146103015780631816467f1461031657806323b872dd14610336578063274a533c1461035657600080fd5b806306fdde0314610240578063095ea7b31461026b5780630e375a5c1461029b5780631340538f146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610770565b6040516102629190611e02565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e75565b610802565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004611ed0565b610819565b005b3480156102c957600080fd5b506102bb6102d8366004611fa7565b6108b8565b3480156102e957600080fd5b506102f360085481565b604051908152602001610262565b34801561030d57600080fd5b506002546102f3565b34801561032257600080fd5b506102bb610331366004611fcb565b610900565b34801561034257600080fd5b5061028b610351366004611fe8565b61094c565b34801561036257600080fd5b506102f3600a5481565b34801561037857600080fd5b5060405160128152602001610262565b34801561039457600080fd5b506102bb6103a3366004612029565b6109fd565b3480156103b457600080fd5b5061028b6103c3366004611e75565b610a52565b3480156103d457600080fd5b506102bb6103e3366004612062565b610a89565b3480156103f457600080fd5b5060075461028b90600160b01b900460ff1681565b34801561041557600080fd5b506102bb61042436600461207b565b610acf565b34801561043557600080fd5b506102f360095481565b34801561044b57600080fd5b506102f361045a366004611fcb565b6001600160a01b031660009081526020819052604090205490565b34801561048157600080fd5b506102bb610b84565b34801561049657600080fd5b50600f546010546011546104a992919083565b60408051938452602084019290925290820152606001610262565b3480156104d057600080fd5b50600d546104e4906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b34801561050857600080fd5b506104e461dead81565b34801561051e57600080fd5b506102bb610bba565b34801561053357600080fd5b506102bb610542366004611e75565b610c59565b34801561055357600080fd5b506005546001600160a01b03166104e4565b34801561057157600080fd5b50610255610cd0565b34801561058657600080fd5b506102bb61059536600461207b565b610cdf565b3480156105a657600080fd5b506102bb6105b5366004612062565b610d95565b3480156105c657600080fd5b5061028b6105d5366004611e75565b610dd3565b3480156105e657600080fd5b506007546104e4906001600160a01b031681565b34801561060657600080fd5b5061028b610615366004611e75565b610e6e565b34801561062657600080fd5b506102bb610635366004611fcb565b610e7b565b34801561064657600080fd5b506102bb610655366004612062565b610ec7565b34801561066657600080fd5b5061028b610675366004611fcb565b60156020526000908152604090205460ff1681565b34801561069657600080fd5b506102f36106a53660046120a7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106dc57600080fd5b506102bb6106eb366004612062565b610f74565b3480156106fc57600080fd5b506102bb61070b366004611fcb565b61105b565b34801561071c57600080fd5b506012546013546014546104a992919083565b34801561073b57600080fd5b506006546104e4906001600160a01b031681565b34801561075b57600080fd5b5060075461028b90600160a81b900460ff1681565b60606003805461077f906120d5565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab906120d5565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050905090565b600061080f3384846110f6565b5060015b92915050565b6005546001600160a01b0316331461084c5760405162461bcd60e51b81526004016108439061210f565b60405180910390fd5b60005b82518110156108b357816015600085848151811061086f5761086f612144565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108ab81612170565b91505061084f565b505050565b6005546001600160a01b031633146108e25760405162461bcd60e51b81526004016108439061210f565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461092a5760405162461bcd60e51b81526004016108439061210f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061095984848461121a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109de5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610843565b6109f285336109ed8685612189565b6110f6565b506001949350505050565b6005546001600160a01b03163314610a275760405162461bcd60e51b81526004016108439061210f565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161080f9185906109ed90869061219c565b6005546001600160a01b03163314610ab35760405162461bcd60e51b81526004016108439061210f565b610abf6012600a612293565b610ac990826122a2565b60085550565b6005546001600160a01b03163314610af95760405162461bcd60e51b81526004016108439061210f565b601e81610b06848661219c565b610b10919061219c565b1115610b5e5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610843565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610bae5760405162461bcd60e51b81526004016108439061210f565b610bb86000611738565b565b6005546001600160a01b03163314610be45760405162461bcd60e51b81526004016108439061210f565b600754600160b01b900460ff1615610c3e5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610843565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906122b9565b60606004805461077f906120d5565b6005546001600160a01b03163314610d095760405162461bcd60e51b81526004016108439061210f565b604080516060810182528481526020810184905201819052600f83905560108290556011819055600a81610d3d848661219c565b610d47919061219c565b11156108b35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610843565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dcf573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e555760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610843565b610e6433856109ed8685612189565b5060019392505050565b600061080f33848461121a565b6005546001600160a01b03163314610ea55760405162461bcd60e51b81526004016108439061210f565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ef15760405162461bcd60e51b81526004016108439061210f565b612710811015610f585760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b6064820152608401610843565b610f646012600a612293565b610f6e90826122a2565b60095550565b6005546001600160a01b03163314610f9e5760405162461bcd60e51b81526004016108439061210f565b600754600160b01b900460ff16156110065760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610843565b600a81106110565760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e203130000000006044820152606401610843565b600b55565b6005546001600160a01b031633146110855760405162461bcd60e51b81526004016108439061210f565b6001600160a01b0381166110ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610843565b6110f381611738565b50565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610843565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610843565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610843565b6001600160a01b03831660009081526015602052604090205460ff161580156112be57506001600160a01b03821660009081526015602052604090205460ff16155b1561131257600754600160b01b900460ff166113125760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610843565b6007546001600160a01b03848116911614801561134857506001600160a01b03821660009081526015602052604090205460ff16155b801561135e5750600754600160a01b900460ff16155b156113de5760095481611386846001600160a01b031660009081526020819052604090205490565b611390919061219c565b11156113de5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610843565b6007546001600160a01b0384811691161480159061141557506001600160a01b03821660009081526015602052604090205460ff16155b801561143a57506001600160a01b03831660009081526015602052604090205460ff16155b80156114505750600754600160a01b900460ff16155b156114e5576007546001600160a01b038381169116146114e5576009548161148d846001600160a01b031660009081526020819052604090205490565b611497919061219c565b11156114e55760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610843565b600080600061150e60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526015602052604081205460ff1615801561155057506001600160a01b03871660009081526015602052604090205460ff16155b801561156a5750600b54600a54611567919061219c565b43105b600754909150600160a01b900460ff168061159d57506001600160a01b03881660009081526015602052604090205460ff165b806115c057506001600160a01b03871660009081526015602052604090205460ff165b156115ce5760009250611698565b6007546001600160a01b0388811691161480156115e9575080155b1561163957601454601254601354611601919061219c565b61160b919061219c565b6040805160608101825260125481526013546020820152601454918101919091529095508594509150611698565b8061168957601154600f54601054611651919061219c565b61165b919061219c565b60408051606081018252600f5481526010546020820152601154918101919091529095508594509150611698565b801561169857600c5494508493505b60646116a485886122a2565b6116ae91906122d6565b600754909350600160a81b900460ff1680156116d857506007546001600160a01b03898116911614155b156116e7576116e7858361178a565b6116fb88886116f6868a612189565b611903565b821561172e57841561172e576000606461171587896122a2565b61171f91906122d6565b905061172c893083611903565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610dcf576007805460ff60a01b1916600160a01b17905581156118f2573060009081526020819052604090205460085481106118f057600160085411156117dd57506008545b60006117ea8460026122a2565b90506000818460200151846117ff91906122a2565b61180991906122d6565b905060006118178285612189565b90504761182382611adb565b600061182f8247612189565b905060008760200151866118439190612189565b61184d90836122d6565b9050600088602001518261186191906122a2565b90508015611873576118738682611c35565b88516000906118838460026122a2565b61188d91906122a2565b905080156118ab57600d546118ab906001600160a01b031682611ce9565b60408a01516000906118be8560026122a2565b6118c891906122a2565b905080156118e657600e546118e6906001600160a01b031682611ce9565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166119675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610843565b6001600160a01b0382166119c95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610843565b6001600160a01b03831660009081526020819052604090205481811015611a415760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610843565b611a4b8282612189565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a8190849061219c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acd91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b1057611b10612144565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122f8565b81600181518110611ba057611ba0612144565b6001600160a01b039283166020918202929092010152600654611bc691309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bff908590600090869030904290600401612315565b600060405180830381600087803b158015611c1957600080fd5b505af1158015611c2d573d6000803e3d6000fd5b505050505050565b600654611c4d9030906001600160a01b0316846110f6565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cbd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ce29190612386565b5050505050565b80471015611d395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610843565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d86576040519150601f19603f3d011682016040523d82523d6000602084013e611d8b565b606091505b50509050806108b35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610843565b600060208083528351808285015260005b81811015611e2f57858101830151858201604001528201611e13565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110f357600080fd5b8035611e7081611e50565b919050565b60008060408385031215611e8857600080fd5b8235611e9381611e50565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110f357600080fd5b8035611e7081611eb7565b60008060408385031215611ee357600080fd5b823567ffffffffffffffff80821115611efb57600080fd5b818501915085601f830112611f0f57600080fd5b8135602082821115611f2357611f23611ea1565b8160051b604051601f19603f83011681018181108682111715611f4857611f48611ea1565b604052928352818301935084810182019289841115611f6657600080fd5b948201945b83861015611f8b57611f7c86611e65565b85529482019493820193611f6b565b9650611f9a9050878201611ec5565b9450505050509250929050565b600060208284031215611fb957600080fd5b8135611fc481611eb7565b9392505050565b600060208284031215611fdd57600080fd5b8135611fc481611e50565b600080600060608486031215611ffd57600080fd5b833561200881611e50565b9250602084013561201881611e50565b929592945050506040919091013590565b6000806040838503121561203c57600080fd5b823561204781611e50565b9150602083013561205781611eb7565b809150509250929050565b60006020828403121561207457600080fd5b5035919050565b60008060006060848603121561209057600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120ba57600080fd5b82356120c581611e50565b9150602083013561205781611e50565b600181811c908216806120e957607f821691505b60208210810361210957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121825761218261215a565b5060010190565b818103818111156108135761081361215a565b808201808211156108135761081361215a565b600181815b808511156121ea5781600019048211156121d0576121d061215a565b808516156121dd57918102915b93841c93908002906121b4565b509250929050565b60008261220157506001610813565b8161220e57506000610813565b8160018114612224576002811461222e5761224a565b6001915050610813565b60ff84111561223f5761223f61215a565b50506001821b610813565b5060208310610133831016604e8410600b841016171561226d575081810a610813565b61227783836121af565b806000190482111561228b5761228b61215a565b029392505050565b6000611fc460ff8416836121f2565b80820281158282048414176108135761081361215a565b6000602082840312156122cb57600080fd5b8151611fc481611eb7565b6000826122f357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561230a57600080fd5b8151611fc481611e50565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123655784516001600160a01b031683529383019391830191600101612340565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eeb2e96f582715d7911a56282669b7dbc1f7ff7457fcbd3a6966a732d2da963964736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102345760003560e01c806375f0a8741161012e578063a9059cbb116100ab578063edaa11681161006f578063edaa1168146106d0578063f2fde38b146106f0578063f66895a314610710578063f887ea401461072f578063fbe6324e1461074f57600080fd5b8063a9059cbb146105fa578063aacebbe31461061a578063c2c327d11461063a578063c5d32bb21461065a578063dd62ed3e1461068a57600080fd5b806395d89b41116100f257806395d89b41146105655780639d282cd61461057a5780639e252f001461059a578063a457c2d7146105ba578063a8aa1b31146105da57600080fd5b806375f0a874146104c457806385141a77146104fc5780638a8c523c146105125780638cd4426d146105275780638da5cb5b1461054757600080fd5b8063313ce567116101bc5780634e736f22116101805780634e736f221461040957806366a88d961461042957806370a082311461043f578063715018a614610475578063728f8eea1461048a57600080fd5b8063313ce5671461036c578063355496ca1461038857806339509351146103a857806342b6fa11146103c85780634ada218b146103e857600080fd5b80631675d802116102035780631675d802146102dd57806318160ddd146103015780631816467f1461031657806323b872dd14610336578063274a533c1461035657600080fd5b806306fdde0314610240578063095ea7b31461026b5780630e375a5c1461029b5780631340538f146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610770565b6040516102629190611e02565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e75565b610802565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004611ed0565b610819565b005b3480156102c957600080fd5b506102bb6102d8366004611fa7565b6108b8565b3480156102e957600080fd5b506102f360085481565b604051908152602001610262565b34801561030d57600080fd5b506002546102f3565b34801561032257600080fd5b506102bb610331366004611fcb565b610900565b34801561034257600080fd5b5061028b610351366004611fe8565b61094c565b34801561036257600080fd5b506102f3600a5481565b34801561037857600080fd5b5060405160128152602001610262565b34801561039457600080fd5b506102bb6103a3366004612029565b6109fd565b3480156103b457600080fd5b5061028b6103c3366004611e75565b610a52565b3480156103d457600080fd5b506102bb6103e3366004612062565b610a89565b3480156103f457600080fd5b5060075461028b90600160b01b900460ff1681565b34801561041557600080fd5b506102bb61042436600461207b565b610acf565b34801561043557600080fd5b506102f360095481565b34801561044b57600080fd5b506102f361045a366004611fcb565b6001600160a01b031660009081526020819052604090205490565b34801561048157600080fd5b506102bb610b84565b34801561049657600080fd5b50600f546010546011546104a992919083565b60408051938452602084019290925290820152606001610262565b3480156104d057600080fd5b50600d546104e4906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b34801561050857600080fd5b506104e461dead81565b34801561051e57600080fd5b506102bb610bba565b34801561053357600080fd5b506102bb610542366004611e75565b610c59565b34801561055357600080fd5b506005546001600160a01b03166104e4565b34801561057157600080fd5b50610255610cd0565b34801561058657600080fd5b506102bb61059536600461207b565b610cdf565b3480156105a657600080fd5b506102bb6105b5366004612062565b610d95565b3480156105c657600080fd5b5061028b6105d5366004611e75565b610dd3565b3480156105e657600080fd5b506007546104e4906001600160a01b031681565b34801561060657600080fd5b5061028b610615366004611e75565b610e6e565b34801561062657600080fd5b506102bb610635366004611fcb565b610e7b565b34801561064657600080fd5b506102bb610655366004612062565b610ec7565b34801561066657600080fd5b5061028b610675366004611fcb565b60156020526000908152604090205460ff1681565b34801561069657600080fd5b506102f36106a53660046120a7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106dc57600080fd5b506102bb6106eb366004612062565b610f74565b3480156106fc57600080fd5b506102bb61070b366004611fcb565b61105b565b34801561071c57600080fd5b506012546013546014546104a992919083565b34801561073b57600080fd5b506006546104e4906001600160a01b031681565b34801561075b57600080fd5b5060075461028b90600160a81b900460ff1681565b60606003805461077f906120d5565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab906120d5565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050905090565b600061080f3384846110f6565b5060015b92915050565b6005546001600160a01b0316331461084c5760405162461bcd60e51b81526004016108439061210f565b60405180910390fd5b60005b82518110156108b357816015600085848151811061086f5761086f612144565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108ab81612170565b91505061084f565b505050565b6005546001600160a01b031633146108e25760405162461bcd60e51b81526004016108439061210f565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461092a5760405162461bcd60e51b81526004016108439061210f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061095984848461121a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109de5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610843565b6109f285336109ed8685612189565b6110f6565b506001949350505050565b6005546001600160a01b03163314610a275760405162461bcd60e51b81526004016108439061210f565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161080f9185906109ed90869061219c565b6005546001600160a01b03163314610ab35760405162461bcd60e51b81526004016108439061210f565b610abf6012600a612293565b610ac990826122a2565b60085550565b6005546001600160a01b03163314610af95760405162461bcd60e51b81526004016108439061210f565b601e81610b06848661219c565b610b10919061219c565b1115610b5e5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610843565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610bae5760405162461bcd60e51b81526004016108439061210f565b610bb86000611738565b565b6005546001600160a01b03163314610be45760405162461bcd60e51b81526004016108439061210f565b600754600160b01b900460ff1615610c3e5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610843565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906122b9565b60606004805461077f906120d5565b6005546001600160a01b03163314610d095760405162461bcd60e51b81526004016108439061210f565b604080516060810182528481526020810184905201819052600f83905560108290556011819055600a81610d3d848661219c565b610d47919061219c565b11156108b35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610843565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dcf573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e555760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610843565b610e6433856109ed8685612189565b5060019392505050565b600061080f33848461121a565b6005546001600160a01b03163314610ea55760405162461bcd60e51b81526004016108439061210f565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ef15760405162461bcd60e51b81526004016108439061210f565b612710811015610f585760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b6064820152608401610843565b610f646012600a612293565b610f6e90826122a2565b60095550565b6005546001600160a01b03163314610f9e5760405162461bcd60e51b81526004016108439061210f565b600754600160b01b900460ff16156110065760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610843565b600a81106110565760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e203130000000006044820152606401610843565b600b55565b6005546001600160a01b031633146110855760405162461bcd60e51b81526004016108439061210f565b6001600160a01b0381166110ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610843565b6110f381611738565b50565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610843565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610843565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610843565b6001600160a01b03831660009081526015602052604090205460ff161580156112be57506001600160a01b03821660009081526015602052604090205460ff16155b1561131257600754600160b01b900460ff166113125760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610843565b6007546001600160a01b03848116911614801561134857506001600160a01b03821660009081526015602052604090205460ff16155b801561135e5750600754600160a01b900460ff16155b156113de5760095481611386846001600160a01b031660009081526020819052604090205490565b611390919061219c565b11156113de5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610843565b6007546001600160a01b0384811691161480159061141557506001600160a01b03821660009081526015602052604090205460ff16155b801561143a57506001600160a01b03831660009081526015602052604090205460ff16155b80156114505750600754600160a01b900460ff16155b156114e5576007546001600160a01b038381169116146114e5576009548161148d846001600160a01b031660009081526020819052604090205490565b611497919061219c565b11156114e55760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610843565b600080600061150e60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526015602052604081205460ff1615801561155057506001600160a01b03871660009081526015602052604090205460ff16155b801561156a5750600b54600a54611567919061219c565b43105b600754909150600160a01b900460ff168061159d57506001600160a01b03881660009081526015602052604090205460ff165b806115c057506001600160a01b03871660009081526015602052604090205460ff165b156115ce5760009250611698565b6007546001600160a01b0388811691161480156115e9575080155b1561163957601454601254601354611601919061219c565b61160b919061219c565b6040805160608101825260125481526013546020820152601454918101919091529095508594509150611698565b8061168957601154600f54601054611651919061219c565b61165b919061219c565b60408051606081018252600f5481526010546020820152601154918101919091529095508594509150611698565b801561169857600c5494508493505b60646116a485886122a2565b6116ae91906122d6565b600754909350600160a81b900460ff1680156116d857506007546001600160a01b03898116911614155b156116e7576116e7858361178a565b6116fb88886116f6868a612189565b611903565b821561172e57841561172e576000606461171587896122a2565b61171f91906122d6565b905061172c893083611903565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610dcf576007805460ff60a01b1916600160a01b17905581156118f2573060009081526020819052604090205460085481106118f057600160085411156117dd57506008545b60006117ea8460026122a2565b90506000818460200151846117ff91906122a2565b61180991906122d6565b905060006118178285612189565b90504761182382611adb565b600061182f8247612189565b905060008760200151866118439190612189565b61184d90836122d6565b9050600088602001518261186191906122a2565b90508015611873576118738682611c35565b88516000906118838460026122a2565b61188d91906122a2565b905080156118ab57600d546118ab906001600160a01b031682611ce9565b60408a01516000906118be8560026122a2565b6118c891906122a2565b905080156118e657600e546118e6906001600160a01b031682611ce9565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166119675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610843565b6001600160a01b0382166119c95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610843565b6001600160a01b03831660009081526020819052604090205481811015611a415760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610843565b611a4b8282612189565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a8190849061219c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acd91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b1057611b10612144565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122f8565b81600181518110611ba057611ba0612144565b6001600160a01b039283166020918202929092010152600654611bc691309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bff908590600090869030904290600401612315565b600060405180830381600087803b158015611c1957600080fd5b505af1158015611c2d573d6000803e3d6000fd5b505050505050565b600654611c4d9030906001600160a01b0316846110f6565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cbd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ce29190612386565b5050505050565b80471015611d395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610843565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d86576040519150601f19603f3d011682016040523d82523d6000602084013e611d8b565b606091505b50509050806108b35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610843565b600060208083528351808285015260005b81811015611e2f57858101830151858201604001528201611e13565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110f357600080fd5b8035611e7081611e50565b919050565b60008060408385031215611e8857600080fd5b8235611e9381611e50565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110f357600080fd5b8035611e7081611eb7565b60008060408385031215611ee357600080fd5b823567ffffffffffffffff80821115611efb57600080fd5b818501915085601f830112611f0f57600080fd5b8135602082821115611f2357611f23611ea1565b8160051b604051601f19603f83011681018181108682111715611f4857611f48611ea1565b604052928352818301935084810182019289841115611f6657600080fd5b948201945b83861015611f8b57611f7c86611e65565b85529482019493820193611f6b565b9650611f9a9050878201611ec5565b9450505050509250929050565b600060208284031215611fb957600080fd5b8135611fc481611eb7565b9392505050565b600060208284031215611fdd57600080fd5b8135611fc481611e50565b600080600060608486031215611ffd57600080fd5b833561200881611e50565b9250602084013561201881611e50565b929592945050506040919091013590565b6000806040838503121561203c57600080fd5b823561204781611e50565b9150602083013561205781611eb7565b809150509250929050565b60006020828403121561207457600080fd5b5035919050565b60008060006060848603121561209057600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120ba57600080fd5b82356120c581611e50565b9150602083013561205781611e50565b600181811c908216806120e957607f821691505b60208210810361210957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121825761218261215a565b5060010190565b818103818111156108135761081361215a565b808201808211156108135761081361215a565b600181815b808511156121ea5781600019048211156121d0576121d061215a565b808516156121dd57918102915b93841c93908002906121b4565b509250929050565b60008261220157506001610813565b8161220e57506000610813565b8160018114612224576002811461222e5761224a565b6001915050610813565b60ff84111561223f5761223f61215a565b50506001821b610813565b5060208310610133831016604e8410600b841016171561226d575081810a610813565b61227783836121af565b806000190482111561228b5761228b61215a565b029392505050565b6000611fc460ff8416836121f2565b80820281158282048414176108135761081361215a565b6000602082840312156122cb57600080fd5b8151611fc481611eb7565b6000826122f357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561230a57600080fd5b8151611fc481611e50565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123655784516001600160a01b031683529383019391830191600101612340565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eeb2e96f582715d7911a56282669b7dbc1f7ff7457fcbd3a6966a732d2da963964736f6c63430008110033
Deployed Bytecode Sourcemap
12809:11247:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14849:161;;;;;;;;;;-1:-1:-1;14849:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14849:161:0;1162:187:1;23330:202:0;;;;;;;;;;-1:-1:-1;23330:202:0;;;;;:::i;:::-;;:::i;:::-;;21556:152;;;;;;;;;;-1:-1:-1;21556:152:0;;;;;:::i;:::-;;:::i;13076:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;13076:53:0;3184:177:1;3620:108:0;;;;;;;;;;-1:-1:-1;3708:12:0;;3620:108;;23092:102;;;;;;;;;;-1:-1:-1;23092:102:0;;;;;:::i;:::-;;:::i;15018:448::-;;;;;;;;;;-1:-1:-1;15018:448:0;;;;;:::i;:::-;;:::i;13189:28::-;;;;;;;;;;;;;;;;3462:93;;;;;;;;;;-1:-1:-1;3462:93:0;;3545:2;4221:36:1;;4209:2;4194:18;3462:93:0;4079:184:1;23202:120:0;;;;;;;;;;-1:-1:-1;23202:120:0;;;;;:::i;:::-;;:::i;15474:248::-;;;;;;;;;;-1:-1:-1;15474:248:0;;;;;:::i;:::-;;:::i;21716:177::-;;;;;;;;;;-1:-1:-1;21716:177:0;;;;;:::i;:::-;;:::i;13033:34::-;;;;;;;;;;-1:-1:-1;13033:34:0;;;;-1:-1:-1;;;13033:34:0;;;;;;22193:286;;;;;;;;;;-1:-1:-1;22193:286:0;;;;;:::i;:::-;;:::i;13136:44::-;;;;;;;;;;;;;;;;3791:127;;;;;;;;;;-1:-1:-1;3791:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3892:18:0;3865:7;3892:18;;;;;;;;;;;;3791:127;11472:94;;;;;;;;;;;;;:::i;13652:35::-;;;;;;;;;;-1:-1:-1;13652:35:0;;;;;;;;;;;;;;;;5363:25:1;;;5419:2;5404:18;;5397:34;;;;5447:18;;;5440:34;5351:2;5336:18;13652:35:0;5161:319:1;13298:75:0;;;;;;;;;;-1:-1:-1;13298:75:0;;;;-1:-1:-1;;;;;13298:75:0;;;;;;-1:-1:-1;;;;;5649:32:1;;;5631:51;;5619:2;5604:18;13298:75:0;5485:203:1;13454:79:0;;;;;;;;;;;;13491:42;13454:79;;22486:224;;;;;;;;;;;;;:::i;23871:127::-;;;;;;;;;;-1:-1:-1;23871:127:0;;;;;:::i;:::-;;:::i;11249:87::-;;;;;;;;;;-1:-1:-1;11322:6:0;;-1:-1:-1;;;;;11322:6:0;11249:87;;2719:104;;;;;;;;;;;;;:::i;21901:284::-;;;;;;;;;;-1:-1:-1;21901:284:0;;;;;:::i;:::-;;:::i;23759:104::-;;;;;;;;;;-1:-1:-1;23759:104:0;;;;;:::i;:::-;;:::i;15730:410::-;;;;;;;;;;-1:-1:-1;15730:410:0;;;;;:::i;:::-;;:::i;12917:19::-;;;;;;;;;;-1:-1:-1;12917:19:0;;;;-1:-1:-1;;;;;12917:19:0;;;16148:165;;;;;;;;;;-1:-1:-1;16148:165:0;;;;;:::i;:::-;;:::i;22969:115::-;;;;;;;;;;-1:-1:-1;22969:115:0;;;;;:::i;:::-;;:::i;23540:211::-;;;;;;;;;;-1:-1:-1;23540:211:0;;;;;:::i;:::-;;:::i;13744:41::-;;;;;;;;;;-1:-1:-1;13744:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4410:201;;;;;;;;;;-1:-1:-1;4410:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4576:18:0;;;4544:7;4576:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4410:201;22718:243;;;;;;;;;;-1:-1:-1;22718:243:0;;;;;:::i;:::-;;:::i;11574:192::-;;;;;;;;;;-1:-1:-1;11574:192:0;;;;;:::i;:::-;;:::i;13694:41::-;;;;;;;;;;-1:-1:-1;13694:41:0;;;;;;;;;;;;12889:21;;;;;;;;;;-1:-1:-1;12889:21:0;;;;-1:-1:-1;;;;;12889:21:0;;;12988:38;;;;;;;;;;-1:-1:-1;12988:38:0;;;;-1:-1:-1;;;12988:38:0;;;;;;2500:100;2554:13;2587:5;2580:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:100;:::o;14849:161::-;14924:4;14941:39;302:10;14964:7;14973:6;14941:8;:39::i;:::-;-1:-1:-1;14998:4:0;14849:161;;;;;:::o;23330:202::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;;;;;;;;;23427:9:::1;23422:103;23446:8;:15;23442:1;:19;23422:103;;;23508:5;23483:9;:22;23493:8;23502:1;23493:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23483:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23483:22:0;:30;;-1:-1:-1;;23483:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23463:3;::::1;::::0;::::1;:::i;:::-;;;;23422:103;;;;23330:202:::0;;:::o;21556:152::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;21674:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21674:26:0::1;-1:-1:-1::0;;;;21674:26:0;;::::1;::::0;;;::::1;::::0;;21556:152::o;23092:102::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;23165:9:::1;:21:::0;;-1:-1:-1;;;;;;23165:21:0::1;-1:-1:-1::0;;;;;23165:21:0;;;::::1;::::0;;;::::1;::::0;;23092:102::o;15018:448::-;15150:4;15167:36;15177:6;15185:9;15196:6;15167:9;:36::i;:::-;-1:-1:-1;;;;;15243:19:0;;15216:24;15243:19;;;:11;:19;;;;;;;;302:10;15243:33;;;;;;;;15295:26;;;;15287:79;;;;-1:-1:-1;;;15287:79:0;;7661:2:1;15287:79:0;;;7643:21:1;7700:2;7680:18;;;7673:30;7739:34;7719:18;;;7712:62;-1:-1:-1;;;7790:18:1;;;7783:38;7838:19;;15287:79:0;7459:404:1;15287:79:0;15377:57;15386:6;302:10;15408:25;15427:6;15408:16;:25;:::i;:::-;15377:8;:57::i;:::-;-1:-1:-1;15454:4:0;;15018:448;-1:-1:-1;;;;15018:448:0:o;23202:120::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23287:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;23287:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23202:120::o;15474:248::-;302:10;15590:4;15644:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15644:34:0;;;;;;;;;;15590:4;;15612:80;;15635:7;;15644:47;;15681:10;;15644:47;:::i;21716:177::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;21871:14:::1;3545:2:::0;21871::::1;:14;:::i;:::-;21858:27;::::0;:10;:27:::1;:::i;:::-;21832:23;:53:::0;-1:-1:-1;21716:177:0:o;22193:286::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;22377:2:::1;22368:4:::0;22342:23:::1;22355:10:::0;22342;:23:::1;:::i;:::-;:30;;;;:::i;:::-;22341:38;;22333:80;;;::::0;-1:-1:-1;;;22333:80:0;;9889:2:1;22333:80:0::1;::::0;::::1;9871:21:1::0;9928:2;9908:18;;;9901:30;9967:31;9947:18;;;9940:59;10016:18;;22333:80:0::1;9687:353:1::0;22333:80:0::1;22436:35;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22424:9:::1;:47:::0;;;;;;;;22193:286::o;11472:94::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;11537:21:::1;11555:1;11537:9;:21::i;:::-;11472:94::o:0;22486:224::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;22550:14:::1;::::0;-1:-1:-1;;;22550:14:0;::::1;;;22549:15;22541:54;;;::::0;-1:-1:-1;;;22541:54:0;;10247:2:1;22541:54:0::1;::::0;::::1;10229:21:1::0;10286:2;10266:18;;;10259:30;10325:28;10305:18;;;10298:56;10371:18;;22541:54:0::1;10045:350:1::0;22541:54:0::1;22606:14;:21:::0;;-1:-1:-1;;;;22638:25:0;-1:-1:-1;;;22638:25:0;;;22690:12:::1;22674:13;:28:::0;22486:224::o;23871:127::-;23972:9;;23946:44;;-1:-1:-1;;;23946:44:0;;-1:-1:-1;;;;;23972:9:0;;;23946:44;;;10574:51:1;10641:18;;;10634:34;;;23946:25:0;;;;;;10547:18:1;;23946:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2719:104::-;2775:13;2808:7;2801:14;;;;;:::i;21901:284::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;22051:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22043:5:::1;:43:::0;;;;;;;;;;;22141:2:::1;22081:4:::0;22106:23:::1;22069:10:::0;22057;22106:23:::1;:::i;:::-;:30;;;;:::i;:::-;22105:38;;22097:80;;;::::0;-1:-1:-1;;;22097:80:0;;9889:2:1;22097:80:0::1;::::0;::::1;9871:21:1::0;9928:2;9908:18;;;9901:30;9967:31;9947:18;;;9940:59;10016:18;;22097:80:0::1;9687:353:1::0;23759:104:0;23825:9;;23817:38;;-1:-1:-1;;;;;23825:9:0;;;;23817:38;;;;;23845:9;;23825;23817:38;23825:9;23817:38;23845:9;23825;23817:38;;;;;;;;;;;;;;;;;;;;;23759:104;:::o;15730:410::-;302:10;15851:4;15900:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15900:34:0;;;;;;;;;;15953:35;;;;15945:85;;;;-1:-1:-1;;;15945:85:0;;11131:2:1;15945:85:0;;;11113:21:1;11170:2;11150:18;;;11143:30;11209:34;11189:18;;;11182:62;-1:-1:-1;;;11260:18:1;;;11253:35;11305:19;;15945:85:0;10929:401:1;15945:85:0;16041:67;302:10;16064:7;16073:34;16092:15;16073:16;:34;:::i;16041:67::-;-1:-1:-1;16128:4:0;;15730:410;-1:-1:-1;;;15730:410:0:o;16148:165::-;16226:4;16243:40;16253:10;16265:9;16276:6;16243:9;:40::i;22969:115::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;23049:15:::1;:27:::0;;-1:-1:-1;;;;;;23049:27:0::1;-1:-1:-1::0;;;;;23049:27:0;;;::::1;::::0;;;::::1;::::0;;22969:115::o;23540:211::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;23636:3:::1;23623:9;:16;;23615:73;;;::::0;-1:-1:-1;;;23615:73:0;;11537:2:1;23615:73:0::1;::::0;::::1;11519:21:1::0;11576:2;11556:18;;;11549:30;11615:34;11595:18;;;11588:62;-1:-1:-1;;;11666:18:1;;;11659:42;11718:19;;23615:73:0::1;11335:408:1::0;23615:73:0::1;23728:14;3545:2:::0;23728::::1;:14;:::i;:::-;23716:26;::::0;:9;:26:::1;:::i;:::-;23699:14;:43:::0;-1:-1:-1;23540:211:0:o;22718:243::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;22800:14:::1;::::0;-1:-1:-1;;;22800:14:0;::::1;;;22799:15;22791:65;;;::::0;-1:-1:-1;;;22791:65:0;;11950:2:1;22791:65:0::1;::::0;::::1;11932:21:1::0;11989:2;11969:18;;;11962:30;12028:34;12008:18;;;12001:62;-1:-1:-1;;;12079:18:1;;;12072:35;12124:19;;22791:65:0::1;11748:401:1::0;22791:65:0::1;22887:2;22875:9;:14;22867:55;;;::::0;-1:-1:-1;;;22867:55:0;;12356:2:1;22867:55:0::1;::::0;::::1;12338:21:1::0;12395:2;12375:18;;;12368:30;12434;12414:18;;;12407:58;12482:18;;22867:55:0::1;12154:352:1::0;22867:55:0::1;22933:8;:20:::0;22718:243::o;11574:192::-;11322:6;;-1:-1:-1;;;;;11322:6:0;302:10;11384:23;11376:68;;;;-1:-1:-1;;;11376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11663:22:0;::::1;11655:73;;;::::0;-1:-1:-1;;;11655:73:0;;12713:2:1;11655:73:0::1;::::0;::::1;12695:21:1::0;12752:2;12732:18;;;12725:30;12791:34;12771:18;;;12764:62;-1:-1:-1;;;12842:18:1;;;12835:36;12888:19;;11655:73:0::1;12511:402:1::0;11655:73:0::1;11739:19;11749:8;11739:9;:19::i;:::-;11574:192:::0;:::o;9548:380::-;-1:-1:-1;;;;;9684:19:0;;9676:68;;;;-1:-1:-1;;;9676:68:0;;13120:2:1;9676:68:0;;;13102:21:1;13159:2;13139:18;;;13132:30;13198:34;13178:18;;;13171:62;-1:-1:-1;;;13249:18:1;;;13242:34;13293:19;;9676:68:0;12918:400:1;9676:68:0;-1:-1:-1;;;;;9763:21:0;;9755:68;;;;-1:-1:-1;;;9755:68:0;;13525:2:1;9755:68:0;;;13507:21:1;13564:2;13544:18;;;13537:30;13603:34;13583:18;;;13576:62;-1:-1:-1;;;13654:18:1;;;13647:32;13696:19;;9755:68:0;13323:398:1;9755:68:0;-1:-1:-1;;;;;9836:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9888:32;;3330:25:1;;;9888:32:0;;3303:18:1;9888:32:0;;;;;;;9548:380;;;:::o;16321:2588::-;16471:1;16462:6;:10;16454:64;;;;-1:-1:-1;;;16454:64:0;;13928:2:1;16454:64:0;;;13910:21:1;13967:2;13947:18;;;13940:30;14006:34;13986:18;;;13979:62;-1:-1:-1;;;14057:18:1;;;14050:39;14106:19;;16454:64:0;13726:405:1;16454:64:0;-1:-1:-1;;;;;16536:17:0;;;;;;:9;:17;;;;;;;;16535:18;:43;;;;-1:-1:-1;;;;;;16558:20:0;;;;;;:9;:20;;;;;;;;16557:21;16535:43;16531:122;;;16603:14;;-1:-1:-1;;;16603:14:0;;;;16595:46;;;;-1:-1:-1;;;16595:46:0;;14338:2:1;16595:46:0;;;14320:21:1;14377:2;14357:18;;;14350:30;-1:-1:-1;;;14396:18:1;;;14389:49;14455:18;;16595:46:0;14136:343:1;16595:46:0;16679:4;;-1:-1:-1;;;;;16669:14:0;;;16679:4;;16669:14;:39;;;;-1:-1:-1;;;;;;16688:20:0;;;;;;:9;:20;;;;;;;;16687:21;16669:39;:59;;;;-1:-1:-1;16713:15:0;;-1:-1:-1;;;16713:15:0;;;;16712:16;16669:59;16665:233;;;16804:14;;16794:6;16771:20;16781:9;-1:-1:-1;;;;;3892:18:0;3865:7;3892:18;;;;;;;;;;;;3791:127;16771:20;:29;;;;:::i;:::-;:47;;16745:141;;;;-1:-1:-1;;;16745:141:0;;14686:2:1;16745:141:0;;;14668:21:1;;;14705:18;;;14698:30;14764:34;14744:18;;;14737:62;14816:18;;16745:141:0;14484:356:1;16745:141:0;16938:4;;-1:-1:-1;;;;;16928:14:0;;;16938:4;;16928:14;;;;:39;;-1:-1:-1;;;;;;16947:20:0;;;;;;:9;:20;;;;;;;;16946:21;16928:39;:61;;;;-1:-1:-1;;;;;;16972:17:0;;;;;;:9;:17;;;;;;;;16971:18;16928:61;:81;;;;-1:-1:-1;16994:15:0;;-1:-1:-1;;;16994:15:0;;;;16993:16;16928:81;16910:348;;;17053:4;;-1:-1:-1;;;;;17040:17:0;;;17053:4;;17040:17;17036:211;;17141:14;;17131:6;17108:20;17118:9;-1:-1:-1;;;;;3892:18:0;3865:7;3892:18;;;;;;;;;;;;3791:127;17108:20;:29;;;;:::i;:::-;:47;;17078:153;;;;-1:-1:-1;;;17078:153:0;;14686:2:1;17078:153:0;;;14668:21:1;;;14705:18;;;14698:30;14764:34;14744:18;;;14737:62;14816:18;;17078:153:0;14484:356:1;17078:153:0;17270:15;17296:14;17321:11;17343:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17343:25:0;-1:-1:-1;;;;;17402:17:0;;17381;17402;;;:9;:17;;;;;;;;17401:18;:56;;;;-1:-1:-1;;;;;;17437:20:0;;;;;;:9;:20;;;;;;;;17436:21;17401:56;:112;;;;;17505:8;;17489:13;;:24;;;;:::i;:::-;17474:12;:39;17401:112;17601:15;;17381:132;;-1:-1:-1;;;;17601:15:0;;;;;:36;;-1:-1:-1;;;;;;17620:17:0;;;;;;:9;:17;;;;;;;;17601:36;:60;;;-1:-1:-1;;;;;;17641:20:0;;;;;;:9;:20;;;;;;;;17601:60;17597:728;;;17682:1;17676:7;;17597:728;;;17747:4;;-1:-1:-1;;;;;17734:17:0;;;17747:4;;17734:17;:34;;;;;17756:12;17755:13;17734:34;17730:595;;;17901:13;;:9;17851:19;17812;;:58;;17851:19;17812:58;:::i;:::-;:102;;;;:::i;:::-;17961:24;;;;;;;;17976:9;17961:24;;;;;;;;;;;;;;;;;;17785:129;;-1:-1:-1;17785:129:0;;-1:-1:-1;17961:24:0;-1:-1:-1;17730:595:0;;;18008:12;18003:322;;18134:9;;:5;18099:15;18064;;:50;;18099:15;18064:50;:::i;:::-;:79;;;;:::i;:::-;18190:20;;;;;;;;18205:5;18190:20;;;;;;;;;;;;;;;;;;18037:106;;-1:-1:-1;18037:106:0;;-1:-1:-1;18190:20:0;-1:-1:-1;18003:322:0;;;18232:12;18228:97;;;18271:9;;;-1:-1:-1;18271:9:0;;-1:-1:-1;18228:97:0;18363:3;18344:15;18353:6;18344;:15;:::i;:::-;18343:23;;;;:::i;:::-;18480:18;;18337:29;;-1:-1:-1;;;;18480:18:0;;;;:36;;;;-1:-1:-1;18512:4:0;;-1:-1:-1;;;;;18502:14:0;;;18512:4;;18502:14;;18480:36;18476:76;;;18518:34;18530:7;18539:12;18518:11;:34::i;:::-;18594:48;18610:6;18618:9;18629:12;18638:3;18629:6;:12;:::i;:::-;18594:15;:48::i;:::-;18657:7;;18653:249;;18729:11;;18725:164;;18761:17;18802:3;18782:16;18791:7;18782:6;:16;:::i;:::-;18781:24;;;;:::i;:::-;18761:44;;18824:49;18840:6;18856:4;18863:9;18824:15;:49::i;:::-;18742:147;18725:164;16443:2466;;;;;16321:2588;;;:::o;11774:173::-;11849:6;;;-1:-1:-1;;;;;11866:17:0;;;-1:-1:-1;;;;;;11866:17:0;;;;;;;11899:40;;11849:6;;;11866:17;11849:6;;11899:40;;11830:16;;11899:40;11819:128;11774:173;:::o;18917:1590::-;13902:15;;-1:-1:-1;;;13902:15:0;;;;13897:125;;13934:15;:22;;-1:-1:-1;;;;13934:22:0;-1:-1:-1;;;13934:22:0;;;19005:49;;19036:7:::1;19005:49;19111:4;19067:23;3892:18:::0;;;;;;;;;;;19151:23:::1;::::0;19132:42;::::1;19128:1372;;19221:1;19195:23;;:27;19191:109;;;-1:-1:-1::0;19261:23:0::1;::::0;19191:109:::1;19371:19;19393:11;:7:::0;19403:1:::1;19393:11;:::i;:::-;19371:33;;19419:32;19513:11;19473:9;:19;;;19455:15;:37;;;;:::i;:::-;19454:70;;;;:::i;:::-;19419:105:::0;-1:-1:-1;19539:14:0::1;19556:42;19419:105:::0;19556:15;:42:::1;:::i;:::-;19539:59:::0;-1:-1:-1;19640:21:0::1;19678:24;19539:59:::0;19678:16:::1;:24::i;:::-;19719:20;19742:38;19766:14:::0;19742:21:::1;:38;:::i;:::-;19719:61;;19795:19;19847:9;:19;;;19833:11;:33;;;;:::i;:::-;19817:50;::::0;:12;:50:::1;:::i;:::-;19795:72;;19882:29;19928:9;:19;;;19914:11;:33;;;;:::i;:::-;19882:65:::0;-1:-1:-1;19968:25:0;;19964:161:::1;;20048:61;20061:24;20087:21;20048:12;:61::i;:::-;20182:19:::0;;20141:20:::1;::::0;20164:15:::1;:11:::0;20178:1:::1;20164:15;:::i;:::-;:37;;;;:::i;:::-;20141:60:::0;-1:-1:-1;20220:16:0;;20216:105:::1;;20265:15;::::0;20257:48:::1;::::0;-1:-1:-1;;;;;20265:15:0::1;20292:12:::0;20257:34:::1;:48::i;:::-;20372:13;::::0;::::1;::::0;20337:14:::1;::::0;20354:15:::1;:11:::0;20368:1:::1;20354:15;:::i;:::-;:31;;;;:::i;:::-;20337:48:::0;-1:-1:-1;20404:10:0;;20400:87:::1;;20443:9;::::0;20435:36:::1;::::0;-1:-1:-1;;;;;20443:9:0::1;20464:6:::0;20435:28:::1;:36::i;:::-;19176:1324;;;;;;;;;19128:1372;18997:1510;13971:1;13987:15:::0;:23;;-1:-1:-1;;;;13987:23:0;;;18917:1590;;:::o;7923:638::-;-1:-1:-1;;;;;8063:20:0;;8055:70;;;;-1:-1:-1;;;8055:70:0;;15269:2:1;8055:70:0;;;15251:21:1;15308:2;15288:18;;;15281:30;15347:34;15327:18;;;15320:62;-1:-1:-1;;;15398:18:1;;;15391:35;15443:19;;8055:70:0;15067:401:1;8055:70:0;-1:-1:-1;;;;;8144:23:0;;8136:71;;;;-1:-1:-1;;;8136:71:0;;15675:2:1;8136:71:0;;;15657:21:1;15714:2;15694:18;;;15687:30;15753:34;15733:18;;;15726:62;-1:-1:-1;;;15804:18:1;;;15797:33;15847:19;;8136:71:0;15473:399:1;8136:71:0;-1:-1:-1;;;;;8304:17:0;;8280:21;8304:17;;;;;;;;;;;8340:23;;;;8332:74;;;;-1:-1:-1;;;8332:74:0;;16079:2:1;8332:74:0;;;16061:21:1;16118:2;16098:18;;;16091:30;16157:34;16137:18;;;16130:62;-1:-1:-1;;;16208:18:1;;;16201:36;16254:19;;8332:74:0;15877:402:1;8332:74:0;8437:22;8453:6;8437:13;:22;:::i;:::-;-1:-1:-1;;;;;8417:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8470:20;;;;;;;;:30;;8494:6;;8417:9;8470:30;;8494:6;;8470:30;:::i;:::-;;;;;;;;8535:9;-1:-1:-1;;;;;8518:35:0;8527:6;-1:-1:-1;;;;;8518:35:0;;8546:6;8518:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8518:35:0;;;;;;;;8044:517;7923:638;;;:::o;20515:526::-;20657:16;;;20671:1;20657:16;;;;;;;;20633:21;;20657:16;;;;;;;;;;-1:-1:-1;20657:16:0;20633:40;;20702:4;20684;20689:1;20684:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20684:23:0;;;:7;;;;;;;;;;:23;;;;20728:6;;:13;;;-1:-1:-1;;;20728:13:0;;;;:6;;;;;:11;;:13;;;;;20684:7;;20728:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20718:4;20723:1;20718:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20718:23:0;;;:7;;;;;;;;;:23;20786:6;;20754:53;;20771:4;;20786:6;20795:11;20754:8;:53::i;:::-;20846:6;;:187;;-1:-1:-1;;;20846:187:0;;-1:-1:-1;;;;;20846:6:0;;;;:57;;:187;;20918:11;;20846:6;;20960:4;;20987;;21007:15;;20846:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20570:471;20515:526;:::o;21049:499::-;21229:6;;21197:53;;21214:4;;-1:-1:-1;;;;;21229:6:0;21238:11;21197:8;:53::i;:::-;21293:6;;21490:9;;21293:247;;-1:-1:-1;;;21293:247:0;;21358:4;21293:247;;;17866:34:1;17916:18;;;17909:34;;;21293:6:0;17959:18:1;;;17952:34;;;18002:18;;;17995:34;-1:-1:-1;;;;;21490:9:0;;;18045:19:1;;;18038:44;21514:15:0;18098:19:1;;;18091:35;21293:6:0;;;:22;;21324:9;;17800:19:1;;21293:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21049:499;;:::o;10692:319::-;10807:6;10782:21;:31;;10774:73;;;;-1:-1:-1;;;10774:73:0;;18650:2:1;10774:73:0;;;18632:21:1;18689:2;18669:18;;;18662:30;18728:31;18708:18;;;18701:59;18777:18;;10774:73:0;18448:353:1;10774:73:0;10861:12;10879:9;-1:-1:-1;;;;;10879:14:0;10902:6;10879:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10860:54;;;10933:7;10925:78;;;;-1:-1:-1;;;10925:78:0;;19218:2:1;10925:78:0;;;19200:21:1;19257:2;19237:18;;;19230:30;19296:34;19276:18;;;19269:62;19367:28;19347:18;;;19340:56;19413:19;;10925:78:0;19016:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:247::-;3425:6;3478:2;3466:9;3457:7;3453:23;3449:32;3446:52;;;3494:1;3491;3484:12;3446:52;3533:9;3520:23;3552:31;3577:5;3552:31;:::i;3618:456::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3945:2:1;3930:18;;3917:32;3958:33;3917:32;3958:33;:::i;:::-;3618:456;;4010:7;;-1:-1:-1;;;4064:2:1;4049:18;;;;4036:32;;3618:456::o;4268:382::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;:::-;4518:5;-1:-1:-1;4575:2:1;4560:18;;4547:32;4588:30;4547:32;4588:30;:::i;:::-;4637:7;4627:17;;;4268:382;;;;;:::o;4655:180::-;4714:6;4767:2;4755:9;4746:7;4742:23;4738:32;4735:52;;;4783:1;4780;4773:12;4735:52;-1:-1:-1;4806:23:1;;4655:180;-1:-1:-1;4655:180:1:o;4840:316::-;4917:6;4925;4933;4986:2;4974:9;4965:7;4961:23;4957:32;4954:52;;;5002:1;4999;4992:12;4954:52;-1:-1:-1;;5025:23:1;;;5095:2;5080:18;;5067:32;;-1:-1:-1;5146:2:1;5131:18;;;5118:32;;4840:316;-1:-1:-1;4840:316:1:o;5693:388::-;5761:6;5769;5822:2;5810:9;5801:7;5797:23;5793:32;5790:52;;;5838:1;5835;5828:12;5790:52;5877:9;5864:23;5896:31;5921:5;5896:31;:::i;:::-;5946:5;-1:-1:-1;6003:2:1;5988:18;;5975:32;6016:33;5975:32;6016:33;:::i;6309:380::-;6388:1;6384:12;;;;6431;;;6452:61;;6506:4;6498:6;6494:17;6484:27;;6452:61;6559:2;6551:6;6548:14;6528:18;6525:38;6522:161;;6605:10;6600:3;6596:20;6593:1;6586:31;6640:4;6637:1;6630:15;6668:4;6665:1;6658:15;6522:161;;6309:380;;;:::o;6694:356::-;6896:2;6878:21;;;6915:18;;;6908:30;6974:34;6969:2;6954:18;;6947:62;7041:2;7026:18;;6694:356::o;7055:127::-;7116:10;7111:3;7107:20;7104:1;7097:31;7147:4;7144:1;7137:15;7171:4;7168:1;7161:15;7187:127;7248:10;7243:3;7239:20;7236:1;7229:31;7279:4;7276:1;7269:15;7303:4;7300:1;7293:15;7319:135;7358:3;7379:17;;;7376:43;;7399:18;;:::i;:::-;-1:-1:-1;7446:1:1;7435:13;;7319:135::o;7868:128::-;7935:9;;;7956:11;;;7953:37;;;7970:18;;:::i;8001:125::-;8066:9;;;8087:10;;;8084:36;;;8100:18;;:::i;8131:422::-;8220:1;8263:5;8220:1;8277:270;8298:7;8288:8;8285:21;8277:270;;;8357:4;8353:1;8349:6;8345:17;8339:4;8336:27;8333:53;;;8366:18;;:::i;:::-;8416:7;8406:8;8402:22;8399:55;;;8436:16;;;;8399:55;8515:22;;;;8475:15;;;;8277:270;;;8281:3;8131:422;;;;;:::o;8558:806::-;8607:5;8637:8;8627:80;;-1:-1:-1;8678:1:1;8692:5;;8627:80;8726:4;8716:76;;-1:-1:-1;8763:1:1;8777:5;;8716:76;8808:4;8826:1;8821:59;;;;8894:1;8889:130;;;;8801:218;;8821:59;8851:1;8842:10;;8865:5;;;8889:130;8926:3;8916:8;8913:17;8910:43;;;8933:18;;:::i;:::-;-1:-1:-1;;8989:1:1;8975:16;;9004:5;;8801:218;;9103:2;9093:8;9090:16;9084:3;9078:4;9075:13;9071:36;9065:2;9055:8;9052:16;9047:2;9041:4;9038:12;9034:35;9031:77;9028:159;;;-1:-1:-1;9140:19:1;;;9172:5;;9028:159;9219:34;9244:8;9238:4;9219:34;:::i;:::-;9289:6;9285:1;9281:6;9277:19;9268:7;9265:32;9262:58;;;9300:18;;:::i;:::-;9338:20;;8558:806;-1:-1:-1;;;8558:806:1:o;9369:140::-;9427:5;9456:47;9497:4;9487:8;9483:19;9477:4;9456:47;:::i;9514:168::-;9587:9;;;9618;;9635:15;;;9629:22;;9615:37;9605:71;;9656:18;;:::i;10679:245::-;10746:6;10799:2;10787:9;10778:7;10774:23;10770:32;10767:52;;;10815:1;10812;10805:12;10767:52;10847:9;10841:16;10866:28;10888:5;10866:28;:::i;14845:217::-;14885:1;14911;14901:132;;14955:10;14950:3;14946:20;14943:1;14936:31;14990:4;14987:1;14980:15;15018:4;15015:1;15008:15;14901:132;-1:-1:-1;15047:9:1;;14845:217::o;16284:251::-;16354:6;16407:2;16395:9;16386:7;16382:23;16378:32;16375:52;;;16423:1;16420;16413:12;16375:52;16455:9;16449:16;16474:31;16499:5;16474:31;:::i;16540:980::-;16802:4;16850:3;16839:9;16835:19;16881:6;16870:9;16863:25;16907:2;16945:6;16940:2;16929:9;16925:18;16918:34;16988:3;16983:2;16972:9;16968:18;16961:31;17012:6;17047;17041:13;17078:6;17070;17063:22;17116:3;17105:9;17101:19;17094:26;;17155:2;17147:6;17143:15;17129:29;;17176:1;17186:195;17200:6;17197:1;17194:13;17186:195;;;17265:13;;-1:-1:-1;;;;;17261:39:1;17249:52;;17356:15;;;;17321:12;;;;17297:1;17215:9;17186:195;;;-1:-1:-1;;;;;;;17437:32:1;;;;17432:2;17417:18;;17410:60;-1:-1:-1;;;17501:3:1;17486:19;17479:35;17398:3;16540:980;-1:-1:-1;;;16540:980:1:o;18137:306::-;18225:6;18233;18241;18294:2;18282:9;18273:7;18269:23;18265:32;18262:52;;;18310:1;18307;18300:12;18262:52;18339:9;18333:16;18323:26;;18389:2;18378:9;18374:18;18368:25;18358:35;;18433:2;18422:9;18418:18;18412:25;18402:35;;18137:306;;;;;:::o
Swarm Source
ipfs://eeb2e96f582715d7911a56282669b7dbc1f7ff7457fcbd3a6966a732d2da9639
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.