More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 66 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20240702 | 172 days ago | IN | 0 ETH | 0.00036976 | ||||
Update Swap Thre... | 20193833 | 179 days ago | IN | 0 ETH | 0.00005112 | ||||
Set Treasury Add... | 20193832 | 179 days ago | IN | 0 ETH | 0.00005671 | ||||
Approve | 20193824 | 179 days ago | IN | 0 ETH | 0.00021093 | ||||
Approve | 20193822 | 179 days ago | IN | 0 ETH | 0.00021286 | ||||
Approve | 20193822 | 179 days ago | IN | 0 ETH | 0.00030606 | ||||
Approve | 20193821 | 179 days ago | IN | 0 ETH | 0.00021138 | ||||
Approve | 20193821 | 179 days ago | IN | 0 ETH | 0.00030459 | ||||
Approve | 20193819 | 179 days ago | IN | 0 ETH | 0.00077222 | ||||
Approve | 20193819 | 179 days ago | IN | 0 ETH | 0.00077222 | ||||
Approve | 20193818 | 179 days ago | IN | 0 ETH | 0.00014091 | ||||
Approve | 20193818 | 179 days ago | IN | 0 ETH | 0.00030397 | ||||
Approve | 20193818 | 179 days ago | IN | 0 ETH | 0.00030397 | ||||
Approve | 20193818 | 179 days ago | IN | 0 ETH | 0.00030397 | ||||
Approve | 20193818 | 179 days ago | IN | 0 ETH | 0.00030397 | ||||
Approve | 20193817 | 179 days ago | IN | 0 ETH | 0.00020979 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00021003 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00021003 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00030323 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00030323 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00030323 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00030323 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00030323 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00365865 | ||||
Approve | 20193816 | 179 days ago | IN | 0 ETH | 0.00365865 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20193835 | 179 days ago | 0.09774091 ETH | ||||
20193835 | 179 days ago | 0.09774091 ETH | ||||
20193835 | 179 days ago | 0.20944776 ETH | ||||
20193835 | 179 days ago | 0.20944776 ETH | ||||
20193831 | 179 days ago | 0.00697782 ETH | ||||
20193831 | 179 days ago | 0.00697782 ETH | ||||
20193831 | 179 days ago | 0.00715539 ETH | ||||
20193831 | 179 days ago | 0.00715539 ETH | ||||
20193831 | 179 days ago | 0.00733984 ETH | ||||
20193831 | 179 days ago | 0.00733984 ETH | ||||
20193829 | 179 days ago | 0.00757018 ETH | ||||
20193829 | 179 days ago | 0.00757018 ETH | ||||
20193829 | 179 days ago | 0.00781156 ETH | ||||
20193829 | 179 days ago | 0.00781156 ETH | ||||
20193826 | 179 days ago | 0.00802214 ETH | ||||
20193826 | 179 days ago | 0.00802214 ETH | ||||
20193826 | 179 days ago | 0.00794559 ETH | ||||
20193826 | 179 days ago | 0.00794559 ETH | ||||
20193823 | 179 days ago | 0.00808284 ETH | ||||
20193823 | 179 days ago | 0.00808284 ETH | ||||
20193817 | 179 days ago | 0.00674738 ETH | ||||
20193817 | 179 days ago | 0.00674738 ETH | ||||
20193817 | 179 days ago | 0.00633526 ETH | ||||
20193817 | 179 days ago | 0.00633526 ETH | ||||
20193817 | 179 days ago | 0.00651974 ETH |
Loading...
Loading
Contract Name:
PEH
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-29 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.12; /* 1st Americaone Mascout - PEH */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; 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 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } 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"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract PEH is ERC20, Ownable { uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; IDexRouter public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool private swapping; uint256 public swapTokensAtAmount; address public TreasuryAddress; uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public deadBlocks = 1; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyFee; uint256 public sellFee; uint256 public tokensForTreasury; // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event EnabledTrading(bool tradingActive, uint256 deadBlocks); event RemovedLimits(); event ExcludeFromFees(address indexed account, bool isExcluded); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxSellAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedTreasuryAddress(address indexed newWallet); event MaxTransactionExclusion(address _address, bool excluded); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event TransferForeignToken(address token, uint256 amount); constructor() ERC20("Americaone", "PEH") { address newOwner = msg.sender; IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 10000000 * 1e18; maxBuyAmount = totalSupply * 10 / 1000; maxSellAmount = totalSupply * 10 / 1000; maxWalletAmount = totalSupply * 10 / 1000; swapTokensAtAmount = totalSupply * 30 / 100000; buyFee = 0; sellFee = 0; _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); TreasuryAddress = address(0x512353E78E4861C4DbC993020E84ca1f6f9aD1B5); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(TreasuryAddress, true); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} function updateMaxBuyAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%"); maxBuyAmount = newNum * (10**18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateMaxSellAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%"); maxSellAmount = newNum * (10**18); emit UpdatedMaxSellAmount(maxSellAmount); } // remove limits after token is stable function removeLimits() external onlyOwner { limitsInEffect = false; emit RemovedLimits(); } function _excludeFromMaxTransaction(address updAds, bool isExcluded) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; emit MaxTransactionExclusion(updAds, isExcluded); } function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner { if(!isEx){ require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn"); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%"); maxWalletAmount = newNum * (10**18); emit UpdatedMaxWalletAmount(maxWalletAmount); } function updateSwapThreshold(uint256 newAmount) public { require(msg.sender==TreasuryAddress,"only TreasuryAddress can change swapThreshold"); swapTokensAtAmount = newAmount* (10**18); } function transferForeignToken(address _token, address _to) public returns (bool _sent) { require(_token != address(0), "_token address cannot be 0"); require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } // withdraw ETH if stuck or someone sends to the address function withdrawStuckETH() public { bool success; require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw"); (success,) = address(msg.sender).call{value: address(this).balance}(""); } function updateBuyFee(uint256 _fee) external onlyOwner { buyFee = _fee; require(buyFee <= 30, "Fees must be 30% or less"); } function updateSellFee(uint256 _fee) external onlyOwner { sellFee = _fee; require(sellFee <= 30, "Fees must be 30% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if(limitsInEffect){ if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){ if(!tradingActive){ require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active."); require(from == owner(), "Trading is not enabled"); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy."); require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell."); } else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){ require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; uint256 penaltyAmount = 0; // only take fees on Trades, not on wallet transfers if(takeFee && tradingActiveBlock>0 && (block.number>tradingActiveBlock)) { // on sell if (automatedMarketMakerPairs[to] && sellFee > 0) { fees = amount * sellFee / 100; tokensForTreasury += fees; } // on buy else if(automatedMarketMakerPairs[from] && buyFee > 0) { fees = amount * buyFee / 100; tokensForTreasury += fees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees + penaltyAmount; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(owner()), block.timestamp ); } function setTreasuryAddress(address _TreasuryAddress) external onlyOwner { require(_TreasuryAddress != address(0), "_TreasuryAddress address cannot be 0"); TreasuryAddress = payable(_TreasuryAddress); emit UpdatedTreasuryAddress(_TreasuryAddress); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForTreasury; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 5){ contractBalance = swapTokensAtAmount * 5; } bool success; swapTokensForEth(contractBalance); tokensForTreasury = 0; uint256 ethBalance=address(this).balance; if(ethBalance>0){ (success,) = address(TreasuryAddress).call{value: address(this).balance}(""); } } function manualSwap() external { require(_msgSender()==TreasuryAddress); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapping = true; swapBack(); swapping = false; } } // once enabled, can never be turned off function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner { require(!tradingActive, "Cannot re enable trading"); tradingActive = _status; swapEnabled = true; emit EnabledTrading(tradingActive, _deadBlocks); if (tradingActive && tradingActiveBlock == 0) { tradingActiveBlock = block.number; deadBlocks = _deadBlocks; } } }
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":false,"internalType":"bool","name":"tradingActive","type":"bool"},{"indexed":false,"internalType":"uint256","name":"deadBlocks","type":"uint256"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"TreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600c556001600d819055600e805462ffffff191690911790553480156200002c57600080fd5b506040518060400160405280600a815260200169416d65726963616f6e6560b01b815250604051806040016040528060038152602001620a08a960eb1b8152508160039080519060200190620000849291906200072a565b5080516200009a9060049060208401906200072a565b5050506000620000af620003c760201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620031e1833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d6200010f816001620003cb565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200015a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001809190620007d0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f49190620007d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002689190620007d0565b6001600160a01b031660a0819052620002839060016200042e565b6a084595161401484a0000006103e86200029f82600a62000818565b620002ab91906200083a565b6006556103e8620002be82600a62000818565b620002ca91906200083a565b6007556103e8620002dd82600a62000818565b620002e991906200083a565b600855620186a0620002fd82601e62000818565b6200030991906200083a565b600a556000600f81905560105562000323836001620003cb565b62000330306001620003cb565b6200033f61dead6001620003cb565b600b80546001600160a01b03191673512353e78e4861c4dbc993020e84ca1f6f9ad1b5179055620003728360016200049a565b6200037f3060016200049a565b6200038e61dead60016200049a565b600b54620003a7906001600160a01b031660016200049a565b620003b3838262000548565b620003be836200062d565b505050620008b5565b3390565b6001600160a01b038216600081815260136020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601460205260409020805460ff19168215151790556200045e8282620003cb565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620004e95760405162461bcd60e51b81526020600482018190526024820152600080516020620031c183398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004e0565b8060026000828254620005b491906200085d565b90915550506001600160a01b03821660009081526020819052604081208054839290620005e39084906200085d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006785760405162461bcd60e51b81526020600482018190526024820152600080516020620031c18339815191526044820152606401620004e0565b6001600160a01b038116620006df5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004e0565b6005546040516001600160a01b03808416921690600080516020620031e183398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b828054620007389062000878565b90600052602060002090601f0160209004810192826200075c5760008555620007a7565b82601f106200077757805160ff1916838001178555620007a7565b82800160010185558215620007a7579182015b82811115620007a75782518255916020019190600101906200078a565b50620007b5929150620007b9565b5090565b5b80821115620007b55760008155600101620007ba565b600060208284031215620007e357600080fd5b81516001600160a01b0381168114620007fb57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000835576200083562000802565b500290565b6000826200085857634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111562000873576200087362000802565b500190565b600181811c908216806200088d57607f821691505b60208210811415620008af57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516128c3620008fe6000396000818161047f01528181610f5801526111fe01526000818161032a015281816122810152818161233a015261237601526128c36000f3fe6080604052600436106102815760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063dd62ed3e1161007a578063dd62ed3e146107aa578063e2f45605146107f0578063ee40166e14610806578063f2fde38b1461081c578063f5648a4f1461083c578063fabb0b4f1461085157600080fd5b8063bbc0c742146106f5578063c024666814610714578063c18bc19514610734578063cc274b2914610754578063cc2ffe7c14610774578063dc3f0d0f1461078a57600080fd5b806395d89b411161011357806395d89b411461063a5780639a7a23d61461064f578063a457c2d71461066f578063a9059cbb1461068f578063aa4bde28146106af578063b62496f5146106c557600080fd5b8063751039fc146105b15780637571336a146105c65780638366e79a146105e657806388e765ff146106065780638da5cb5b1461061c57600080fd5b8063467abe0a116101f35780635e83ae76116101ac5780635e83ae76146104f05780636605bfda1461051057806366d602ae146105305780636ddd17131461054657806370a0823114610566578063715018a61461059c57600080fd5b8063467abe0a14610437578063470624021461045757806349bd5a5e1461046d5780634a62bb65146104a157806351bc3c85146104bb5780635b5c251f146104d057600080fd5b80631d933a4a116102455780631d933a4a1461038357806323b872dd146103a55780632b14ca56146103c55780632be32b61146103db578063313ce567146103fb578063395093511461041757600080fd5b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102e85780631694505e1461031857806318160ddd1461036457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610867565b6040516102af919061244d565b60405180910390f35b3480156102c457600080fd5b506102d86102d33660046124b7565b6108f9565b60405190151581526020016102af565b3480156102f457600080fd5b506102d86103033660046124e3565b60136020526000908152604090205460ff1681565b34801561032457600080fd5b5061034c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561037057600080fd5b506002545b6040519081526020016102af565b34801561038f57600080fd5b506103a361039e366004612507565b61090f565b005b3480156103b157600080fd5b506102d86103c0366004612520565b610997565b3480156103d157600080fd5b5061037560105481565b3480156103e757600080fd5b506103a36103f6366004612507565b610a41565b34801561040757600080fd5b50604051601281526020016102af565b34801561042357600080fd5b506102d86104323660046124b7565b610b4e565b34801561044357600080fd5b506103a3610452366004612507565b610b8a565b34801561046357600080fd5b50610375600f5481565b34801561047957600080fd5b5061034c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ad57600080fd5b50600e546102d89060ff1681565b3480156104c757600080fd5b506103a3610c06565b3480156104dc57600080fd5b50600b5461034c906001600160a01b031681565b3480156104fc57600080fd5b506103a361050b36600461256f565b610c5e565b34801561051c57600080fd5b506103a361052b3660046124e3565b610d7e565b34801561053c57600080fd5b5061037560075481565b34801561055257600080fd5b50600e546102d89062010000900460ff1681565b34801561057257600080fd5b506103756105813660046124e3565b6001600160a01b031660009081526020819052604090205490565b3480156105a857600080fd5b506103a3610e54565b3480156105bd57600080fd5b506103a3610ec8565b3480156105d257600080fd5b506103a36105e136600461258d565b610f27565b3480156105f257600080fd5b506102d86106013660046125c6565b611013565b34801561061257600080fd5b5061037560065481565b34801561062857600080fd5b506005546001600160a01b031661034c565b34801561064657600080fd5b506102a26111c3565b34801561065b57600080fd5b506103a361066a36600461258d565b6111d2565b34801561067b57600080fd5b506102d861068a3660046124b7565b6112ae565b34801561069b57600080fd5b506102d86106aa3660046124b7565b611347565b3480156106bb57600080fd5b5061037560085481565b3480156106d157600080fd5b506102d86106e03660046124e3565b60146020526000908152604090205460ff1681565b34801561070157600080fd5b50600e546102d890610100900460ff1681565b34801561072057600080fd5b506103a361072f36600461258d565b611354565b34801561074057600080fd5b506103a361074f366004612507565b6113dd565b34801561076057600080fd5b506103a361076f366004612507565b6114e6565b34801561078057600080fd5b5061037560115481565b34801561079657600080fd5b506103a36107a5366004612507565b61156e565b3480156107b657600080fd5b506103756107c53660046125c6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fc57600080fd5b50610375600a5481565b34801561081257600080fd5b50610375600c5481565b34801561082857600080fd5b506103a36108373660046124e3565b611675565b34801561084857600080fd5b506103a3611760565b34801561085d57600080fd5b50610375600d5481565b606060038054610876906125f4565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125f4565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b60006109063384846117d8565b50600192915050565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016109399061262f565b60405180910390fd5b6010819055601e8111156109945760405162461bcd60e51b815260206004820152601960248201527846656573206d7573742062652033302520206f72206c65737360381b6044820152606401610939565b50565b60006109a48484846118fc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a295760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610939565b610a3685338584036117d8565b506001949350505050565b6005546001600160a01b03163314610a6b5760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e8610a8060025490565b610a8b90600161267a565b610a959190612699565b610a9f9190612699565b811015610b005760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610939565b610b1281670de0b6b3a764000061267a565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b859086906126bb565b6117d8565b6005546001600160a01b03163314610bb45760405162461bcd60e51b81526004016109399061262f565b600f819055601e8111156109945760405162461bcd60e51b815260206004820152601960248201527846656573206d7573742062652033302520206f72206c65737360381b6044820152606401610939565b600b546001600160a01b0316336001600160a01b031614610c2657600080fd5b306000908152602081905260409020548015610994576009805460ff19166001179055610c51611fac565b6009805460ff1916905550565b6005546001600160a01b03163314610c885760405162461bcd60e51b81526004016109399061262f565b600e54610100900460ff1615610ce05760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610939565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610d4c92900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610d6b5750600c54155b15610d7a5743600c55600d8190555b5050565b6005546001600160a01b03163314610da85760405162461bcd60e51b81526004016109399061262f565b6001600160a01b038116610e0a5760405162461bcd60e51b8152602060048201526024808201527f5f54726561737572794164647265737320616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610939565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f90600090a250565b6005546001600160a01b03163314610e7e5760405162461bcd60e51b81526004016109399061262f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ef25760405162461bcd60e51b81526004016109399061262f565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016109399061262f565b80610fe8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610fe85760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610939565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60006001600160a01b03831661106b5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610939565b600b546001600160a01b031633146110955760405162461bcd60e51b8152600401610939906126d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190612714565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611177919061272d565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b606060048054610876906125f4565b6005546001600160a01b031633146111fc5760405162461bcd60e51b81526004016109399061262f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156112a45760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610939565b610d7a828261206b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156113305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610939565b61133d33858584036117d8565b5060019392505050565b60006109063384846118fc565b6005546001600160a01b0316331461137e5760405162461bcd60e51b81526004016109399061262f565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114075760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e861141c60025490565b61142790600361267a565b6114319190612699565b61143b9190612699565b81101561149f5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610939565b6114b181670de0b6b3a764000061267a565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610b43565b600b546001600160a01b031633146115565760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c79205472656173757279416464726573732063616e206368616e67652060448201526c1cddd85c151a1c995cda1bdb19609a1b6064820152608401610939565b61156881670de0b6b3a764000061267a565b600a5550565b6005546001600160a01b031633146115985760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e86115ad60025490565b6115b890600161267a565b6115c29190612699565b6115cc9190612699565b81101561162e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610939565b61164081670de0b6b3a764000061267a565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610b43565b6005546001600160a01b0316331461169f5760405162461bcd60e51b81526004016109399061262f565b6001600160a01b0381166117045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546000906001600160a01b0316331461178d5760405162461bcd60e51b8152600401610939906126d3565b60405133904790600081818185875af1925050503d80600081146117cd576040519150601f19603f3d011682016040523d82523d6000602084013e6117d2565b606091505b50505050565b6001600160a01b03831661183a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610939565b6001600160a01b03821661189b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610939565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119225760405162461bcd60e51b81526004016109399061274a565b6001600160a01b0382166119485760405162461bcd60e51b81526004016109399061278f565b600081116119985760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610939565b600e5460ff1615611d66576005546001600160a01b038481169116148015906119cf57506005546001600160a01b03838116911614155b80156119e357506001600160a01b03821615155b80156119fa57506001600160a01b03821661dead14155b15611d6657600e54610100900460ff16611ae8576001600160a01b03831660009081526013602052604090205460ff1680611a4d57506001600160a01b03821660009081526013602052604090205460ff165b611a925760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610939565b6005546001600160a01b03848116911614611ae85760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610939565b6001600160a01b03831660009081526014602052604090205460ff168015611b2957506001600160a01b03821660009081526013602052604090205460ff16155b15611c0557600654811115611b915760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610939565b6008546001600160a01b038316600090815260208190526040902054611bb790836126bb565b1115611c005760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610939565b611d66565b6001600160a01b03821660009081526014602052604090205460ff168015611c4657506001600160a01b03831660009081526013602052604090205460ff16155b15611cb057600754811115611c005760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610939565b6001600160a01b03821660009081526013602052604090205460ff16158015611cf257506001600160a01b03831660009081526013602052604090205460ff16155b15611d66576008546001600160a01b038316600090815260208190526040902054611d1d90836126bb565b1115611d665760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610939565b30600090815260208190526040902054600a5481108015908190611d925750600e5462010000900460ff165b8015611da1575060095460ff16155b8015611dc657506001600160a01b03851660009081526014602052604090205460ff16155b8015611deb57506001600160a01b03851660009081526012602052604090205460ff16155b8015611e1057506001600160a01b03841660009081526012602052604090205460ff16155b15611e35576009805460ff19166001179055611e2a611fac565b6009805460ff191690555b6001600160a01b03851660009081526012602052604090205460019060ff1680611e7757506001600160a01b03851660009081526012602052604090205460ff165b15611e80575060005b600080828015611e9257506000600c54115b8015611e9f5750600c5443115b15611f97576001600160a01b03871660009081526014602052604090205460ff168015611ece57506000601054115b15611f0c57606460105487611ee3919061267a565b611eed9190612699565b91508160116000828254611f0191906126bb565b90915550611f6f9050565b6001600160a01b03881660009081526014602052604090205460ff168015611f3657506000600f54115b15611f6f576064600f5487611f4b919061267a565b611f559190612699565b91508160116000828254611f6991906126bb565b90915550505b8115611f8057611f808830846120d5565b611f8a81836126bb565b611f9490876127d2565b95505b611fa28888886120d5565b5050505050505050565b30600090815260208190526040902054601154811580611fca575080155b15611fd3575050565b600a54611fe190600561267a565b821115611ff957600a54611ff690600561267a565b91505b60006120048361222a565b60006011554780156117d257600b546040516001600160a01b03909116904790600081818185875af1925050503d806000811461205d576040519150601f19603f3d011682016040523d82523d6000602084013e612062565b606091505b50505050505050565b6001600160a01b0382166000908152601460205260409020805460ff191682151517905561209982826123ea565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b0383166120fb5760405162461bcd60e51b81526004016109399061274a565b6001600160a01b0382166121215760405162461bcd60e51b81526004016109399061278f565b6001600160a01b038316600090815260208190526040902054818110156121995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610939565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906121d09084906126bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221c91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061225f5761225f6127e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230191906127ff565b81600181518110612314576123146127e9565b60200260200101906001600160a01b031690816001600160a01b03168152505061235f307f0000000000000000000000000000000000000000000000000000000000000000846117d8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906123b490859060009086903090429060040161281c565b600060405180830381600087803b1580156123ce57600080fd5b505af11580156123e2573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260136020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b8181101561247a5785810183015185820160400152820161245e565b8181111561248c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461099457600080fd5b600080604083850312156124ca57600080fd5b82356124d5816124a2565b946020939093013593505050565b6000602082840312156124f557600080fd5b8135612500816124a2565b9392505050565b60006020828403121561251957600080fd5b5035919050565b60008060006060848603121561253557600080fd5b8335612540816124a2565b92506020840135612550816124a2565b929592945050506040919091013590565b801515811461099457600080fd5b6000806040838503121561258257600080fd5b82356124d581612561565b600080604083850312156125a057600080fd5b82356125ab816124a2565b915060208301356125bb81612561565b809150509250929050565b600080604083850312156125d957600080fd5b82356125e4816124a2565b915060208301356125bb816124a2565b600181811c9082168061260857607f821691505b6020821081141561262957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561269457612694612664565b500290565b6000826126b657634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156126ce576126ce612664565b500190565b60208082526021908201527f6f6e6c79205472656173757279416464726573732063616e20776974686472616040820152607760f81b606082015260800190565b60006020828403121561272657600080fd5b5051919050565b60006020828403121561273f57600080fd5b815161250081612561565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156127e4576127e4612664565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561281157600080fd5b8151612500816124a2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561286c5784516001600160a01b031683529383019391830191600101612847565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122080d8b1b3b97df4256c7c2d341e7e0b1849d8ee528b7a435305ee9fc2d850187564736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106102815760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063dd62ed3e1161007a578063dd62ed3e146107aa578063e2f45605146107f0578063ee40166e14610806578063f2fde38b1461081c578063f5648a4f1461083c578063fabb0b4f1461085157600080fd5b8063bbc0c742146106f5578063c024666814610714578063c18bc19514610734578063cc274b2914610754578063cc2ffe7c14610774578063dc3f0d0f1461078a57600080fd5b806395d89b411161011357806395d89b411461063a5780639a7a23d61461064f578063a457c2d71461066f578063a9059cbb1461068f578063aa4bde28146106af578063b62496f5146106c557600080fd5b8063751039fc146105b15780637571336a146105c65780638366e79a146105e657806388e765ff146106065780638da5cb5b1461061c57600080fd5b8063467abe0a116101f35780635e83ae76116101ac5780635e83ae76146104f05780636605bfda1461051057806366d602ae146105305780636ddd17131461054657806370a0823114610566578063715018a61461059c57600080fd5b8063467abe0a14610437578063470624021461045757806349bd5a5e1461046d5780634a62bb65146104a157806351bc3c85146104bb5780635b5c251f146104d057600080fd5b80631d933a4a116102455780631d933a4a1461038357806323b872dd146103a55780632b14ca56146103c55780632be32b61146103db578063313ce567146103fb578063395093511461041757600080fd5b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102e85780631694505e1461031857806318160ddd1461036457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610867565b6040516102af919061244d565b60405180910390f35b3480156102c457600080fd5b506102d86102d33660046124b7565b6108f9565b60405190151581526020016102af565b3480156102f457600080fd5b506102d86103033660046124e3565b60136020526000908152604090205460ff1681565b34801561032457600080fd5b5061034c7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102af565b34801561037057600080fd5b506002545b6040519081526020016102af565b34801561038f57600080fd5b506103a361039e366004612507565b61090f565b005b3480156103b157600080fd5b506102d86103c0366004612520565b610997565b3480156103d157600080fd5b5061037560105481565b3480156103e757600080fd5b506103a36103f6366004612507565b610a41565b34801561040757600080fd5b50604051601281526020016102af565b34801561042357600080fd5b506102d86104323660046124b7565b610b4e565b34801561044357600080fd5b506103a3610452366004612507565b610b8a565b34801561046357600080fd5b50610375600f5481565b34801561047957600080fd5b5061034c7f000000000000000000000000fd9512f2687c968dfd7c7c912f9e6b29a5c17e4b81565b3480156104ad57600080fd5b50600e546102d89060ff1681565b3480156104c757600080fd5b506103a3610c06565b3480156104dc57600080fd5b50600b5461034c906001600160a01b031681565b3480156104fc57600080fd5b506103a361050b36600461256f565b610c5e565b34801561051c57600080fd5b506103a361052b3660046124e3565b610d7e565b34801561053c57600080fd5b5061037560075481565b34801561055257600080fd5b50600e546102d89062010000900460ff1681565b34801561057257600080fd5b506103756105813660046124e3565b6001600160a01b031660009081526020819052604090205490565b3480156105a857600080fd5b506103a3610e54565b3480156105bd57600080fd5b506103a3610ec8565b3480156105d257600080fd5b506103a36105e136600461258d565b610f27565b3480156105f257600080fd5b506102d86106013660046125c6565b611013565b34801561061257600080fd5b5061037560065481565b34801561062857600080fd5b506005546001600160a01b031661034c565b34801561064657600080fd5b506102a26111c3565b34801561065b57600080fd5b506103a361066a36600461258d565b6111d2565b34801561067b57600080fd5b506102d861068a3660046124b7565b6112ae565b34801561069b57600080fd5b506102d86106aa3660046124b7565b611347565b3480156106bb57600080fd5b5061037560085481565b3480156106d157600080fd5b506102d86106e03660046124e3565b60146020526000908152604090205460ff1681565b34801561070157600080fd5b50600e546102d890610100900460ff1681565b34801561072057600080fd5b506103a361072f36600461258d565b611354565b34801561074057600080fd5b506103a361074f366004612507565b6113dd565b34801561076057600080fd5b506103a361076f366004612507565b6114e6565b34801561078057600080fd5b5061037560115481565b34801561079657600080fd5b506103a36107a5366004612507565b61156e565b3480156107b657600080fd5b506103756107c53660046125c6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fc57600080fd5b50610375600a5481565b34801561081257600080fd5b50610375600c5481565b34801561082857600080fd5b506103a36108373660046124e3565b611675565b34801561084857600080fd5b506103a3611760565b34801561085d57600080fd5b50610375600d5481565b606060038054610876906125f4565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125f4565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b60006109063384846117d8565b50600192915050565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016109399061262f565b60405180910390fd5b6010819055601e8111156109945760405162461bcd60e51b815260206004820152601960248201527846656573206d7573742062652033302520206f72206c65737360381b6044820152606401610939565b50565b60006109a48484846118fc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a295760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610939565b610a3685338584036117d8565b506001949350505050565b6005546001600160a01b03163314610a6b5760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e8610a8060025490565b610a8b90600161267a565b610a959190612699565b610a9f9190612699565b811015610b005760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610939565b610b1281670de0b6b3a764000061267a565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b859086906126bb565b6117d8565b6005546001600160a01b03163314610bb45760405162461bcd60e51b81526004016109399061262f565b600f819055601e8111156109945760405162461bcd60e51b815260206004820152601960248201527846656573206d7573742062652033302520206f72206c65737360381b6044820152606401610939565b600b546001600160a01b0316336001600160a01b031614610c2657600080fd5b306000908152602081905260409020548015610994576009805460ff19166001179055610c51611fac565b6009805460ff1916905550565b6005546001600160a01b03163314610c885760405162461bcd60e51b81526004016109399061262f565b600e54610100900460ff1615610ce05760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610939565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610d4c92900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610d6b5750600c54155b15610d7a5743600c55600d8190555b5050565b6005546001600160a01b03163314610da85760405162461bcd60e51b81526004016109399061262f565b6001600160a01b038116610e0a5760405162461bcd60e51b8152602060048201526024808201527f5f54726561737572794164647265737320616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610939565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f90600090a250565b6005546001600160a01b03163314610e7e5760405162461bcd60e51b81526004016109399061262f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ef25760405162461bcd60e51b81526004016109399061262f565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016109399061262f565b80610fe8577f000000000000000000000000fd9512f2687c968dfd7c7c912f9e6b29a5c17e4b6001600160a01b0316826001600160a01b03161415610fe85760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610939565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60006001600160a01b03831661106b5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610939565b600b546001600160a01b031633146110955760405162461bcd60e51b8152600401610939906126d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190612714565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611177919061272d565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b606060048054610876906125f4565b6005546001600160a01b031633146111fc5760405162461bcd60e51b81526004016109399061262f565b7f000000000000000000000000fd9512f2687c968dfd7c7c912f9e6b29a5c17e4b6001600160a01b0316826001600160a01b031614156112a45760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610939565b610d7a828261206b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156113305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610939565b61133d33858584036117d8565b5060019392505050565b60006109063384846118fc565b6005546001600160a01b0316331461137e5760405162461bcd60e51b81526004016109399061262f565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114075760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e861141c60025490565b61142790600361267a565b6114319190612699565b61143b9190612699565b81101561149f5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610939565b6114b181670de0b6b3a764000061267a565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610b43565b600b546001600160a01b031633146115565760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c79205472656173757279416464726573732063616e206368616e67652060448201526c1cddd85c151a1c995cda1bdb19609a1b6064820152608401610939565b61156881670de0b6b3a764000061267a565b600a5550565b6005546001600160a01b031633146115985760405162461bcd60e51b81526004016109399061262f565b670de0b6b3a76400006103e86115ad60025490565b6115b890600161267a565b6115c29190612699565b6115cc9190612699565b81101561162e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610939565b61164081670de0b6b3a764000061267a565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610b43565b6005546001600160a01b0316331461169f5760405162461bcd60e51b81526004016109399061262f565b6001600160a01b0381166117045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546000906001600160a01b0316331461178d5760405162461bcd60e51b8152600401610939906126d3565b60405133904790600081818185875af1925050503d80600081146117cd576040519150601f19603f3d011682016040523d82523d6000602084013e6117d2565b606091505b50505050565b6001600160a01b03831661183a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610939565b6001600160a01b03821661189b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610939565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119225760405162461bcd60e51b81526004016109399061274a565b6001600160a01b0382166119485760405162461bcd60e51b81526004016109399061278f565b600081116119985760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610939565b600e5460ff1615611d66576005546001600160a01b038481169116148015906119cf57506005546001600160a01b03838116911614155b80156119e357506001600160a01b03821615155b80156119fa57506001600160a01b03821661dead14155b15611d6657600e54610100900460ff16611ae8576001600160a01b03831660009081526013602052604090205460ff1680611a4d57506001600160a01b03821660009081526013602052604090205460ff165b611a925760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610939565b6005546001600160a01b03848116911614611ae85760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610939565b6001600160a01b03831660009081526014602052604090205460ff168015611b2957506001600160a01b03821660009081526013602052604090205460ff16155b15611c0557600654811115611b915760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610939565b6008546001600160a01b038316600090815260208190526040902054611bb790836126bb565b1115611c005760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610939565b611d66565b6001600160a01b03821660009081526014602052604090205460ff168015611c4657506001600160a01b03831660009081526013602052604090205460ff16155b15611cb057600754811115611c005760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610939565b6001600160a01b03821660009081526013602052604090205460ff16158015611cf257506001600160a01b03831660009081526013602052604090205460ff16155b15611d66576008546001600160a01b038316600090815260208190526040902054611d1d90836126bb565b1115611d665760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610939565b30600090815260208190526040902054600a5481108015908190611d925750600e5462010000900460ff165b8015611da1575060095460ff16155b8015611dc657506001600160a01b03851660009081526014602052604090205460ff16155b8015611deb57506001600160a01b03851660009081526012602052604090205460ff16155b8015611e1057506001600160a01b03841660009081526012602052604090205460ff16155b15611e35576009805460ff19166001179055611e2a611fac565b6009805460ff191690555b6001600160a01b03851660009081526012602052604090205460019060ff1680611e7757506001600160a01b03851660009081526012602052604090205460ff165b15611e80575060005b600080828015611e9257506000600c54115b8015611e9f5750600c5443115b15611f97576001600160a01b03871660009081526014602052604090205460ff168015611ece57506000601054115b15611f0c57606460105487611ee3919061267a565b611eed9190612699565b91508160116000828254611f0191906126bb565b90915550611f6f9050565b6001600160a01b03881660009081526014602052604090205460ff168015611f3657506000600f54115b15611f6f576064600f5487611f4b919061267a565b611f559190612699565b91508160116000828254611f6991906126bb565b90915550505b8115611f8057611f808830846120d5565b611f8a81836126bb565b611f9490876127d2565b95505b611fa28888886120d5565b5050505050505050565b30600090815260208190526040902054601154811580611fca575080155b15611fd3575050565b600a54611fe190600561267a565b821115611ff957600a54611ff690600561267a565b91505b60006120048361222a565b60006011554780156117d257600b546040516001600160a01b03909116904790600081818185875af1925050503d806000811461205d576040519150601f19603f3d011682016040523d82523d6000602084013e612062565b606091505b50505050505050565b6001600160a01b0382166000908152601460205260409020805460ff191682151517905561209982826123ea565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b0383166120fb5760405162461bcd60e51b81526004016109399061274a565b6001600160a01b0382166121215760405162461bcd60e51b81526004016109399061278f565b6001600160a01b038316600090815260208190526040902054818110156121995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610939565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906121d09084906126bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221c91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061225f5761225f6127e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230191906127ff565b81600181518110612314576123146127e9565b60200260200101906001600160a01b031690816001600160a01b03168152505061235f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846117d8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906123b490859060009086903090429060040161281c565b600060405180830381600087803b1580156123ce57600080fd5b505af11580156123e2573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260136020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b8181101561247a5785810183015185820160400152820161245e565b8181111561248c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461099457600080fd5b600080604083850312156124ca57600080fd5b82356124d5816124a2565b946020939093013593505050565b6000602082840312156124f557600080fd5b8135612500816124a2565b9392505050565b60006020828403121561251957600080fd5b5035919050565b60008060006060848603121561253557600080fd5b8335612540816124a2565b92506020840135612550816124a2565b929592945050506040919091013590565b801515811461099457600080fd5b6000806040838503121561258257600080fd5b82356124d581612561565b600080604083850312156125a057600080fd5b82356125ab816124a2565b915060208301356125bb81612561565b809150509250929050565b600080604083850312156125d957600080fd5b82356125e4816124a2565b915060208301356125bb816124a2565b600181811c9082168061260857607f821691505b6020821081141561262957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561269457612694612664565b500290565b6000826126b657634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156126ce576126ce612664565b500190565b60208082526021908201527f6f6e6c79205472656173757279416464726573732063616e20776974686472616040820152607760f81b606082015260800190565b60006020828403121561272657600080fd5b5051919050565b60006020828403121561273f57600080fd5b815161250081612561565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156127e4576127e4612664565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561281157600080fd5b8151612500816124a2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561286c5784516001600160a01b031683529383019391830191600101612847565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122080d8b1b3b97df4256c7c2d341e7e0b1849d8ee528b7a435305ee9fc2d850187564736f6c634300080c0033
Deployed Bytecode Sourcemap
6982:12544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2614:169;;;;;;;;;;-1:-1:-1;2614:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;2614:169:0;1072:187:1;7786:64:0;;;;;;;;;;-1:-1:-1;7786:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7130:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1698:32:1;;;1680:51;;1668:2;1653:18;7130:43:0;1516:221:1;2021:108:0;;;;;;;;;;-1:-1:-1;2109:12:0;;2021:108;;;1888:25:1;;;1876:2;1861:18;2021:108:0;1742:177:1;12860:151:0;;;;;;;;;;-1:-1:-1;12860:151:0;;;;;:::i;:::-;;:::i;:::-;;2791:480;;;;;;;;;;-1:-1:-1;2791:480:0;;;;;:::i;:::-;;:::i;7599:22::-;;;;;;;;;;;;;;;;10213:269;;;;;;;;;;-1:-1:-1;10213:269:0;;;;;:::i;:::-;;:::i;1920:93::-;;;;;;;;;;-1:-1:-1;1920:93:0;;2003:2;2712:36:1;;2700:2;2685:18;1920:93:0;2570:184:1;3279:215:0;;;;;;;;;;-1:-1:-1;3279:215:0;;;;;:::i;:::-;;:::i;12704:148::-;;;;;;;;;;-1:-1:-1;12704:148:0;;;;;:::i;:::-;;:::i;7571:21::-;;;;;;;;;;;;;;;;7180:38;;;;;;;;;;;;;;;7451:33;;;;;;;;;;-1:-1:-1;7451:33:0;;;;;;;;18774:270;;;;;;;;;;;;;:::i;7297:30::-;;;;;;;;;;-1:-1:-1;7297:30:0;;;;-1:-1:-1;;;;;7297:30:0;;;19098:425;;;;;;;;;;-1:-1:-1;19098:425:0;;;;;:::i;:::-;;:::i;17837:281::-;;;;;;;;;;-1:-1:-1;17837:281:0;;;;;:::i;:::-;;:::i;7056:28::-;;;;;;;;;;;;;;;;7531:31;;;;;;;;;;-1:-1:-1;7531:31:0;;;;;;;;;;;2137:127;;;;;;;;;;-1:-1:-1;2137:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2238:18:0;2211:7;2238:18;;;;;;;;;;;;2137:127;5741:150;;;;;;;;;;;;;:::i;10820:115::-;;;;;;;;;;;;;:::i;11158:267::-;;;;;;;;;;-1:-1:-1;11158:267:0;;;;;:::i;:::-;;:::i;11943:452::-;;;;;;;;;;-1:-1:-1;11943:452:0;;;;;:::i;:::-;;:::i;7022:27::-;;;;;;;;;;;;;;;;5527:79;;;;;;;;;;-1:-1:-1;5592:6:0;;-1:-1:-1;;;;;5592:6:0;5527:79;;1808:104;;;;;;;;;;;;;:::i;16805:246::-;;;;;;;;;;-1:-1:-1;16805:246:0;;;;;:::i;:::-;;:::i;3502:401::-;;;;;;;;;;-1:-1:-1;3502:401:0;;;;;:::i;:::-;;:::i;2272:175::-;;;;;;;;;;-1:-1:-1;2272:175:0;;;;;:::i;:::-;;:::i;7091:30::-;;;;;;;;;;;;;;;;8008:58;;;;;;;;;;-1:-1:-1;8008:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7491:33;;;;;;;;;;-1:-1:-1;7491:33:0;;;;;;;;;;;13019:182;;;;;;;;;;-1:-1:-1;13019:182:0;;;;;:::i;:::-;;:::i;11433:284::-;;;;;;;;;;-1:-1:-1;11433:284:0;;;;;:::i;:::-;;:::i;11725:210::-;;;;;;;;;;-1:-1:-1;11725:210:0;;;;;:::i;:::-;;:::i;7630:32::-;;;;;;;;;;;;;;;;10490:274;;;;;;;;;;-1:-1:-1;10490:274:0;;;;;:::i;:::-;;:::i;2455:151::-;;;;;;;;;;-1:-1:-1;2455:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2571:18:0;;;2544:7;2571:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2455:151;7255:33;;;;;;;;;;;;;;;;7336:37;;;;;;;;;;;;;;;;5899:244;;;;;;;;;;-1:-1:-1;5899:244:0;;;;;:::i;:::-;;:::i;12465:231::-;;;;;;;;;;;;;:::i;7413:29::-;;;;;;;;;;;;;;;;1700:100;1754:13;1787:5;1780:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:100;:::o;2614:169::-;2697:4;2714:39;219:10;2737:7;2746:6;2714:8;:39::i;:::-;-1:-1:-1;2771:4:0;2614:169;;;;:::o;12860:151::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;;;;;;;;;12927:7:::1;:14:::0;;;12971:2:::1;12960:13:::0;::::1;;12952:51;;;::::0;-1:-1:-1;;;12952:51:0;;5132:2:1;12952:51:0::1;::::0;::::1;5114:21:1::0;5171:2;5151:18;;;5144:30;-1:-1:-1;;;5190:18:1;;;5183:55;5255:18;;12952:51:0::1;4930:349:1::0;12952:51:0::1;12860:151:::0;:::o;2791:480::-;2931:4;2948:36;2958:6;2966:9;2977:6;2948:9;:36::i;:::-;-1:-1:-1;;;;;3024:19:0;;2997:24;3024:19;;;:11;:19;;;;;;;;219:10;3024:33;;;;;;;;3076:26;;;;3068:79;;;;-1:-1:-1;;;3068:79:0;;5486:2:1;3068:79:0;;;5468:21:1;5525:2;5505:18;;;5498:30;5564:34;5544:18;;;5537:62;-1:-1:-1;;;5615:18:1;;;5608:38;5663:19;;3068:79:0;5284:404:1;3068:79:0;3175:57;3184:6;219:10;3225:6;3206:16;:25;3175:8;:57::i;:::-;-1:-1:-1;3259:4:0;;2791:480;-1:-1:-1;;;;2791:480:0:o;10213:269::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;10332:4:::1;10326;10306:13;2109:12:::0;;;2021:108;10306:13:::1;:17;::::0;10322:1:::1;10306:17;:::i;:::-;:24;;;;:::i;:::-;10305:31;;;;:::i;:::-;10295:6;:41;;10287:95;;;::::0;-1:-1:-1;;;10287:95:0;;6422:2:1;10287:95:0::1;::::0;::::1;6404:21:1::0;6461:2;6441:18;;;6434:30;6500:34;6480:18;;;6473:62;-1:-1:-1;;;6551:18:1;;;6544:39;6600:19;;10287:95:0::1;6220:405:1::0;10287:95:0::1;10408:17;:6:::0;10418::::1;10408:17;:::i;:::-;10393:12;:32:::0;;;10441:33:::1;::::0;1888:25:1;;;10441:33:0::1;::::0;1876:2:1;1861:18;10441:33:0::1;;;;;;;;10213:269:::0;:::o;3279:215::-;219:10;3367:4;3416:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3416:34:0;;;;;;;;;;3367:4;;3384:80;;3407:7;;3416:47;;3453:10;;3416:47;:::i;:::-;3384:8;:80::i;12704:148::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;12770:6:::1;:13:::0;;;12812:2:::1;12802:12:::0;::::1;;12794:50;;;::::0;-1:-1:-1;;;12794:50:0;;5132:2:1;12794:50:0::1;::::0;::::1;5114:21:1::0;5171:2;5151:18;;;5144:30;-1:-1:-1;;;5190:18:1;;;5183:55;5255:18;;12794:50:0::1;4930:349:1::0;18774:270:0;18838:15;;-1:-1:-1;;;;;18838:15:0;219:10;-1:-1:-1;;;;;18824:29:0;;18816:38;;;;;;18904:4;18865:20;2238:18;;;;;;;;;;;18924:14;;18921:116;;18954:8;:15;;-1:-1:-1;;18954:15:0;18965:4;18954:15;;;18984:10;:8;:10::i;:::-;19009:8;:16;;-1:-1:-1;;19009:16:0;;;18805:239;18774:270::o;19098:425::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;19195:13:::1;::::0;::::1;::::0;::::1;;;19194:14;19186:51;;;::::0;-1:-1:-1;;;19186:51:0;;6965:2:1;19186:51:0::1;::::0;::::1;6947:21:1::0;7004:2;6984:18;;;6977:30;7043:26;7023:18;;;7016:54;7087:18;;19186:51:0::1;6763:348:1::0;19186:51:0::1;19248:13;:23:::0;;-1:-1:-1;;19248:23:0;::::1;;;::::0;;::::1;19282:18:::0;;;;-1:-1:-1;;19282:18:0;;;;;;;;::::1;::::0;;;;19316:42:::1;::::0;::::1;::::0;::::1;::::0;19331:13;::::1;19248:23;19331:13;::::0;19346:11;;7309:14:1;;7302:22;7284:41;;7356:2;7341:18;;7334:34;7272:2;7257:18;;7116:258;19316:42:0::1;;;;;;;;19375:13;::::0;::::1;::::0;::::1;;;:40:::0;::::1;;;-1:-1:-1::0;19392:18:0::1;::::0;:23;19375:40:::1;19371:145;;;19453:12;19432:18;:33:::0;19480:10:::1;:24:::0;;;19371:145:::1;19098:425:::0;;:::o;17837:281::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17929:30:0;::::1;17921:79;;;::::0;-1:-1:-1;;;17921:79:0;;7581:2:1;17921:79:0::1;::::0;::::1;7563:21:1::0;7620:2;7600:18;;;7593:30;7659:34;7639:18;;;7632:62;-1:-1:-1;;;7710:18:1;;;7703:34;7754:19;;17921:79:0::1;7379:400:1::0;17921:79:0::1;18011:15;:43:::0;;-1:-1:-1;;;;;;18011:43:0::1;-1:-1:-1::0;;;;;18011:43:0;::::1;::::0;;::::1;::::0;;;18070:40:::1;::::0;::::1;::::0;-1:-1:-1;;18070:40:0::1;17837:281:::0;:::o;5741:150::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;5834:6:::1;::::0;5813:40:::1;::::0;5850:1:::1;::::0;-1:-1:-1;;;;;5834:6:0::1;::::0;5813:40:::1;::::0;5850:1;;5813:40:::1;5864:6;:19:::0;;-1:-1:-1;;;;;;5864:19:0::1;::::0;;5741:150::o;10820:115::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;10874:14:::1;:22:::0;;-1:-1:-1;;10874:22:0::1;::::0;;10912:15:::1;::::0;::::1;::::0;10891:5:::1;::::0;10912:15:::1;10820:115::o:0;11158:267::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;11254:4:::1;11250:111;;11292:13;-1:-1:-1::0;;;;;11282:23:0::1;:6;-1:-1:-1::0;;;;;11282:23:0::1;;;11274:75;;;::::0;-1:-1:-1;;;11274:75:0;;7986:2:1;11274:75:0::1;::::0;::::1;7968:21:1::0;8025:2;8005:18;;;7998:30;8064:34;8044:18;;;8037:62;-1:-1:-1;;;8115:18:1;;;8108:37;8162:19;;11274:75:0::1;7784:403:1::0;11274:75:0::1;-1:-1:-1::0;;;;;11371:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;11371:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11158:267::o;11943:452::-;12018:10;-1:-1:-1;;;;;12049:20:0;;12041:59;;;;-1:-1:-1;;;12041:59:0;;8394:2:1;12041:59:0;;;8376:21:1;8433:2;8413:18;;;8406:30;8472:28;8452:18;;;8445:56;8518:18;;12041:59:0;8192:350:1;12041:59:0;12131:15;;-1:-1:-1;;;;;12131:15:0;12119:10;:27;12111:72;;;;-1:-1:-1;;;12111:72:0;;;;;;;:::i;:::-;12221:39;;-1:-1:-1;;;12221:39:0;;12254:4;12221:39;;;1680:51:1;12194:24:0;;-1:-1:-1;;;;;12221:24:0;;;;;1653:18:1;;12221:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12279:46;;-1:-1:-1;;;12279:46:0;;-1:-1:-1;;;;;9330:32:1;;;12279:46:0;;;9312:51:1;9379:18;;;9372:34;;;12194:66:0;;-1:-1:-1;12279:23:0;;;;;;9285:18:1;;12279:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12341;;;-1:-1:-1;;;;;9330:32:1;;9312:51;;9394:2;9379:18;;9372:34;;;12271:54:0;;-1:-1:-1;12341:46:0;;9285:18:1;12341:46:0;;;;;;;12030:365;11943:452;;;;:::o;1808:104::-;1864:13;1897:7;1890:14;;;;;:::i;16805:246::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;16914:13:::1;-1:-1:-1::0;;;;;16906:21:0::1;:4;-1:-1:-1::0;;;;;16906:21:0::1;;;16898:91;;;::::0;-1:-1:-1;;;16898:91:0;;9869:2:1;16898:91:0::1;::::0;::::1;9851:21:1::0;9908:2;9888:18;;;9881:30;9947:34;9927:18;;;9920:62;10018:27;9998:18;;;9991:55;10063:19;;16898:91:0::1;9667:421:1::0;16898:91:0::1;17002:41;17031:4;17037:5;17002:28;:41::i;3502:401::-:0;219:10;3595:4;3639:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3639:34:0;;;;;;;;;;3692:35;;;;3684:85;;;;-1:-1:-1;;;3684:85:0;;10295:2:1;3684:85:0;;;10277:21:1;10334:2;10314:18;;;10307:30;10373:34;10353:18;;;10346:62;-1:-1:-1;;;10424:18:1;;;10417:35;10469:19;;3684:85:0;10093:401:1;3684:85:0;3797:67;219:10;3820:7;3848:15;3829:16;:34;3797:8;:67::i;:::-;-1:-1:-1;3891:4:0;;3502:401;-1:-1:-1;;;3502:401:0:o;2272:175::-;2358:4;2375:42;219:10;2399:9;2410:6;2375:9;:42::i;13019:182::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13104:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;13104:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13159:34;;1212:41:1;;;13159:34:0::1;::::0;1185:18:1;13159:34:0::1;;;;;;;13019:182:::0;;:::o;11433:284::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;11555:4:::1;11549;11529:13;2109:12:::0;;;2021:108;11529:13:::1;:17;::::0;11545:1:::1;11529:17;:::i;:::-;:24;;;;:::i;:::-;11528:31;;;;:::i;:::-;11518:6;:41;;11510:98;;;::::0;-1:-1:-1;;;11510:98:0;;10701:2:1;11510:98:0::1;::::0;::::1;10683:21:1::0;10740:2;10720:18;;;10713:30;10779:34;10759:18;;;10752:62;-1:-1:-1;;;10830:18:1;;;10823:42;10882:19;;11510:98:0::1;10499:408:1::0;11510:98:0::1;11637:17;:6:::0;11647::::1;11637:17;:::i;:::-;11619:15;:35:::0;;;11670:39:::1;::::0;1888:25:1;;;11670:39:0::1;::::0;1876:2:1;1861:18;11670:39:0::1;1742:177:1::0;11725:210:0;11812:15;;-1:-1:-1;;;;;11812:15:0;11800:10;:27;11792:84;;;;-1:-1:-1;;;11792:84:0;;11114:2:1;11792:84:0;;;11096:21:1;11153:2;11133:18;;;11126:30;11192:34;11172:18;;;11165:62;-1:-1:-1;;;11243:18:1;;;11236:43;11296:19;;11792:84:0;10912:409:1;11792:84:0;11908:19;:9;11920:6;11908:19;:::i;:::-;11887:18;:40;-1:-1:-1;11725:210:0:o;10490:274::-;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;10610:4:::1;10604;10584:13;2109:12:::0;;;2021:108;10584:13:::1;:17;::::0;10600:1:::1;10584:17;:::i;:::-;:24;;;;:::i;:::-;10583:31;;;;:::i;:::-;10573:6;:41;;10565:96;;;::::0;-1:-1:-1;;;10565:96:0;;11528:2:1;10565:96:0::1;::::0;::::1;11510:21:1::0;11567:2;11547:18;;;11540:30;11606:34;11586:18;;;11579:62;-1:-1:-1;;;11657:18:1;;;11650:40;11707:19;;10565:96:0::1;11326:406:1::0;10565:96:0::1;10688:17;:6:::0;10698::::1;10688:17;:::i;:::-;10672:13;:33:::0;;;10721:35:::1;::::0;1888:25:1;;;10721:35:0::1;::::0;1876:2:1;1861:18;10721:35:0::1;1742:177:1::0;5899:244:0;5654:6;;-1:-1:-1;;;;;5654:6:0;219:10;5654:22;5646:67;;;;-1:-1:-1;;;5646:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5988:22:0;::::1;5980:73;;;::::0;-1:-1:-1;;;5980:73:0;;11939:2:1;5980:73:0::1;::::0;::::1;11921:21:1::0;11978:2;11958:18;;;11951:30;12017:34;11997:18;;;11990:62;-1:-1:-1;;;12068:18:1;;;12061:36;12114:19;;5980:73:0::1;11737:402:1::0;5980:73:0::1;6090:6;::::0;6069:38:::1;::::0;-1:-1:-1;;;;;6069:38:0;;::::1;::::0;6090:6:::1;::::0;6069:38:::1;::::0;6090:6:::1;::::0;6069:38:::1;6118:6;:17:::0;;-1:-1:-1;;;;;;6118:17:0::1;-1:-1:-1::0;;;;;6118:17:0;;;::::1;::::0;;;::::1;::::0;;5899:244::o;12465:231::-;12554:15;;12511:12;;-1:-1:-1;;;;;12554:15:0;12542:10;:27;12534:72;;;;-1:-1:-1;;;12534:72:0;;;;;;;:::i;:::-;12630:58;;12638:10;;12662:21;;12630:58;;;;12662:21;12638:10;12630:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12465:231:0:o;4820:380::-;-1:-1:-1;;;;;4956:19:0;;4948:68;;;;-1:-1:-1;;;4948:68:0;;12556:2:1;4948:68:0;;;12538:21:1;12595:2;12575:18;;;12568:30;12634:34;12614:18;;;12607:62;-1:-1:-1;;;12685:18:1;;;12678:34;12729:19;;4948:68:0;12354:400:1;4948:68:0;-1:-1:-1;;;;;5035:21:0;;5027:68;;;;-1:-1:-1;;;5027:68:0;;12961:2:1;5027:68:0;;;12943:21:1;13000:2;12980:18;;;12973:30;13039:34;13019:18;;;13012:62;-1:-1:-1;;;13090:18:1;;;13083:32;13132:19;;5027:68:0;12759:398:1;5027:68:0;-1:-1:-1;;;;;5108:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5160:32;;1888:25:1;;;5160:32:0;;1861:18:1;5160:32:0;;;;;;;4820:380;;;:::o;13209:2991::-;-1:-1:-1;;;;;13309:18:0;;13301:68;;;;-1:-1:-1;;;13301:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13388:16:0;;13380:64;;;;-1:-1:-1;;;13380:64:0;;;;;;;:::i;:::-;13472:1;13463:6;:10;13455:52;;;;-1:-1:-1;;;13455:52:0;;14174:2:1;13455:52:0;;;14156:21:1;14213:2;14193:18;;;14186:30;14252:31;14232:18;;;14225:59;14301:18;;13455:52:0;13972:353:1;13455:52:0;13525:14;;;;13522:1224;;;5592:6;;-1:-1:-1;;;;;13559:15:0;;;5592:6;;13559:15;;;;:32;;-1:-1:-1;5592:6:0;;-1:-1:-1;;;;;13578:13:0;;;5592:6;;13578:13;;13559:32;:52;;;;-1:-1:-1;;;;;;13595:16:0;;;;13559:52;:77;;;;-1:-1:-1;;;;;;13615:21:0;;13629:6;13615:21;;13559:77;13555:1180;;;13660:13;;;;;;;13656:245;;-1:-1:-1;;;;;13705:37:0;;;;;;:31;:37;;;;;;;;;:76;;-1:-1:-1;;;;;;13746:35:0;;;;;;:31;:35;;;;;;;;13705:76;13697:111;;;;-1:-1:-1;;;13697:111:0;;14532:2:1;13697:111:0;;;14514:21:1;14571:2;14551:18;;;14544:30;-1:-1:-1;;;14590:18:1;;;14583:52;14652:18;;13697:111:0;14330:346:1;13697:111:0;5592:6;;-1:-1:-1;;;;;13839:15:0;;;5592:6;;13839:15;13831:50;;;;-1:-1:-1;;;13831:50:0;;14883:2:1;13831:50:0;;;14865:21:1;14922:2;14902:18;;;14895:30;-1:-1:-1;;;14941:18:1;;;14934:52;15003:18;;13831:50:0;14681:346:1;13831:50:0;-1:-1:-1;;;;;13951:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;13987:35:0;;;;;;:31;:35;;;;;;;;13986:36;13951:71;13947:773;;;14065:12;;14055:6;:22;;14047:75;;;;-1:-1:-1;;;14047:75:0;;15234:2:1;14047:75:0;;;15216:21:1;15273:2;15253:18;;;15246:30;15312:34;15292:18;;;15285:62;-1:-1:-1;;;15363:18:1;;;15356:38;15411:19;;14047:75:0;15032:404:1;14047:75:0;14179:15;;-1:-1:-1;;;;;2238:18:0;;2211:7;2238:18;;;;;;;;;;;14153:22;;:6;:22;:::i;:::-;:41;;14145:78;;;;-1:-1:-1;;;14145:78:0;;15643:2:1;14145:78:0;;;15625:21:1;15682:2;15662:18;;;15655:30;-1:-1:-1;;;15701:18:1;;;15694:54;15765:18;;14145:78:0;15441:348:1;14145:78:0;13947:773;;;-1:-1:-1;;;;;14299:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;14333:37:0;;;;;;:31;:37;;;;;;;;14332:38;14299:71;14295:425;;;14413:13;;14403:6;:23;;14395:78;;;;-1:-1:-1;;;14395:78:0;;15996:2:1;14395:78:0;;;15978:21:1;16035:2;16015:18;;;16008:30;16074:34;16054:18;;;16047:62;-1:-1:-1;;;16125:18:1;;;16118:40;16175:19;;14395:78:0;15794:406:1;14295:425:0;-1:-1:-1;;;;;14521:35:0;;;;;;:31;:35;;;;;;;;14520:36;:78;;;;-1:-1:-1;;;;;;14561:37:0;;;;;;:31;:37;;;;;;;;14560:38;14520:78;14516:204;;;14656:15;;-1:-1:-1;;;;;2238:18:0;;2211:7;2238:18;;;;;;;;;;;14630:22;;:6;:22;:::i;:::-;:41;;14622:78;;;;-1:-1:-1;;;14622:78:0;;15643:2:1;14622:78:0;;;15625:21:1;15682:2;15662:18;;;15655:30;-1:-1:-1;;;15701:18:1;;;15694:54;15765:18;;14622:78:0;15441:348:1;14622:78:0;14807:4;14758:28;2238:18;;;;;;;;;;;14865;;14841:42;;;;;;;14899:22;;-1:-1:-1;14910:11:0;;;;;;;14899:22;:35;;;;-1:-1:-1;14926:8:0;;;;14925:9;14899:35;:71;;;;-1:-1:-1;;;;;;14939:31:0;;;;;;:25;:31;;;;;;;;14938:32;14899:71;:101;;;;-1:-1:-1;;;;;;14975:25:0;;;;;;:19;:25;;;;;;;;14974:26;14899:101;:129;;;;-1:-1:-1;;;;;;15005:23:0;;;;;;:19;:23;;;;;;;;15004:24;14899:129;14896:232;;;15045:8;:15;;-1:-1:-1;;15045:15:0;15056:4;15045:15;;;15075:10;:8;:10::i;:::-;15100:8;:16;;-1:-1:-1;;15100:16:0;;;14896:232;-1:-1:-1;;;;;15258:25:0;;15140:12;15258:25;;;:19;:25;;;;;;15155:4;;15258:25;;;:52;;-1:-1:-1;;;;;;15287:23:0;;;;;;:19;:23;;;;;;;;15258:52;15255:99;;;-1:-1:-1;15337:5:0;15255:99;15366:12;15393:21;15496:7;:31;;;;;15526:1;15507:18;;:20;15496:31;:68;;;;;15545:18;;15532:12;:31;15496:68;15493:654;;;-1:-1:-1;;;;;15619:29:0;;;;;;:25;:29;;;;;;;;:44;;;;;15662:1;15652:7;;:11;15619:44;15615:357;;;15710:3;15700:7;;15691:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;15684:29;;15753:4;15732:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;15615:357:0;;-1:-1:-1;15615:357:0;;-1:-1:-1;;;;;15818:31:0;;;;;;:25;:31;;;;;;;;:45;;;;;15862:1;15853:6;;:10;15818:45;15815:157;;;15909:3;15900:6;;15891;:15;;;;:::i;:::-;:21;;;;:::i;:::-;15884:28;;15952:4;15931:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;15815:157:0;16003:8;;16000:89;;16031:42;16047:4;16061;16068;16031:15;:42::i;:::-;16115:20;16122:13;16115:4;:20;:::i;:::-;16105:30;;;;:::i;:::-;;;15493:654;16159:33;16175:4;16181:2;16185:6;16159:15;:33::i;:::-;13288:2912;;;;;13209:2991;;;:::o;18129:633::-;18212:4;18168:23;2238:18;;;;;;;;;;;18257:17;;18290:20;;;:46;;-1:-1:-1;18314:22:0;;18290:46;18287:60;;;18339:7;;18129:633::o;18287:60::-;18380:18;;:22;;18401:1;18380:22;:::i;:::-;18362:15;:40;18359:111;;;18436:18;;:22;;18457:1;18436:22;:::i;:::-;18418:40;;18359:111;18482:12;18507:33;18524:15;18507:16;:33::i;:::-;18571:1;18551:17;:21;18604;18639:12;;18636:119;;18688:15;;18680:63;;-1:-1:-1;;;;;18688:15:0;;;;18717:21;;18680:63;;;;18717:21;18688:15;18680:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;18129:633:0:o;17059:240::-;-1:-1:-1;;;;;17142:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;17142:39:0;;;;;;;17194;17142:31;:39;17194:26;:39::i;:::-;17251:40;;;;;;-1:-1:-1;;;;;17251:40:0;;;;;;;;17059:240;;:::o;3911:602::-;-1:-1:-1;;;;;4051:20:0;;4043:70;;;;-1:-1:-1;;;4043:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4132:23:0;;4124:71;;;;-1:-1:-1;;;4124:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4232:17:0;;4208:21;4232:17;;;;;;;;;;;4268:23;;;;4260:74;;;;-1:-1:-1;;;4260:74:0;;16537:2:1;4260:74:0;;;16519:21:1;16576:2;16556:18;;;16549:30;16615:34;16595:18;;;16588:62;-1:-1:-1;;;16666:18:1;;;16659:36;16712:19;;4260:74:0;16335:402:1;4260:74:0;-1:-1:-1;;;;;4362:17:0;;;:9;:17;;;;;;;;;;;4382:22;;;4362:42;;4422:20;;;;;;;;:30;;4398:6;;4362:9;4422:30;;4398:6;;4422:30;:::i;:::-;;;;;;;;4487:9;-1:-1:-1;;;;;4470:35:0;4479:6;-1:-1:-1;;;;;4470:35:0;;4498:6;4470:35;;;;1888:25:1;;1876:2;1861:18;;1742:177;4470:35:0;;;;;;;;4032:481;3911:602;;;:::o;16208:589::-;16358:16;;;16372:1;16358:16;;;;;;;;16334:21;;16358:16;;;;;;;;;;-1:-1:-1;16358:16:0;16334:40;;16403:4;16385;16390:1;16385:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16385:23:0;;;-1:-1:-1;;;;;16385:23:0;;;;;16429:15;-1:-1:-1;;;;;16429:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16419:4;16424:1;16419:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16419:32:0;;;-1:-1:-1;;;;;16419:32:0;;;;;16464:62;16481:4;16496:15;16514:11;16464:8;:62::i;:::-;16565:224;;-1:-1:-1;;;16565:224:0;;-1:-1:-1;;;;;16565:15:0;:66;;;;:224;;16646:11;;16672:1;;16716:4;;16743;;16763:15;;16565:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16263:534;16208:589;:::o;10943:207::-;-1:-1:-1;;;;;11031:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;11031:52:0;;;;;;;;;;11099:43;;18415:51:1;;;18482:18;;;18475:50;11099:43:0;;18388:18:1;11099:43:0;;;;;;;10943:207;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;:::-;1500:5;1264:247;-1:-1:-1;;;1264:247:1:o;1924:180::-;1983:6;2036:2;2024:9;2015:7;2011:23;2007:32;2004:52;;;2052:1;2049;2042:12;2004:52;-1:-1:-1;2075:23:1;;1924:180;-1:-1:-1;1924:180:1:o;2109:456::-;2186:6;2194;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:33;2408:32;2449:33;:::i;:::-;2109:456;;2501:7;;-1:-1:-1;;;2555:2:1;2540:18;;;;2527:32;;2109:456::o;2967:118::-;3053:5;3046:13;3039:21;3032:5;3029:32;3019:60;;3075:1;3072;3065:12;3090:309;3155:6;3163;3216:2;3204:9;3195:7;3191:23;3187:32;3184:52;;;3232:1;3229;3222:12;3184:52;3271:9;3258:23;3290:28;3312:5;3290:28;:::i;3404:382::-;3469:6;3477;3530:2;3518:9;3509:7;3505:23;3501:32;3498:52;;;3546:1;3543;3536:12;3498:52;3585:9;3572:23;3604:31;3629:5;3604:31;:::i;:::-;3654:5;-1:-1:-1;3711:2:1;3696:18;;3683:32;3724:30;3683:32;3724:30;:::i;:::-;3773:7;3763:17;;;3404:382;;;;;:::o;3791:388::-;3859:6;3867;3920:2;3908:9;3899:7;3895:23;3891:32;3888:52;;;3936:1;3933;3926:12;3888:52;3975:9;3962:23;3994:31;4019:5;3994:31;:::i;:::-;4044:5;-1:-1:-1;4101:2:1;4086:18;;4073:32;4114:33;4073:32;4114:33;:::i;4184:380::-;4263:1;4259:12;;;;4306;;;4327:61;;4381:4;4373:6;4369:17;4359:27;;4327:61;4434:2;4426:6;4423:14;4403:18;4400:38;4397:161;;;4480:10;4475:3;4471:20;4468:1;4461:31;4515:4;4512:1;4505:15;4543:4;4540:1;4533:15;4397:161;;4184:380;;;:::o;4569:356::-;4771:2;4753:21;;;4790:18;;;4783:30;4849:34;4844:2;4829:18;;4822:62;4916:2;4901:18;;4569:356::o;5693:127::-;5754:10;5749:3;5745:20;5742:1;5735:31;5785:4;5782:1;5775:15;5809:4;5806:1;5799:15;5825:168;5865:7;5931:1;5927;5923:6;5919:14;5916:1;5913:21;5908:1;5901:9;5894:17;5890:45;5887:71;;;5938:18;;:::i;:::-;-1:-1:-1;5978:9:1;;5825:168::o;5998:217::-;6038:1;6064;6054:132;;6108:10;6103:3;6099:20;6096:1;6089:31;6143:4;6140:1;6133:15;6171:4;6168:1;6161:15;6054:132;-1:-1:-1;6200:9:1;;5998:217::o;6630:128::-;6670:3;6701:1;6697:6;6694:1;6691:13;6688:39;;;6707:18;;:::i;:::-;-1:-1:-1;6743:9:1;;6630:128::o;8547:397::-;8749:2;8731:21;;;8788:2;8768:18;;;8761:30;8827:34;8822:2;8807:18;;8800:62;-1:-1:-1;;;8893:2:1;8878:18;;8871:31;8934:3;8919:19;;8547:397::o;8949:184::-;9019:6;9072:2;9060:9;9051:7;9047:23;9043:32;9040:52;;;9088:1;9085;9078:12;9040:52;-1:-1:-1;9111:16:1;;8949:184;-1:-1:-1;8949:184:1:o;9417:245::-;9484:6;9537:2;9525:9;9516:7;9512:23;9508:32;9505:52;;;9553:1;9550;9543:12;9505:52;9585:9;9579:16;9604:28;9626:5;9604:28;:::i;13162:401::-;13364:2;13346:21;;;13403:2;13383:18;;;13376:30;13442:34;13437:2;13422:18;;13415:62;-1:-1:-1;;;13508:2:1;13493:18;;13486:35;13553:3;13538:19;;13162:401::o;13568:399::-;13770:2;13752:21;;;13809:2;13789:18;;;13782:30;13848:34;13843:2;13828:18;;13821:62;-1:-1:-1;;;13914:2:1;13899:18;;13892:33;13957:3;13942:19;;13568:399::o;16205:125::-;16245:4;16273:1;16270;16267:8;16264:34;;;16278:18;;:::i;:::-;-1:-1:-1;16315:9:1;;16205:125::o;16874:127::-;16935:10;16930:3;16926:20;16923:1;16916:31;16966:4;16963:1;16956:15;16990:4;16987:1;16980:15;17006:251;17076:6;17129:2;17117:9;17108:7;17104:23;17100:32;17097:52;;;17145:1;17142;17135:12;17097:52;17177:9;17171:16;17196:31;17221:5;17196:31;:::i;17262:980::-;17524:4;17572:3;17561:9;17557:19;17603:6;17592:9;17585:25;17629:2;17667:6;17662:2;17651:9;17647:18;17640:34;17710:3;17705:2;17694:9;17690:18;17683:31;17734:6;17769;17763:13;17800:6;17792;17785:22;17838:3;17827:9;17823:19;17816:26;;17877:2;17869:6;17865:15;17851:29;;17898:1;17908:195;17922:6;17919:1;17916:13;17908:195;;;17987:13;;-1:-1:-1;;;;;17983:39:1;17971:52;;18078:15;;;;18043:12;;;;18019:1;17937:9;17908:195;;;-1:-1:-1;;;;;;;18159:32:1;;;;18154:2;18139:18;;18132:60;-1:-1:-1;;;18223:3:1;18208:19;18201:35;18120:3;17262:980;-1:-1:-1;;;17262:980:1:o
Swarm Source
ipfs://80d8b1b3b97df4256c7c2d341e7e0b1849d8ee528b7a435305ee9fc2d8501875
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.