ERC-20
Overview
Max Total Supply
888,888,888 PROME
Holders
107
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Prometheus
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-27 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.18; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Prometheus is ERC20, Auth { using SafeMath for uint256; //events event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SetMaxWalletExempt(address _address, bool _bool); event SellFeeChanged(uint256 _marketingFee); event BuyFeeChanged(uint256 _marketingFee); event TransferFeeChanged(uint256 _transferFee); event SetFeeReceiver(address _marketingReceiver); event ChangedSwapBack(bool _enabled, uint256 _amount); event SetFeeExempt(address _addr, bool _value); event InitialDistributionFinished(bool _value); event ChangedMaxWallet(uint256 _maxWallet); address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string constant private _name = "Prometheus"; string constant private _symbol = "PROME"; uint8 constant private _decimals = 18; uint256 private _totalSupply = 888888888* 10**_decimals; uint256 public _maxWalletAmount = _totalSupply * 8 / 1000; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; address[] public _markerPairs; mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isMaxWalletExempt; //Snipers uint256 private deadblocks = 32; uint256 public launchBlock; uint256 private latestSniperBlock; //transfer fee uint256 private transferFee = 0; uint256 constant public maxFee = 8; //totalFees uint256 private totalBuyFee = 3; uint256 private totalSellFee = 5; uint256 constant private feeDenominator = 100; address private marketingFeeReceiver = 0x96Effc8510cB9908543fd48fBf5F97e3eb6a9a5e ; IDEXRouter public router; address public pair; bool public tradingEnabled = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 5000; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); setAutomatedMarketMakerPair(pair, true); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isMaxWalletExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isMaxWalletExempt[address(this)] = true; isMaxWalletExempt[pair] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(tradingEnabled,"Trading not open, yet"); } if(shouldSwapBack()){ swapBack(); } uint256 amountReceived = amount; if(automatedMarketMakerPairs[sender]) { //buy if(!isFeeExempt[recipient]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); amountReceived = takeBuyFee(sender, amount); } } else if(automatedMarketMakerPairs[recipient]) { //sell if(!isFeeExempt[sender]) { amountReceived = takeSellFee(sender, amount); } } else { if (!isFeeExempt[sender]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); amountReceived = takeTransferFee(sender, amount); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function getSniperFee() internal view returns(uint256) { uint256 blocksAfterLaunch = block.number.sub(launchBlock); uint256 sniperTax; if(blocksAfterLaunch < 8){ sniperTax = 44; } else if(blocksAfterLaunch >= 8 && blocksAfterLaunch < 16) { sniperTax = 33; } else if(blocksAfterLaunch >= 16 && blocksAfterLaunch < 24) { sniperTax = 22; } else { sniperTax = 11; } return sniperTax; } // Fees function takeBuyFee(address sender, uint256 amount) internal returns (uint256){ uint256 _realFee = totalBuyFee; if (block.number < latestSniperBlock) { _realFee = getSniperFee(); } uint256 feeAmount = amount.mul(_realFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeSellFee(address sender, uint256 amount) internal returns (uint256){ uint256 _realFee = totalSellFee; if (block.number < latestSniperBlock) { _realFee = getSniperFee(); } uint256 feeAmount = amount.mul(_realFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeTransferFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(transferFee).div(feeDenominator); if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return !automatedMarketMakerPairs[msg.sender] && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance() external authorized { payable(msg.sender).transfer(address(this).balance); } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner returns (bool) { return ERC20(tokenAddress).transfer(msg.sender, amount); } // switch Trading function enableTrading() external onlyOwner { require(tradingEnabled == false, "Can only enable once"); tradingEnabled = true; launchBlock = block.number; latestSniperBlock = block.number.add(deadblocks); emit InitialDistributionFinished(true); } function swapBack() internal swapping { address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( _balances[address(this)], 0, path, marketingFeeReceiver, block.timestamp ); } // Admin Functions function setMaxWallet(uint256 amount) external authorized { require(amount > _totalSupply / 10000, "Can't limit trading"); _maxWalletAmount = amount; emit ChangedMaxWallet(amount); } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; emit SetFeeExempt(holder, exempt); } function setIsMaxWalletExempt(address holder, bool exempt) external authorized { isMaxWalletExempt[holder] = exempt; emit SetMaxWalletExempt(holder, exempt); } function setBuyFee(uint256 _totalBuyFee) external authorized { totalBuyFee = _totalBuyFee; require(totalBuyFee <= maxFee, "Fees cannot be more than 8%"); emit BuyFeeChanged(totalBuyFee); } function setSellFee(uint256 _totalSellFee) external authorized { totalSellFee = _totalSellFee; require(totalSellFee <= maxFee, "Fees cannot be more than 8%"); emit SellFeeChanged(totalSellFee); } function setTransferFee(uint256 _transferFee) external authorized { transferFee = _transferFee; require(transferFee <= maxFee, "Fees cannot be higher than 8%"); emit TransferFeeChanged(_transferFee); } function setMarketingFeeReceivers(address _marketingFeeReceiver) external authorized { require(_marketingFeeReceiver != address(0), "Zero Address validation" ); marketingFeeReceiver = _marketingFeeReceiver; emit SetFeeReceiver(_marketingFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; emit ChangedSwapBack(_enabled, _amount); } function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner { require(automatedMarketMakerPairs[_pair] != _value, "Value already set"); automatedMarketMakerPairs[_pair] = _value; if(_value){ _markerPairs.push(_pair); }else{ require(_markerPairs.length > 1, "Required 1 pair"); for (uint256 i = 0; i < _markerPairs.length; i++) { if (_markerPairs[i] == _pair) { _markerPairs[i] = _markerPairs[_markerPairs.length - 1]; _markerPairs.pop(); break; } } } emit SetAutomatedMarketMakerPair(_pair, _value); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"BuyFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SellFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalBuyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setMarketingFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalSellFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000771565b62000042906334fb5e3862000789565b6005556103e8600554600862000059919062000789565b620000659190620007a3565b6006556020600d556000601055600360115560056012819055601380546001600160a01b0319167396effc8510cb9908543fd48fbf5f97e3eb6a9a5e1790556015805461ffff60a01b1916600160a81b1790555461138890620000ca90600162000789565b620000d69190620007a3565b601655348015620000e657600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560148054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001939190620007c6565b600280546001600160a01b0319166001600160a01b039283161790556014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002189190620007c6565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002909190620007c6565b601580546001600160a01b0319166001600160a01b03929092169182179055620002bc9060016200038e565b3060008181526008602090815260408083206014546001600160a01b039081168552908352818420600019905533808552600b8085528386208054600160ff199182168117909255600c8088528689208054831684179055988852918652848720805483168217905596855283862080548216881790556015549092168552828520805490921690951790556005548484526007835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200084f565b6000546001600160a01b03163314620003d75760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600a602052604090205481151560ff9091161515036200043d5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620003ce565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155620004bc57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841617905562000620565b600954600110620005025760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620003ce565b60005b6009548110156200061e57826001600160a01b031660098281548110620005305762000530620007f1565b6000918252602090912001546001600160a01b0316036200060957600980546200055d9060019062000807565b81548110620005705762000570620007f1565b600091825260209091200154600980546001600160a01b0390921691839081106200059f576200059f620007f1565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480620005e157620005e16200081d565b600082815260209020810160001990810180546001600160a01b03191690550190556200061e565b80620006158162000833565b91505062000505565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006b35781600019048211156200069757620006976200065c565b80851615620006a557918102915b93841c939080029062000677565b509250929050565b600082620006cc575060016200076b565b81620006db575060006200076b565b8160018114620006f45760028114620006ff576200071f565b60019150506200076b565b60ff8411156200071357620007136200065c565b50506001821b6200076b565b5060208310610133831016604e8410600b841016171562000744575081810a6200076b565b62000750838362000672565b80600019048211156200076757620007676200065c565b0290505b92915050565b60006200078260ff841683620006bb565b9392505050565b80820281158282048414176200076b576200076b6200065c565b600082620007c157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007d957600080fd5b81516001600160a01b03811681146200078257600080fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156200076b576200076b6200065c565b634e487b7160e01b600052603160045260246000fd5b6000600182016200084857620008486200065c565b5060010190565b612139806200085f6000396000f3fe60806040526004361061024a5760003560e01c8063893d20e811610139578063b6a5d7de116100b6578063e1d5584c1161007a578063e1d5584c1461073b578063f0b37c041461075b578063f2fde38b1461077b578063f35ca3651461079b578063f887ea40146107bb578063fe9fbb80146107db57600080fd5b8063b6a5d7de1461067f578063c04a78ad1461069f578063d00efb2f146106bf578063dd62ed3e146106d5578063df20fd491461071b57600080fd5b806395d89b41116100fd57806395d89b41146105c15780639a7a23d6146105ef578063a8aa1b311461060f578063a9059cbb1461062f578063b62496f51461064f57600080fd5b8063893d20e81461051a5780638a8c523c1461054c5780638b4cee08146105615780638cd4426d146105815780638f02bb5b146105a157600080fd5b8063313ce567116101c75780635d0044ca1161018b5780635d0044ca1461046d578063658d4b7f1461048d5780636c0a24eb146104ad5780636ddd1713146104c357806370a08231146104e457600080fd5b8063313ce567146103cb578063364333f4146103e75780633f4218e0146103fc5780634ada218b1461042c578063571ac8b01461044d57600080fd5b80630cc835a31161020e5780630cc835a31461033057806318160ddd1461035257806323b872dd146103675780632b112e49146103875780632f54bf6e1461039c57600080fd5b806301f59d16146102565780630445b6671461027e57806306fdde0314610294578063095ea7b3146102d05780630bd11f8a1461030057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b600881565b6040519081526020015b60405180910390f35b34801561028a57600080fd5b5061026b60165481565b3480156102a057600080fd5b5060408051808201909152600a81526950726f6d65746865757360b01b60208201525b6040516102759190611dbd565b3480156102dc57600080fd5b506102f06102eb366004611e20565b6107fb565b6040519015158152602001610275565b34801561030c57600080fd5b506102f061031b366004611e4c565b600c6020526000908152604090205460ff1681565b34801561033c57600080fd5b5061035061034b366004611e69565b610868565b005b34801561035e57600080fd5b5060055461026b565b34801561037357600080fd5b506102f0610382366004611e82565b61092a565b34801561039357600080fd5b5061026b6109ec565b3480156103a857600080fd5b506102f06103b7366004611e4c565b6000546001600160a01b0391821691161490565b3480156103d757600080fd5b5060405160128152602001610275565b3480156103f357600080fd5b50610350610a3e565b34801561040857600080fd5b506102f0610417366004611e4c565b600b6020526000908152604090205460ff1681565b34801561043857600080fd5b506015546102f090600160a01b900460ff1681565b34801561045957600080fd5b506102f0610468366004611e4c565b610a92565b34801561047957600080fd5b50610350610488366004611e69565b610aa0565b34801561049957600080fd5b506103506104a8366004611ed1565b610b4e565b3480156104b957600080fd5b5061026b60065481565b3480156104cf57600080fd5b506015546102f090600160a81b900460ff1681565b3480156104f057600080fd5b5061026b6104ff366004611e4c565b6001600160a01b031660009081526007602052604090205490565b34801561052657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610275565b34801561055857600080fd5b50610350610bd7565b34801561056d57600080fd5b5061035061057c366004611e69565b610cb1565b34801561058d57600080fd5b506102f061059c366004611e20565b610d5f565b3480156105ad57600080fd5b506103506105bc366004611e69565b610dfb565b3480156105cd57600080fd5b5060408051808201909152600581526450524f4d4560d81b60208201526102c3565b3480156105fb57600080fd5b5061035061060a366004611ed1565b610ea6565b34801561061b57600080fd5b50601554610534906001600160a01b031681565b34801561063b57600080fd5b506102f061064a366004611e20565b61113b565b34801561065b57600080fd5b506102f061066a366004611e4c565b600a6020526000908152604090205460ff1681565b34801561068b57600080fd5b5061035061069a366004611e4c565b611148565b3480156106ab57600080fd5b506103506106ba366004611ed1565b611199565b3480156106cb57600080fd5b5061026b600e5481565b3480156106e157600080fd5b5061026b6106f0366004611f0a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561072757600080fd5b50610350610736366004611f38565b61121a565b34801561074757600080fd5b50610534610756366004611e69565b611297565b34801561076757600080fd5b50610350610776366004611e4c565b6112c1565b34801561078757600080fd5b50610350610796366004611e4c565b61130c565b3480156107a757600080fd5b506103506107b6366004611e4c565b61139c565b3480156107c757600080fd5b50601454610534906001600160a01b031681565b3480156107e757600080fd5b506102f06107f6366004611e4c565b611465565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108569086815260200190565b60405180910390a35060015b92915050565b61087133611465565b6108965760405162461bcd60e51b815260040161088d90611f56565b60405180910390fd5b601181905560088111156108ec5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e2038250000000000604482015260640161088d565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f60115460405161091f91815260200190565b60405180910390a150565b6001600160a01b0383166000908152600860209081526040808320338452909152812054600019146109d7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109b2918490611483565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6109e28484846114bd565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610a39906003546001600160a01b0316600090815260076020526040902054610a33906005549061182c565b9061182c565b905090565b610a4733611465565b610a635760405162461bcd60e51b815260040161088d90611f56565b60405133904780156108fc02916000818181858888f19350505050158015610a8f573d6000803e3d6000fd5b50565b6000610862826000196107fb565b610aa933611465565b610ac55760405162461bcd60e51b815260040161088d90611f56565b612710600554610ad59190611f91565b8111610b195760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b604482015260640161088d565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b9060200161091f565b610b5733611465565b610b735760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b6000546001600160a01b03163314610c015760405162461bcd60e51b815260040161088d90611fb3565b601554600160a01b900460ff1615610c525760405162461bcd60e51b815260206004820152601460248201527343616e206f6e6c7920656e61626c65206f6e636560601b604482015260640161088d565b6015805460ff60a01b1916600160a01b17905543600e819055600d54610c78919061186e565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b610cba33611465565b610cd65760405162461bcd60e51b815260040161088d90611f56565b60128190556008811115610d2c5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e2038250000000000604482015260640161088d565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a103160125460405161091f91815260200190565b600080546001600160a01b03163314610d8a5760405162461bcd60e51b815260040161088d90611fb3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190611fd3565b610e0433611465565b610e205760405162461bcd60e51b815260040161088d90611f56565b60108190556008811115610e765760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e203825000000604482015260640161088d565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f49060200161091f565b6000546001600160a01b03163314610ed05760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610f345760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b604482015260640161088d565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610fb157600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384161790556110ff565b600954600110610ff55760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640161088d565b60005b6009548110156110fd57826001600160a01b03166009828154811061101f5761101f611ff0565b6000918252602090912001546001600160a01b0316036110eb576009805461104990600190612006565b8154811061105957611059611ff0565b600091825260209091200154600980546001600160a01b03909216918390811061108557611085611ff0565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806110c4576110c4612019565b600082815260209020810160001990810180546001600160a01b03191690550190556110fd565b806110f58161202f565b915050610ff8565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b60006109e53384846114bd565b6000546001600160a01b031633146111725760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6111a233611465565b6111be5760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610bcb565b61122333611465565b61123f5760405162461bcd60e51b815260040161088d90611f56565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610bcb565b600981815481106112a757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146112eb5760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146113365760405162461bcd60e51b815260040161088d90611fb3565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910161091f565b6113a533611465565b6113c15760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0381166114175760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e000000000000000000604482015260640161088d565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f9060200161091f565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156114a75760405162461bcd60e51b815260040161088d9190611dbd565b5060006114b48486612006565b95945050505050565b60175460009060ff16156114dd576114d68484846118cd565b90506109e5565b6001600160a01b0384166000908152600b602052604090205460ff1615801561151f57506001600160a01b0383166000908152600b602052604090205460ff16155b1561157557601554600160a01b900460ff166115755760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b604482015260640161088d565b61157d6119a1565b1561158a5761158a6119f9565b6001600160a01b0384166000908152600a6020526040902054829060ff1615611676576001600160a01b0384166000908152600b602052604090205460ff16611671576006546001600160a01b0385166000908152600760205260409020546115f3908561186e565b11158061161857506001600160a01b0384166000908152600c602052604090205460ff165b6116645760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161088d565b61166e8584611b0b565b90505b611785565b6001600160a01b0384166000908152600a602052604090205460ff16156116c1576001600160a01b0385166000908152600b602052604090205460ff166116715761166e8584611bac565b6001600160a01b0385166000908152600b602052604090205460ff16611785576006546001600160a01b038516600090815260076020526040902054611707908561186e565b11158061172c57506001600160a01b0384166000908152600c602052604090205460ff165b6117785760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161088d565b6117828584611bc5565b90505b6001600160a01b0385166000908152600760205260409020546117a8908461182c565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546117d7908261186e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716906000805160206120e4833981519152906118199085815260200190565b60405180910390a3506001949350505050565b60006109e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611483565b60008061187b8385612048565b9050838110156109e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161088d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461191e918490611483565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461194d908361186e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616906000805160206120e48339815191529061198f9086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff161580156119c4575060175460ff16155b80156119d95750601554600160a81b900460ff165b8015610a3957505060165430600090815260076020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a3b57611a3b611ff0565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a6c57611a6c611ff0565b6001600160a01b039283166020918202929092018101919091526014543060009081526007909252604080832054601354915163791ac94760e01b81529285169463791ac94794611acc949293909288929190911690429060040161205b565b600060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b50506017805460ff19169055505050565b601154600f5460009190431015611b2757611b24611c5e565b90505b6000611b3e6064611b388685611cd0565b90611d52565b30600090815260076020526040902054909150611b5b908261186e565b30600081815260076020526040908190209290925590516001600160a01b038716906000805160206120e483398151915290611b9a9085815260200190565b60405180910390a36114b4848261182c565b601254600f5460009190431015611b2757611b24611c5e565b600080611be26064611b3860105486611cd090919063ffffffff16565b90508015611c4c5730600090815260076020526040902054611c04908261186e565b30600081815260076020526040908190209290925590516001600160a01b038616906000805160206120e483398151915290611c439085815260200190565b60405180910390a35b611c56838261182c565b949350505050565b600080611c76600e544361182c90919063ffffffff16565b905060006008821015611c8b5750602c610862565b60088210158015611c9c5750601082105b15611ca957506021610862565b60108210158015611cba5750601882105b15611cc757506016610862565b50600b92915050565b600082600003611ce257506000610862565b6000611cee83856120cc565b905082611cfb8583611f91565b146109e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161088d565b60006109e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611db05760405162461bcd60e51b815260040161088d9190611dbd565b5060006114b48486611f91565b600060208083528351808285015260005b81811015611dea57858101830151858201604001528201611dce565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a8f57600080fd5b60008060408385031215611e3357600080fd5b8235611e3e81611e0b565b946020939093013593505050565b600060208284031215611e5e57600080fd5b81356109e581611e0b565b600060208284031215611e7b57600080fd5b5035919050565b600080600060608486031215611e9757600080fd5b8335611ea281611e0b565b92506020840135611eb281611e0b565b929592945050506040919091013590565b8015158114610a8f57600080fd5b60008060408385031215611ee457600080fd5b8235611eef81611e0b565b91506020830135611eff81611ec3565b809150509250929050565b60008060408385031215611f1d57600080fd5b8235611f2881611e0b565b91506020830135611eff81611e0b565b60008060408385031215611f4b57600080fd5b8235611e3e81611ec3565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611fae57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060208284031215611fe557600080fd5b81516109e581611ec3565b634e487b7160e01b600052603260045260246000fd5b8181038181111561086257610862611f7b565b634e487b7160e01b600052603160045260246000fd5b60006001820161204157612041611f7b565b5060010190565b8082018082111561086257610862611f7b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120ab5784516001600160a01b031683529383019391830191600101612086565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761086257610862611f7b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122043e8e2b0610ce25a81f7184e82052c2bf2dae8f7ee3a14b76a97076fbce99e2664736f6c63430008120033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c8063893d20e811610139578063b6a5d7de116100b6578063e1d5584c1161007a578063e1d5584c1461073b578063f0b37c041461075b578063f2fde38b1461077b578063f35ca3651461079b578063f887ea40146107bb578063fe9fbb80146107db57600080fd5b8063b6a5d7de1461067f578063c04a78ad1461069f578063d00efb2f146106bf578063dd62ed3e146106d5578063df20fd491461071b57600080fd5b806395d89b41116100fd57806395d89b41146105c15780639a7a23d6146105ef578063a8aa1b311461060f578063a9059cbb1461062f578063b62496f51461064f57600080fd5b8063893d20e81461051a5780638a8c523c1461054c5780638b4cee08146105615780638cd4426d146105815780638f02bb5b146105a157600080fd5b8063313ce567116101c75780635d0044ca1161018b5780635d0044ca1461046d578063658d4b7f1461048d5780636c0a24eb146104ad5780636ddd1713146104c357806370a08231146104e457600080fd5b8063313ce567146103cb578063364333f4146103e75780633f4218e0146103fc5780634ada218b1461042c578063571ac8b01461044d57600080fd5b80630cc835a31161020e5780630cc835a31461033057806318160ddd1461035257806323b872dd146103675780632b112e49146103875780632f54bf6e1461039c57600080fd5b806301f59d16146102565780630445b6671461027e57806306fdde0314610294578063095ea7b3146102d05780630bd11f8a1461030057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b600881565b6040519081526020015b60405180910390f35b34801561028a57600080fd5b5061026b60165481565b3480156102a057600080fd5b5060408051808201909152600a81526950726f6d65746865757360b01b60208201525b6040516102759190611dbd565b3480156102dc57600080fd5b506102f06102eb366004611e20565b6107fb565b6040519015158152602001610275565b34801561030c57600080fd5b506102f061031b366004611e4c565b600c6020526000908152604090205460ff1681565b34801561033c57600080fd5b5061035061034b366004611e69565b610868565b005b34801561035e57600080fd5b5060055461026b565b34801561037357600080fd5b506102f0610382366004611e82565b61092a565b34801561039357600080fd5b5061026b6109ec565b3480156103a857600080fd5b506102f06103b7366004611e4c565b6000546001600160a01b0391821691161490565b3480156103d757600080fd5b5060405160128152602001610275565b3480156103f357600080fd5b50610350610a3e565b34801561040857600080fd5b506102f0610417366004611e4c565b600b6020526000908152604090205460ff1681565b34801561043857600080fd5b506015546102f090600160a01b900460ff1681565b34801561045957600080fd5b506102f0610468366004611e4c565b610a92565b34801561047957600080fd5b50610350610488366004611e69565b610aa0565b34801561049957600080fd5b506103506104a8366004611ed1565b610b4e565b3480156104b957600080fd5b5061026b60065481565b3480156104cf57600080fd5b506015546102f090600160a81b900460ff1681565b3480156104f057600080fd5b5061026b6104ff366004611e4c565b6001600160a01b031660009081526007602052604090205490565b34801561052657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610275565b34801561055857600080fd5b50610350610bd7565b34801561056d57600080fd5b5061035061057c366004611e69565b610cb1565b34801561058d57600080fd5b506102f061059c366004611e20565b610d5f565b3480156105ad57600080fd5b506103506105bc366004611e69565b610dfb565b3480156105cd57600080fd5b5060408051808201909152600581526450524f4d4560d81b60208201526102c3565b3480156105fb57600080fd5b5061035061060a366004611ed1565b610ea6565b34801561061b57600080fd5b50601554610534906001600160a01b031681565b34801561063b57600080fd5b506102f061064a366004611e20565b61113b565b34801561065b57600080fd5b506102f061066a366004611e4c565b600a6020526000908152604090205460ff1681565b34801561068b57600080fd5b5061035061069a366004611e4c565b611148565b3480156106ab57600080fd5b506103506106ba366004611ed1565b611199565b3480156106cb57600080fd5b5061026b600e5481565b3480156106e157600080fd5b5061026b6106f0366004611f0a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561072757600080fd5b50610350610736366004611f38565b61121a565b34801561074757600080fd5b50610534610756366004611e69565b611297565b34801561076757600080fd5b50610350610776366004611e4c565b6112c1565b34801561078757600080fd5b50610350610796366004611e4c565b61130c565b3480156107a757600080fd5b506103506107b6366004611e4c565b61139c565b3480156107c757600080fd5b50601454610534906001600160a01b031681565b3480156107e757600080fd5b506102f06107f6366004611e4c565b611465565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108569086815260200190565b60405180910390a35060015b92915050565b61087133611465565b6108965760405162461bcd60e51b815260040161088d90611f56565b60405180910390fd5b601181905560088111156108ec5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e2038250000000000604482015260640161088d565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f60115460405161091f91815260200190565b60405180910390a150565b6001600160a01b0383166000908152600860209081526040808320338452909152812054600019146109d7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109b2918490611483565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6109e28484846114bd565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610a39906003546001600160a01b0316600090815260076020526040902054610a33906005549061182c565b9061182c565b905090565b610a4733611465565b610a635760405162461bcd60e51b815260040161088d90611f56565b60405133904780156108fc02916000818181858888f19350505050158015610a8f573d6000803e3d6000fd5b50565b6000610862826000196107fb565b610aa933611465565b610ac55760405162461bcd60e51b815260040161088d90611f56565b612710600554610ad59190611f91565b8111610b195760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b604482015260640161088d565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b9060200161091f565b610b5733611465565b610b735760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b6000546001600160a01b03163314610c015760405162461bcd60e51b815260040161088d90611fb3565b601554600160a01b900460ff1615610c525760405162461bcd60e51b815260206004820152601460248201527343616e206f6e6c7920656e61626c65206f6e636560601b604482015260640161088d565b6015805460ff60a01b1916600160a01b17905543600e819055600d54610c78919061186e565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b610cba33611465565b610cd65760405162461bcd60e51b815260040161088d90611f56565b60128190556008811115610d2c5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e2038250000000000604482015260640161088d565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a103160125460405161091f91815260200190565b600080546001600160a01b03163314610d8a5760405162461bcd60e51b815260040161088d90611fb3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190611fd3565b610e0433611465565b610e205760405162461bcd60e51b815260040161088d90611f56565b60108190556008811115610e765760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e203825000000604482015260640161088d565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f49060200161091f565b6000546001600160a01b03163314610ed05760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610f345760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b604482015260640161088d565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610fb157600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384161790556110ff565b600954600110610ff55760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640161088d565b60005b6009548110156110fd57826001600160a01b03166009828154811061101f5761101f611ff0565b6000918252602090912001546001600160a01b0316036110eb576009805461104990600190612006565b8154811061105957611059611ff0565b600091825260209091200154600980546001600160a01b03909216918390811061108557611085611ff0565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806110c4576110c4612019565b600082815260209020810160001990810180546001600160a01b03191690550190556110fd565b806110f58161202f565b915050610ff8565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b60006109e53384846114bd565b6000546001600160a01b031633146111725760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6111a233611465565b6111be5760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610bcb565b61122333611465565b61123f5760405162461bcd60e51b815260040161088d90611f56565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610bcb565b600981815481106112a757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146112eb5760405162461bcd60e51b815260040161088d90611fb3565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146113365760405162461bcd60e51b815260040161088d90611fb3565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910161091f565b6113a533611465565b6113c15760405162461bcd60e51b815260040161088d90611f56565b6001600160a01b0381166114175760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e000000000000000000604482015260640161088d565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f9060200161091f565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156114a75760405162461bcd60e51b815260040161088d9190611dbd565b5060006114b48486612006565b95945050505050565b60175460009060ff16156114dd576114d68484846118cd565b90506109e5565b6001600160a01b0384166000908152600b602052604090205460ff1615801561151f57506001600160a01b0383166000908152600b602052604090205460ff16155b1561157557601554600160a01b900460ff166115755760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b604482015260640161088d565b61157d6119a1565b1561158a5761158a6119f9565b6001600160a01b0384166000908152600a6020526040902054829060ff1615611676576001600160a01b0384166000908152600b602052604090205460ff16611671576006546001600160a01b0385166000908152600760205260409020546115f3908561186e565b11158061161857506001600160a01b0384166000908152600c602052604090205460ff165b6116645760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161088d565b61166e8584611b0b565b90505b611785565b6001600160a01b0384166000908152600a602052604090205460ff16156116c1576001600160a01b0385166000908152600b602052604090205460ff166116715761166e8584611bac565b6001600160a01b0385166000908152600b602052604090205460ff16611785576006546001600160a01b038516600090815260076020526040902054611707908561186e565b11158061172c57506001600160a01b0384166000908152600c602052604090205460ff165b6117785760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161088d565b6117828584611bc5565b90505b6001600160a01b0385166000908152600760205260409020546117a8908461182c565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546117d7908261186e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716906000805160206120e4833981519152906118199085815260200190565b60405180910390a3506001949350505050565b60006109e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611483565b60008061187b8385612048565b9050838110156109e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161088d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461191e918490611483565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461194d908361186e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616906000805160206120e48339815191529061198f9086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff161580156119c4575060175460ff16155b80156119d95750601554600160a81b900460ff165b8015610a3957505060165430600090815260076020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a3b57611a3b611ff0565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a6c57611a6c611ff0565b6001600160a01b039283166020918202929092018101919091526014543060009081526007909252604080832054601354915163791ac94760e01b81529285169463791ac94794611acc949293909288929190911690429060040161205b565b600060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b50506017805460ff19169055505050565b601154600f5460009190431015611b2757611b24611c5e565b90505b6000611b3e6064611b388685611cd0565b90611d52565b30600090815260076020526040902054909150611b5b908261186e565b30600081815260076020526040908190209290925590516001600160a01b038716906000805160206120e483398151915290611b9a9085815260200190565b60405180910390a36114b4848261182c565b601254600f5460009190431015611b2757611b24611c5e565b600080611be26064611b3860105486611cd090919063ffffffff16565b90508015611c4c5730600090815260076020526040902054611c04908261186e565b30600081815260076020526040908190209290925590516001600160a01b038616906000805160206120e483398151915290611c439085815260200190565b60405180910390a35b611c56838261182c565b949350505050565b600080611c76600e544361182c90919063ffffffff16565b905060006008821015611c8b5750602c610862565b60088210158015611c9c5750601082105b15611ca957506021610862565b60108210158015611cba5750601882105b15611cc757506016610862565b50600b92915050565b600082600003611ce257506000610862565b6000611cee83856120cc565b905082611cfb8583611f91565b146109e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161088d565b60006109e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611db05760405162461bcd60e51b815260040161088d9190611dbd565b5060006114b48486611f91565b600060208083528351808285015260005b81811015611dea57858101830151858201604001528201611dce565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a8f57600080fd5b60008060408385031215611e3357600080fd5b8235611e3e81611e0b565b946020939093013593505050565b600060208284031215611e5e57600080fd5b81356109e581611e0b565b600060208284031215611e7b57600080fd5b5035919050565b600080600060608486031215611e9757600080fd5b8335611ea281611e0b565b92506020840135611eb281611e0b565b929592945050506040919091013590565b8015158114610a8f57600080fd5b60008060408385031215611ee457600080fd5b8235611eef81611e0b565b91506020830135611eff81611ec3565b809150509250929050565b60008060408385031215611f1d57600080fd5b8235611f2881611e0b565b91506020830135611eff81611e0b565b60008060408385031215611f4b57600080fd5b8235611e3e81611ec3565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611fae57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060208284031215611fe557600080fd5b81516109e581611ec3565b634e487b7160e01b600052603260045260246000fd5b8181038181111561086257610862611f7b565b634e487b7160e01b600052603160045260246000fd5b60006001820161204157612041611f7b565b5060010190565b8082018082111561086257610862611f7b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120ab5784516001600160a01b031683529383019391830191600101612086565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761086257610862611f7b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122043e8e2b0610ce25a81f7184e82052c2bf2dae8f7ee3a14b76a97076fbce99e2664736f6c63430008120033
Deployed Bytecode Sourcemap
4676:12412:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6316:34;;;;;;;;;;;;6349:1;6316:34;;;;;160:25:1;;;148:2;133:18;6316:34:0;;;;;;;;6740:54;;;;;;;;;;;;;;;;7911:80;;;;;;;;;;-1:-1:-1;7983:5:0;;;;;;;;;;;;-1:-1:-1;;;7983:5:0;;;;7911:80;;;;;;;:::i;8333:216::-;;;;;;;;;;-1:-1:-1;8333:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8333:216:0;1205:187:1;6068:50:0;;;;;;;;;;-1:-1:-1;6068:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14903:222;;;;;;;;;;-1:-1:-1;14903:222:0;;;;;:::i;:::-;;:::i;:::-;;7641:88;;;;;;;;;;-1:-1:-1;7714:12:0;;7641:88;;8851:370;;;;;;;;;;-1:-1:-1;8851:370:0;;;;;:::i;:::-;;:::i;16939:142::-;;;;;;;;;;;;;:::i;2745:103::-;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;7735:80;;;;;;;;;;-1:-1:-1;7735:80:0;;5642:2;2437:36:1;;2425:2;2410:18;7735:80:0;2295:184:1;13266:119:0;;;;;;;;;;;;;:::i;6017:44::-;;;;;;;;;;-1:-1:-1;6017:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6662:34;;;;;;;;;;-1:-1:-1;6662:34:0;;;;-1:-1:-1;;;6662:34:0;;;;;;8557:122;;;;;;;;;;-1:-1:-1;8557:122:0;;;;;:::i;:::-;;:::i;14313:216::-;;;;;;;;;;-1:-1:-1;14313:216:0;;;;;:::i;:::-;;:::i;14537:166::-;;;;;;;;;;-1:-1:-1;14537:166:0;;;;;:::i;:::-;;:::i;5717:57::-;;;;;;;;;;;;;;;;6703:30;;;;;;;;;;-1:-1:-1;6703:30:0;;;;-1:-1:-1;;;6703:30:0;;;;;;8081:105;;;;;;;;;;-1:-1:-1;8081:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8165:18:0;8147:7;8165:18;;;:9;:18;;;;;;;8081:105;7997:78;;;;;;;;;;-1:-1:-1;8049:7:0;8067:5;-1:-1:-1;;;;;8067:5:0;7997:78;;;-1:-1:-1;;;;;3158:32:1;;;3140:51;;3128:2;3113:18;7997:78:0;2994:203:1;13591:298:0;;;;;;;;;;;;;:::i;15133:229::-;;;;;;;;;;-1:-1:-1;15133:229:0;;;;;:::i;:::-;;:::i;13393:167::-;;;;;;;;;;-1:-1:-1;13393:167:0;;;;;:::i;:::-;;:::i;15370:236::-;;;;;;;;;;-1:-1:-1;15370:236:0;;;;;:::i;:::-;;:::i;7821:84::-;;;;;;;;;;-1:-1:-1;7895:7:0;;;;;;;;;;;;-1:-1:-1;;;7895:7:0;;;;7821:84;;16126:801;;;;;;;;;;-1:-1:-1;16126:801:0;;;;;:::i;:::-;;:::i;6634:19::-;;;;;;;;;;-1:-1:-1;6634:19:0;;;;-1:-1:-1;;;;;6634:19:0;;;8687:156;;;;;;;;;;-1:-1:-1;8687:156:0;;;;;:::i;:::-;;:::i;5950:58::-;;;;;;;;;;-1:-1:-1;5950:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2538:94;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;14711:184::-;;;;;;;;;;-1:-1:-1;14711:184:0;;;;;:::i;:::-;;:::i;6181:26::-;;;;;;;;;;;;;;;;8192:133;;;;;;;;;;-1:-1:-1;8192:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8294:19:0;;;8276:7;8294:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8192:133;15910:208;;;;;;;;;;-1:-1:-1;15910:208:0;;;;;:::i;:::-;;:::i;5914:29::-;;;;;;;;;;-1:-1:-1;5914:29:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;15616:286::-;;;;;;;;;;-1:-1:-1;15616:286:0;;;;;:::i;:::-;;:::i;6603:24::-;;;;;;;;;;-1:-1:-1;6603:24:0;;;;-1:-1:-1;;;;;6603:24:0;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;8333:216::-;8437:10;8408:4;8425:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8425:32:0;;;;;;;;;;:41;;;8482:37;8408:4;;8425:32;;8482:37;;;;8460:6;160:25:1;;148:2;133:18;;14:177;8482:37:0;;;;;;;;-1:-1:-1;8537:4:0;8333:216;;;;;:::o;14903:222::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;;;;;;;;;14975:11:::1;:26:::0;;;6349:1:::1;15020:21:::0;::::1;;15012:61;;;::::0;-1:-1:-1;;;15012:61:0;;4937:2:1;15012:61:0::1;::::0;::::1;4919:21:1::0;4976:2;4956:18;;;4949:30;5015:29;4995:18;;;4988:57;5062:18;;15012:61:0::1;4735:351:1::0;15012:61:0::1;15091:26;15105:11;;15091:26;;;;160:25:1::0;;148:2;133:18;;14:177;15091:26:0::1;;;;;;;;14903:222:::0;:::o;8851:370::-;-1:-1:-1;;;;;8971:19:0;;8951:4;8971:19;;;:11;:19;;;;;;;;8991:10;8971:31;;;;;;;;-1:-1:-1;;8971:52:0;8968:186;;9073:69;;;;;;;;;;;-1:-1:-1;;;9073:69:0;;;;;;;;-1:-1:-1;;;;;9073:19:0;;-1:-1:-1;9073:19:0;;;:11;:19;;;;;9093:10;9073:31;;;;;;;;;;:69;;9109:6;;9073:35;:69::i;:::-;-1:-1:-1;;;;;9039:19:0;;;;;;:11;:19;;;;;;;;9059:10;9039:31;;;;;;;:103;8968:186;9173:40;9187:6;9195:9;9206:6;9173:13;:40::i;:::-;9166:47;;8851:370;;;;;;:::o;16939:142::-;17067:4;;-1:-1:-1;;;;;17067:4:0;16992:7;8165:18;;;:9;:18;;;;;;17019:54;;17046:4;;-1:-1:-1;;;;;17046:4:0;8147:7;8165:18;;;:9;:18;;;;;;17019:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17012:61;;16939:142;:::o;13266:119::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;13326:51:::1;::::0;13334:10:::1;::::0;13355:21:::1;13326:51:::0;::::1;;;::::0;::::1;::::0;;;13355:21;13334:10;13326:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13266:119::o:0;8557:122::-;8612:4;8636:35;8644:7;-1:-1:-1;;8636:7:0;:35::i;14313:216::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14414:5:::1;14399:12;;:20;;;;:::i;:::-;14390:6;:29;14382:61;;;::::0;-1:-1:-1;;;14382:61:0;;5647:2:1;14382:61:0::1;::::0;::::1;5629:21:1::0;5686:2;5666:18;;;5659:30;-1:-1:-1;;;5705:18:1;;;5698:49;5764:18;;14382:61:0::1;5445:343:1::0;14382:61:0::1;14454:16;:25:::0;;;14497:24:::1;::::0;160:25:1;;;14497:24:0::1;::::0;148:2:1;133:18;14497:24:0::1;14:177:1::0;14537:166:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14621:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;14621:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14667;;5961:51:1;;;6028:18;;;6021:50;14667:28:0::1;::::0;5934:18:1;14667:28:0::1;;;;;;;;14537:166:::0;;:::o;13591:298::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13654:14:::1;::::0;-1:-1:-1;;;13654:14:0;::::1;;;:23;13646:56;;;::::0;-1:-1:-1;;;13646:56:0;;6618:2:1;13646:56:0::1;::::0;::::1;6600:21:1::0;6657:2;6637:18;;;6630:30;-1:-1:-1;;;6676:18:1;;;6669:50;6736:18;;13646:56:0::1;6416:344:1::0;13646:56:0::1;13713:14;:21:::0;;-1:-1:-1;;;;13713:21:0::1;-1:-1:-1::0;;;13713:21:0::1;::::0;;13759:12:::1;13745:11;:26:::0;;;13819:10:::1;::::0;13802:28:::1;::::0;13759:12;13802:16:::1;:28::i;:::-;13782:17;:48:::0;13848:33:::1;::::0;13876:4:::1;1345:41:1::0;;13848:33:0::1;::::0;1333:2:1;1318:18;13848:33:0::1;;;;;;;13591:298::o:0;15133:229::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15207:12:::1;:28:::0;;;6349:1:::1;15254:22:::0;::::1;;15246:62;;;::::0;-1:-1:-1;;;15246:62:0;;4937:2:1;15246:62:0::1;::::0;::::1;4919:21:1::0;4976:2;4956:18;;;4949:30;5015:29;4995:18;;;4988:57;5062:18;;15246:62:0::1;4735:351:1::0;15246:62:0::1;15326:28;15341:12;;15326:28;;;;160:25:1::0;;148:2;133:18;;14:177;13393:167:0;13480:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13504:48:::1;::::0;-1:-1:-1;;;13504:48:0;;13533:10:::1;13504:48;::::0;::::1;6939:51:1::0;7006:18;;;6999:34;;;-1:-1:-1;;;;;13504:28:0;::::1;::::0;::::1;::::0;6912:18:1;;13504:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15370:236::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15448:11:::1;:26:::0;;;6349:1:::1;15494:21:::0;::::1;;15486:63;;;::::0;-1:-1:-1;;;15486:63:0;;7496:2:1;15486:63:0::1;::::0;::::1;7478:21:1::0;7535:2;7515:18;;;7508:30;7574:31;7554:18;;;7547:59;7623:18;;15486:63:0::1;7294:353:1::0;15486:63:0::1;15565:32;::::0;160:25:1;;;15565:32:0::1;::::0;148:2:1;133:18;15565:32:0::1;14:177:1::0;16126:801:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16231:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;:42;::::1;;:32;::::0;;::::1;:42;;::::0;16223:72:::1;;;::::0;-1:-1:-1;;;16223:72:0;;7854:2:1;16223:72:0::1;::::0;::::1;7836:21:1::0;7893:2;7873:18;;;7866:30;-1:-1:-1;;;7912:18:1;;;7905:47;7969:18;;16223:72:0::1;7652:341:1::0;16223:72:0::1;-1:-1:-1::0;;;;;16312:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;-1:-1:-1;;16312:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;16370:482:::1;;16399:12;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16399:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16399:24:0::1;-1:-1:-1::0;;;;;16399:24:0;::::1;;::::0;;16370:482:::1;;;16470:12;:19:::0;16492:1:::1;-1:-1:-1::0;16462:51:0::1;;;::::0;-1:-1:-1;;;16462:51:0;;8200:2:1;16462:51:0::1;::::0;::::1;8182:21:1::0;8239:2;8219:18;;;8212:30;-1:-1:-1;;;8258:18:1;;;8251:45;8313:18;;16462:51:0::1;7998:339:1::0;16462:51:0::1;16537:9;16532:305;16556:12;:19:::0;16552:23;::::1;16532:305;;;16628:5;-1:-1:-1::0;;;;;16609:24:0::1;:12;16622:1;16609:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16609:15:0::1;:24:::0;16605:213:::1;;16680:12;16693:19:::0;;:23:::1;::::0;16715:1:::1;::::0;16693:23:::1;:::i;:::-;16680:37;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;16662:12:::1;:15:::0;;-1:-1:-1;;;;;16680:37:0;;::::1;::::0;16675:1;;16662:15;::::1;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;16662:55:0::1;;;;;-1:-1:-1::0;;;;;16662:55:0::1;;;;;;16744:12;:18;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;16744:18:0;;;;;-1:-1:-1;;;;;;16744:18:0::1;::::0;;;;;16789:5:::1;;16605:213;16577:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16532:305;;;;16370:482;16873:42;::::0;;::::1;;::::0;-1:-1:-1;;;;;16873:42:0;::::1;::::0;::::1;::::0;;;::::1;16126:801:::0;;:::o;8687:156::-;8767:4;8791:44;8805:10;8817:9;8828:6;8791:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;14711:184::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14801:25:0;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;;:34;;-1:-1:-1;;14801:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14853;;5961:51:1;;;6028:18;;;6021:50;14853:34:0::1;::::0;5934:18:1;14853:34:0::1;5793:284:1::0;15910:208:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;16002:11:::1;:22:::0;;-1:-1:-1;;;;16002:22:0::1;-1:-1:-1::0;;;16002:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16035:13:::1;:23:::0;;;16076:34:::1;::::0;;9047:41:1;;;9119:2;9104:18;;9097:34;;;16076::0::1;::::0;9020:18:1;16076:34:0::1;8879:258:1::0;5914:29:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5914:29:0;;-1:-1:-1;5914:29:0;:::o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;3140:51:1;;;3111:25:0::1;::::0;3113:18:1;3111:25:0::1;2994:203:1::0;15616:286:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15720:35:0;::::1;15712:72;;;::::0;-1:-1:-1;;;15712:72:0;;9560:2:1;15712:72:0::1;::::0;::::1;9542:21:1::0;9599:2;9579:18;;;9572:30;9638:25;9618:18;;;9611:53;9681:18;;15712:72:0::1;9358:347:1::0;15712:72:0::1;15795:20;:44:::0;;-1:-1:-1;;;;;;15795:44:0::1;-1:-1:-1::0;;;;;15795:44:0;::::1;::::0;;::::1;::::0;;;15857:37:::1;::::0;3140:51:1;;;15857:37:0::1;::::0;3128:2:1;3113:18;15857:37:0::1;2994:203:1::0;2856:107:0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9229:1451::-;9341:6;;9321:4;;9341:6;;9338:63;;;9357:41;9372:6;9380:9;9391:6;9357:14;:41::i;:::-;9350:48;;;;9338:63;-1:-1:-1;;;;;9417:19:0;;;;;;:11;:19;;;;;;;;9416:20;:47;;;;-1:-1:-1;;;;;;9441:22:0;;;;;;:11;:22;;;;;;;;9440:23;9416:47;9413:125;;;9487:14;;-1:-1:-1;;;9487:14:0;;;;9479:47;;;;-1:-1:-1;;;9479:47:0;;9912:2:1;9479:47:0;;;9894:21:1;9951:2;9931:18;;;9924:30;-1:-1:-1;;;9970:18:1;;;9963:51;10031:18;;9479:47:0;9710:345:1;9479:47:0;9553:16;:14;:16::i;:::-;9550:35;;;9572:10;:8;:10::i;:::-;-1:-1:-1;;;;;9647:33:0;;9599:22;9647:33;;;:25;:33;;;;;;9624:6;;9647:33;;9644:800;;;-1:-1:-1;;;;;9707:22:0;;;;;;:11;:22;;;;;;;;9703:253;;9794:16;;-1:-1:-1;;;;;9758:20:0;;;;;;:9;:20;;;;;;:32;;9783:6;9758:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;9814:28:0;;;;;;:17;:28;;;;;;;;9758:84;9750:128;;;;-1:-1:-1;;;9750:128:0;;10262:2:1;9750:128:0;;;10244:21:1;10301:2;10281:18;;;10274:30;10340:33;10320:18;;;10313:61;10391:18;;9750:128:0;10060:355:1;9750:128:0;9914:26;9925:6;9933;9914:10;:26::i;:::-;9897:43;;9703:253;9644:800;;;-1:-1:-1;;;;;9978:36:0;;;;;;:25;:36;;;;;;;;9975:469;;;-1:-1:-1;;;;;10042:19:0;;;;;;:11;:19;;;;;;;;10038:104;;10099:27;10111:6;10119;10099:11;:27::i;9975:469::-;-1:-1:-1;;;;;10180:19:0;;;;;;:11;:19;;;;;;;;10175:258;;10265:16;;-1:-1:-1;;;;;10229:20:0;;;;;;:9;:20;;;;;;:32;;10254:6;10229:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10285:28:0;;;;;;:17;:28;;;;;;;;10229:84;10221:128;;;;-1:-1:-1;;;10221:128:0;;10262:2:1;10221:128:0;;;10244:21:1;10301:2;10281:18;;;10274:30;10340:33;10320:18;;;10313:61;10391:18;;10221:128:0;10060:355:1;10221:128:0;10385:31;10401:6;10409;10385:15;:31::i;:::-;10368:48;;10175:258;-1:-1:-1;;;;;10476:17:0;;;;;;:9;:17;;;;;;:29;;10498:6;10476:21;:29::i;:::-;-1:-1:-1;;;;;10456:17:0;;;;;;;:9;:17;;;;;;:49;;;;10539:20;;;;;;;:40;;10564:14;10539:24;:40::i;:::-;-1:-1:-1;;;;;10516:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10607:43;;;;;;-1:-1:-1;;;;;;;;;;;10607:43:0;;;10635:14;160:25:1;;148:2;133:18;;14:177;10607:43:0;;;;;;;;-1:-1:-1;10668:4:0;;9229:1451;-1:-1:-1;;;;9229:1451:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;10752:2:1;199:46:0;;;10734:21:1;10791:2;10771:18;;;10764:30;10830:29;10810:18;;;10803:57;10877:18;;199:46:0;10550:351:1;10692:330:0;10822:53;;;;;;;;;;;-1:-1:-1;;;10822:53:0;;;;;;;;-1:-1:-1;;;;;10822:17:0;;10785:4;10822:17;;;:9;:17;;;;;;;:53;;10844:6;;10822:21;:53::i;:::-;-1:-1:-1;;;;;10802:17:0;;;;;;;:9;:17;;;;;;:73;;;;10909:20;;;;;;;:32;;10934:6;10909:24;:32::i;:::-;-1:-1:-1;;;;;10886:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10957:35;;;;;;-1:-1:-1;;;;;;;;;;;10957:35:0;;;10985:6;160:25:1;;148:2;133:18;;14:177;10957:35:0;;;;;;;;-1:-1:-1;11010:4:0;10692:330;;;;;:::o;13032:226::-;13141:10;13081:4;13115:37;;;:25;:37;;;;;;;;13114:38;:58;;;;-1:-1:-1;13166:6:0;;;;13165:7;13114:58;:82;;;;-1:-1:-1;13185:11:0;;-1:-1:-1;;;13185:11:0;;;;13114:82;:136;;;;-1:-1:-1;;13237:13:0;;13227:4;13209:24;;;;:9;:24;;;;;;:41;;;13032:226::o;13897:384::-;6851:6;:13;;-1:-1:-1;;6851:13:0;6860:4;6851:13;;;13972:16:::1;::::0;;13986:1:::1;13972:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13972:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13972:16:0::1;13948:40;;14017:4;13999;14004:1;13999:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13999:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14043:4:::1;::::0;14033:7;;14043:4;::::1;::::0;14033;;14043;;14033:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14033:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;14060:6:::1;::::0;14150:4:::1;14060:6;14132:24:::0;;;:9:::1;:24:::0;;;;;;;;14206:20:::1;::::0;14060:207;;-1:-1:-1;;;14060:207:0;;:6;;::::1;::::0;:57:::1;::::0;:207:::1;::::0;14132:24;;14060:6;;14187:4;;14206:20;;;::::1;::::0;14241:15:::1;::::0;14060:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6869:6:0;:14;;-1:-1:-1;;6869:14:0;;;-1:-1:-1;;;13897:384:0:o;11588:486::-;11696:11;;11737:17;;11658:7;;11696:11;11722:12;:32;11718:98;;;11786:14;:12;:14::i;:::-;11775:25;;11718:98;11828:17;11848:40;6498:3;11848:20;:6;11859:8;11848:10;:20::i;:::-;:24;;:40::i;:::-;11946:4;11928:24;;;;:9;:24;;;;;;11828:60;;-1:-1:-1;11928:39:0;;11828:60;11928:28;:39::i;:::-;11919:4;11901:24;;;;:9;:24;;;;;;;:66;;;;11983:42;;-1:-1:-1;;;;;11983:42:0;;;-1:-1:-1;;;;;;;;;;;11983:42:0;;;12015:9;160:25:1;;148:2;133:18;;14:177;11983:42:0;;;;;;;;12045:21;:6;12056:9;12045:10;:21::i;12082:510::-;12191:12;;12233:17;;12153:7;;12191:12;12218;:32;12214:98;;;12282:14;:12;:14::i;12600:420::-;12675:7;12694:17;12714:43;6498:3;12714:23;12725:11;;12714:6;:10;;:23;;;;:::i;:43::-;12694:63;-1:-1:-1;12786:13:0;;12782:176;;12861:4;12843:24;;;;:9;:24;;;;;;:39;;12872:9;12843:28;:39::i;:::-;12834:4;12816:24;;;;:9;:24;;;;;;;:66;;;;12903:42;;-1:-1:-1;;;;;12903:42:0;;;-1:-1:-1;;;;;;;;;;;12903:42:0;;;12935:9;160:25:1;;148:2;133:18;;14:177;12903:42:0;;;;;;;;12782:176;12990:21;:6;13001:9;12990:10;:21::i;:::-;12983:28;12600:420;-1:-1:-1;;;;12600:420:0:o;11030:537::-;11076:7;11096:25;11124:29;11141:11;;11124:12;:16;;:29;;;;:::i;:::-;11096:57;;11164:17;11215:1;11195:17;:21;11192:341;;;-1:-1:-1;11244:2:0;11192:341;;;11297:1;11276:17;:22;;:48;;;;;11322:2;11302:17;:22;11276:48;11273:260;;;-1:-1:-1;11353:2:0;11273:260;;;11406:2;11385:17;:23;;:49;;;;;11432:2;11412:17;:22;11385:49;11382:151;;;-1:-1:-1;11463:2:0;11382:151;;;-1:-1:-1;11519:2:0;11550:9;11030:537;-1:-1:-1;;11030:537:0:o;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;12398:2:1;785:56:0;;;12380:21:1;12437:2;12417:18;;;12410:30;12476:34;12456:18;;;12449:62;-1:-1:-1;;;12527:18:1;;;12520:31;12568:19;;785:56:0;12196:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:180::-;1708:6;1761:2;1749:9;1740:7;1736:23;1732:32;1729:52;;;1777:1;1774;1767:12;1729:52;-1:-1:-1;1800:23:1;;1649:180;-1:-1:-1;1649:180:1:o;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;2484:118::-;2570:5;2563:13;2556:21;2549:5;2546:32;2536:60;;2592:1;2589;2582:12;2607:382;2672:6;2680;2733:2;2721:9;2712:7;2708:23;2704:32;2701:52;;;2749:1;2746;2739:12;2701:52;2788:9;2775:23;2807:31;2832:5;2807:31;:::i;:::-;2857:5;-1:-1:-1;2914:2:1;2899:18;;2886:32;2927:30;2886:32;2927:30;:::i;:::-;2976:7;2966:17;;;2607:382;;;;;:::o;3202:388::-;3270:6;3278;3331:2;3319:9;3310:7;3306:23;3302:32;3299:52;;;3347:1;3344;3337:12;3299:52;3386:9;3373:23;3405:31;3430:5;3405:31;:::i;:::-;3455:5;-1:-1:-1;3512:2:1;3497:18;;3484:32;3525:33;3484:32;3525:33;:::i;3595:309::-;3660:6;3668;3721:2;3709:9;3700:7;3696:23;3692:32;3689:52;;;3737:1;3734;3727:12;3689:52;3776:9;3763:23;3795:28;3817:5;3795:28;:::i;4395:335::-;4597:2;4579:21;;;4636:2;4616:18;;;4609:30;-1:-1:-1;;;4670:2:1;4655:18;;4648:41;4721:2;4706:18;;4395:335::o;5091:127::-;5152:10;5147:3;5143:20;5140:1;5133:31;5183:4;5180:1;5173:15;5207:4;5204:1;5197:15;5223:217;5263:1;5289;5279:132;;5333:10;5328:3;5324:20;5321:1;5314:31;5368:4;5365:1;5358:15;5396:4;5393:1;5386:15;5279:132;-1:-1:-1;5425:9:1;;5223:217::o;6082:329::-;6284:2;6266:21;;;6323:1;6303:18;;;6296:29;-1:-1:-1;;;6356:2:1;6341:18;;6334:36;6402:2;6387:18;;6082:329::o;7044:245::-;7111:6;7164:2;7152:9;7143:7;7139:23;7135:32;7132:52;;;7180:1;7177;7170:12;7132:52;7212:9;7206:16;7231:28;7253:5;7231:28;:::i;8342:127::-;8403:10;8398:3;8394:20;8391:1;8384:31;8434:4;8431:1;8424:15;8458:4;8455:1;8448:15;8474:128;8541:9;;;8562:11;;;8559:37;;;8576:18;;:::i;8607:127::-;8668:10;8663:3;8659:20;8656:1;8649:31;8699:4;8696:1;8689:15;8723:4;8720:1;8713:15;8739:135;8778:3;8799:17;;;8796:43;;8819:18;;:::i;:::-;-1:-1:-1;8866:1:1;8855:13;;8739:135::o;10420:125::-;10485:9;;;10506:10;;;10503:36;;;10519:18;;:::i;11038:980::-;11300:4;11348:3;11337:9;11333:19;11379:6;11368:9;11361:25;11405:2;11443:6;11438:2;11427:9;11423:18;11416:34;11486:3;11481:2;11470:9;11466:18;11459:31;11510:6;11545;11539:13;11576:6;11568;11561:22;11614:3;11603:9;11599:19;11592:26;;11653:2;11645:6;11641:15;11627:29;;11674:1;11684:195;11698:6;11695:1;11692:13;11684:195;;;11763:13;;-1:-1:-1;;;;;11759:39:1;11747:52;;11854:15;;;;11819:12;;;;11795:1;11713:9;11684:195;;;-1:-1:-1;;;;;;;11935:32:1;;;;11930:2;11915:18;;11908:60;-1:-1:-1;;;11999:3:1;11984:19;11977:35;11896:3;11038:980;-1:-1:-1;;;11038:980:1:o;12023:168::-;12096:9;;;12127;;12144:15;;;12138:22;;12124:37;12114:71;;12165:18;;:::i
Swarm Source
ipfs://43e8e2b0610ce25a81f7184e82052c2bf2dae8f7ee3a14b76a97076fbce99e26
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.