ERC-20
Overview
Max Total Supply
1,000,000,000 SUPERDOGE
Holders
80
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
12,788,126.510026971182605476 SUPERDOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KRYPTOINU
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-17 */ /** Buy & Sell Tax: 4% Telegram: https://t.me/kryptoinu Twitter: https://twitter.com/kryptoinuerc20 */ 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 KRYPTOINU 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 = 3e6 * 10**18; uint256 public maxWalletLimit = 2e7 * 10**18; uint256 public genesis_block; uint256 private deadline = 1; uint256 private launchtax = 99; address public marketingWallet = 0x8eAfD085d76A30b2084a8cE3680bd554f189977F; address private devWallet = 0x4741f49BB1c6CB40Bc0202e49569f3FEa3737EFc; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes private taxes = Taxes(4, 0, 0); Taxes private sellTaxes = Taxes(2, 0, 2); uint256 public TotalBuyFee = taxes.marketing + taxes.liquidity + taxes.dev; uint256 public TotalSellFee = sellTaxes.marketing + sellTaxes.liquidity + sellTaxes.dev; mapping(address => bool) public exemptFee; //Anti Dump mapping(address => uint256) private _lastSell; modifier mutexLock() { if (!_liquidityMutex) { _liquidityMutex = true; _; _liquidityMutex = false; } } constructor() ERC20("KRYPTO INU", "SUPERDOGE") { _tokengeneration(msg.sender, 1e9 * 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 30% 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 >= 1e6, "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":[],"name":"TotalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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
6007805462ffffff60a01b191690556a027b46536c66c8e30000006008556a108b2a2c280290940000006009556001600b556063600c55600d80546001600160a01b0319908116738eafd085d76a30b2084a8ce3680bd554f189977f17909155600e8054909116734741f49bb1c6cb40bc0202e49569f3fea3737efc17905560046080819052600060a081905260c0819052600f82905560108190556011819055610140604052600260e08190526101008290526101208190526012819055601382905560145590620000d49082906200059e565b620000e091906200059e565b601555601454601354601254620000f891906200059e565b6200010491906200059e565b6016553480156200011457600080fd5b506040518060400160405280600a8152602001694b525950544f20494e5560b01b815250604051806040016040528060098152602001685355504552444f474560b81b81525081600390816200016b91906200065e565b5060046200017a82826200065e565b50505062000197620001916200047060201b60201c565b62000474565b620001c033620001aa6012600a62000827565b620001ba90633b9aca006200083f565b620004c6565b336000908152601760209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000251919062000859565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c5919062000859565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000339919062000859565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e54909416835290822080548416821790557f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b030380548416821790557ff4d8fe8682944aad7910cbbf27da6916af3289a2a48b6811250a498b558b931c80548416821790557fbfe210d72f201fd58ee613d4cb799cbbe7fa9e16ec7b40fcf60b7548ea55f995805484168217905573dba68f07d1b7ca219f78ae8582c213d975c25caf9091527f1497029dec09f36b42b6c68749bd96c358fd5bba1f16b8f9da9c5d47858c36d7805490921617905562000884565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200052f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620005b457620005b462000588565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005e557607f821691505b6020821081036200060657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058357600081815260208120601f850160051c81016020861015620006355750805b601f850160051c820191505b81811015620006565782815560010162000641565b505050505050565b81516001600160401b038111156200067a576200067a620005ba565b62000692816200068b8454620005d0565b846200060c565b602080601f831160018114620006ca5760008415620006b15750858301515b600019600386901b1c1916600185901b17855562000656565b600085815260208120601f198616915b82811015620006fb57888601518255948401946001909101908401620006da565b50858210156200071a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b808511156200076b5781600019048211156200074f576200074f62000588565b808516156200075d57918102915b93841c93908002906200072f565b509250929050565b6000826200078457506001620005b4565b816200079357506000620005b4565b8160018114620007ac5760028114620007b757620007d7565b6001915050620005b4565b60ff841115620007cb57620007cb62000588565b50506001821b620005b4565b5060208310610133831016604e8410600b8410161715620007fc575081810a620005b4565b6200080883836200072a565b80600019048211156200081f576200081f62000588565b029392505050565b60006200083860ff84168362000773565b9392505050565b8082028115828204841417620005b457620005b462000588565b6000602082840312156200086c57600080fd5b81516001600160a01b03811681146200083857600080fd5b6123be80620008946000396000f3fe6080604052600436106102345760003560e01c80637b46eee51161012e578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461067c578063edaa1168146106c2578063f2fde38b146106e2578063f887ea4014610702578063fbe6324e1461072257600080fd5b8063a9059cbb146105d6578063aacebbe3146105f6578063c2c327d114610616578063c5d32bb214610636578063dc89f88c1461066657600080fd5b806395d89b41116100f257806395d89b41146105415780639d282cd6146105565780639e252f0014610576578063a457c2d714610596578063a8aa1b31146105b657600080fd5b80637b46eee5146104c257806385141a77146104d85780638a8c523c146104ee5780638cd4426d146105035780638da5cb5b1461052357600080fd5b8063313ce567116101bc5780634e736f22116101805780634e736f221461040957806366a88d961461042957806370a082311461043f578063715018a61461047557806375f0a8741461048a57600080fd5b8063313ce5671461036c578063355496ca1461038857806339509351146103a857806342b6fa11146103c85780634ada218b146103e857600080fd5b80631675d802116102035780631675d802146102dd57806318160ddd146103015780631816467f1461031657806323b872dd14610336578063274a533c1461035657600080fd5b806306fdde0314610240578063095ea7b31461026b5780630e375a5c1461029b5780631340538f146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610743565b6040516102629190611dd6565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e49565b6107d5565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004611ea4565b6107ec565b005b3480156102c957600080fd5b506102bb6102d8366004611f7b565b61088b565b3480156102e957600080fd5b506102f360085481565b604051908152602001610262565b34801561030d57600080fd5b506002546102f3565b34801561032257600080fd5b506102bb610331366004611f9f565b6108d3565b34801561034257600080fd5b5061028b610351366004611fbc565b61091f565b34801561036257600080fd5b506102f3600a5481565b34801561037857600080fd5b5060405160128152602001610262565b34801561039457600080fd5b506102bb6103a3366004611ffd565b6109d0565b3480156103b457600080fd5b5061028b6103c3366004611e49565b610a25565b3480156103d457600080fd5b506102bb6103e3366004612036565b610a5c565b3480156103f457600080fd5b5060075461028b90600160b01b900460ff1681565b34801561041557600080fd5b506102bb61042436600461204f565b610aa2565b34801561043557600080fd5b506102f360095481565b34801561044b57600080fd5b506102f361045a366004611f9f565b6001600160a01b031660009081526020819052604090205490565b34801561048157600080fd5b506102bb610b57565b34801561049657600080fd5b50600d546104aa906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156104ce57600080fd5b506102f360155481565b3480156104e457600080fd5b506104aa61dead81565b3480156104fa57600080fd5b506102bb610b8d565b34801561050f57600080fd5b506102bb61051e366004611e49565b610c2c565b34801561052f57600080fd5b506005546001600160a01b03166104aa565b34801561054d57600080fd5b50610255610ca3565b34801561056257600080fd5b506102bb61057136600461204f565b610cb2565b34801561058257600080fd5b506102bb610591366004612036565b610d68565b3480156105a257600080fd5b5061028b6105b1366004611e49565b610da6565b3480156105c257600080fd5b506007546104aa906001600160a01b031681565b3480156105e257600080fd5b5061028b6105f1366004611e49565b610e41565b34801561060257600080fd5b506102bb610611366004611f9f565b610e4e565b34801561062257600080fd5b506102bb610631366004612036565b610e9a565b34801561064257600080fd5b5061028b610651366004611f9f565b60176020526000908152604090205460ff1681565b34801561067257600080fd5b506102f360165481565b34801561068857600080fd5b506102f361069736600461207b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ce57600080fd5b506102bb6106dd366004612036565b610f48565b3480156106ee57600080fd5b506102bb6106fd366004611f9f565b61102f565b34801561070e57600080fd5b506006546104aa906001600160a01b031681565b34801561072e57600080fd5b5060075461028b90600160a81b900460ff1681565b606060038054610752906120a9565b80601f016020809104026020016040519081016040528092919081815260200182805461077e906120a9565b80156107cb5780601f106107a0576101008083540402835291602001916107cb565b820191906000526020600020905b8154815290600101906020018083116107ae57829003601f168201915b5050505050905090565b60006107e23384846110ca565b5060015b92915050565b6005546001600160a01b0316331461081f5760405162461bcd60e51b8152600401610816906120e3565b60405180910390fd5b60005b825181101561088657816017600085848151811061084257610842612118565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061087e81612144565b915050610822565b505050565b6005546001600160a01b031633146108b55760405162461bcd60e51b8152600401610816906120e3565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108fd5760405162461bcd60e51b8152600401610816906120e3565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061092c8484846111ee565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109b15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610816565b6109c585336109c0868561215d565b6110ca565b506001949350505050565b6005546001600160a01b031633146109fa5760405162461bcd60e51b8152600401610816906120e3565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107e29185906109c0908690612170565b6005546001600160a01b03163314610a865760405162461bcd60e51b8152600401610816906120e3565b610a926012600a612267565b610a9c9082612276565b60085550565b6005546001600160a01b03163314610acc5760405162461bcd60e51b8152600401610816906120e3565b601e81610ad98486612170565b610ae39190612170565b1115610b315760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610816565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b815760405162461bcd60e51b8152600401610816906120e3565b610b8b600061170c565b565b6005546001600160a01b03163314610bb75760405162461bcd60e51b8152600401610816906120e3565b600754600160b01b900460ff1615610c115760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610816565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610886919061228d565b606060048054610752906120a9565b6005546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610816906120e3565b604080516060810182528481526020810184905201819052600f83905560108290556011819055600a81610d108486612170565b610d1a9190612170565b11156108865760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610816565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610da2573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e285760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610816565b610e3733856109c0868561215d565b5060019392505050565b60006107e23384846111ee565b6005546001600160a01b03163314610e785760405162461bcd60e51b8152600401610816906120e3565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610816906120e3565b620f4240811015610f2c5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b6064820152608401610816565b610f386012600a612267565b610f429082612276565b60095550565b6005546001600160a01b03163314610f725760405162461bcd60e51b8152600401610816906120e3565b600754600160b01b900460ff1615610fda5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610816565b600a811061102a5760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e203130000000006044820152606401610816565b600b55565b6005546001600160a01b031633146110595760405162461bcd60e51b8152600401610816906120e3565b6001600160a01b0381166110be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610816565b6110c78161170c565b50565b6001600160a01b03831661112c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610816565b6001600160a01b03821661118d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610816565b6001600160a01b03831660009081526017602052604090205460ff1615801561129257506001600160a01b03821660009081526017602052604090205460ff16155b156112e657600754600160b01b900460ff166112e65760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610816565b6007546001600160a01b03848116911614801561131c57506001600160a01b03821660009081526017602052604090205460ff16155b80156113325750600754600160a01b900460ff16155b156113b2576009548161135a846001600160a01b031660009081526020819052604090205490565b6113649190612170565b11156113b25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610816565b6007546001600160a01b038481169116148015906113e957506001600160a01b03821660009081526017602052604090205460ff16155b801561140e57506001600160a01b03831660009081526017602052604090205460ff16155b80156114245750600754600160a01b900460ff16155b156114b9576007546001600160a01b038381169116146114b95760095481611461846001600160a01b031660009081526020819052604090205490565b61146b9190612170565b11156114b95760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610816565b60008060006114e260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561152457506001600160a01b03871660009081526017602052604090205460ff16155b801561153e5750600b54600a5461153b9190612170565b43105b600754909150600160a01b900460ff168061157157506001600160a01b03881660009081526017602052604090205460ff165b8061159457506001600160a01b03871660009081526017602052604090205460ff165b156115a2576000925061166c565b6007546001600160a01b0388811691161480156115bd575080155b1561160d576014546012546013546115d59190612170565b6115df9190612170565b604080516060810182526012548152601354602082015260145491810191909152909550859450915061166c565b8061165d57601154600f546010546116259190612170565b61162f9190612170565b60408051606081018252600f548152601054602082015260115491810191909152909550859450915061166c565b801561166c57600c5494508493505b60646116788588612276565b61168291906122aa565b600754909350600160a81b900460ff1680156116ac57506007546001600160a01b03898116911614155b156116bb576116bb858361175e565b6116cf88886116ca868a61215d565b6118d7565b821561170257841561170257600060646116e98789612276565b6116f391906122aa565b90506117008930836118d7565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610da2576007805460ff60a01b1916600160a01b17905581156118c6573060009081526020819052604090205460085481106118c457600160085411156117b157506008545b60006117be846002612276565b90506000818460200151846117d39190612276565b6117dd91906122aa565b905060006117eb828561215d565b9050476117f782611aaf565b6000611803824761215d565b90506000876020015186611817919061215d565b61182190836122aa565b905060008860200151826118359190612276565b90508015611847576118478682611c09565b8851600090611857846002612276565b6118619190612276565b9050801561187f57600d5461187f906001600160a01b031682611cbd565b60408a0151600090611892856002612276565b61189c9190612276565b905080156118ba57600e546118ba906001600160a01b031682611cbd565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661193b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610816565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610816565b6001600160a01b03831660009081526020819052604090205481811015611a155760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610816565b611a1f828261215d565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a55908490612170565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611aa191815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ae457611ae4612118565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6191906122cc565b81600181518110611b7457611b74612118565b6001600160a01b039283166020918202929092010152600654611b9a91309116846110ca565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bd39085906000908690309042906004016122e9565b600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505050505050565b600654611c219030906001600160a01b0316846110ca565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c91573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cb6919061235a565b5050505050565b80471015611d0d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610816565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d5a576040519150601f19603f3d011682016040523d82523d6000602084013e611d5f565b606091505b50509050806108865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610816565b600060208083528351808285015260005b81811015611e0357858101830151858201604001528201611de7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110c757600080fd5b8035611e4481611e24565b919050565b60008060408385031215611e5c57600080fd5b8235611e6781611e24565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110c757600080fd5b8035611e4481611e8b565b60008060408385031215611eb757600080fd5b823567ffffffffffffffff80821115611ecf57600080fd5b818501915085601f830112611ee357600080fd5b8135602082821115611ef757611ef7611e75565b8160051b604051601f19603f83011681018181108682111715611f1c57611f1c611e75565b604052928352818301935084810182019289841115611f3a57600080fd5b948201945b83861015611f5f57611f5086611e39565b85529482019493820193611f3f565b9650611f6e9050878201611e99565b9450505050509250929050565b600060208284031215611f8d57600080fd5b8135611f9881611e8b565b9392505050565b600060208284031215611fb157600080fd5b8135611f9881611e24565b600080600060608486031215611fd157600080fd5b8335611fdc81611e24565b92506020840135611fec81611e24565b929592945050506040919091013590565b6000806040838503121561201057600080fd5b823561201b81611e24565b9150602083013561202b81611e8b565b809150509250929050565b60006020828403121561204857600080fd5b5035919050565b60008060006060848603121561206457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561208e57600080fd5b823561209981611e24565b9150602083013561202b81611e24565b600181811c908216806120bd57607f821691505b6020821081036120dd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121565761215661212e565b5060010190565b818103818111156107e6576107e661212e565b808201808211156107e6576107e661212e565b600181815b808511156121be5781600019048211156121a4576121a461212e565b808516156121b157918102915b93841c9390800290612188565b509250929050565b6000826121d5575060016107e6565b816121e2575060006107e6565b81600181146121f857600281146122025761221e565b60019150506107e6565b60ff8411156122135761221361212e565b50506001821b6107e6565b5060208310610133831016604e8410600b8410161715612241575081810a6107e6565b61224b8383612183565b806000190482111561225f5761225f61212e565b029392505050565b6000611f9860ff8416836121c6565b80820281158282048414176107e6576107e661212e565b60006020828403121561229f57600080fd5b8151611f9881611e8b565b6000826122c757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122de57600080fd5b8151611f9881611e24565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123395784516001600160a01b031683529383019391830191600101612314565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200e270ec785db24c3df34110360292b2bcd87fb989e3832b5432501234b6100eb64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102345760003560e01c80637b46eee51161012e578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461067c578063edaa1168146106c2578063f2fde38b146106e2578063f887ea4014610702578063fbe6324e1461072257600080fd5b8063a9059cbb146105d6578063aacebbe3146105f6578063c2c327d114610616578063c5d32bb214610636578063dc89f88c1461066657600080fd5b806395d89b41116100f257806395d89b41146105415780639d282cd6146105565780639e252f0014610576578063a457c2d714610596578063a8aa1b31146105b657600080fd5b80637b46eee5146104c257806385141a77146104d85780638a8c523c146104ee5780638cd4426d146105035780638da5cb5b1461052357600080fd5b8063313ce567116101bc5780634e736f22116101805780634e736f221461040957806366a88d961461042957806370a082311461043f578063715018a61461047557806375f0a8741461048a57600080fd5b8063313ce5671461036c578063355496ca1461038857806339509351146103a857806342b6fa11146103c85780634ada218b146103e857600080fd5b80631675d802116102035780631675d802146102dd57806318160ddd146103015780631816467f1461031657806323b872dd14610336578063274a533c1461035657600080fd5b806306fdde0314610240578063095ea7b31461026b5780630e375a5c1461029b5780631340538f146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610743565b6040516102629190611dd6565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e49565b6107d5565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004611ea4565b6107ec565b005b3480156102c957600080fd5b506102bb6102d8366004611f7b565b61088b565b3480156102e957600080fd5b506102f360085481565b604051908152602001610262565b34801561030d57600080fd5b506002546102f3565b34801561032257600080fd5b506102bb610331366004611f9f565b6108d3565b34801561034257600080fd5b5061028b610351366004611fbc565b61091f565b34801561036257600080fd5b506102f3600a5481565b34801561037857600080fd5b5060405160128152602001610262565b34801561039457600080fd5b506102bb6103a3366004611ffd565b6109d0565b3480156103b457600080fd5b5061028b6103c3366004611e49565b610a25565b3480156103d457600080fd5b506102bb6103e3366004612036565b610a5c565b3480156103f457600080fd5b5060075461028b90600160b01b900460ff1681565b34801561041557600080fd5b506102bb61042436600461204f565b610aa2565b34801561043557600080fd5b506102f360095481565b34801561044b57600080fd5b506102f361045a366004611f9f565b6001600160a01b031660009081526020819052604090205490565b34801561048157600080fd5b506102bb610b57565b34801561049657600080fd5b50600d546104aa906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156104ce57600080fd5b506102f360155481565b3480156104e457600080fd5b506104aa61dead81565b3480156104fa57600080fd5b506102bb610b8d565b34801561050f57600080fd5b506102bb61051e366004611e49565b610c2c565b34801561052f57600080fd5b506005546001600160a01b03166104aa565b34801561054d57600080fd5b50610255610ca3565b34801561056257600080fd5b506102bb61057136600461204f565b610cb2565b34801561058257600080fd5b506102bb610591366004612036565b610d68565b3480156105a257600080fd5b5061028b6105b1366004611e49565b610da6565b3480156105c257600080fd5b506007546104aa906001600160a01b031681565b3480156105e257600080fd5b5061028b6105f1366004611e49565b610e41565b34801561060257600080fd5b506102bb610611366004611f9f565b610e4e565b34801561062257600080fd5b506102bb610631366004612036565b610e9a565b34801561064257600080fd5b5061028b610651366004611f9f565b60176020526000908152604090205460ff1681565b34801561067257600080fd5b506102f360165481565b34801561068857600080fd5b506102f361069736600461207b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ce57600080fd5b506102bb6106dd366004612036565b610f48565b3480156106ee57600080fd5b506102bb6106fd366004611f9f565b61102f565b34801561070e57600080fd5b506006546104aa906001600160a01b031681565b34801561072e57600080fd5b5060075461028b90600160a81b900460ff1681565b606060038054610752906120a9565b80601f016020809104026020016040519081016040528092919081815260200182805461077e906120a9565b80156107cb5780601f106107a0576101008083540402835291602001916107cb565b820191906000526020600020905b8154815290600101906020018083116107ae57829003601f168201915b5050505050905090565b60006107e23384846110ca565b5060015b92915050565b6005546001600160a01b0316331461081f5760405162461bcd60e51b8152600401610816906120e3565b60405180910390fd5b60005b825181101561088657816017600085848151811061084257610842612118565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061087e81612144565b915050610822565b505050565b6005546001600160a01b031633146108b55760405162461bcd60e51b8152600401610816906120e3565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108fd5760405162461bcd60e51b8152600401610816906120e3565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600061092c8484846111ee565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109b15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610816565b6109c585336109c0868561215d565b6110ca565b506001949350505050565b6005546001600160a01b031633146109fa5760405162461bcd60e51b8152600401610816906120e3565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107e29185906109c0908690612170565b6005546001600160a01b03163314610a865760405162461bcd60e51b8152600401610816906120e3565b610a926012600a612267565b610a9c9082612276565b60085550565b6005546001600160a01b03163314610acc5760405162461bcd60e51b8152600401610816906120e3565b601e81610ad98486612170565b610ae39190612170565b1115610b315760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610816565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b815760405162461bcd60e51b8152600401610816906120e3565b610b8b600061170c565b565b6005546001600160a01b03163314610bb75760405162461bcd60e51b8152600401610816906120e3565b600754600160b01b900460ff1615610c115760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610816565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610886919061228d565b606060048054610752906120a9565b6005546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610816906120e3565b604080516060810182528481526020810184905201819052600f83905560108290556011819055600a81610d108486612170565b610d1a9190612170565b11156108865760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610816565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610da2573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e285760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610816565b610e3733856109c0868561215d565b5060019392505050565b60006107e23384846111ee565b6005546001600160a01b03163314610e785760405162461bcd60e51b8152600401610816906120e3565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610816906120e3565b620f4240811015610f2c5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b6064820152608401610816565b610f386012600a612267565b610f429082612276565b60095550565b6005546001600160a01b03163314610f725760405162461bcd60e51b8152600401610816906120e3565b600754600160b01b900460ff1615610fda5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610816565b600a811061102a5760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e203130000000006044820152606401610816565b600b55565b6005546001600160a01b031633146110595760405162461bcd60e51b8152600401610816906120e3565b6001600160a01b0381166110be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610816565b6110c78161170c565b50565b6001600160a01b03831661112c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610816565b6001600160a01b03821661118d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610816565b6001600160a01b03831660009081526017602052604090205460ff1615801561129257506001600160a01b03821660009081526017602052604090205460ff16155b156112e657600754600160b01b900460ff166112e65760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610816565b6007546001600160a01b03848116911614801561131c57506001600160a01b03821660009081526017602052604090205460ff16155b80156113325750600754600160a01b900460ff16155b156113b2576009548161135a846001600160a01b031660009081526020819052604090205490565b6113649190612170565b11156113b25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610816565b6007546001600160a01b038481169116148015906113e957506001600160a01b03821660009081526017602052604090205460ff16155b801561140e57506001600160a01b03831660009081526017602052604090205460ff16155b80156114245750600754600160a01b900460ff16155b156114b9576007546001600160a01b038381169116146114b95760095481611461846001600160a01b031660009081526020819052604090205490565b61146b9190612170565b11156114b95760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610816565b60008060006114e260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561152457506001600160a01b03871660009081526017602052604090205460ff16155b801561153e5750600b54600a5461153b9190612170565b43105b600754909150600160a01b900460ff168061157157506001600160a01b03881660009081526017602052604090205460ff165b8061159457506001600160a01b03871660009081526017602052604090205460ff165b156115a2576000925061166c565b6007546001600160a01b0388811691161480156115bd575080155b1561160d576014546012546013546115d59190612170565b6115df9190612170565b604080516060810182526012548152601354602082015260145491810191909152909550859450915061166c565b8061165d57601154600f546010546116259190612170565b61162f9190612170565b60408051606081018252600f548152601054602082015260115491810191909152909550859450915061166c565b801561166c57600c5494508493505b60646116788588612276565b61168291906122aa565b600754909350600160a81b900460ff1680156116ac57506007546001600160a01b03898116911614155b156116bb576116bb858361175e565b6116cf88886116ca868a61215d565b6118d7565b821561170257841561170257600060646116e98789612276565b6116f391906122aa565b90506117008930836118d7565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610da2576007805460ff60a01b1916600160a01b17905581156118c6573060009081526020819052604090205460085481106118c457600160085411156117b157506008545b60006117be846002612276565b90506000818460200151846117d39190612276565b6117dd91906122aa565b905060006117eb828561215d565b9050476117f782611aaf565b6000611803824761215d565b90506000876020015186611817919061215d565b61182190836122aa565b905060008860200151826118359190612276565b90508015611847576118478682611c09565b8851600090611857846002612276565b6118619190612276565b9050801561187f57600d5461187f906001600160a01b031682611cbd565b60408a0151600090611892856002612276565b61189c9190612276565b905080156118ba57600e546118ba906001600160a01b031682611cbd565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661193b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610816565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610816565b6001600160a01b03831660009081526020819052604090205481811015611a155760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610816565b611a1f828261215d565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a55908490612170565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611aa191815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ae457611ae4612118565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6191906122cc565b81600181518110611b7457611b74612118565b6001600160a01b039283166020918202929092010152600654611b9a91309116846110ca565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bd39085906000908690309042906004016122e9565b600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505050505050565b600654611c219030906001600160a01b0316846110ca565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c91573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cb6919061235a565b5050505050565b80471015611d0d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610816565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d5a576040519150601f19603f3d011682016040523d82523d6000602084013e611d5f565b606091505b50509050806108865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610816565b600060208083528351808285015260005b81811015611e0357858101830151858201604001528201611de7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110c757600080fd5b8035611e4481611e24565b919050565b60008060408385031215611e5c57600080fd5b8235611e6781611e24565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110c757600080fd5b8035611e4481611e8b565b60008060408385031215611eb757600080fd5b823567ffffffffffffffff80821115611ecf57600080fd5b818501915085601f830112611ee357600080fd5b8135602082821115611ef757611ef7611e75565b8160051b604051601f19603f83011681018181108682111715611f1c57611f1c611e75565b604052928352818301935084810182019289841115611f3a57600080fd5b948201945b83861015611f5f57611f5086611e39565b85529482019493820193611f3f565b9650611f6e9050878201611e99565b9450505050509250929050565b600060208284031215611f8d57600080fd5b8135611f9881611e8b565b9392505050565b600060208284031215611fb157600080fd5b8135611f9881611e24565b600080600060608486031215611fd157600080fd5b8335611fdc81611e24565b92506020840135611fec81611e24565b929592945050506040919091013590565b6000806040838503121561201057600080fd5b823561201b81611e24565b9150602083013561202b81611e8b565b809150509250929050565b60006020828403121561204857600080fd5b5035919050565b60008060006060848603121561206457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561208e57600080fd5b823561209981611e24565b9150602083013561202b81611e24565b600181811c908216806120bd57607f821691505b6020821081036120dd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121565761215661212e565b5060010190565b818103818111156107e6576107e661212e565b808201808211156107e6576107e661212e565b600181815b808511156121be5781600019048211156121a4576121a461212e565b808516156121b157918102915b93841c9390800290612188565b509250929050565b6000826121d5575060016107e6565b816121e2575060006107e6565b81600181146121f857600281146122025761221e565b60019150506107e6565b60ff8411156122135761221361212e565b50506001821b6107e6565b5060208310610133831016604e8410600b8410161715612241575081810a6107e6565b61224b8383612183565b806000190482111561225f5761225f61212e565b029392505050565b6000611f9860ff8416836121c6565b80820281158282048414176107e6576107e661212e565b60006020828403121561229f57600080fd5b8151611f9881611e8b565b6000826122c757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122de57600080fd5b8151611f9881611e24565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123395784516001600160a01b031683529383019391830191600101612314565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200e270ec785db24c3df34110360292b2bcd87fb989e3832b5432501234b6100eb64736f6c63430008110033
Deployed Bytecode Sourcemap
12803:11434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15030:161;;;;;;;;;;-1:-1:-1;15030:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;15030:161:0;1162:187:1;23511:202:0;;;;;;;;;;-1:-1:-1;23511:202:0;;;;;:::i;:::-;;:::i;:::-;;21737:152;;;;;;;;;;-1:-1:-1;21737:152:0;;;;;:::i;:::-;;:::i;13076:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;13076:53:0;3184:177:1;3614:108:0;;;;;;;;;;-1:-1:-1;3702:12:0;;3614:108;;23273:102;;;;;;;;;;-1:-1:-1;23273:102:0;;;;;:::i;:::-;;:::i;15199:448::-;;;;;;;;;;-1:-1:-1;15199:448:0;;;;;:::i;:::-;;:::i;13189:28::-;;;;;;;;;;;;;;;;3456:93;;;;;;;;;;-1:-1:-1;3456:93:0;;3539:2;4221:36:1;;4209:2;4194:18;3456:93:0;4079:184:1;23383:120:0;;;;;;;;;;-1:-1:-1;23383:120:0;;;;;:::i;:::-;;:::i;15655:248::-;;;;;;;;;;-1:-1:-1;15655:248:0;;;;;:::i;:::-;;:::i;21897:177::-;;;;;;;;;;-1:-1:-1;21897:177:0;;;;;:::i;:::-;;:::i;13033:34::-;;;;;;;;;;-1:-1:-1;13033:34:0;;;;-1:-1:-1;;;13033:34:0;;;;;;22374:286;;;;;;;;;;-1:-1:-1;22374:286:0;;;;;:::i;:::-;;:::i;13136:44::-;;;;;;;;;;;;;;;;3785:127;;;;;;;;;;-1:-1:-1;3785:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3886:18:0;3859:7;3886:18;;;;;;;;;;;;3785:127;11466:94;;;;;;;;;;;;;:::i;13298:75::-;;;;;;;;;;-1:-1:-1;13298:75:0;;;;-1:-1:-1;;;;;13298:75:0;;;;;;-1:-1:-1;;;;;5325:32:1;;;5307:51;;5295:2;5280:18;13298:75:0;5161:203:1;13744:74:0;;;;;;;;;;;;;;;;13454:79;;;;;;;;;;;;13491:42;13454:79;;22667:224;;;;;;;;;;;;;:::i;24052:127::-;;;;;;;;;;-1:-1:-1;24052:127:0;;;;;:::i;:::-;;:::i;11243:87::-;;;;;;;;;;-1:-1:-1;11316:6:0;;-1:-1:-1;;;;;11316:6:0;11243:87;;2713:104;;;;;;;;;;;;;:::i;22082:284::-;;;;;;;;;;-1:-1:-1;22082:284:0;;;;;:::i;:::-;;:::i;23940:104::-;;;;;;;;;;-1:-1:-1;23940:104:0;;;;;:::i;:::-;;:::i;15911:410::-;;;;;;;;;;-1:-1:-1;15911:410:0;;;;;:::i;:::-;;:::i;12917:19::-;;;;;;;;;;-1:-1:-1;12917:19:0;;;;-1:-1:-1;;;;;12917:19:0;;;16329:165;;;;;;;;;;-1:-1:-1;16329:165:0;;;;;:::i;:::-;;:::i;23150:115::-;;;;;;;;;;-1:-1:-1;23150:115:0;;;;;:::i;:::-;;:::i;23721:211::-;;;;;;;;;;-1:-1:-1;23721:211:0;;;;;:::i;:::-;;:::i;13921:41::-;;;;;;;;;;-1:-1:-1;13921:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13825:87;;;;;;;;;;;;;;;;4404:201;;;;;;;;;;-1:-1:-1;4404:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4570:18:0;;;4538:7;4570:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4404:201;22899:243;;;;;;;;;;-1:-1:-1;22899:243:0;;;;;:::i;:::-;;:::i;11568:192::-;;;;;;;;;;-1:-1:-1;11568:192:0;;;;;:::i;:::-;;:::i;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;;;;;;2494:100;2548:13;2581:5;2574:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:100;:::o;15030:161::-;15105:4;15122:39;296:10;15145:7;15154:6;15122:8;:39::i;:::-;-1:-1:-1;15179:4:0;15030:161;;;;;:::o;23511:202::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;;;;;;;;;23608:9:::1;23603:103;23627:8;:15;23623:1;:19;23603:103;;;23689:5;23664:9;:22;23674:8;23683:1;23674:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23664:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23664:22:0;:30;;-1:-1:-1;;23664:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23644:3;::::1;::::0;::::1;:::i;:::-;;;;23603:103;;;;23511:202:::0;;:::o;21737:152::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;21855:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21855:26:0::1;-1:-1:-1::0;;;;21855:26:0;;::::1;::::0;;;::::1;::::0;;21737:152::o;23273:102::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;23346:9:::1;:21:::0;;-1:-1:-1;;;;;;23346:21:0::1;-1:-1:-1::0;;;;;23346:21:0;;;::::1;::::0;;;::::1;::::0;;23273:102::o;15199:448::-;15331:4;15348:36;15358:6;15366:9;15377:6;15348:9;:36::i;:::-;-1:-1:-1;;;;;15424:19:0;;15397:24;15424:19;;;:11;:19;;;;;;;;296:10;15424:33;;;;;;;;15476:26;;;;15468:79;;;;-1:-1:-1;;;15468:79:0;;7337:2:1;15468:79:0;;;7319:21:1;7376:2;7356:18;;;7349:30;7415:34;7395:18;;;7388:62;-1:-1:-1;;;7466:18:1;;;7459:38;7514:19;;15468:79:0;7135:404:1;15468:79:0;15558:57;15567:6;296:10;15589:25;15608:6;15589:16;:25;:::i;:::-;15558:8;:57::i;:::-;-1:-1:-1;15635:4:0;;15199:448;-1:-1:-1;;;;15199:448:0:o;23383:120::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23468:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;23468:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23383:120::o;15655:248::-;296:10;15771:4;15825:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15825:34:0;;;;;;;;;;15771:4;;15793:80;;15816:7;;15825:47;;15862:10;;15825:47;:::i;21897:177::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;22052:14:::1;3539:2:::0;22052::::1;:14;:::i;:::-;22039:27;::::0;:10;:27:::1;:::i;:::-;22013:23;:53:::0;-1:-1:-1;21897:177:0:o;22374:286::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;22558:2:::1;22549:4:::0;22523:23:::1;22536:10:::0;22523;:23:::1;:::i;:::-;:30;;;;:::i;:::-;22522:38;;22514:80;;;::::0;-1:-1:-1;;;22514:80:0;;9565:2:1;22514:80:0::1;::::0;::::1;9547:21:1::0;9604:2;9584:18;;;9577:30;9643:31;9623:18;;;9616:59;9692:18;;22514:80:0::1;9363:353:1::0;22514:80:0::1;22617:35;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22605:9:::1;:47:::0;;;;;;;;22374:286::o;11466:94::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;11531:21:::1;11549:1;11531:9;:21::i;:::-;11466:94::o:0;22667:224::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;22731:14:::1;::::0;-1:-1:-1;;;22731:14:0;::::1;;;22730:15;22722:54;;;::::0;-1:-1:-1;;;22722:54:0;;9923:2:1;22722:54:0::1;::::0;::::1;9905:21:1::0;9962:2;9942:18;;;9935:30;10001:28;9981:18;;;9974:56;10047:18;;22722:54:0::1;9721:350:1::0;22722:54:0::1;22787:14;:21:::0;;-1:-1:-1;;;;22819:25:0;-1:-1:-1;;;22819:25:0;;;22871:12:::1;22855:13;:28:::0;22667:224::o;24052:127::-;24153:9;;24127:44;;-1:-1:-1;;;24127:44:0;;-1:-1:-1;;;;;24153:9:0;;;24127:44;;;10250:51:1;10317:18;;;10310:34;;;24127:25:0;;;;;;10223:18:1;;24127:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2713:104::-;2769:13;2802:7;2795:14;;;;;:::i;22082:284::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;22232:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22224:5:::1;:43:::0;;;;;;;;;;;22322:2:::1;22262:4:::0;22287:23:::1;22250:10:::0;22238;22287:23:::1;:::i;:::-;:30;;;;:::i;:::-;22286:38;;22278:80;;;::::0;-1:-1:-1;;;22278:80:0;;10807:2:1;22278:80:0::1;::::0;::::1;10789:21:1::0;10846:2;10826:18;;;10819:30;10885:31;10865:18;;;10858:59;10934:18;;22278:80:0::1;10605:353:1::0;23940:104:0;24006:9;;23998:38;;-1:-1:-1;;;;;24006:9:0;;;;23998:38;;;;;24026:9;;24006;23998:38;24006:9;23998:38;24026:9;24006;23998:38;;;;;;;;;;;;;;;;;;;;;23940:104;:::o;15911:410::-;296:10;16032:4;16081:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16081:34:0;;;;;;;;;;16134:35;;;;16126:85;;;;-1:-1:-1;;;16126:85:0;;11165:2:1;16126:85:0;;;11147:21:1;11204:2;11184:18;;;11177:30;11243:34;11223:18;;;11216:62;-1:-1:-1;;;11294:18:1;;;11287:35;11339:19;;16126:85:0;10963:401:1;16126:85:0;16222:67;296:10;16245:7;16254:34;16273:15;16254:16;:34;:::i;16222:67::-;-1:-1:-1;16309:4:0;;15911:410;-1:-1:-1;;;15911:410:0:o;16329:165::-;16407:4;16424:40;16434:10;16446:9;16457:6;16424:9;:40::i;23150:115::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;23230:15:::1;:27:::0;;-1:-1:-1;;;;;;23230:27:0::1;-1:-1:-1::0;;;;;23230:27:0;;;::::1;::::0;;;::::1;::::0;;23150:115::o;23721:211::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;23817:3:::1;23804:9;:16;;23796:73;;;::::0;-1:-1:-1;;;23796:73:0;;11571:2:1;23796:73:0::1;::::0;::::1;11553:21:1::0;11610:2;11590:18;;;11583:30;11649:34;11629:18;;;11622:62;-1:-1:-1;;;11700:18:1;;;11693:42;11752:19;;23796:73:0::1;11369:408:1::0;23796:73:0::1;23909:14;3539:2:::0;23909::::1;:14;:::i;:::-;23897:26;::::0;:9;:26:::1;:::i;:::-;23880:14;:43:::0;-1:-1:-1;23721:211:0:o;22899:243::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;22981:14:::1;::::0;-1:-1:-1;;;22981:14:0;::::1;;;22980:15;22972:65;;;::::0;-1:-1:-1;;;22972:65:0;;11984:2:1;22972:65:0::1;::::0;::::1;11966:21:1::0;12023:2;12003:18;;;11996:30;12062:34;12042:18;;;12035:62;-1:-1:-1;;;12113:18:1;;;12106:35;12158:19;;22972:65:0::1;11782:401:1::0;22972:65:0::1;23068:2;23056:9;:14;23048:55;;;::::0;-1:-1:-1;;;23048:55:0;;12390:2:1;23048:55:0::1;::::0;::::1;12372:21:1::0;12429:2;12409:18;;;12402:30;12468;12448:18;;;12441:58;12516:18;;23048:55:0::1;12188:352:1::0;23048:55:0::1;23114:8;:20:::0;22899:243::o;11568:192::-;11316:6;;-1:-1:-1;;;;;11316:6:0;296:10;11378:23;11370:68;;;;-1:-1:-1;;;11370:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11657:22:0;::::1;11649:73;;;::::0;-1:-1:-1;;;11649:73:0;;12747:2:1;11649:73:0::1;::::0;::::1;12729:21:1::0;12786:2;12766:18;;;12759:30;12825:34;12805:18;;;12798:62;-1:-1:-1;;;12876:18:1;;;12869:36;12922:19;;11649:73:0::1;12545:402:1::0;11649:73:0::1;11733:19;11743:8;11733:9;:19::i;:::-;11568:192:::0;:::o;9542:380::-;-1:-1:-1;;;;;9678:19:0;;9670:68;;;;-1:-1:-1;;;9670:68:0;;13154:2:1;9670:68:0;;;13136:21:1;13193:2;13173:18;;;13166:30;13232:34;13212:18;;;13205:62;-1:-1:-1;;;13283:18:1;;;13276:34;13327:19;;9670:68:0;12952:400:1;9670:68:0;-1:-1:-1;;;;;9757:21:0;;9749:68;;;;-1:-1:-1;;;9749:68:0;;13559:2:1;9749:68:0;;;13541:21:1;13598:2;13578:18;;;13571:30;13637:34;13617:18;;;13610:62;-1:-1:-1;;;13688:18:1;;;13681:32;13730:19;;9749:68:0;13357:398:1;9749:68:0;-1:-1:-1;;;;;9830:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9882:32;;3330:25:1;;;9882:32:0;;3303:18:1;9882:32:0;;;;;;;9542:380;;;:::o;16502:2588::-;16652:1;16643:6;:10;16635:64;;;;-1:-1:-1;;;16635:64:0;;13962:2:1;16635:64:0;;;13944:21:1;14001:2;13981:18;;;13974:30;14040:34;14020:18;;;14013:62;-1:-1:-1;;;14091:18:1;;;14084:39;14140:19;;16635:64:0;13760:405:1;16635:64:0;-1:-1:-1;;;;;16717:17:0;;;;;;:9;:17;;;;;;;;16716:18;:43;;;;-1:-1:-1;;;;;;16739:20:0;;;;;;:9;:20;;;;;;;;16738:21;16716:43;16712:122;;;16784:14;;-1:-1:-1;;;16784:14:0;;;;16776:46;;;;-1:-1:-1;;;16776:46:0;;14372:2:1;16776:46:0;;;14354:21:1;14411:2;14391:18;;;14384:30;-1:-1:-1;;;14430:18:1;;;14423:49;14489:18;;16776:46:0;14170:343:1;16776:46:0;16860:4;;-1:-1:-1;;;;;16850:14:0;;;16860:4;;16850:14;:39;;;;-1:-1:-1;;;;;;16869:20:0;;;;;;:9;:20;;;;;;;;16868:21;16850:39;:59;;;;-1:-1:-1;16894:15:0;;-1:-1:-1;;;16894:15:0;;;;16893:16;16850:59;16846:233;;;16985:14;;16975:6;16952:20;16962:9;-1:-1:-1;;;;;3886:18:0;3859:7;3886:18;;;;;;;;;;;;3785:127;16952:20;:29;;;;:::i;:::-;:47;;16926:141;;;;-1:-1:-1;;;16926:141:0;;14720:2:1;16926:141:0;;;14702:21:1;;;14739:18;;;14732:30;14798:34;14778:18;;;14771:62;14850:18;;16926:141:0;14518:356:1;16926:141:0;17119:4;;-1:-1:-1;;;;;17109:14:0;;;17119:4;;17109:14;;;;:39;;-1:-1:-1;;;;;;17128:20:0;;;;;;:9;:20;;;;;;;;17127:21;17109:39;:61;;;;-1:-1:-1;;;;;;17153:17:0;;;;;;:9;:17;;;;;;;;17152:18;17109:61;:81;;;;-1:-1:-1;17175:15:0;;-1:-1:-1;;;17175:15:0;;;;17174:16;17109:81;17091:348;;;17234:4;;-1:-1:-1;;;;;17221:17:0;;;17234:4;;17221:17;17217:211;;17322:14;;17312:6;17289:20;17299:9;-1:-1:-1;;;;;3886:18:0;3859:7;3886:18;;;;;;;;;;;;3785:127;17289:20;:29;;;;:::i;:::-;:47;;17259:153;;;;-1:-1:-1;;;17259:153:0;;14720:2:1;17259:153:0;;;14702:21:1;;;14739:18;;;14732:30;14798:34;14778:18;;;14771:62;14850:18;;17259:153:0;14518:356:1;17259:153:0;17451:15;17477:14;17502:11;17524:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17524:25:0;-1:-1:-1;;;;;17583:17:0;;17562;17583;;;:9;:17;;;;;;;;17582:18;:56;;;;-1:-1:-1;;;;;;17618:20:0;;;;;;:9;:20;;;;;;;;17617:21;17582:56;:112;;;;;17686:8;;17670:13;;:24;;;;:::i;:::-;17655:12;:39;17582:112;17782:15;;17562:132;;-1:-1:-1;;;;17782:15:0;;;;;:36;;-1:-1:-1;;;;;;17801:17:0;;;;;;:9;:17;;;;;;;;17782:36;:60;;;-1:-1:-1;;;;;;17822:20:0;;;;;;:9;:20;;;;;;;;17782:60;17778:728;;;17863:1;17857:7;;17778:728;;;17928:4;;-1:-1:-1;;;;;17915:17:0;;;17928:4;;17915:17;:34;;;;;17937:12;17936:13;17915:34;17911:595;;;18082:13;;:9;18032:19;17993;;:58;;18032:19;17993:58;:::i;:::-;:102;;;;:::i;:::-;18142:24;;;;;;;;18157:9;18142:24;;;;;;;;;;;;;;;;;;17966:129;;-1:-1:-1;17966:129:0;;-1:-1:-1;18142:24:0;-1:-1:-1;17911:595:0;;;18189:12;18184:322;;18315:9;;:5;18280:15;18245;;:50;;18280:15;18245:50;:::i;:::-;:79;;;;:::i;:::-;18371:20;;;;;;;;18386:5;18371:20;;;;;;;;;;;;;;;;;;18218:106;;-1:-1:-1;18218:106:0;;-1:-1:-1;18371:20:0;-1:-1:-1;18184:322:0;;;18413:12;18409:97;;;18452:9;;;-1:-1:-1;18452:9:0;;-1:-1:-1;18409:97:0;18544:3;18525:15;18534:6;18525;:15;:::i;:::-;18524:23;;;;:::i;:::-;18661:18;;18518:29;;-1:-1:-1;;;;18661:18:0;;;;:36;;;;-1:-1:-1;18693:4:0;;-1:-1:-1;;;;;18683:14:0;;;18693:4;;18683:14;;18661:36;18657:76;;;18699:34;18711:7;18720:12;18699:11;:34::i;:::-;18775:48;18791:6;18799:9;18810:12;18819:3;18810:6;:12;:::i;:::-;18775:15;:48::i;:::-;18838:7;;18834:249;;18910:11;;18906:164;;18942:17;18983:3;18963:16;18972:7;18963:6;:16;:::i;:::-;18962:24;;;;:::i;:::-;18942:44;;19005:49;19021:6;19037:4;19044:9;19005:15;:49::i;:::-;18923:147;18906:164;16624:2466;;;;;16502:2588;;;:::o;11768:173::-;11843:6;;;-1:-1:-1;;;;;11860:17:0;;;-1:-1:-1;;;;;;11860:17:0;;;;;;;11893:40;;11843:6;;;11860:17;11843:6;;11893:40;;11824:16;;11893:40;11813:128;11768:173;:::o;19098:1590::-;14079:15;;-1:-1:-1;;;14079:15:0;;;;14074:125;;14111:15;:22;;-1:-1:-1;;;;14111:22:0;-1:-1:-1;;;14111:22:0;;;19186:49;;19217:7:::1;19186:49;19292:4;19248:23;3886:18:::0;;;;;;;;;;;19332:23:::1;::::0;19313:42;::::1;19309:1372;;19402:1;19376:23;;:27;19372:109;;;-1:-1:-1::0;19442:23:0::1;::::0;19372:109:::1;19552:19;19574:11;:7:::0;19584:1:::1;19574:11;:::i;:::-;19552:33;;19600:32;19694:11;19654:9;:19;;;19636:15;:37;;;;:::i;:::-;19635:70;;;;:::i;:::-;19600:105:::0;-1:-1:-1;19720:14:0::1;19737:42;19600:105:::0;19737:15;:42:::1;:::i;:::-;19720:59:::0;-1:-1:-1;19821:21:0::1;19859:24;19720:59:::0;19859:16:::1;:24::i;:::-;19900:20;19923:38;19947:14:::0;19923:21:::1;:38;:::i;:::-;19900:61;;19976:19;20028:9;:19;;;20014:11;:33;;;;:::i;:::-;19998:50;::::0;:12;:50:::1;:::i;:::-;19976:72;;20063:29;20109:9;:19;;;20095:11;:33;;;;:::i;:::-;20063:65:::0;-1:-1:-1;20149:25:0;;20145:161:::1;;20229:61;20242:24;20268:21;20229:12;:61::i;:::-;20363:19:::0;;20322:20:::1;::::0;20345:15:::1;:11:::0;20359:1:::1;20345:15;:::i;:::-;:37;;;;:::i;:::-;20322:60:::0;-1:-1:-1;20401:16:0;;20397:105:::1;;20446:15;::::0;20438:48:::1;::::0;-1:-1:-1;;;;;20446:15:0::1;20473:12:::0;20438:34:::1;:48::i;:::-;20553:13;::::0;::::1;::::0;20518:14:::1;::::0;20535:15:::1;:11:::0;20549:1:::1;20535:15;:::i;:::-;:31;;;;:::i;:::-;20518:48:::0;-1:-1:-1;20585:10:0;;20581:87:::1;;20624:9;::::0;20616:36:::1;::::0;-1:-1:-1;;;;;20624:9:0::1;20645:6:::0;20616:28:::1;:36::i;:::-;19357:1324;;;;;;;;;19309:1372;19178:1510;14148:1;14164:15:::0;:23;;-1:-1:-1;;;;14164:23:0;;;19098:1590;;:::o;7917:638::-;-1:-1:-1;;;;;8057:20:0;;8049:70;;;;-1:-1:-1;;;8049:70:0;;15303:2:1;8049:70:0;;;15285:21:1;15342:2;15322:18;;;15315:30;15381:34;15361:18;;;15354:62;-1:-1:-1;;;15432:18:1;;;15425:35;15477:19;;8049:70:0;15101:401:1;8049:70:0;-1:-1:-1;;;;;8138:23:0;;8130:71;;;;-1:-1:-1;;;8130:71:0;;15709:2:1;8130:71:0;;;15691:21:1;15748:2;15728:18;;;15721:30;15787:34;15767:18;;;15760:62;-1:-1:-1;;;15838:18:1;;;15831:33;15881:19;;8130:71:0;15507:399:1;8130:71:0;-1:-1:-1;;;;;8298:17:0;;8274:21;8298:17;;;;;;;;;;;8334:23;;;;8326:74;;;;-1:-1:-1;;;8326:74:0;;16113:2:1;8326:74:0;;;16095:21:1;16152:2;16132:18;;;16125:30;16191:34;16171:18;;;16164:62;-1:-1:-1;;;16242:18:1;;;16235:36;16288:19;;8326:74:0;15911:402:1;8326:74:0;8431:22;8447:6;8431:13;:22;:::i;:::-;-1:-1:-1;;;;;8411:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8464:20;;;;;;;;:30;;8488:6;;8411:9;8464:30;;8488:6;;8464:30;:::i;:::-;;;;;;;;8529:9;-1:-1:-1;;;;;8512:35:0;8521:6;-1:-1:-1;;;;;8512:35:0;;8540:6;8512:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8512:35:0;;;;;;;;8038:517;7917:638;;;:::o;20696:526::-;20838:16;;;20852:1;20838:16;;;;;;;;20814:21;;20838:16;;;;;;;;;;-1:-1:-1;20838:16:0;20814:40;;20883:4;20865;20870:1;20865:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20865:23:0;;;:7;;;;;;;;;;:23;;;;20909:6;;:13;;;-1:-1:-1;;;20909:13:0;;;;:6;;;;;:11;;:13;;;;;20865:7;;20909:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20899:4;20904:1;20899:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20899:23:0;;;:7;;;;;;;;;:23;20967:6;;20935:53;;20952:4;;20967:6;20976:11;20935:8;:53::i;:::-;21027:6;;:187;;-1:-1:-1;;;21027:187:0;;-1:-1:-1;;;;;21027:6:0;;;;:57;;:187;;21099:11;;21027:6;;21141:4;;21168;;21188:15;;21027:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20751:471;20696:526;:::o;21230:499::-;21410:6;;21378:53;;21395:4;;-1:-1:-1;;;;;21410:6:0;21419:11;21378:8;:53::i;:::-;21474:6;;21671:9;;21474:247;;-1:-1:-1;;;21474:247:0;;21539:4;21474:247;;;17900:34:1;17950:18;;;17943:34;;;21474:6:0;17993:18:1;;;17986:34;;;18036:18;;;18029:34;-1:-1:-1;;;;;21671:9:0;;;18079:19:1;;;18072:44;21695:15:0;18132:19:1;;;18125:35;21474:6:0;;;:22;;21505:9;;17834:19:1;;21474:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21230:499;;:::o;10686:319::-;10801:6;10776:21;:31;;10768:73;;;;-1:-1:-1;;;10768:73:0;;18684:2:1;10768:73:0;;;18666:21:1;18723:2;18703:18;;;18696:30;18762:31;18742:18;;;18735:59;18811:18;;10768:73:0;18482:353:1;10768:73:0;10855:12;10873:9;-1:-1:-1;;;;;10873:14:0;10896:6;10873:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10854:54;;;10927:7;10919:78;;;;-1:-1:-1;;;10919:78:0;;19252:2:1;10919:78:0;;;19234:21:1;19291:2;19271:18;;;19264:30;19330:34;19310:18;;;19303:62;19401:28;19381:18;;;19374:56;19447:19;;10919:78:0;19050: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;5369:388::-;5437:6;5445;5498:2;5486:9;5477:7;5473:23;5469:32;5466:52;;;5514:1;5511;5504:12;5466:52;5553:9;5540:23;5572:31;5597:5;5572:31;:::i;:::-;5622:5;-1:-1:-1;5679:2:1;5664:18;;5651:32;5692:33;5651:32;5692:33;:::i;5985:380::-;6064:1;6060:12;;;;6107;;;6128:61;;6182:4;6174:6;6170:17;6160:27;;6128:61;6235:2;6227:6;6224:14;6204:18;6201:38;6198:161;;6281:10;6276:3;6272:20;6269:1;6262:31;6316:4;6313:1;6306:15;6344:4;6341:1;6334:15;6198:161;;5985:380;;;:::o;6370:356::-;6572:2;6554:21;;;6591:18;;;6584:30;6650:34;6645:2;6630:18;;6623:62;6717:2;6702:18;;6370:356::o;6731:127::-;6792:10;6787:3;6783:20;6780:1;6773:31;6823:4;6820:1;6813:15;6847:4;6844:1;6837:15;6863:127;6924:10;6919:3;6915:20;6912:1;6905:31;6955:4;6952:1;6945:15;6979:4;6976:1;6969:15;6995:135;7034:3;7055:17;;;7052:43;;7075:18;;:::i;:::-;-1:-1:-1;7122:1:1;7111:13;;6995:135::o;7544:128::-;7611:9;;;7632:11;;;7629:37;;;7646:18;;:::i;7677:125::-;7742:9;;;7763:10;;;7760:36;;;7776:18;;:::i;7807:422::-;7896:1;7939:5;7896:1;7953:270;7974:7;7964:8;7961:21;7953:270;;;8033:4;8029:1;8025:6;8021:17;8015:4;8012:27;8009:53;;;8042:18;;:::i;:::-;8092:7;8082:8;8078:22;8075:55;;;8112:16;;;;8075:55;8191:22;;;;8151:15;;;;7953:270;;;7957:3;7807:422;;;;;:::o;8234:806::-;8283:5;8313:8;8303:80;;-1:-1:-1;8354:1:1;8368:5;;8303:80;8402:4;8392:76;;-1:-1:-1;8439:1:1;8453:5;;8392:76;8484:4;8502:1;8497:59;;;;8570:1;8565:130;;;;8477:218;;8497:59;8527:1;8518:10;;8541:5;;;8565:130;8602:3;8592:8;8589:17;8586:43;;;8609:18;;:::i;:::-;-1:-1:-1;;8665:1:1;8651:16;;8680:5;;8477:218;;8779:2;8769:8;8766:16;8760:3;8754:4;8751:13;8747:36;8741:2;8731:8;8728:16;8723:2;8717:4;8714:12;8710:35;8707:77;8704:159;;;-1:-1:-1;8816:19:1;;;8848:5;;8704:159;8895:34;8920:8;8914:4;8895:34;:::i;:::-;8965:6;8961:1;8957:6;8953:19;8944:7;8941:32;8938:58;;;8976:18;;:::i;:::-;9014:20;;8234:806;-1:-1:-1;;;8234:806:1:o;9045:140::-;9103:5;9132:47;9173:4;9163:8;9159:19;9153:4;9132:47;:::i;9190:168::-;9263:9;;;9294;;9311:15;;;9305:22;;9291:37;9281:71;;9332:18;;:::i;10355:245::-;10422:6;10475:2;10463:9;10454:7;10450:23;10446:32;10443:52;;;10491:1;10488;10481:12;10443:52;10523:9;10517:16;10542:28;10564:5;10542:28;:::i;14879:217::-;14919:1;14945;14935:132;;14989:10;14984:3;14980:20;14977:1;14970:31;15024:4;15021:1;15014:15;15052:4;15049:1;15042:15;14935:132;-1:-1:-1;15081:9:1;;14879:217::o;16318:251::-;16388:6;16441:2;16429:9;16420:7;16416:23;16412:32;16409:52;;;16457:1;16454;16447:12;16409:52;16489:9;16483:16;16508:31;16533:5;16508:31;:::i;16574:980::-;16836:4;16884:3;16873:9;16869:19;16915:6;16904:9;16897:25;16941:2;16979:6;16974:2;16963:9;16959:18;16952:34;17022:3;17017:2;17006:9;17002:18;16995:31;17046:6;17081;17075:13;17112:6;17104;17097:22;17150:3;17139:9;17135:19;17128:26;;17189:2;17181:6;17177:15;17163:29;;17210:1;17220:195;17234:6;17231:1;17228:13;17220:195;;;17299:13;;-1:-1:-1;;;;;17295:39:1;17283:52;;17390:15;;;;17355:12;;;;17331:1;17249:9;17220:195;;;-1:-1:-1;;;;;;;17471:32:1;;;;17466:2;17451:18;;17444:60;-1:-1:-1;;;17535:3:1;17520:19;17513:35;17432:3;16574:980;-1:-1:-1;;;16574:980:1:o;18171:306::-;18259:6;18267;18275;18328:2;18316:9;18307:7;18303:23;18299:32;18296:52;;;18344:1;18341;18334:12;18296:52;18373:9;18367:16;18357:26;;18423:2;18412:9;18408:18;18402:25;18392:35;;18467:2;18456:9;18452:18;18446:25;18436:35;;18171:306;;;;;:::o
Swarm Source
ipfs://0e270ec785db24c3df34110360292b2bcd87fb989e3832b5432501234b6100eb
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.