Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
MEME
Overview
Max Total Supply
100,000,000,000,000 PEPEAI
Holders
732 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0 PEPEAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPEAI
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-20 */ /** https://pepeai.org */ // SPDX-License-Identifier: NOLICENSE pragma solidity ^0.8.0; 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); } 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; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract PEPEAI is Context, IERC20, Ownable { mapping (address => uint256) private _balance; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isBot; bool public swapEnabled; bool private swapping; IRouter private router; address private pair; uint8 private constant DECIMALS = 9; uint256 private constant MAX = ~uint256(0); uint256 private constant T_TOTAL = 1e14 * 10**DECIMALS; uint256 public swapTokensAtAmount = 20_000_000_000 * 10**DECIMALS; address public constant ZERO_ADDRESS = address(0); address public marketingAddress = ZERO_ADDRESS; string private constant NAME = "PEPEAI"; string private constant SYMBOL = "PEPEAI"; enum ETransferType { Sell, Buy, Transfer } struct Taxes { uint16 marketing; uint16 liquidity; } uint8 public transferTaxesTier; Taxes public transferTaxes = Taxes(0,0); uint8 public buyTaxesTier; Taxes public buyTaxes; uint8 public sellTaxesTier; Taxes public sellTaxes; struct TotFeesPaidStruct{ uint256 marketing; uint256 liquidity; } TotFeesPaidStruct public totFeesPaid; modifier lockTheSwap { swapping = true; _; swapping = false; } constructor (address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; _balance[owner()] = T_TOTAL; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingAddress]=true; etx(2); emit Transfer(address(0), owner(), T_TOTAL); } //std ERC20: function name() public pure returns (string memory) { return NAME; } function symbol() public pure returns (string memory) { return SYMBOL; } function decimals() public pure returns (uint8) { return DECIMALS; } //override ERC20: function totalSupply() public pure override returns (uint256) { return T_TOTAL; } function balanceOf(address account) public view override returns (uint256) { return _balance[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _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"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(!_isBot[from] && !_isBot[to], "You are a bot"); ETransferType transferType = ETransferType.Transfer; address trader = address(0); Taxes memory usedTaxes = transferTaxes; bool excludedFromFee = false; if (to == pair) { transferType = ETransferType.Sell; trader = from; usedTaxes = sellTaxes; excludedFromFee = _isExcludedFromFee[trader]; } else if (from == pair) { transferType = ETransferType.Buy; trader = to; usedTaxes = buyTaxes; excludedFromFee = _isExcludedFromFee[trader]; } else { usedTaxes = transferTaxes; excludedFromFee = _isExcludedFromFee[from] || _isExcludedFromFee[to]; } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(transferType != ETransferType.Buy && !swapping && swapEnabled && canSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ swapAndLiquify(swapTokensAtAmount); } if (excludedFromFee || usedTaxes.marketing + usedTaxes.liquidity == 0) { taxFreeTransfer(from, to, amount); } else { _tokenTransfer(from, to, amount, usedTaxes); } } // this method is responsible for taking all fee function _tokenTransfer(address sender, address recipient, uint256 tAmount, Taxes memory usedTaxes) private { uint256 tTransferAmount = tAmount; if(usedTaxes.liquidity != 0) { uint256 tLiquidity = tAmount * usedTaxes.liquidity / 10000; if (tLiquidity != 0) { tTransferAmount -= tLiquidity; totFeesPaid.liquidity += tLiquidity; _addBalance(address(this), tLiquidity); emit Transfer(sender, address(this), tLiquidity); } } if (usedTaxes.marketing != 0) { uint256 tMarketing = tAmount * usedTaxes.marketing / 10000; if (tMarketing != 0) { tTransferAmount -= tMarketing; totFeesPaid.marketing += tMarketing; _addBalance(marketingAddress, tMarketing); emit Transfer(sender, marketingAddress, tMarketing); } } _reduceBalance(sender, tAmount); if (tTransferAmount != 0) { _addBalance(recipient, tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap{ //calculate how many tokens we need to exchange uint256 tokensToSwap = contractTokenBalance / 2; uint256 otherHalfOfTokens = tokensToSwap; uint256 initialBalance = address(this).balance; swapTokensForBNB(tokensToSwap, address(this)); uint256 newBalance = address(this).balance - (initialBalance); addLiquidity(otherHalfOfTokens, newBalance); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapTokensForBNB(uint256 tokenAmount, address recipient) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, payable(recipient), block.timestamp ); } function getTaxesValueByTier(uint8 tier) private view returns(uint16, uint16) { if (tier == 0) { return (0, 0); } if (tier == 1) { if (marketingAddress == ZERO_ADDRESS) { return (0, 60); } return (30, 30); } if (marketingAddress == ZERO_ADDRESS) { return (0, 500); } return (200, 300); } function getTransferTaxesValueByTier(uint8 tier) private view returns(uint16, uint16) { if (tier == 0) { return (0, 0); } if (tier == 1) { if (marketingAddress == ZERO_ADDRESS) { return (0, 0); } return (30, 0); } if (marketingAddress == ZERO_ADDRESS) { return (0, 0); } return (30, 0); } function checkAndUpdateTaxes(bool buyChanged, bool sellChanged, bool transferChanged) private { if (buyChanged) { (uint16 v1, uint16 v2) = getTaxesValueByTier(buyTaxesTier); buyTaxes = Taxes(v1, v2); } if (sellChanged) { (uint16 v1, uint16 v2) = getTaxesValueByTier(sellTaxesTier); sellTaxes = Taxes(v1, v2); } if (transferChanged) { (uint16 v1, uint16 v2) = getTransferTaxesValueByTier(transferTaxesTier); transferTaxes = Taxes(v1, v2); } } function updateMarketingWallet(address newWallet) external onlyOwner{ require(marketingAddress != newWallet, "Wallet already set"); marketingAddress = newWallet; _isExcludedFromFee[marketingAddress] = true; checkAndUpdateTaxes(true, true, true); } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**DECIMALS; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function setAntibot(address account, bool state) external onlyOwner{ require(_isBot[account] != state, "Value already set"); _isBot[account] = state; } function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isBot[accounts[i]] = state; } } function isBot(address account) public view returns(bool){ return _isBot[account]; } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } function taxFreeTransfer(address sender, address recipient, uint256 tAmount) internal { _reduceBalance(sender, tAmount); _addBalance(recipient, tAmount); emit Transfer(sender, recipient, tAmount); } function _addBalance(address account, uint256 tAmount) private { _balance[account] += tAmount; } function _reduceBalance(address account, uint256 tAmount) private { _balance[account] -= tAmount; } function airdropTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner{ require(accounts.length == amounts.length, "Arrays must have the same size"); for(uint256 i= 0; i < accounts.length; i++){ taxFreeTransfer(msg.sender, accounts[i], amounts[i] * 10**DECIMALS); } } function dtx() public onlyOwner{ buyTaxesTier = 0; sellTaxesTier = 0; transferTaxesTier = 0; checkAndUpdateTaxes(true, true, true); } function etx(uint8 taxesTier) public onlyOwner{ require(taxesTier > 0 && taxesTier <=2); buyTaxesTier = taxesTier; sellTaxesTier = taxesTier; transferTaxesTier = taxesTier; checkAndUpdateTaxes(true, true, true); } function etxBuy(uint8 taxesTier) public onlyOwner{ require(taxesTier > 0 && taxesTier <=2); buyTaxesTier = taxesTier; checkAndUpdateTaxes(true, false, false); } function etxSell(uint8 taxesTier) public onlyOwner{ require(taxesTier > 0 && taxesTier <=2); sellTaxesTier = taxesTier; checkAndUpdateTaxes(false, true, false); } function etxTransfer(uint8 taxesTier) public onlyOwner{ require(taxesTier > 0 && taxesTier <=2); transferTaxesTier = taxesTier; checkAndUpdateTaxes(false, false, true); } function dtxBuy() public onlyOwner{ buyTaxesTier = 0; checkAndUpdateTaxes(true, false, false); } function dtxSell() public onlyOwner{ sellTaxesTier = 0; checkAndUpdateTaxes(false, true, false); } function dtxTransfer() public onlyOwner{ transferTaxesTier = 0; checkAndUpdateTaxes(false, false, true); } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake) // Owner cannot transfer out self from this smart contract function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { require(_tokenAddr != address(this), "Cannot transfer out self!"); IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxesTier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dtx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dtxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dtxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dtxTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etxTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxesTier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","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":"pure","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferTaxesTier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a6200078f565b62000023906404a817c800620007a7565b600755600880546001600160a01b03191690556040805180820190915260008082526020909101526009805463ffffffff191690553480156200006557600080fd5b506040516200301c3803806200301c8339810160408190526200008891620007c1565b620000933362000357565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ff9190620007c1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001739190620007c1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e79190620007c1565b6005805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600680546001600160a01b0319169183169190911790559050620002386009600a6200078f565b6200024a90655af3107a4000620007a7565b60016000620002616000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600360006200029b620003a760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560085490911681526003909252902080549091166001179055620002ee6002620003b6565b600080546001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200032b6009600a6200078f565b6200033d90655af3107a4000620007a7565b60405190815260200160405180910390a3505050620007ec565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b6000546001600160a01b03163314620004155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b60008160ff161180156200042d575060028160ff1611155b6200043757600080fd5b600a805460ff1990811660ff8416908117909255600c8054909116821790556008805460ff60a01b1916600160a01b9092029190911790556200047d6001808062000480565b50565b8215620004d957600a5460009081906200049d9060ff1662000597565b6040805180820190915261ffff928316808252929091166020909101819052600b80546201000090920263ffffffff1990921690921717905550505b81156200053257600c546000908190620004f69060ff1662000597565b6040805180820190915261ffff928316808252929091166020909101819052600d80546201000090920263ffffffff1990921690921717905550505b8015620005925760085460009081906200055690600160a01b900460ff1662000610565b6040805180820190915261ffff928316808252929091166020909101819052600980546201000090920263ffffffff1990921690921717905550505b505050565b6000808260ff16600003620005b157506000928392509050565b8260ff16600103620005e5576008546001600160a01b0316620005da5750600092603c92509050565b50601e928392509050565b6008546001600160a01b03166200060357506000926101f492509050565b5060c89261012c92509050565b6000808260ff166000036200062a57506000928392509050565b8260ff166001036200065e576008546001600160a01b03166200065257506000928392509050565b50601e92600092509050565b6008546001600160a01b03166200065257506000928392509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d1578160001904821115620006b557620006b56200067a565b80851615620006c357918102915b93841c939080029062000695565b509250929050565b600082620006ea5750600162000789565b81620006f95750600062000789565b81600181146200071257600281146200071d576200073d565b600191505062000789565b60ff8411156200073157620007316200067a565b50506001821b62000789565b5060208310610133831016604e8410600b841016171562000762575081810a62000789565b6200076e838362000690565b80600019048211156200078557620007856200067a565b0290505b92915050565b6000620007a060ff841683620006d9565b9392505050565b80820281158282048414176200078957620007896200067a565b600060208284031215620007d457600080fd5b81516001600160a01b0381168114620007a057600080fd5b61282080620007fc6000396000f3fe6080604052600436106102815760003560e01c8063715018a61161014f578063b2ca2f06116100c1578063e11655451161007a578063e116554514610817578063e2f4560514610837578063ea2f0b371461084d578063f2fde38b1461086d578063f66895a31461088d578063f90dfee5146108b257600080fd5b8063b2ca2f0614610747578063b31470a41461075c578063cd4c7d901461077c578063d257b34f14610791578063d54adc84146107b1578063dd62ed3e146107d157600080fd5b80639ba5e4d5116101135780639ba5e4d51461067d5780639dbcb1d6146106ad578063a457c2d7146106c7578063a5ece941146106e7578063a9059cbb14610707578063aacebbe31461072757600080fd5b8063715018a614610605578063864701a51461061a5780638da5cb5b1461063f578063924de9b71461065d57806395d89b41146102af57600080fd5b806340b28c2f116101f35780635331803c116101ac5780635331803c146104ef5780635342acb41461052f578063538ba4f9146105685780636ddd171314610595578063706f6937146105af57806370a08231146105cf57600080fd5b806340b28c2f1461043a57806342b36ed01461045a578063437823ec1461046f578063441b1d301461048f57806347c23092146104af5780634ac92b27146104cf57600080fd5b80632427b7c3116102455780632427b7c3146103605780632dfb2cbc14610393578063313ce567146103b357806339420731146103c757806339509351146103e15780633bbac5791461040157600080fd5b80630444a3731461028d57806306fdde03146102af578063095ea7b3146102ed57806318160ddd1461031d57806323b872dd1461034057600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a836600461214a565b6108c7565b005b3480156102bb57600080fd5b50604080518082018252600681526550455045414960d01b602082015290516102e49190612174565b60405180910390f35b3480156102f957600080fd5b5061030d6103083660046121d7565b610939565b60405190151581526020016102e4565b34801561032957600080fd5b50610332610950565b6040519081526020016102e4565b34801561034c57600080fd5b5061030d61035b366004612203565b610973565b34801561036c57600080fd5b5060085461038190600160a01b900460ff1681565b60405160ff90911681526020016102e4565b34801561039f57600080fd5b506102ad6103ae36600461214a565b610a2d565b3480156103bf57600080fd5b506009610381565b3480156103d357600080fd5b50600c546103819060ff1681565b3480156103ed57600080fd5b5061030d6103fc3660046121d7565b610a9c565b34801561040d57600080fd5b5061030d61041c366004612244565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561044657600080fd5b506102ad610455366004612261565b610ad3565b34801561046657600080fd5b506102ad610b37565b34801561047b57600080fd5b506102ad61048a366004612244565b610b7d565b34801561049b57600080fd5b506102ad6104aa36600461229a565b610bcb565b3480156104bb57600080fd5b506102ad6104ca366004612203565b610c76565b3480156104db57600080fd5b506102ad6104ea36600461214a565b610d71565b3480156104fb57600080fd5b506009546105149061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102e4565b34801561053b57600080fd5b5061030d61054a366004612244565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561057457600080fd5b5061057d600081565b6040516001600160a01b0390911681526020016102e4565b3480156105a157600080fd5b5060055461030d9060ff1681565b3480156105bb57600080fd5b506102ad6105ca366004612392565b610dff565b3480156105db57600080fd5b506103326105ea366004612244565b6001600160a01b031660009081526001602052604090205490565b34801561061157600080fd5b506102ad610ef2565b34801561062657600080fd5b50600b546105149061ffff808216916201000090041682565b34801561064b57600080fd5b506000546001600160a01b031661057d565b34801561066957600080fd5b506102ad61067836600461245b565b610f26565b34801561068957600080fd5b50600e54600f54610698919082565b604080519283526020830191909152016102e4565b3480156106b957600080fd5b50600a546103819060ff1681565b3480156106d357600080fd5b5061030d6106e23660046121d7565b610f63565b3480156106f357600080fd5b5060085461057d906001600160a01b031681565b34801561071357600080fd5b5061030d6107223660046121d7565b610ffe565b34801561073357600080fd5b506102ad610742366004612244565b61100b565b34801561075357600080fd5b506102ad6110cc565b34801561076857600080fd5b506102ad610777366004612478565b611125565b34801561078857600080fd5b506102ad6111b6565b34801561079d57600080fd5b506102ad6107ac36600461229a565b6111f7565b3480156107bd57600080fd5b506102ad6107cc36600461214a565b61123d565b3480156107dd57600080fd5b506103326107ec366004612261565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561082357600080fd5b506102ad6108323660046124bf565b6112a3565b34801561084357600080fd5b5061033260075481565b34801561085957600080fd5b506102ad610868366004612244565b61135c565b34801561087957600080fd5b506102ad610888366004612244565b6113a7565b34801561089957600080fd5b50600d546105149061ffff808216916201000090041682565b3480156108be57600080fd5b506102ad61143f565b6000546001600160a01b031633146108fa5760405162461bcd60e51b81526004016108f1906124ed565b60405180910390fd5b60008160ff16118015610911575060028160ff1611155b61091a57600080fd5b600a805460ff191660ff8316179055610936600160008061147c565b50565b6000610946338484611589565b5060015b92915050565b600061095e6009600a61261c565b61096e90655af3107a400061262b565b905090565b60006109808484846116ae565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000198114610a225782811015610a0e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108f1565b610a228533610a1d8685612642565b611589565b506001949350505050565b6000546001600160a01b03163314610a575760405162461bcd60e51b81526004016108f1906124ed565b60008160ff16118015610a6e575060028160ff1611155b610a7757600080fd5b6008805460ff60a01b1916600160a01b60ff841602179055610936600080600161147c565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610946918590610a1d908690612655565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016108f1906124ed565b6005805462010000600160b01b031916620100006001600160a01b0394851602179055600680546001600160a01b03191691909216179055565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016108f1906124ed565b6008805460ff60a01b19169055610b7b600080600161147c565b565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016108f1906124ed565b80471015610c455760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016108f1565b604051339082156108fc029083906000818181858888f19350505050158015610c72573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ca05760405162461bcd60e51b81526004016108f1906124ed565b306001600160a01b03841603610cf85760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207472616e73666572206f75742073656c66210000000000000060448201526064016108f1565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190612668565b50505050565b6000546001600160a01b03163314610d9b5760405162461bcd60e51b81526004016108f1906124ed565b60008160ff16118015610db2575060028160ff1611155b610dbb57600080fd5b600a805460ff1990811660ff8416908117909255600c8054909116821790556008805460ff60a01b1916600160a01b9092029190911790556109366001808061147c565b6000546001600160a01b03163314610e295760405162461bcd60e51b81526004016108f1906124ed565b8051825114610e7a5760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d7573742068617665207468652073616d652073697a65000060448201526064016108f1565b60005b8251811015610eed57610edb33848381518110610e9c57610e9c612685565b60200260200101516009600a610eb2919061261c565b858581518110610ec457610ec4612685565b6020026020010151610ed6919061262b565b611b30565b80610ee58161269b565b915050610e7d565b505050565b6000546001600160a01b03163314610f1c5760405162461bcd60e51b81526004016108f1906124ed565b610b7b6000611b77565b6000546001600160a01b03163314610f505760405162461bcd60e51b81526004016108f1906124ed565b6005805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610fe55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108f1565b610ff43385610a1d8685612642565b5060019392505050565b60006109463384846116ae565b6000546001600160a01b031633146110355760405162461bcd60e51b81526004016108f1906124ed565b6008546001600160a01b038083169116036110875760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016108f1565b600880546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260409020805460ff1916600190811790915561093690808061147c565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016108f1906124ed565b600a805460ff19908116909155600c805490911690556008805460ff60a01b19169055610b7b6001808061147c565b6000546001600160a01b0316331461114f5760405162461bcd60e51b81526004016108f1906124ed565b60005b8251811015610eed57816004600085848151811061117257611172612685565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111ae8161269b565b915050611152565b6000546001600160a01b031633146111e05760405162461bcd60e51b81526004016108f1906124ed565b600c805460ff19169055610b7b600060018161147c565b6000546001600160a01b031633146112215760405162461bcd60e51b81526004016108f1906124ed565b61122d6009600a61261c565b611237908261262b565b60075550565b6000546001600160a01b031633146112675760405162461bcd60e51b81526004016108f1906124ed565b60008160ff1611801561127e575060028160ff1611155b61128757600080fd5b600c805460ff191660ff8316179055610936600060018161147c565b6000546001600160a01b031633146112cd5760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03821660009081526004602052604090205481151560ff9091161515036113315760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016108f1565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113865760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146113d15760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b0381166114365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f1565b61093681611b77565b6000546001600160a01b031633146114695760405162461bcd60e51b81526004016108f1906124ed565b600a805460ff19169055610b7b60016000805b82156114d257600a5460009081906114969060ff16611bc7565b6040805180820190915261ffff928316808252929091166020909101819052600b80546201000090920263ffffffff1990921690921717905550505b811561152857600c5460009081906114ec9060ff16611bc7565b6040805180820190915261ffff928316808252929091166020909101819052600d80546201000090920263ffffffff1990921690921717905550505b8015610eed57600080611549600860149054906101000a900460ff16611c3c565b6040805180820190915261ffff928316808252929091166020909101819052600980546201000090920263ffffffff199092169092171790555050505050565b6001600160a01b0383166115eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f1565b6001600160a01b03821661164c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166117125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f1565b6001600160a01b0382166117745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f1565b600081116117d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f1565b6001600160a01b0383166000908152600160205260409020548111156118585760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108f1565b6001600160a01b03831660009081526004602052604090205460ff1615801561189a57506001600160a01b03821660009081526004602052604090205460ff16155b6118d65760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016108f1565b6040805180820190915260095461ffff80821683526201000090910416602082015260065460029160009182906001600160a01b0390811690871603611964575050604080518082018252600d5461ffff808216835262010000909104166020808301919091526001600160a01b03881660009081526003909152918220549193508692509060ff16611a33565b6006546001600160a01b03908116908816036119c9575050604080518082018252600b5461ffff808216835262010000909104166020808301919091526001600160a01b0387166000908152600390915291909120546001935085925060ff16611a33565b60408051808201825260095461ffff808216835262010000909104166020808301919091526001600160a01b038a1660009081526003909152919091205490925060ff1680611a3057506001600160a01b03861660009081526003602052604090205460ff165b90505b600754306000908152600160205260408120549091111590506001856002811115611a6057611a606126b4565b14158015611a765750600554610100900460ff16155b8015611a84575060055460ff165b8015611a8d5750805b8015611ab257506001600160a01b03881660009081526003602052604090205460ff16155b8015611ad757506001600160a01b03871660009081526003602052604090205460ff16155b15611ae757611ae7600754611ca2565b8180611b05575060208301518351611aff91906126ca565b61ffff16155b15611b1a57611b15888888611b30565b611b26565b611b2688888886611cf6565b5050505050505050565b611b3a8382611e96565b611b448282611ec7565b816001600160a01b0316836001600160a01b03166000805160206127cb833981519152836040516116a191815260200190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260ff16600003611be057506000928392509050565b8260ff16600103611c12576008546001600160a01b0316611c075750600092603c92509050565b50601e928392509050565b6008546001600160a01b0316611c2f57506000926101f492509050565b5060c89261012c92509050565b6000808260ff16600003611c5557506000928392509050565b8260ff16600103611c87576008546001600160a01b0316611c7b57506000928392509050565b50601e92600092509050565b6008546001600160a01b0316611c7b57506000928392509050565b6005805461ff0019166101001790556000611cbe6002836126ec565b90508047611ccc8230611eef565b6000611cd88247612642565b9050611ce4838261206f565b50506005805461ff0019169055505050565b6020810151829061ffff1615611d93576000612710836020015161ffff1685611d1f919061262b565b611d2991906126ec565b90508015611d9157611d3b8183612642565b915080600e6001016000828254611d529190612655565b90915550611d6290503082611ec7565b60405181815230906001600160a01b038816906000805160206127cb8339815191529060200160405180910390a35b505b815161ffff1615611e3957815160009061271090611db59061ffff168661262b565b611dbf91906126ec565b90508015611e3757611dd18183612642565b915080600e6000016000828254611de89190612655565b9091555050600854611e03906001600160a01b031682611ec7565b6008546040518281526001600160a01b03918216918816906000805160206127cb8339815191529060200160405180910390a35b505b611e438584611e96565b8015611e8f57611e538482611ec7565b836001600160a01b0316856001600160a01b03166000805160206127cb83398151915283604051611e8691815260200190565b60405180910390a35b5050505050565b6001600160a01b03821660009081526001602052604081208054839290611ebe908490612642565b90915550505050565b6001600160a01b03821660009081526001602052604081208054839290611ebe908490612655565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f2457611f24612685565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbb919061270e565b81600181518110611fce57611fce612685565b6001600160a01b039283166020918202929092010152600554611ffa9130916201000090041685611589565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061203890869060009086908890429060040161272b565b600060405180830381600087803b15801561205257600080fd5b505af1158015612066573d6000803e3d6000fd5b50505050505050565b60055461208d9030906201000090046001600160a01b031684611589565b6005546001600160a01b03620100009091041663f305d7198230856000806120bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612125573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e8f919061279c565b60006020828403121561215c57600080fd5b813560ff8116811461216d57600080fd5b9392505050565b600060208083528351808285015260005b818110156121a157858101830151858201604001528201612185565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461093657600080fd5b600080604083850312156121ea57600080fd5b82356121f5816121c2565b946020939093013593505050565b60008060006060848603121561221857600080fd5b8335612223816121c2565b92506020840135612233816121c2565b929592945050506040919091013590565b60006020828403121561225657600080fd5b813561216d816121c2565b6000806040838503121561227457600080fd5b823561227f816121c2565b9150602083013561228f816121c2565b809150509250929050565b6000602082840312156122ac57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122f2576122f26122b3565b604052919050565b600067ffffffffffffffff821115612314576123146122b3565b5060051b60200190565b600082601f83011261232f57600080fd5b8135602061234461233f836122fa565b6122c9565b82815260059290921b8401810191818101908684111561236357600080fd5b8286015b8481101561238757803561237a816121c2565b8352918301918301612367565b509695505050505050565b600080604083850312156123a557600080fd5b823567ffffffffffffffff808211156123bd57600080fd5b6123c98683870161231e565b93506020915081850135818111156123e057600080fd5b85019050601f810186136123f357600080fd5b803561240161233f826122fa565b81815260059190911b8201830190838101908883111561242057600080fd5b928401925b8284101561243e57833582529284019290840190612425565b80955050505050509250929050565b801515811461093657600080fd5b60006020828403121561246d57600080fd5b813561216d8161244d565b6000806040838503121561248b57600080fd5b823567ffffffffffffffff8111156124a257600080fd5b6124ae8582860161231e565b925050602083013561228f8161244d565b600080604083850312156124d257600080fd5b82356124dd816121c2565b9150602083013561228f8161244d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561257357816000190482111561255957612559612522565b8085161561256657918102915b93841c939080029061253d565b509250929050565b60008261258a5750600161094a565b816125975750600061094a565b81600181146125ad57600281146125b7576125d3565b600191505061094a565b60ff8411156125c8576125c8612522565b50506001821b61094a565b5060208310610133831016604e8410600b84101617156125f6575081810a61094a565b6126008383612538565b806000190482111561261457612614612522565b029392505050565b600061216d60ff84168361257b565b808202811582820484141761094a5761094a612522565b8181038181111561094a5761094a612522565b8082018082111561094a5761094a612522565b60006020828403121561267a57600080fd5b815161216d8161244d565b634e487b7160e01b600052603260045260246000fd5b6000600182016126ad576126ad612522565b5060010190565b634e487b7160e01b600052602160045260246000fd5b61ffff8181168382160190808211156126e5576126e5612522565b5092915050565b60008261270957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561272057600080fd5b815161216d816121c2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561277b5784516001600160a01b031683529383019391830191600101612756565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127b157600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cd40ac63cabab9778afb1dd7e34700d3a78b008e8ac8d3f65e9a48be5a0bdacd64736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106102815760003560e01c8063715018a61161014f578063b2ca2f06116100c1578063e11655451161007a578063e116554514610817578063e2f4560514610837578063ea2f0b371461084d578063f2fde38b1461086d578063f66895a31461088d578063f90dfee5146108b257600080fd5b8063b2ca2f0614610747578063b31470a41461075c578063cd4c7d901461077c578063d257b34f14610791578063d54adc84146107b1578063dd62ed3e146107d157600080fd5b80639ba5e4d5116101135780639ba5e4d51461067d5780639dbcb1d6146106ad578063a457c2d7146106c7578063a5ece941146106e7578063a9059cbb14610707578063aacebbe31461072757600080fd5b8063715018a614610605578063864701a51461061a5780638da5cb5b1461063f578063924de9b71461065d57806395d89b41146102af57600080fd5b806340b28c2f116101f35780635331803c116101ac5780635331803c146104ef5780635342acb41461052f578063538ba4f9146105685780636ddd171314610595578063706f6937146105af57806370a08231146105cf57600080fd5b806340b28c2f1461043a57806342b36ed01461045a578063437823ec1461046f578063441b1d301461048f57806347c23092146104af5780634ac92b27146104cf57600080fd5b80632427b7c3116102455780632427b7c3146103605780632dfb2cbc14610393578063313ce567146103b357806339420731146103c757806339509351146103e15780633bbac5791461040157600080fd5b80630444a3731461028d57806306fdde03146102af578063095ea7b3146102ed57806318160ddd1461031d57806323b872dd1461034057600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a836600461214a565b6108c7565b005b3480156102bb57600080fd5b50604080518082018252600681526550455045414960d01b602082015290516102e49190612174565b60405180910390f35b3480156102f957600080fd5b5061030d6103083660046121d7565b610939565b60405190151581526020016102e4565b34801561032957600080fd5b50610332610950565b6040519081526020016102e4565b34801561034c57600080fd5b5061030d61035b366004612203565b610973565b34801561036c57600080fd5b5060085461038190600160a01b900460ff1681565b60405160ff90911681526020016102e4565b34801561039f57600080fd5b506102ad6103ae36600461214a565b610a2d565b3480156103bf57600080fd5b506009610381565b3480156103d357600080fd5b50600c546103819060ff1681565b3480156103ed57600080fd5b5061030d6103fc3660046121d7565b610a9c565b34801561040d57600080fd5b5061030d61041c366004612244565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561044657600080fd5b506102ad610455366004612261565b610ad3565b34801561046657600080fd5b506102ad610b37565b34801561047b57600080fd5b506102ad61048a366004612244565b610b7d565b34801561049b57600080fd5b506102ad6104aa36600461229a565b610bcb565b3480156104bb57600080fd5b506102ad6104ca366004612203565b610c76565b3480156104db57600080fd5b506102ad6104ea36600461214a565b610d71565b3480156104fb57600080fd5b506009546105149061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102e4565b34801561053b57600080fd5b5061030d61054a366004612244565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561057457600080fd5b5061057d600081565b6040516001600160a01b0390911681526020016102e4565b3480156105a157600080fd5b5060055461030d9060ff1681565b3480156105bb57600080fd5b506102ad6105ca366004612392565b610dff565b3480156105db57600080fd5b506103326105ea366004612244565b6001600160a01b031660009081526001602052604090205490565b34801561061157600080fd5b506102ad610ef2565b34801561062657600080fd5b50600b546105149061ffff808216916201000090041682565b34801561064b57600080fd5b506000546001600160a01b031661057d565b34801561066957600080fd5b506102ad61067836600461245b565b610f26565b34801561068957600080fd5b50600e54600f54610698919082565b604080519283526020830191909152016102e4565b3480156106b957600080fd5b50600a546103819060ff1681565b3480156106d357600080fd5b5061030d6106e23660046121d7565b610f63565b3480156106f357600080fd5b5060085461057d906001600160a01b031681565b34801561071357600080fd5b5061030d6107223660046121d7565b610ffe565b34801561073357600080fd5b506102ad610742366004612244565b61100b565b34801561075357600080fd5b506102ad6110cc565b34801561076857600080fd5b506102ad610777366004612478565b611125565b34801561078857600080fd5b506102ad6111b6565b34801561079d57600080fd5b506102ad6107ac36600461229a565b6111f7565b3480156107bd57600080fd5b506102ad6107cc36600461214a565b61123d565b3480156107dd57600080fd5b506103326107ec366004612261565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561082357600080fd5b506102ad6108323660046124bf565b6112a3565b34801561084357600080fd5b5061033260075481565b34801561085957600080fd5b506102ad610868366004612244565b61135c565b34801561087957600080fd5b506102ad610888366004612244565b6113a7565b34801561089957600080fd5b50600d546105149061ffff808216916201000090041682565b3480156108be57600080fd5b506102ad61143f565b6000546001600160a01b031633146108fa5760405162461bcd60e51b81526004016108f1906124ed565b60405180910390fd5b60008160ff16118015610911575060028160ff1611155b61091a57600080fd5b600a805460ff191660ff8316179055610936600160008061147c565b50565b6000610946338484611589565b5060015b92915050565b600061095e6009600a61261c565b61096e90655af3107a400061262b565b905090565b60006109808484846116ae565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000198114610a225782811015610a0e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108f1565b610a228533610a1d8685612642565b611589565b506001949350505050565b6000546001600160a01b03163314610a575760405162461bcd60e51b81526004016108f1906124ed565b60008160ff16118015610a6e575060028160ff1611155b610a7757600080fd5b6008805460ff60a01b1916600160a01b60ff841602179055610936600080600161147c565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610946918590610a1d908690612655565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016108f1906124ed565b6005805462010000600160b01b031916620100006001600160a01b0394851602179055600680546001600160a01b03191691909216179055565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016108f1906124ed565b6008805460ff60a01b19169055610b7b600080600161147c565b565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016108f1906124ed565b80471015610c455760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016108f1565b604051339082156108fc029083906000818181858888f19350505050158015610c72573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ca05760405162461bcd60e51b81526004016108f1906124ed565b306001600160a01b03841603610cf85760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207472616e73666572206f75742073656c66210000000000000060448201526064016108f1565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190612668565b50505050565b6000546001600160a01b03163314610d9b5760405162461bcd60e51b81526004016108f1906124ed565b60008160ff16118015610db2575060028160ff1611155b610dbb57600080fd5b600a805460ff1990811660ff8416908117909255600c8054909116821790556008805460ff60a01b1916600160a01b9092029190911790556109366001808061147c565b6000546001600160a01b03163314610e295760405162461bcd60e51b81526004016108f1906124ed565b8051825114610e7a5760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d7573742068617665207468652073616d652073697a65000060448201526064016108f1565b60005b8251811015610eed57610edb33848381518110610e9c57610e9c612685565b60200260200101516009600a610eb2919061261c565b858581518110610ec457610ec4612685565b6020026020010151610ed6919061262b565b611b30565b80610ee58161269b565b915050610e7d565b505050565b6000546001600160a01b03163314610f1c5760405162461bcd60e51b81526004016108f1906124ed565b610b7b6000611b77565b6000546001600160a01b03163314610f505760405162461bcd60e51b81526004016108f1906124ed565b6005805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610fe55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108f1565b610ff43385610a1d8685612642565b5060019392505050565b60006109463384846116ae565b6000546001600160a01b031633146110355760405162461bcd60e51b81526004016108f1906124ed565b6008546001600160a01b038083169116036110875760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016108f1565b600880546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260409020805460ff1916600190811790915561093690808061147c565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016108f1906124ed565b600a805460ff19908116909155600c805490911690556008805460ff60a01b19169055610b7b6001808061147c565b6000546001600160a01b0316331461114f5760405162461bcd60e51b81526004016108f1906124ed565b60005b8251811015610eed57816004600085848151811061117257611172612685565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111ae8161269b565b915050611152565b6000546001600160a01b031633146111e05760405162461bcd60e51b81526004016108f1906124ed565b600c805460ff19169055610b7b600060018161147c565b6000546001600160a01b031633146112215760405162461bcd60e51b81526004016108f1906124ed565b61122d6009600a61261c565b611237908261262b565b60075550565b6000546001600160a01b031633146112675760405162461bcd60e51b81526004016108f1906124ed565b60008160ff1611801561127e575060028160ff1611155b61128757600080fd5b600c805460ff191660ff8316179055610936600060018161147c565b6000546001600160a01b031633146112cd5760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03821660009081526004602052604090205481151560ff9091161515036113315760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016108f1565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113865760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146113d15760405162461bcd60e51b81526004016108f1906124ed565b6001600160a01b0381166114365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f1565b61093681611b77565b6000546001600160a01b031633146114695760405162461bcd60e51b81526004016108f1906124ed565b600a805460ff19169055610b7b60016000805b82156114d257600a5460009081906114969060ff16611bc7565b6040805180820190915261ffff928316808252929091166020909101819052600b80546201000090920263ffffffff1990921690921717905550505b811561152857600c5460009081906114ec9060ff16611bc7565b6040805180820190915261ffff928316808252929091166020909101819052600d80546201000090920263ffffffff1990921690921717905550505b8015610eed57600080611549600860149054906101000a900460ff16611c3c565b6040805180820190915261ffff928316808252929091166020909101819052600980546201000090920263ffffffff199092169092171790555050505050565b6001600160a01b0383166115eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f1565b6001600160a01b03821661164c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166117125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f1565b6001600160a01b0382166117745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f1565b600081116117d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f1565b6001600160a01b0383166000908152600160205260409020548111156118585760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108f1565b6001600160a01b03831660009081526004602052604090205460ff1615801561189a57506001600160a01b03821660009081526004602052604090205460ff16155b6118d65760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016108f1565b6040805180820190915260095461ffff80821683526201000090910416602082015260065460029160009182906001600160a01b0390811690871603611964575050604080518082018252600d5461ffff808216835262010000909104166020808301919091526001600160a01b03881660009081526003909152918220549193508692509060ff16611a33565b6006546001600160a01b03908116908816036119c9575050604080518082018252600b5461ffff808216835262010000909104166020808301919091526001600160a01b0387166000908152600390915291909120546001935085925060ff16611a33565b60408051808201825260095461ffff808216835262010000909104166020808301919091526001600160a01b038a1660009081526003909152919091205490925060ff1680611a3057506001600160a01b03861660009081526003602052604090205460ff165b90505b600754306000908152600160205260408120549091111590506001856002811115611a6057611a606126b4565b14158015611a765750600554610100900460ff16155b8015611a84575060055460ff165b8015611a8d5750805b8015611ab257506001600160a01b03881660009081526003602052604090205460ff16155b8015611ad757506001600160a01b03871660009081526003602052604090205460ff16155b15611ae757611ae7600754611ca2565b8180611b05575060208301518351611aff91906126ca565b61ffff16155b15611b1a57611b15888888611b30565b611b26565b611b2688888886611cf6565b5050505050505050565b611b3a8382611e96565b611b448282611ec7565b816001600160a01b0316836001600160a01b03166000805160206127cb833981519152836040516116a191815260200190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260ff16600003611be057506000928392509050565b8260ff16600103611c12576008546001600160a01b0316611c075750600092603c92509050565b50601e928392509050565b6008546001600160a01b0316611c2f57506000926101f492509050565b5060c89261012c92509050565b6000808260ff16600003611c5557506000928392509050565b8260ff16600103611c87576008546001600160a01b0316611c7b57506000928392509050565b50601e92600092509050565b6008546001600160a01b0316611c7b57506000928392509050565b6005805461ff0019166101001790556000611cbe6002836126ec565b90508047611ccc8230611eef565b6000611cd88247612642565b9050611ce4838261206f565b50506005805461ff0019169055505050565b6020810151829061ffff1615611d93576000612710836020015161ffff1685611d1f919061262b565b611d2991906126ec565b90508015611d9157611d3b8183612642565b915080600e6001016000828254611d529190612655565b90915550611d6290503082611ec7565b60405181815230906001600160a01b038816906000805160206127cb8339815191529060200160405180910390a35b505b815161ffff1615611e3957815160009061271090611db59061ffff168661262b565b611dbf91906126ec565b90508015611e3757611dd18183612642565b915080600e6000016000828254611de89190612655565b9091555050600854611e03906001600160a01b031682611ec7565b6008546040518281526001600160a01b03918216918816906000805160206127cb8339815191529060200160405180910390a35b505b611e438584611e96565b8015611e8f57611e538482611ec7565b836001600160a01b0316856001600160a01b03166000805160206127cb83398151915283604051611e8691815260200190565b60405180910390a35b5050505050565b6001600160a01b03821660009081526001602052604081208054839290611ebe908490612642565b90915550505050565b6001600160a01b03821660009081526001602052604081208054839290611ebe908490612655565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f2457611f24612685565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbb919061270e565b81600181518110611fce57611fce612685565b6001600160a01b039283166020918202929092010152600554611ffa9130916201000090041685611589565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061203890869060009086908890429060040161272b565b600060405180830381600087803b15801561205257600080fd5b505af1158015612066573d6000803e3d6000fd5b50505050505050565b60055461208d9030906201000090046001600160a01b031684611589565b6005546001600160a01b03620100009091041663f305d7198230856000806120bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612125573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e8f919061279c565b60006020828403121561215c57600080fd5b813560ff8116811461216d57600080fd5b9392505050565b600060208083528351808285015260005b818110156121a157858101830151858201604001528201612185565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461093657600080fd5b600080604083850312156121ea57600080fd5b82356121f5816121c2565b946020939093013593505050565b60008060006060848603121561221857600080fd5b8335612223816121c2565b92506020840135612233816121c2565b929592945050506040919091013590565b60006020828403121561225657600080fd5b813561216d816121c2565b6000806040838503121561227457600080fd5b823561227f816121c2565b9150602083013561228f816121c2565b809150509250929050565b6000602082840312156122ac57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122f2576122f26122b3565b604052919050565b600067ffffffffffffffff821115612314576123146122b3565b5060051b60200190565b600082601f83011261232f57600080fd5b8135602061234461233f836122fa565b6122c9565b82815260059290921b8401810191818101908684111561236357600080fd5b8286015b8481101561238757803561237a816121c2565b8352918301918301612367565b509695505050505050565b600080604083850312156123a557600080fd5b823567ffffffffffffffff808211156123bd57600080fd5b6123c98683870161231e565b93506020915081850135818111156123e057600080fd5b85019050601f810186136123f357600080fd5b803561240161233f826122fa565b81815260059190911b8201830190838101908883111561242057600080fd5b928401925b8284101561243e57833582529284019290840190612425565b80955050505050509250929050565b801515811461093657600080fd5b60006020828403121561246d57600080fd5b813561216d8161244d565b6000806040838503121561248b57600080fd5b823567ffffffffffffffff8111156124a257600080fd5b6124ae8582860161231e565b925050602083013561228f8161244d565b600080604083850312156124d257600080fd5b82356124dd816121c2565b9150602083013561228f8161244d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561257357816000190482111561255957612559612522565b8085161561256657918102915b93841c939080029061253d565b509250929050565b60008261258a5750600161094a565b816125975750600061094a565b81600181146125ad57600281146125b7576125d3565b600191505061094a565b60ff8411156125c8576125c8612522565b50506001821b61094a565b5060208310610133831016604e8410600b84101617156125f6575081810a61094a565b6126008383612538565b806000190482111561261457612614612522565b029392505050565b600061216d60ff84168361257b565b808202811582820484141761094a5761094a612522565b8181038181111561094a5761094a612522565b8082018082111561094a5761094a612522565b60006020828403121561267a57600080fd5b815161216d8161244d565b634e487b7160e01b600052603260045260246000fd5b6000600182016126ad576126ad612522565b5060010190565b634e487b7160e01b600052602160045260246000fd5b61ffff8181168382160190808211156126e5576126e5612522565b5092915050565b60008261270957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561272057600080fd5b815161216d816121c2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561277b5784516001600160a01b031683529383019391830191600101612756565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127b157600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cd40ac63cabab9778afb1dd7e34700d3a78b008e8ac8d3f65e9a48be5a0bdacd64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
2880:15087:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16254:192;;;;;;;;;;-1:-1:-1;16254:192:0;;;;;:::i;:::-;;:::i;:::-;;4846:82;;;;;;;;;;-1:-1:-1;4916:4:0;;;;;;;;;;;-1:-1:-1;;;4916:4:0;;;;4846:82;;;;4916:4;4846:82;:::i;:::-;;;;;;;;5694:161;;;;;;;;;;-1:-1:-1;5694:161:0;;;;;:::i;:::-;;:::i;:::-;;;1462:14:1;;1455:22;1437:41;;1425:2;1410:18;5694:161:0;1297:187:1;5139:95:0;;;;;;;;;;;;;:::i;:::-;;;1635:25:1;;;1623:2;1608:18;5139:95:0;1489:177:1;5863:495:0;;;;;;;;;;-1:-1:-1;5863:495:0;;;;;:::i;:::-;;:::i;3897:30::-;;;;;;;;;;-1:-1:-1;3897:30:0;;;;-1:-1:-1;;;3897:30:0;;;;;;;;;2304:4:1;2292:17;;;2274:36;;2262:2;2247:18;3897:30:0;2132:184:1;16656:202:0;;;;;;;;;;-1:-1:-1;16656:202:0;;;;;:::i;:::-;;:::i;5026:82::-;;;;;;;;;;-1:-1:-1;3321:1:0;5026:82;;4040:26;;;;;;;;;;-1:-1:-1;4040:26:0;;;;;;;;6366:215;;;;;;;;;;-1:-1:-1;6366:215:0;;;;;:::i;:::-;;:::i;14692:98::-;;;;;;;;;;-1:-1:-1;14692:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;14767:15:0;14744:4;14767:15;;;:6;:15;;;;;;;;;14692:98;14802:154;;;;;;;;;;-1:-1:-1;14802:154:0;;;;;:::i;:::-;;:::i;17122:129::-;;;;;;;;;;;;;:::i;6974:111::-;;;;;;;;;;-1:-1:-1;6974:111:0;;;;;:::i;:::-;;:::i;17323:196::-;;;;;;;;;;-1:-1:-1;17323:196:0;;;;;:::i;:::-;;:::i;17692:230::-;;;;;;;;;;-1:-1:-1;17692:230:0;;;;;:::i;:::-;;:::i;15983:263::-;;;;;;;;;;-1:-1:-1;15983:263:0;;;;;:::i;:::-;;:::i;3934:39::-;;;;;;;;;;-1:-1:-1;3934:39:0;;;;;;;;;;;;;;;;;;;3331:6:1;3364:15;;;3346:34;;3416:15;;;;3411:2;3396:18;;3389:43;3294:18;3934:39:0;3151:287:1;7213:123:0;;;;;;;;;;-1:-1:-1;7213:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;7301:27:0;7277:4;7301:27;;;:18;:27;;;;;;;;;7213:123;3523:49;;;;;;;;;;;;3570:1;3523:49;;;;;-1:-1:-1;;;;;3607:32:1;;;3589:51;;3577:2;3562:18;3523:49:0;3443:203:1;3169:23:0;;;;;;;;;;-1:-1:-1;3169:23:0;;;;;;;;15451:336;;;;;;;;;;-1:-1:-1;15451:336:0;;;;;:::i;:::-;;:::i;5242:118::-;;;;;;;;;;-1:-1:-1;5242:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;5335:17:0;5308:7;5335:17;;;:8;:17;;;;;;;5242:118;1657:94;;;;;;;;;;;;;:::i;4012:21::-;;;;;;;;;;-1:-1:-1;4012:21:0;;;;;;;;;;;;;;;1434:87;;;;;;;;;;-1:-1:-1;1480:7:0;1507:6;-1:-1:-1;;;;;1507:6:0;1434:87;;14187:101;;;;;;;;;;-1:-1:-1;14187:101:0;;;;;:::i;:::-;;:::i;4198:36::-;;;;;;;;;;-1:-1:-1;4198:36:0;;;;;;;;;;;;;6679:25:1;;;6735:2;6720:18;;6713:34;;;;6652:18;4198:36:0;6505:248:1;3980:25:0;;;;;;;;;;-1:-1:-1;3980:25:0;;;;;;;;6589:377;;;;;;;;;;-1:-1:-1;6589:377:0;;;;;:::i;:::-;;:::i;3579:46::-;;;;;;;;;;-1:-1:-1;3579:46:0;;;;-1:-1:-1;;;;;3579:46:0;;;5368:167;;;;;;;;;;-1:-1:-1;5368:167:0;;;;;:::i;:::-;;:::i;13754:288::-;;;;;;;;;;-1:-1:-1;13754:288:0;;;;;:::i;:::-;;:::i;15801:174::-;;;;;;;;;;;;;:::i;14486:194::-;;;;;;;;;;-1:-1:-1;14486:194:0;;;;;:::i;:::-;;:::i;16993:121::-;;;;;;;;;;;;;:::i;14050:129::-;;;;;;;;;;-1:-1:-1;14050:129:0;;;;;:::i;:::-;;:::i;16454:194::-;;;;;;;;;;-1:-1:-1;16454:194:0;;;;;:::i;:::-;;:::i;5543:143::-;;;;;;;;;;-1:-1:-1;5543:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5651:18:0;;;5624:7;5651:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5543:143;14300:174;;;;;;;;;;-1:-1:-1;14300:174:0;;;;;:::i;:::-;;:::i;3443:65::-;;;;;;;;;;;;;;;;7093:110;;;;;;;;;;-1:-1:-1;7093:110:0;;;;;:::i;:::-;;:::i;1759:192::-;;;;;;;;;;-1:-1:-1;1759:192:0;;;;;:::i;:::-;;:::i;4073:22::-;;;;;;;;;;-1:-1:-1;4073:22:0;;;;;;;;;;;;;;;16866:119;;;;;;;;;;;;;:::i;16254:192::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;;;;;;;;;16334:1:::1;16322:9;:13;;;:30;;;;;16351:1;16339:9;:13;;;;16322:30;16314:39;;;::::0;::::1;;16364:12;:24:::0;;-1:-1:-1;;16364:24:0::1;;::::0;::::1;;::::0;;16399:39:::1;-1:-1:-1::0;;;16399:19:0::1;:39::i;:::-;16254:192:::0;:::o;5694:161::-;5769:4;5786:39;935:10;5809:7;5818:6;5786:8;:39::i;:::-;-1:-1:-1;5843:4:0;5694:161;;;;;:::o;5139:95::-;5192:7;3422:12;3321:1;3422:2;:12;:::i;:::-;3415:19;;:4;:19;:::i;:::-;5212:14;;5139:95;:::o;5863:495::-;5969:4;5986:36;5996:6;6004:9;6015:6;5986:9;:36::i;:::-;-1:-1:-1;;;;;6062:19:0;;6035:24;6062:19;;;:11;:19;;;;;;;;935:10;6062:33;;;;;;;;-1:-1:-1;;6110:37:0;;6106:221;;6192:6;6172:16;:26;;6164:79;;;;-1:-1:-1;;;6164:79:0;;9878:2:1;6164:79:0;;;9860:21:1;9917:2;9897:18;;;9890:30;9956:34;9936:18;;;9929:62;-1:-1:-1;;;10007:18:1;;;10000:38;10055:19;;6164:79:0;9676:404:1;6164:79:0;6258:57;6267:6;935:10;6289:25;6308:6;6289:16;:25;:::i;:::-;6258:8;:57::i;:::-;-1:-1:-1;6346:4:0;;5863:495;-1:-1:-1;;;;5863:495:0:o;16656:202::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;16741:1:::1;16729:9;:13;;;:30;;;;;16758:1;16746:9;:13;;;;16729:30;16721:39;;;::::0;::::1;;16771:17;:29:::0;;-1:-1:-1;;;;16771:29:0::1;-1:-1:-1::0;;;16771:29:0::1;::::0;::::1;;;::::0;;16811:39:::1;-1:-1:-1::0;;;16811:19:0::1;:39::i;6366:215::-:0;935:10;6454:4;6503:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6503:34:0;;;;;;;;;;6454:4;;6471:80;;6494:7;;6503:47;;6540:10;;6503:47;:::i;14802:154::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;14896:6:::1;:27:::0;;-1:-1:-1;;;;;;14896:27:0::1;::::0;-1:-1:-1;;;;;14896:27:0;;::::1;;;::::0;;14934:4:::1;:14:::0;;-1:-1:-1;;;;;;14934:14:0::1;::::0;;;::::1;;::::0;;14802:154::o;17122:129::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;17172:17:::1;:21:::0;;-1:-1:-1;;;;17172:21:0::1;::::0;;17204:39:::1;17192:1;::::0;-1:-1:-1;17204:19:0::1;:39::i;:::-;17122:129::o:0;6974:111::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7043:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;7043:34:0::1;7073:4;7043:34;::::0;;6974:111::o;17323:196::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;17423:9:::1;17398:21;:34;;17390:71;;;::::0;-1:-1:-1;;;17390:71:0;;10550:2:1;17390:71:0::1;::::0;::::1;10532:21:1::0;10589:2;10569:18;;;10562:30;10628:26;10608:18;;;10601:54;10672:18;;17390:71:0::1;10348:348:1::0;17390:71:0::1;17472:39;::::0;17480:10:::1;::::0;17472:39;::::1;;;::::0;17501:9;;17472:39:::1;::::0;;;17501:9;17480:10;17472:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17323:196:::0;:::o;17692:230::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;17827:4:::1;-1:-1:-1::0;;;;;17805:27:0;::::1;::::0;17797:65:::1;;;::::0;-1:-1:-1;;;17797:65:0;;10903:2:1;17797:65:0::1;::::0;::::1;10885:21:1::0;10942:2;10922:18;;;10915:30;10981:27;10961:18;;;10954:55;11026:18;;17797:65:0::1;10701:349:1::0;17797:65:0::1;17873:41;::::0;-1:-1:-1;;;17873:41:0;;-1:-1:-1;;;;;11247:32:1;;;17873:41:0::1;::::0;::::1;11229:51:1::0;11296:18;;;11289:34;;;17873:27:0;::::1;::::0;::::1;::::0;11202:18:1;;17873:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17692:230:::0;;;:::o;15983:263::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;16060:1:::1;16048:9;:13;;;:30;;;;;16077:1;16065:9;:13;;;;16048:30;16040:39;;;::::0;::::1;;16090:12;:24:::0;;-1:-1:-1;;16090:24:0;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;16125:13:::1;:25:::0;;;;::::1;::::0;::::1;::::0;;16161:17:::1;:29:::0;;-1:-1:-1;;;;16161:29:0::1;-1:-1:-1::0;;;16161:29:0;;::::1;::::0;;;::::1;::::0;;16201:37:::1;-1:-1:-1::0;;;16201:19:0::1;:37::i;15451:336::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;15583:7:::1;:14;15564:8;:15;:33;15556:76;;;::::0;-1:-1:-1;;;15556:76:0;;11786:2:1;15556:76:0::1;::::0;::::1;11768:21:1::0;11825:2;11805:18;;;11798:30;11864:32;11844:18;;;11837:60;11914:18;;15556:76:0::1;11584:354:1::0;15556:76:0::1;15647:9;15643:137;15665:8;:15;15661:1;:19;15643:137;;;15701:67;15717:10;15729:8;15738:1;15729:11;;;;;;;;:::i;:::-;;;;;;;3321:1;15755:2;:12;;;;:::i;:::-;15742:7;15750:1;15742:10;;;;;;;;:::i;:::-;;;;;;;:25;;;;:::i;:::-;15701:15;:67::i;:::-;15682:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15643:137;;;;15451:336:::0;;:::o;1657:94::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;1722:21:::1;1740:1;1722:9;:21::i;14187:101::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;14258:11:::1;:22:::0;;-1:-1:-1;;14258:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14187:101::o;6589:377::-;935:10;6682:4;6726:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6726:34:0;;;;;;;;;;6779:35;;;;6771:85;;;;-1:-1:-1;;;6771:85:0;;12417:2:1;6771:85:0;;;12399:21:1;12456:2;12436:18;;;12429:30;12495:34;12475:18;;;12468:62;-1:-1:-1;;;12546:18:1;;;12539:35;12591:19;;6771:85:0;12215:401:1;6771:85:0;6867:67;935:10;6890:7;6899:34;6918:15;6899:16;:34;:::i;6867:67::-;-1:-1:-1;6954:4:0;;6589:377;-1:-1:-1;;;6589:377:0:o;5368:167::-;5446:4;5463:42;935:10;5487:9;5498:6;5463:9;:42::i;13754:288::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;13841:16:::1;::::0;-1:-1:-1;;;;;13841:29:0;;::::1;:16:::0;::::1;:29:::0;13833:60:::1;;;::::0;-1:-1:-1;;;13833:60:0;;12823:2:1;13833:60:0::1;::::0;::::1;12805:21:1::0;12862:2;12842:18;;;12835:30;-1:-1:-1;;;12881:18:1;;;12874:48;12939:18;;13833:60:0::1;12621:342:1::0;13833:60:0::1;13904:16;:28:::0;;-1:-1:-1;;;;;;13904:28:0::1;-1:-1:-1::0;;;;;13904:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13943:36:0;;;:18:::1;:36;::::0;;;;:43;;-1:-1:-1;;13943:43:0::1;-1:-1:-1::0;13943:43:0;;::::1;::::0;;;13997:37:::1;::::0;-1:-1:-1;;13997:19:0::1;:37::i;15801:174::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;15843:12:::1;:16:::0;;-1:-1:-1;;15843:16:0;;::::1;::::0;;;15870:13:::1;:17:::0;;;;::::1;::::0;;15898::::1;:21:::0;;-1:-1:-1;;;;15898:21:0::1;::::0;;15930:37:::1;15843:16:::0;;;15930:19:::1;:37::i;14486:194::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;14579:9:::1;14575:98;14598:8;:15;14594:1;:19;14575:98;;;14656:5;14634:6;:19;14641:8;14650:1;14641:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14634:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14634:19:0;:27;;-1:-1:-1;;14634:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14615:3;::::1;::::0;::::1;:::i;:::-;;;;14575:98;;16993:121:::0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;17039:13:::1;:17:::0;;-1:-1:-1;;17039:17:0::1;::::0;;17067:39:::1;17055:1;17039:17:::0;17055:1;17067:19:::1;:39::i;14050:129::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;14159:12:::1;3321:1;14159:2;:12;:::i;:::-;14150:21;::::0;:6;:21:::1;:::i;:::-;14129:18;:42:::0;-1:-1:-1;14050:129:0:o;16454:194::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;16535:1:::1;16523:9;:13;;;:30;;;;;16552:1;16540:9;:13;;;;16523:30;16515:39;;;::::0;::::1;;16565:13;:25:::0;;-1:-1:-1;;16565:25:0::1;;::::0;::::1;;::::0;;16601:39:::1;-1:-1:-1::0;;;16601:19:0::1;:39::i;14300:174::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14386:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:24;::::1;;:15;::::0;;::::1;:24;;::::0;14378:54:::1;;;::::0;-1:-1:-1;;;14378:54:0;;13170:2:1;14378:54:0::1;::::0;::::1;13152:21:1::0;13209:2;13189:18;;;13182:30;-1:-1:-1;;;13228:18:1;;;13221:47;13285:18;;14378:54:0::1;12968:341:1::0;14378:54:0::1;-1:-1:-1::0;;;;;14443:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;14443:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14300:174::o;7093:110::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7160:27:0::1;7190:5;7160:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;7160:35:0::1;::::0;;7093:110::o;1759:192::-;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1848:22:0;::::1;1840:73;;;::::0;-1:-1:-1;;;1840:73:0;;13516:2:1;1840:73:0::1;::::0;::::1;13498:21:1::0;13555:2;13535:18;;;13528:30;13594:34;13574:18;;;13567:62;-1:-1:-1;;;13645:18:1;;;13638:36;13691:19;;1840:73:0::1;13314:402:1::0;1840:73:0::1;1924:19;1934:8;1924:9;:19::i;16866:119::-:0;1480:7;1507:6;-1:-1:-1;;;;;1507:6:0;935:10;1569:23;1561:68;;;;-1:-1:-1;;;1561:68:0;;;;;;;:::i;:::-;16911:12:::1;:16:::0;;-1:-1:-1;;16911:16:0::1;::::0;;16938:39:::1;16911:16:::0;16926:1:::1;::::0;13168:578;13277:10;13273:140;;;13349:12;;13305:9;;;;13329:33;;13349:12;;13329:19;:33::i;:::-;13388:13;;;;;;;;;;;;;;;;;;;;;;;;;;;13377:8;:24;;;;;;-1:-1:-1;;13377:24:0;;;;;;;;;-1:-1:-1;;13273:140:0;13427:11;13423:143;;;13500:13;;13456:9;;;;13480:34;;13500:13;;13480:19;:34::i;:::-;13541:13;;;;;;;;;;;;;;;;;;;;;;;;;;;13529:9;:25;;;;;;-1:-1:-1;;13529:25:0;;;;;;;;;-1:-1:-1;;13423:143:0;13580:15;13576:163;;;13613:9;13624;13637:46;13665:17;;;;;;;;;;;13637:27;:46::i;:::-;13714:13;;;;;;;;;;;;;;;;;;;;;;;;;;;13698;:29;;;;;;-1:-1:-1;;13698:29:0;;;;;;;;;-1:-1:-1;;13168:578:0;;;:::o;7350:335::-;-1:-1:-1;;;;;7443:19:0;;7435:68;;;;-1:-1:-1;;;7435:68:0;;13923:2:1;7435:68:0;;;13905:21:1;13962:2;13942:18;;;13935:30;14001:34;13981:18;;;13974:62;-1:-1:-1;;;14052:18:1;;;14045:34;14096:19;;7435:68:0;13721:400:1;7435:68:0;-1:-1:-1;;;;;7522:21:0;;7514:68;;;;-1:-1:-1;;;7514:68:0;;14328:2:1;7514:68:0;;;14310:21:1;14367:2;14347:18;;;14340:30;14406:34;14386:18;;;14379:62;-1:-1:-1;;;14457:18:1;;;14450:32;14499:19;;7514:68:0;14126:398:1;7514:68:0;-1:-1:-1;;;;;7593:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7645:32;;1635:25:1;;;7645:32:0;;1608:18:1;7645:32:0;;;;;;;;7350:335;;;:::o;7693:1707::-;-1:-1:-1;;;;;7781:18:0;;7773:68;;;;-1:-1:-1;;;7773:68:0;;14731:2:1;7773:68:0;;;14713:21:1;14770:2;14750:18;;;14743:30;14809:34;14789:18;;;14782:62;-1:-1:-1;;;14860:18:1;;;14853:35;14905:19;;7773:68:0;14529:401:1;7773:68:0;-1:-1:-1;;;;;7860:16:0;;7852:64;;;;-1:-1:-1;;;7852:64:0;;15137:2:1;7852:64:0;;;15119:21:1;15176:2;15156:18;;;15149:30;15215:34;15195:18;;;15188:62;-1:-1:-1;;;15266:18:1;;;15259:33;15309:19;;7852:64:0;14935:399:1;7852:64:0;7944:1;7935:6;:10;7927:64;;;;-1:-1:-1;;;7927:64:0;;15541:2:1;7927:64:0;;;15523:21:1;15580:2;15560:18;;;15553:30;15619:34;15599:18;;;15592:62;-1:-1:-1;;;15670:18:1;;;15663:39;15719:19;;7927:64:0;15339:405:1;7927:64:0;-1:-1:-1;;;;;5335:17:0;;5308:7;5335:17;;;:8;:17;;;;;;8010:6;:25;;8002:86;;;;-1:-1:-1;;;8002:86:0;;15951:2:1;8002:86:0;;;15933:21:1;15990:2;15970:18;;;15963:30;16029:34;16009:18;;;16002:62;-1:-1:-1;;;16080:18:1;;;16073:47;16137:19;;8002:86:0;15749:413:1;8002:86:0;-1:-1:-1;;;;;8108:12:0;;;;;;:6;:12;;;;;;;;8107:13;:28;;;;-1:-1:-1;;;;;;8125:10:0;;;;;;:6;:10;;;;;;;;8124:11;8107:28;8099:54;;;;-1:-1:-1;;;8099:54:0;;16369:2:1;8099:54:0;;;16351:21:1;16408:2;16388:18;;;16381:30;-1:-1:-1;;;16427:18:1;;;16420:43;16480:18;;8099:54:0;16167:337:1;8099:54:0;8266:38;;;;;;;;;8291:13;8266:38;;;;;;;;;;;;;;;;8364:4;;8195:22;;8166:26;;;;-1:-1:-1;;;;;8364:4:0;;;8358:10;;;;8354:543;;-1:-1:-1;;8461:21:0;;;;;;;;8473:9;8461:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8515:26:0;;8400:18;8515:26;;;:18;:26;;;;;;;8400:18;;-1:-1:-1;8442:4:0;;-1:-1:-1;8461:21:0;8515:26;;8354:543;;;8571:4;;-1:-1:-1;;;;;8571:4:0;;;8563:12;;;;8559:338;;-1:-1:-1;;8665:20:0;;;;;;;;8677:8;8665:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8718:26:0;;-1:-1:-1;8718:26:0;;;:18;:26;;;;;;;;8607:17;;-1:-1:-1;8648:2:0;;-1:-1:-1;8718:26:0;;8559:338;;;8777:25;;;;;;;;8789:13;8777:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8835:24:0;;-1:-1:-1;8835:24:0;;;:18;:24;;;;;;;;8777:25;;-1:-1:-1;8835:24:0;;;:50;;-1:-1:-1;;;;;;8863:22:0;;;;;;:18;:22;;;;;;;;8835:50;8817:68;;8559:338;8952:18;;8942:4;8909:12;5335:17;;;:8;:17;;;;;;8909:12;;-1:-1:-1;8924:46:0;;-1:-1:-1;9000:17:0;8984:12;:33;;;;;;;;:::i;:::-;;;:46;;;;-1:-1:-1;9022:8:0;;;;;;;9021:9;8984:46;:61;;;;-1:-1:-1;9034:11:0;;;;8984:61;:72;;;;;9049:7;8984:72;:101;;;;-1:-1:-1;;;;;;9061:24:0;;;;;;:18;:24;;;;;;;;9060:25;8984:101;:128;;;;-1:-1:-1;;;;;;9090:22:0;;;;;;:18;:22;;;;;;;;9089:23;8984:128;8981:193;;;9128:34;9143:18;;9128:14;:34::i;:::-;9190:15;:65;;;-1:-1:-1;9231:19:0;;;;9209;;:41;;9231:19;9209:41;:::i;:::-;:46;;;9190:65;9186:207;;;9272:33;9288:4;9294:2;9298:6;9272:15;:33::i;:::-;9186:207;;;9338:43;9353:4;9359:2;9363:6;9371:9;9338:14;:43::i;:::-;7762:1638;;;;;7693:1707;;;:::o;14968:232::-;15065:31;15080:6;15088:7;15065:14;:31::i;:::-;15107;15119:9;15130:7;15107:11;:31::i;:::-;15173:9;-1:-1:-1;;;;;15156:36:0;15165:6;-1:-1:-1;;;;;15156:36:0;-1:-1:-1;;;;;;;;;;;15184:7:0;15156:36;;;;1635:25:1;;1623:2;1608:18;;1489:177;1959:173:0;2015:16;2034:6;;-1:-1:-1;;;;;2051:17:0;;;-1:-1:-1;;;;;;2051:17:0;;;;;;2084:40;;2034:6;;;;;;;2084:40;;2015:16;2084:40;2004:128;1959:173;:::o;12257:447::-;12319:6;12327;12350:4;:9;;12358:1;12350:9;12346:55;;-1:-1:-1;12384:1:0;;;;-1:-1:-1;12257:447:0;-1:-1:-1;12257:447:0:o;12346:55::-;12415:4;:9;;12423:1;12415:9;12411:158;;12445:16;;-1:-1:-1;;;;;12445:16:0;12441:87;;-1:-1:-1;12506:1:0;;12509:2;;-1:-1:-1;12257:447:0;-1:-1:-1;12257:447:0:o;12441:87::-;-1:-1:-1;12550:2:0;;;;-1:-1:-1;12257:447:0;-1:-1:-1;12257:447:0:o;12411:158::-;12593:16;;-1:-1:-1;;;;;12593:16:0;12589:80;;-1:-1:-1;12650:1:0;;12653:3;;-1:-1:-1;12257:447:0;-1:-1:-1;12257:447:0:o;12589:80::-;-1:-1:-1;12687:3:0;;12692;;-1:-1:-1;12257:447:0;-1:-1:-1;12257:447:0:o;12712:448::-;12782:6;12790;12813:4;:9;;12821:1;12813:9;12809:55;;-1:-1:-1;12847:1:0;;;;-1:-1:-1;12712:448:0;-1:-1:-1;12712:448:0:o;12809:55::-;12878:4;:9;;12886:1;12878:9;12874:156;;12908:16;;-1:-1:-1;;;;;12908:16:0;12904:86;;-1:-1:-1;12969:1:0;;;;-1:-1:-1;12712:448:0;-1:-1:-1;12712:448:0:o;12904:86::-;-1:-1:-1;13012:2:0;;13016:1;;-1:-1:-1;12712:448:0;-1:-1:-1;12712:448:0:o;12874:156::-;13054:16;;-1:-1:-1;;;;;13054:16:0;13050:78;;-1:-1:-1;13111:1:0;;;;-1:-1:-1;12712:448:0;-1:-1:-1;12712:448:0:o;10665:487::-;4275:8;:15;;-1:-1:-1;;4275:15:0;;;;;;10830:24:::1;10853:1;10830:20:::0;:24:::1;:::i;:::-;10807:47:::0;-1:-1:-1;10807:47:0;10941:21:::1;10973:45;10807:47:::0;11012:4:::1;10973:16;:45::i;:::-;11029:18;11050:40;11075:14:::0;11050:21:::1;:40;:::i;:::-;11029:61;;11101:43;11114:17;11133:10;11101:12;:43::i;:::-;-1:-1:-1::0;;4313:8:0;:16;;-1:-1:-1;;4313:16:0;;;-1:-1:-1;;;10665:487:0:o;9464:1193::-;9642:19;;;;9611:7;;9642:24;;;9639:391;;9683:18;9736:5;9714:9;:19;;;9704:29;;:7;:29;;;;:::i;:::-;:37;;;;:::i;:::-;9683:58;-1:-1:-1;9760:15:0;;9756:263;;9796:29;9815:10;9796:29;;:::i;:::-;;;9869:10;9844:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;9898:38:0;;-1:-1:-1;9918:4:0;9925:10;9898:11;:38::i;:::-;9960:43;;1635:25:1;;;9985:4:0;;-1:-1:-1;;;;;9960:43:0;;;-1:-1:-1;;;;;;;;;;;9960:43:0;1623:2:1;1608:18;9960:43:0;;;;;;;9756:263;9668:362;9639:391;10044:19;;:24;;;10040:398;;10116:19;;10085:18;;10138:5;;10106:29;;;;:7;:29;:::i;:::-;:37;;;;:::i;:::-;10085:58;-1:-1:-1;10162:15:0;;10158:269;;10198:29;10217:10;10198:29;;:::i;:::-;;;10271:10;10246:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;10312:16:0;;10300:41;;-1:-1:-1;;;;;10312:16:0;10330:10;10300:11;:41::i;:::-;10382:16;;10365:46;;1635:25:1;;;-1:-1:-1;;;;;10382:16:0;;;;10365:46;;;-1:-1:-1;;;;;;;;;;;10365:46:0;1623:2:1;1608:18;10365:46:0;;;;;;;10158:269;10070:368;10040:398;10452:31;10467:6;10475:7;10452:14;:31::i;:::-;10498:20;;10494:156;;10535:39;10547:9;10558:15;10535:11;:39::i;:::-;10611:9;-1:-1:-1;;;;;10594:44:0;10603:6;-1:-1:-1;;;;;10594:44:0;-1:-1:-1;;;;;;;;;;;10622:15:0;10594:44;;;;1635:25:1;;1623:2;1608:18;;1489:177;10594:44:0;;;;;;;;10494:156;9572:1085;9464:1193;;;;:::o;15326:113::-;-1:-1:-1;;;;;15403:17:0;;;;;;:8;:17;;;;;:28;;15424:7;;15403:17;:28;;15424:7;;15403:28;:::i;:::-;;;;-1:-1:-1;;;;15326:113:0:o;15208:110::-;-1:-1:-1;;;;;15282:17:0;;;;;;:8;:17;;;;;:28;;15303:7;;15282:17;:28;;15303:7;;15282:28;:::i;11663:586::-;11832:16;;;11846:1;11832:16;;;;;;;;11808:21;;11832:16;;;;;;;;;;-1:-1:-1;11832:16:0;11808:40;;11877:4;11859;11864:1;11859:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;11859:23:0;;;-1:-1:-1;;;;;11859:23:0;;;;;11903:6;;;;;;;;;-1:-1:-1;;;;;11903:6:0;-1:-1:-1;;;;;11903:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11893:4;11898:1;11893:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11893:23:0;;;:7;;;;;;;;;:23;11961:6;;11929:53;;11946:4;;11961:6;;;;11970:11;11929:8;:53::i;:::-;12021:6;;:220;;-1:-1:-1;;;12021:220:0;;:6;;;;-1:-1:-1;;;;;12021:6:0;;:57;;:220;;12093:11;;12119:1;;12163:4;;12190:9;;12215:15;;12021:220;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11737:512;11663:586;;:::o;11160:495::-;11340:6;;11308:53;;11325:4;;11340:6;;;-1:-1:-1;;;;;11340:6:0;11349:11;11308:8;:53::i;:::-;11404:6;;-1:-1:-1;;;;;11404:6:0;;;;;:22;11434:9;11467:4;11487:11;11513:1;;11599:7;1480;1507:6;-1:-1:-1;;;;;1507:6:0;;1434:87;11599:7;11404:243;;;;;;-1:-1:-1;;;;;;11404:243:0;;;-1:-1:-1;;;;;18644:15:1;;;11404:243:0;;;18626:34:1;18676:18;;;18669:34;;;;18719:18;;;18712:34;;;;18762:18;;;18755:34;18826:15;;;18805:19;;;18798:44;11621:15:0;18858:19:1;;;18851:35;18560:19;;11404:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:269:1:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:1:o;288:548::-;400:4;429:2;458;447:9;440:21;490:6;484:13;533:6;528:2;517:9;513:18;506:34;558:1;568:140;582:6;579:1;576:13;568:140;;;677:14;;;673:23;;667:30;643:17;;;662:2;639:26;632:66;597:10;;568:140;;;572:3;757:1;752:2;743:6;732:9;728:22;724:31;717:42;827:2;820;816:7;811:2;803:6;799:15;795:29;784:9;780:45;776:54;768:62;;;;288:548;;;;:::o;841:131::-;-1:-1:-1;;;;;916:31:1;;906:42;;896:70;;962:1;959;952:12;977:315;1045:6;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:52;;;1122:1;1119;1112:12;1074:52;1161:9;1148:23;1180:31;1205:5;1180:31;:::i;:::-;1230:5;1282:2;1267:18;;;;1254:32;;-1:-1:-1;;;977:315:1:o;1671:456::-;1748:6;1756;1764;1817:2;1805:9;1796:7;1792:23;1788:32;1785:52;;;1833:1;1830;1823:12;1785:52;1872:9;1859:23;1891:31;1916:5;1891:31;:::i;:::-;1941:5;-1:-1:-1;1998:2:1;1983:18;;1970:32;2011:33;1970:32;2011:33;:::i;:::-;1671:456;;2063:7;;-1:-1:-1;;;2117:2:1;2102:18;;;;2089:32;;1671:456::o;2321:247::-;2380:6;2433:2;2421:9;2412:7;2408:23;2404:32;2401:52;;;2449:1;2446;2439:12;2401:52;2488:9;2475:23;2507:31;2532:5;2507:31;:::i;2573:388::-;2641:6;2649;2702:2;2690:9;2681:7;2677:23;2673:32;2670:52;;;2718:1;2715;2708:12;2670:52;2757:9;2744:23;2776:31;2801:5;2776:31;:::i;:::-;2826:5;-1:-1:-1;2883:2:1;2868:18;;2855:32;2896:33;2855:32;2896:33;:::i;:::-;2948:7;2938:17;;;2573:388;;;;;:::o;2966:180::-;3025:6;3078:2;3066:9;3057:7;3053:23;3049:32;3046:52;;;3094:1;3091;3084:12;3046:52;-1:-1:-1;3117:23:1;;2966:180;-1:-1:-1;2966:180:1:o;3651:127::-;3712:10;3707:3;3703:20;3700:1;3693:31;3743:4;3740:1;3733:15;3767:4;3764:1;3757:15;3783:275;3854:2;3848:9;3919:2;3900:13;;-1:-1:-1;;3896:27:1;3884:40;;3954:18;3939:34;;3975:22;;;3936:62;3933:88;;;4001:18;;:::i;:::-;4037:2;4030:22;3783:275;;-1:-1:-1;3783:275:1:o;4063:183::-;4123:4;4156:18;4148:6;4145:30;4142:56;;;4178:18;;:::i;:::-;-1:-1:-1;4223:1:1;4219:14;4235:4;4215:25;;4063:183::o;4251:737::-;4305:5;4358:3;4351:4;4343:6;4339:17;4335:27;4325:55;;4376:1;4373;4366:12;4325:55;4412:6;4399:20;4438:4;4462:60;4478:43;4518:2;4478:43;:::i;:::-;4462:60;:::i;:::-;4556:15;;;4642:1;4638:10;;;;4626:23;;4622:32;;;4587:12;;;;4666:15;;;4663:35;;;4694:1;4691;4684:12;4663:35;4730:2;4722:6;4718:15;4742:217;4758:6;4753:3;4750:15;4742:217;;;4838:3;4825:17;4855:31;4880:5;4855:31;:::i;:::-;4899:18;;4937:12;;;;4775;;4742:217;;;-1:-1:-1;4977:5:1;4251:737;-1:-1:-1;;;;;;4251:737:1:o;4993:1138::-;5111:6;5119;5172:2;5160:9;5151:7;5147:23;5143:32;5140:52;;;5188:1;5185;5178:12;5140:52;5228:9;5215:23;5257:18;5298:2;5290:6;5287:14;5284:34;;;5314:1;5311;5304:12;5284:34;5337:61;5390:7;5381:6;5370:9;5366:22;5337:61;:::i;:::-;5327:71;;5417:2;5407:12;;5472:2;5461:9;5457:18;5444:32;5501:2;5491:8;5488:16;5485:36;;;5517:1;5514;5507:12;5485:36;5540:24;;;-1:-1:-1;5595:4:1;5587:13;;5583:27;-1:-1:-1;5573:55:1;;5624:1;5621;5614:12;5573:55;5660:2;5647:16;5683:60;5699:43;5739:2;5699:43;:::i;5683:60::-;5777:15;;;5859:1;5855:10;;;;5847:19;;5843:28;;;5808:12;;;;5883:19;;;5880:39;;;5915:1;5912;5905:12;5880:39;5939:11;;;;5959:142;5975:6;5970:3;5967:15;5959:142;;;6041:17;;6029:30;;5992:12;;;;6079;;;;5959:142;;;6120:5;6110:15;;;;;;;4993:1138;;;;;:::o;6136:118::-;6222:5;6215:13;6208:21;6201:5;6198:32;6188:60;;6244:1;6241;6234:12;6259:241;6315:6;6368:2;6356:9;6347:7;6343:23;6339:32;6336:52;;;6384:1;6381;6374:12;6336:52;6423:9;6410:23;6442:28;6464:5;6442:28;:::i;6758:477::-;6848:6;6856;6909:2;6897:9;6888:7;6884:23;6880:32;6877:52;;;6925:1;6922;6915:12;6877:52;6965:9;6952:23;6998:18;6990:6;6987:30;6984:50;;;7030:1;7027;7020:12;6984:50;7053:61;7106:7;7097:6;7086:9;7082:22;7053:61;:::i;:::-;7043:71;;;7164:2;7153:9;7149:18;7136:32;7177:28;7199:5;7177:28;:::i;7240:382::-;7305:6;7313;7366:2;7354:9;7345:7;7341:23;7337:32;7334:52;;;7382:1;7379;7372:12;7334:52;7421:9;7408:23;7440:31;7465:5;7440:31;:::i;:::-;7490:5;-1:-1:-1;7547:2:1;7532:18;;7519:32;7560:30;7519:32;7560:30;:::i;7627:356::-;7829:2;7811:21;;;7848:18;;;7841:30;7907:34;7902:2;7887:18;;7880:62;7974:2;7959:18;;7627:356::o;7988:127::-;8049:10;8044:3;8040:20;8037:1;8030:31;8080:4;8077:1;8070:15;8104:4;8101:1;8094:15;8120:422;8209:1;8252:5;8209:1;8266:270;8287:7;8277:8;8274:21;8266:270;;;8346:4;8342:1;8338:6;8334:17;8328:4;8325:27;8322:53;;;8355:18;;:::i;:::-;8405:7;8395:8;8391:22;8388:55;;;8425:16;;;;8388:55;8504:22;;;;8464:15;;;;8266:270;;;8270:3;8120:422;;;;;:::o;8547:806::-;8596:5;8626:8;8616:80;;-1:-1:-1;8667:1:1;8681:5;;8616:80;8715:4;8705:76;;-1:-1:-1;8752:1:1;8766:5;;8705:76;8797:4;8815:1;8810:59;;;;8883:1;8878:130;;;;8790:218;;8810:59;8840:1;8831:10;;8854:5;;;8878:130;8915:3;8905:8;8902:17;8899:43;;;8922:18;;:::i;:::-;-1:-1:-1;;8978:1:1;8964:16;;8993:5;;8790:218;;9092:2;9082:8;9079:16;9073:3;9067:4;9064:13;9060:36;9054:2;9044:8;9041:16;9036:2;9030:4;9027:12;9023:35;9020:77;9017:159;;;-1:-1:-1;9129:19:1;;;9161:5;;9017:159;9208:34;9233:8;9227:4;9208:34;:::i;:::-;9278:6;9274:1;9270:6;9266:19;9257:7;9254:32;9251:58;;;9289:18;;:::i;:::-;9327:20;;8547:806;-1:-1:-1;;;8547:806:1:o;9358:140::-;9416:5;9445:47;9486:4;9476:8;9472:19;9466:4;9445:47;:::i;9503:168::-;9576:9;;;9607;;9624:15;;;9618:22;;9604:37;9594:71;;9645:18;;:::i;10085:128::-;10152:9;;;10173:11;;;10170:37;;;10187:18;;:::i;10218:125::-;10283:9;;;10304:10;;;10301:36;;;10317:18;;:::i;11334:245::-;11401:6;11454:2;11442:9;11433:7;11429:23;11425:32;11422:52;;;11470:1;11467;11460:12;11422:52;11502:9;11496:16;11521:28;11543:5;11521:28;:::i;11943:127::-;12004:10;11999:3;11995:20;11992:1;11985:31;12035:4;12032:1;12025:15;12059:4;12056:1;12049:15;12075:135;12114:3;12135:17;;;12132:43;;12155:18;;:::i;:::-;-1:-1:-1;12202:1:1;12191:13;;12075:135::o;16509:127::-;16570:10;16565:3;16561:20;16558:1;16551:31;16601:4;16598:1;16591:15;16625:4;16622:1;16615:15;16641:168;16708:6;16734:10;;;16746;;;16730:27;;16769:11;;;16766:37;;;16783:18;;:::i;:::-;16766:37;16641:168;;;;:::o;16814:217::-;16854:1;16880;16870:132;;16924:10;16919:3;16915:20;16912:1;16905:31;16959:4;16956:1;16949:15;16987:4;16984:1;16977:15;16870:132;-1:-1:-1;17016:9:1;;16814:217::o;17036:251::-;17106:6;17159:2;17147:9;17138:7;17134:23;17130:32;17127:52;;;17175:1;17172;17165:12;17127:52;17207:9;17201:16;17226:31;17251:5;17226:31;:::i;17292:988::-;17562:4;17610:3;17599:9;17595:19;17641:6;17630:9;17623:25;17667:2;17705:6;17700:2;17689:9;17685:18;17678:34;17748:3;17743:2;17732:9;17728:18;17721:31;17772:6;17807;17801:13;17838:6;17830;17823:22;17876:3;17865:9;17861:19;17854:26;;17915:2;17907:6;17903:15;17889:29;;17936:1;17946:195;17960:6;17957:1;17954:13;17946:195;;;18025:13;;-1:-1:-1;;;;;18021:39:1;18009:52;;18116:15;;;;18081:12;;;;18057:1;17975:9;17946:195;;;-1:-1:-1;;;;;;;18197:32:1;;;;18192:2;18177:18;;18170:60;-1:-1:-1;;;18261:3:1;18246:19;18239:35;18158:3;17292:988;-1:-1:-1;;;17292:988:1:o;18897:306::-;18985:6;18993;19001;19054:2;19042:9;19033:7;19029:23;19025:32;19022:52;;;19070:1;19067;19060:12;19022:52;19099:9;19093:16;19083:26;;19149:2;19138:9;19134:18;19128:25;19118:35;;19193:2;19182:9;19178:18;19172:25;19162:35;;18897:306;;;;;:::o
Swarm Source
ipfs://cd40ac63cabab9778afb1dd7e34700d3a78b008e8ac8d3f65e9a48be5a0bdacd
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.