Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 PEPIN
Holders
30
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
471,280,435.158746453 PEPINValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPIN
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-07 */ /* https://t.me/pepinhoodeth https://twitter.com/pepinhoodeth https://www.pepinhood.com/ For the many, not the few. $PEPIN */ pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract PEPIN is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Pepin Hood"; string private constant _symbol = "PEPIN"; uint8 private constant _decimals = 9; address constant DEAD = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _ignoreFee; mapping(address => bool) private _ignoreRfi; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _taxFeeOnBuy = 15; uint256 private _taxFeeOnSell = 28; uint256 private _dynamicTax = 3; uint256 private _maxSellTax = 15; address[] private _ignored; //Original Fee uint256 private _taxFee = _taxFeeOnSell; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) public _buyMap; address payable private _buyBackAddress = payable(0x69BabEb4850Db0C2114005a55c7408492748CCF9); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool public farmTaxes = true; bool private limitsInEffect = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public totalR; uint256 public totalBurn; uint256 public totalBuyBack; uint256 public _maxTxAmount = 2500000000 * 10**9; uint256 public _maxWalletSize = 2500000000 * 10**9; uint256 public _swapTokensAtAmount = 100000000 * 10**9; uint256 public _minimBuy = 1000000 * 10**9; struct Percentages { uint256 burn; uint256 buyBack; uint256 rfi; } Percentages public valuePercentages = Percentages(33,33,33); struct valuesGet{ uint256 rAmount; uint256 rTransferAmount; uint256 rFee; uint256 rTeam; uint256 tTransferAmount; uint256 tFee; uint256 tTeam; } event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _ignoreFee[owner()] = true; _ignoreFee[address(this)] = true; _ignoreFee[_buyBackAddress] = true; _ignoreFee[DEAD] = true; excludeFromReward(uniswapV2Pair); emit Transfer(address(0), _msgSender(), _tTotal); } 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; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_ignoreRfi[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[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 override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner { require(!_ignoreRfi[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _ignoreRfi[account] = true; _ignored.push(account); } function _reflectRef(uint256 rR, uint256 tR) private { _rTotal -=rR; totalR +=tR; } 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"); bool takeFee = false; if (!_ignoreFee[from] && !_ignoreFee[to]) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } if(limitsInEffect) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } } takeFee = true; //Lower sell tax if it is a min buy if(from == uniswapV2Pair && to != address(uniswapV2Router)) { if(amount > _minimBuy && !farmTaxes) { _taxFeeOnSell = _dynamicTax; } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_ignoreFee[from] && !_ignoreFee[to]) { _swapBack(); } } //Don't take fees on transfer if ((_ignoreFee[from] || _ignoreFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee ) private { bool isBuy = false; if(sender == uniswapV2Pair && recipient != address(uniswapV2Router)) { isBuy = true; } valuesGet memory values = _getValues(tAmount, takeFee, isBuy); // if it's a sell // add 3% to the next sell if(!isBuy && takeFee && !farmTaxes) { _taxFeeOnSell += _dynamicTax; if(_taxFeeOnSell > _maxSellTax) { _taxFeeOnSell = _maxSellTax; } } if (_ignoreRfi[sender] ) { _tOwned[sender] = _tOwned[sender]-tAmount; } if (_ignoreRfi[recipient]) { _tOwned[recipient] = _tOwned[recipient] + values.tTransferAmount; } _rOwned[sender] = _rOwned[sender].sub(values.rAmount); _rOwned[recipient] = _rOwned[recipient].add(values.rTransferAmount); if(values.rTeam > 0 || values.tTeam > 0) { _takeTeam(values.rTeam, values.tTeam); } if(values.rFee > 0 || values.tFee > 0) { _reflectRef(values.rFee, values.tFee); } emit Transfer(sender, recipient, values.tTransferAmount); emit Transfer(sender, address(this), values.tTeam); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _buyBackAddress.transfer(amount); } function stopFarming() public onlyOwner { farmTaxes = false; limitsInEffect = false; _taxFeeOnSell = 3; _taxFeeOnBuy = 0; } function manualswap() external { require(_msgSender() == _buyBackAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _buyBackAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _takeTeam(uint256 rTeam, uint256 tTeam) private { if(_ignoreRfi[address(this)]) { _tOwned[address(this)].add(tTeam); } _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } receive() external payable {} function _getValues(uint256 tAmount, bool takeFee, bool isBuy) private view returns (valuesGet memory values) { values = _getTValues(tAmount, takeFee, isBuy); uint256 currentRate = _getRate(); (values.rAmount, values.rTransferAmount, values.rFee, values.rTeam) = _getRValues(tAmount, currentRate, takeFee, values); return values; } function _getTValues( uint256 tAmount, bool takeFee, bool isBuy ) private view returns (valuesGet memory values) { if(!takeFee) { values.tTransferAmount = tAmount; } else{ uint256 tax = 0; uint256 rTax = 0; uint256 swapTax = 0; if (isBuy) { tax = _taxFeeOnBuy; } else { tax = _taxFeeOnSell; } if(farmTaxes) { rTax = 0; swapTax = tax; } else { rTax = tax.mul(valuePercentages.rfi).div(100); swapTax = tax.mul(100 - valuePercentages.rfi).div(100); if(rTax == 0) { rTax = swapTax.div(2); } } values.tFee = tAmount.mul(rTax).div(100); values.tTeam = tAmount.mul(swapTax).div(100); values.tTransferAmount = tAmount.sub(values.tFee).sub(values.tTeam); } return values; } function _getRValues( uint256 tAmount, uint256 currentRate, bool takeFee, valuesGet memory values ) private pure returns ( uint256, uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); if(!takeFee) { return(rAmount, rAmount, 0,0); } uint256 rFee = values.tFee.mul(currentRate); uint256 rTeam = values.tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee, rTeam); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _ignored.length; i++) { if (_rOwned[_ignored[i]] > rSupply || _tOwned[_ignored[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_ignored[i]]; tSupply = tSupply-_tOwned[_ignored[i]]; } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function _swapBack() private lockTheSwap { uint256 amountToBurn = _swapTokensAtAmount * valuePercentages.burn / 100; uint256 amountToSwap = _swapTokensAtAmount * valuePercentages.buyBack / 100; if(farmTaxes) { amountToSwap = _swapTokensAtAmount; } else { // burn 1% emit Transfer(address(this), DEAD, amountToBurn); totalBurn += amountToBurn; } swapTokensForEth(amountToSwap); uint256 amountETH = address(this).balance; // send (bool tmpSuccess,) = payable(_buyBackAddress).call{value: amountETH}(""); totalBuyBack += amountETH; } function getTotalBurn() public view returns (uint256) { return totalBurn; } function getTotalBuyBack() public view returns (uint256) { return totalBuyBack; } function viewSellTax() public view returns (uint256) { return _taxFeeOnSell; } }
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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"farmTaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBuyBack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopFarming","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyBack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalR","outputs":[{"internalType":"uint256","name":"","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"valuePercentages","outputs":[{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"buyBack","type":"uint256"},{"internalType":"uint256","name":"rfi","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b68056bc75e2d6310000060001962000834565b620000299060001962000861565b600755600f6009819055601c600a8190556003600b55600c829055600e81905590819055601180546001600160a01b0319167369babeb4850db0c2114005a55c7408492748ccf91790556013805464010001010160a01b64ffffffffff60a01b199091161790556722b1c8c1227a0000601781905560185567016345785d8a000060195566038d7ea4c68000601a55604080516060810182526021808252602082018190529101819052601b81905590819055601d55348015620000ec57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000877565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000877565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000877565b601380546001600160a01b0319166001600160a01b03928316178155600080548316815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560115486168452918320805483168217905561dead9092527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549091169091179055546200035491166200039c565b60405168056bc75e2d63100000815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506200093b565b6000546001600160a01b03163314620003fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff1615620004675760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620003f3565b6001600160a01b03811660009081526002602052604090205415620004c4576001600160a01b038116600090815260026020526040902054620004aa906200052a565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b6000600754821115620005935760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620003f3565b60006200059f620005b4565b9050620005ad8382620005da565b9392505050565b60008080620005c26200062d565b9092509050620005d38282620005da565b9250505090565b60006200062483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007e260201b60201c565b90505b92915050565b600754600090819068056bc75e2d63100000825b600d54811015620007a2578260026000600d8481548110620006675762000667620008a2565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620006d657508160036000600d8481548110620006af57620006af620008a2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620006f35750506007549368056bc75e2d631000009350915050565b60026000600d83815481106200070d576200070d620008a2565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200073e908462000861565b925060036000600d83815481106200075a576200075a620008a2565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200078b908362000861565b9150806200079981620008b8565b91505062000641565b50600754620007bb9068056bc75e2d63100000620005da565b821015620007d95750506007549268056bc75e2d6310000092509050565b90939092509050565b60008183620008065760405162461bcd60e51b8152600401620003f39190620008d4565b50600062000815848662000924565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200084657620008466200081e565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200062757620006276200084b565b6000602082840312156200088a57600080fd5b81516001600160a01b0381168114620005ad57600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018201620008cd57620008cd6200084b565b5060010190565b600060208083528351808285015260005b818110156200090357858101830151858201604001528201620008e5565b506000604082860101526040601f19601f8301168501019250505092915050565b6000826200093657620009366200081e565b500490565b6121ae806200094b6000396000f3fe6080604052600436106102135760003560e01c806370a082311161011857806398a5c315116100a0578063daf3ad9e1161006f578063daf3ad9e14610606578063dd62ed3e1461061b578063ea1644d514610661578063f2fde38b14610681578063f871ebfb146106a157600080fd5b806398a5c31514610590578063a9059cbb146105b0578063c3c8cd80146105d0578063d3024def146105e557600080fd5b80637f2feddc116100e75780637f2feddc146104ec5780638cc34d6a146105195780638da5cb5b1461052e5780638f9a55c01461054c57806395d89b411461056257600080fd5b806370a0823114610481578063715018a6146104a157806374010ece146104b65780637d1db4a5146104d657600080fd5b80633c9f861d1161019b57806352f7c9881161016a57806352f7c988146104015780635fd8fd5814610421578063635bd463146104375780636d8aa8f81461044c5780636fc3eaec1461046c57600080fd5b80633c9f861d1461039557806346951239146103ab57806349bd5a5e146103c157806352390c02146103e157600080fd5b806318160ddd116101e257806318160ddd146103065780631bfa4c041461032c57806323b872dd146103435780632fd689e314610363578063313ce5671461037957600080fd5b806306fdde031461021f578063095ea7b3146102645780630ce95f5d146102945780631694505e146102ce57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600a81526914195c1a5b88121bdbd960b21b60208201525b60405161025b9190611e66565b60405180910390f35b34801561027057600080fd5b5061028461027f366004611ec9565b6106b7565b604051901515815260200161025b565b3480156102a057600080fd5b50601b54601c54601d546102b392919083565b6040805193845260208401929092529082015260600161025b565b3480156102da57600080fd5b506012546102ee906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561031257600080fd5b5068056bc75e2d631000005b60405190815260200161025b565b34801561033857600080fd5b506103416106ce565b005b34801561034f57600080fd5b5061028461035e366004611ef5565b61071b565b34801561036f57600080fd5b5061031e60195481565b34801561038557600080fd5b506040516009815260200161025b565b3480156103a157600080fd5b5061031e60155481565b3480156103b757600080fd5b5061031e60165481565b3480156103cd57600080fd5b506013546102ee906001600160a01b031681565b3480156103ed57600080fd5b506103416103fc366004611f36565b610785565b34801561040d57600080fd5b5061034161041c366004611f53565b6108d8565b34801561042d57600080fd5b5061031e601a5481565b34801561044357600080fd5b50600a5461031e565b34801561045857600080fd5b50610341610467366004611f75565b61090d565b34801561047857600080fd5b50610341610955565b34801561048d57600080fd5b5061031e61049c366004611f36565b610982565b3480156104ad57600080fd5b506103416109e1565b3480156104c257600080fd5b506103416104d1366004611f97565b610a55565b3480156104e257600080fd5b5061031e60175481565b3480156104f857600080fd5b5061031e610507366004611f36565b60106020526000908152604090205481565b34801561052557600080fd5b5060165461031e565b34801561053a57600080fd5b506000546001600160a01b03166102ee565b34801561055857600080fd5b5061031e60185481565b34801561056e57600080fd5b506040805180820190915260058152642822a824a760d91b602082015261024e565b34801561059c57600080fd5b506103416105ab366004611f97565b610a84565b3480156105bc57600080fd5b506102846105cb366004611ec9565b610ab3565b3480156105dc57600080fd5b50610341610ac0565b3480156105f157600080fd5b5060135461028490600160a81b900460ff1681565b34801561061257600080fd5b5060155461031e565b34801561062757600080fd5b5061031e610636366004611fb0565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561066d57600080fd5b5061034161067c366004611f97565b610af6565b34801561068d57600080fd5b5061034161069c366004611f36565b610b25565b3480156106ad57600080fd5b5061031e60145481565b60006106c4338484610c0f565b5060015b92915050565b6000546001600160a01b031633146107015760405162461bcd60e51b81526004016106f890611fe9565b60405180910390fd5b6013805461ffff60a81b191690556003600a556000600955565b6000610728848484610d33565b61077a843361077585604051806060016040528060288152602001612151602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111bb565b610c0f565b5060015b9392505050565b6000546001600160a01b031633146107af5760405162461bcd60e51b81526004016106f890611fe9565b6001600160a01b03811660009081526006602052604090205460ff16156108185760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106f8565b6001600160a01b03811660009081526002602052604090205415610872576001600160a01b038116600090815260026020526040902054610858906111f5565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b81526004016106f890611fe9565b600991909155600a55565b6000546001600160a01b031633146109375760405162461bcd60e51b81526004016106f890611fe9565b60138054911515600160c01b0260ff60c01b19909216919091179055565b6011546001600160a01b0316336001600160a01b03161461097557600080fd5b4761097f81611272565b50565b6001600160a01b03811660009081526006602052604081205460ff16156109bf57506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382166000908152600260205260409020546106c8906111f5565b6000546001600160a01b03163314610a0b5760405162461bcd60e51b81526004016106f890611fe9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a7f5760405162461bcd60e51b81526004016106f890611fe9565b601755565b6000546001600160a01b03163314610aae5760405162461bcd60e51b81526004016106f890611fe9565b601955565b60006106c4338484610d33565b6011546001600160a01b0316336001600160a01b031614610ae057600080fd5b6000610aeb30610982565b905061097f816112b0565b6000546001600160a01b03163314610b205760405162461bcd60e51b81526004016106f890611fe9565b601855565b6000546001600160a01b03163314610b4f5760405162461bcd60e51b81526004016106f890611fe9565b6001600160a01b038116610bb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f8565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f8565b6001600160a01b038216610df95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f8565b60008111610e5b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f8565b6001600160a01b03831660009081526005602052604081205460ff16158015610e9d57506001600160a01b03831660009081526005602052604090205460ff16155b1561112f57601354600160a01b900460ff16610f36576000546001600160a01b03858116911614610f365760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106f8565b601354600160b01b900460ff161561101f57601754821115610f9a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106f8565b6013546001600160a01b0384811691161461101f5760185482610fbc85610982565b610fc69190612034565b1061101f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106f8565b506013546001906001600160a01b03858116911614801561104e57506012546001600160a01b03848116911614155b1561107a57601a548211801561106e5750601354600160a81b900460ff16155b1561107a57600b54600a555b600061108530610982565b601954909150811080159081906110a65750601354600160b81b900460ff16155b80156110c057506013546001600160a01b03878116911614155b80156110d55750601354600160c01b900460ff165b80156110fa57506001600160a01b03861660009081526005602052604090205460ff16155b801561111f57506001600160a01b03851660009081526005602052604090205460ff16155b1561112c5761112c61142a565b50505b6001600160a01b03841660009081526005602052604090205460ff168061116e57506001600160a01b03831660009081526005602052604090205460ff165b806111a057506013546001600160a01b038581169116148015906111a057506013546001600160a01b03848116911614155b156111a9575060005b6111b58484848461157c565b50505050565b600081848411156111df5760405162461bcd60e51b81526004016106f89190611e66565b5060006111ec8486612047565b95945050505050565b600060075482111561125c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106f8565b600061126661184e565b905061077e8382611871565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112ac573d6000803e3d6000fd5b5050565b6013805460ff60b81b1916600160b81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f8576112f861205a565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612070565b816001815181106113885761138861205a565b6001600160a01b0392831660209182029290920101526012546113ae9130911684610c0f565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e790859060009086903090429060040161208d565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50506013805460ff60b81b1916905550505050565b6013805460ff60b81b1916600160b81b179055601b5460195460009160649161145391906120fe565b61145d9190612115565b905060006064601b6001015460195461147691906120fe565b6114809190612115565b601354909150600160a81b900460ff161561149e57506019546114ef565b60405182815261dead9030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a381601560008282546114e99190612034565b90915550505b6114f8816112b0565b60115460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114611549576040519150601f19603f3d011682016040523d82523d6000602084013e61154e565b606091505b5050905081601660008282546115649190612034565b90915550506013805460ff60b81b1916905550505050565b6013546000906001600160a01b0386811691161480156115aa57506012546001600160a01b03858116911614155b156115b3575060015b60006115c08484846118b3565b9050811580156115cd5750825b80156115e35750601354600160a81b900460ff16155b1561161457600b54600a60008282546115fc9190612034565b9091555050600c54600a54111561161457600c54600a555b6001600160a01b03861660009081526006602052604090205460ff1615611673576001600160a01b038616600090815260036020526040902054611659908590612047565b6001600160a01b0387166000908152600360205260409020555b6001600160a01b03851660009081526006602052604090205460ff16156116d65760808101516001600160a01b0386166000908152600360205260409020546116bc9190612034565b6001600160a01b0386166000908152600360205260409020555b80516001600160a01b0387166000908152600260205260409020546116fa91611931565b6001600160a01b038088166000908152600260209081526040808320949094558401519188168152919091205461173091611973565b6001600160a01b038616600090815260026020526040902055606081015115158061175f575060008160c00151115b156117765761177681606001518260c001516119d2565b60008160400151118061178d575060008160a00151115b156117a4576117a481604001518260a00151611a34565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516117ed91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161183e91815260200190565b60405180910390a3505050505050565b600080600061185b611a68565b909250905061186a8282611871565b9250505090565b600061077e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c04565b6118f36040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6118fe848484611c32565b9050600061190a61184e565b905061191885828685611d65565b6060860152604085015260208401528252509392505050565b600061077e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bb565b6000806119808385612034565b90508381101561077e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106f8565b3060009081526006602052604090205460ff1615611a065730600090815260036020526040902054611a049082611973565b505b30600090815260026020526040902054611a209083611973565b306000908152600260205260409020555050565b8160076000828254611a469190612047565b925050819055508060146000828254611a5f9190612034565b90915550505050565b600754600090819068056bc75e2d63100000825b600d54811015611bc7578260026000600d8481548110611a9e57611a9e61205a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b0957508160036000600d8481548110611ae257611ae261205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b255750506007549368056bc75e2d631000009350915050565b60026000600d8381548110611b3c57611b3c61205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b6b9084612047565b925060036000600d8381548110611b8457611b8461205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bb39083612047565b915080611bbf81612137565b915050611a7c565b50600754611bde9068056bc75e2d63100000611871565b821015611bfb5750506007549268056bc75e2d6310000092509050565b90939092509050565b60008183611c255760405162461bcd60e51b81526004016106f89190611e66565b5060006111ec8486612115565b611c726040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82611c83576080810184905261077e565b60008060008415611c98576009549250611c9e565b600a5492505b601354600160a81b900460ff1615611cbb57506000905081611d11565b601d54611cd690606490611cd0908690611de4565b90611871565b9150611cf96064611cd0601b600201546064611cf29190612047565b8690611de4565b905081600003611d1157611d0e816002611871565b91505b611d206064611cd08985611de4565b60a0850152611d346064611cd08984611de4565b60c0850181905260a0850151611d569190611d50908a90611931565b90611931565b60808501525050509392505050565b600080808080611d758989611de4565b905086611d8d57935083925060009150819050611dd9565b60a0860151600090611d9f908a611de4565b90506000611dba8a8960c00151611de490919063ffffffff16565b90506000611dcc82611d508686611931565b9397509295509093509150505b945094509450949050565b600082600003611df6575060006106c8565b6000611e0283856120fe565b905082611e0f8583612115565b1461077e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106f8565b600060208083528351808285015260005b81811015611e9357858101830151858201604001528201611e77565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097f57600080fd5b60008060408385031215611edc57600080fd5b8235611ee781611eb4565b946020939093013593505050565b600080600060608486031215611f0a57600080fd5b8335611f1581611eb4565b92506020840135611f2581611eb4565b929592945050506040919091013590565b600060208284031215611f4857600080fd5b813561077e81611eb4565b60008060408385031215611f6657600080fd5b50508035926020909101359150565b600060208284031215611f8757600080fd5b8135801515811461077e57600080fd5b600060208284031215611fa957600080fd5b5035919050565b60008060408385031215611fc357600080fd5b8235611fce81611eb4565b91506020830135611fde81611eb4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c8576106c861201e565b818103818111156106c8576106c861201e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561208257600080fd5b815161077e81611eb4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120dd5784516001600160a01b0316835293830193918301916001016120b8565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106c8576106c861201e565b60008261213257634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016121495761214961201e565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220936e80dd477c4d783e18f4d72c4b606790ff5513358b436b090fe01909ef2e7b64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c806370a082311161011857806398a5c315116100a0578063daf3ad9e1161006f578063daf3ad9e14610606578063dd62ed3e1461061b578063ea1644d514610661578063f2fde38b14610681578063f871ebfb146106a157600080fd5b806398a5c31514610590578063a9059cbb146105b0578063c3c8cd80146105d0578063d3024def146105e557600080fd5b80637f2feddc116100e75780637f2feddc146104ec5780638cc34d6a146105195780638da5cb5b1461052e5780638f9a55c01461054c57806395d89b411461056257600080fd5b806370a0823114610481578063715018a6146104a157806374010ece146104b65780637d1db4a5146104d657600080fd5b80633c9f861d1161019b57806352f7c9881161016a57806352f7c988146104015780635fd8fd5814610421578063635bd463146104375780636d8aa8f81461044c5780636fc3eaec1461046c57600080fd5b80633c9f861d1461039557806346951239146103ab57806349bd5a5e146103c157806352390c02146103e157600080fd5b806318160ddd116101e257806318160ddd146103065780631bfa4c041461032c57806323b872dd146103435780632fd689e314610363578063313ce5671461037957600080fd5b806306fdde031461021f578063095ea7b3146102645780630ce95f5d146102945780631694505e146102ce57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600a81526914195c1a5b88121bdbd960b21b60208201525b60405161025b9190611e66565b60405180910390f35b34801561027057600080fd5b5061028461027f366004611ec9565b6106b7565b604051901515815260200161025b565b3480156102a057600080fd5b50601b54601c54601d546102b392919083565b6040805193845260208401929092529082015260600161025b565b3480156102da57600080fd5b506012546102ee906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561031257600080fd5b5068056bc75e2d631000005b60405190815260200161025b565b34801561033857600080fd5b506103416106ce565b005b34801561034f57600080fd5b5061028461035e366004611ef5565b61071b565b34801561036f57600080fd5b5061031e60195481565b34801561038557600080fd5b506040516009815260200161025b565b3480156103a157600080fd5b5061031e60155481565b3480156103b757600080fd5b5061031e60165481565b3480156103cd57600080fd5b506013546102ee906001600160a01b031681565b3480156103ed57600080fd5b506103416103fc366004611f36565b610785565b34801561040d57600080fd5b5061034161041c366004611f53565b6108d8565b34801561042d57600080fd5b5061031e601a5481565b34801561044357600080fd5b50600a5461031e565b34801561045857600080fd5b50610341610467366004611f75565b61090d565b34801561047857600080fd5b50610341610955565b34801561048d57600080fd5b5061031e61049c366004611f36565b610982565b3480156104ad57600080fd5b506103416109e1565b3480156104c257600080fd5b506103416104d1366004611f97565b610a55565b3480156104e257600080fd5b5061031e60175481565b3480156104f857600080fd5b5061031e610507366004611f36565b60106020526000908152604090205481565b34801561052557600080fd5b5060165461031e565b34801561053a57600080fd5b506000546001600160a01b03166102ee565b34801561055857600080fd5b5061031e60185481565b34801561056e57600080fd5b506040805180820190915260058152642822a824a760d91b602082015261024e565b34801561059c57600080fd5b506103416105ab366004611f97565b610a84565b3480156105bc57600080fd5b506102846105cb366004611ec9565b610ab3565b3480156105dc57600080fd5b50610341610ac0565b3480156105f157600080fd5b5060135461028490600160a81b900460ff1681565b34801561061257600080fd5b5060155461031e565b34801561062757600080fd5b5061031e610636366004611fb0565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561066d57600080fd5b5061034161067c366004611f97565b610af6565b34801561068d57600080fd5b5061034161069c366004611f36565b610b25565b3480156106ad57600080fd5b5061031e60145481565b60006106c4338484610c0f565b5060015b92915050565b6000546001600160a01b031633146107015760405162461bcd60e51b81526004016106f890611fe9565b60405180910390fd5b6013805461ffff60a81b191690556003600a556000600955565b6000610728848484610d33565b61077a843361077585604051806060016040528060288152602001612151602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111bb565b610c0f565b5060015b9392505050565b6000546001600160a01b031633146107af5760405162461bcd60e51b81526004016106f890611fe9565b6001600160a01b03811660009081526006602052604090205460ff16156108185760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106f8565b6001600160a01b03811660009081526002602052604090205415610872576001600160a01b038116600090815260026020526040902054610858906111f5565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b81526004016106f890611fe9565b600991909155600a55565b6000546001600160a01b031633146109375760405162461bcd60e51b81526004016106f890611fe9565b60138054911515600160c01b0260ff60c01b19909216919091179055565b6011546001600160a01b0316336001600160a01b03161461097557600080fd5b4761097f81611272565b50565b6001600160a01b03811660009081526006602052604081205460ff16156109bf57506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382166000908152600260205260409020546106c8906111f5565b6000546001600160a01b03163314610a0b5760405162461bcd60e51b81526004016106f890611fe9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a7f5760405162461bcd60e51b81526004016106f890611fe9565b601755565b6000546001600160a01b03163314610aae5760405162461bcd60e51b81526004016106f890611fe9565b601955565b60006106c4338484610d33565b6011546001600160a01b0316336001600160a01b031614610ae057600080fd5b6000610aeb30610982565b905061097f816112b0565b6000546001600160a01b03163314610b205760405162461bcd60e51b81526004016106f890611fe9565b601855565b6000546001600160a01b03163314610b4f5760405162461bcd60e51b81526004016106f890611fe9565b6001600160a01b038116610bb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f8565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f8565b6001600160a01b038216610df95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f8565b60008111610e5b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f8565b6001600160a01b03831660009081526005602052604081205460ff16158015610e9d57506001600160a01b03831660009081526005602052604090205460ff16155b1561112f57601354600160a01b900460ff16610f36576000546001600160a01b03858116911614610f365760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106f8565b601354600160b01b900460ff161561101f57601754821115610f9a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106f8565b6013546001600160a01b0384811691161461101f5760185482610fbc85610982565b610fc69190612034565b1061101f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106f8565b506013546001906001600160a01b03858116911614801561104e57506012546001600160a01b03848116911614155b1561107a57601a548211801561106e5750601354600160a81b900460ff16155b1561107a57600b54600a555b600061108530610982565b601954909150811080159081906110a65750601354600160b81b900460ff16155b80156110c057506013546001600160a01b03878116911614155b80156110d55750601354600160c01b900460ff165b80156110fa57506001600160a01b03861660009081526005602052604090205460ff16155b801561111f57506001600160a01b03851660009081526005602052604090205460ff16155b1561112c5761112c61142a565b50505b6001600160a01b03841660009081526005602052604090205460ff168061116e57506001600160a01b03831660009081526005602052604090205460ff165b806111a057506013546001600160a01b038581169116148015906111a057506013546001600160a01b03848116911614155b156111a9575060005b6111b58484848461157c565b50505050565b600081848411156111df5760405162461bcd60e51b81526004016106f89190611e66565b5060006111ec8486612047565b95945050505050565b600060075482111561125c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106f8565b600061126661184e565b905061077e8382611871565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112ac573d6000803e3d6000fd5b5050565b6013805460ff60b81b1916600160b81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f8576112f861205a565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612070565b816001815181106113885761138861205a565b6001600160a01b0392831660209182029290920101526012546113ae9130911684610c0f565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e790859060009086903090429060040161208d565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50506013805460ff60b81b1916905550505050565b6013805460ff60b81b1916600160b81b179055601b5460195460009160649161145391906120fe565b61145d9190612115565b905060006064601b6001015460195461147691906120fe565b6114809190612115565b601354909150600160a81b900460ff161561149e57506019546114ef565b60405182815261dead9030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a381601560008282546114e99190612034565b90915550505b6114f8816112b0565b60115460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114611549576040519150601f19603f3d011682016040523d82523d6000602084013e61154e565b606091505b5050905081601660008282546115649190612034565b90915550506013805460ff60b81b1916905550505050565b6013546000906001600160a01b0386811691161480156115aa57506012546001600160a01b03858116911614155b156115b3575060015b60006115c08484846118b3565b9050811580156115cd5750825b80156115e35750601354600160a81b900460ff16155b1561161457600b54600a60008282546115fc9190612034565b9091555050600c54600a54111561161457600c54600a555b6001600160a01b03861660009081526006602052604090205460ff1615611673576001600160a01b038616600090815260036020526040902054611659908590612047565b6001600160a01b0387166000908152600360205260409020555b6001600160a01b03851660009081526006602052604090205460ff16156116d65760808101516001600160a01b0386166000908152600360205260409020546116bc9190612034565b6001600160a01b0386166000908152600360205260409020555b80516001600160a01b0387166000908152600260205260409020546116fa91611931565b6001600160a01b038088166000908152600260209081526040808320949094558401519188168152919091205461173091611973565b6001600160a01b038616600090815260026020526040902055606081015115158061175f575060008160c00151115b156117765761177681606001518260c001516119d2565b60008160400151118061178d575060008160a00151115b156117a4576117a481604001518260a00151611a34565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516117ed91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161183e91815260200190565b60405180910390a3505050505050565b600080600061185b611a68565b909250905061186a8282611871565b9250505090565b600061077e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c04565b6118f36040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6118fe848484611c32565b9050600061190a61184e565b905061191885828685611d65565b6060860152604085015260208401528252509392505050565b600061077e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bb565b6000806119808385612034565b90508381101561077e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106f8565b3060009081526006602052604090205460ff1615611a065730600090815260036020526040902054611a049082611973565b505b30600090815260026020526040902054611a209083611973565b306000908152600260205260409020555050565b8160076000828254611a469190612047565b925050819055508060146000828254611a5f9190612034565b90915550505050565b600754600090819068056bc75e2d63100000825b600d54811015611bc7578260026000600d8481548110611a9e57611a9e61205a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b0957508160036000600d8481548110611ae257611ae261205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b255750506007549368056bc75e2d631000009350915050565b60026000600d8381548110611b3c57611b3c61205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b6b9084612047565b925060036000600d8381548110611b8457611b8461205a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bb39083612047565b915080611bbf81612137565b915050611a7c565b50600754611bde9068056bc75e2d63100000611871565b821015611bfb5750506007549268056bc75e2d6310000092509050565b90939092509050565b60008183611c255760405162461bcd60e51b81526004016106f89190611e66565b5060006111ec8486612115565b611c726040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82611c83576080810184905261077e565b60008060008415611c98576009549250611c9e565b600a5492505b601354600160a81b900460ff1615611cbb57506000905081611d11565b601d54611cd690606490611cd0908690611de4565b90611871565b9150611cf96064611cd0601b600201546064611cf29190612047565b8690611de4565b905081600003611d1157611d0e816002611871565b91505b611d206064611cd08985611de4565b60a0850152611d346064611cd08984611de4565b60c0850181905260a0850151611d569190611d50908a90611931565b90611931565b60808501525050509392505050565b600080808080611d758989611de4565b905086611d8d57935083925060009150819050611dd9565b60a0860151600090611d9f908a611de4565b90506000611dba8a8960c00151611de490919063ffffffff16565b90506000611dcc82611d508686611931565b9397509295509093509150505b945094509450949050565b600082600003611df6575060006106c8565b6000611e0283856120fe565b905082611e0f8583612115565b1461077e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106f8565b600060208083528351808285015260005b81811015611e9357858101830151858201604001528201611e77565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097f57600080fd5b60008060408385031215611edc57600080fd5b8235611ee781611eb4565b946020939093013593505050565b600080600060608486031215611f0a57600080fd5b8335611f1581611eb4565b92506020840135611f2581611eb4565b929592945050506040919091013590565b600060208284031215611f4857600080fd5b813561077e81611eb4565b60008060408385031215611f6657600080fd5b50508035926020909101359150565b600060208284031215611f8757600080fd5b8135801515811461077e57600080fd5b600060208284031215611fa957600080fd5b5035919050565b60008060408385031215611fc357600080fd5b8235611fce81611eb4565b91506020830135611fde81611eb4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c8576106c861201e565b818103818111156106c8576106c861201e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561208257600080fd5b815161077e81611eb4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120dd5784516001600160a01b0316835293830193918301916001016120b8565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106c8576106c861201e565b60008261213257634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016121495761214961201e565b506001019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220936e80dd477c4d783e18f4d72c4b606790ff5513358b436b090fe01909ef2e7b64736f6c63430008130033
Deployed Bytecode Sourcemap
4173:15124:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7172:83;;;;;;;;;;-1:-1:-1;7242:5:0;;;;;;;;;;;;-1:-1:-1;;;7242:5:0;;;;7172:83;;;;;;;:::i;:::-;;;;;;;;8156:193;;;;;;;;;;-1:-1:-1;8156:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8156:193:0;1023:187:1;6107:59:0;;;;;;;;;;-1:-1:-1;6107:59:0;;;;;;;;;;;;;;;;1417:25:1;;;1473:2;1458:18;;1451:34;;;;1501:18;;;1494:34;1405:2;1390:18;6107:59:0;1215:319:1;5416:41:0;;;;;;;;;;-1:-1:-1;5416:41:0;;;;-1:-1:-1;;;;;5416:41:0;;;;;;-1:-1:-1;;;;;1729:32:1;;;1711:51;;1699:2;1684:18;5416:41:0;1539:229:1;7449:95:0;;;;;;;;;;-1:-1:-1;4837:20:0;7449:95;;;1919:25:1;;;1907:2;1892:18;7449:95:0;1773:177:1;13750:164:0;;;;;;;;;;;;;:::i;:::-;;8357:446;;;;;;;;;;-1:-1:-1;8357:446:0;;;;;:::i;:::-;;:::i;5894:54::-;;;;;;;;;;;;;;;;7358:83;;;;;;;;;;-1:-1:-1;7358:83:0;;4394:1;2558:36:1;;2546:2;2531:18;7358:83:0;2416:184:1;5717:24:0;;;;;;;;;;;;;;;;5748:27;;;;;;;;;;;;;;;;5464:28;;;;;;;;;;-1:-1:-1;5464:28:0;;;;-1:-1:-1;;;;;5464:28:0;;;9142:328;;;;;;;;;;-1:-1:-1;9142:328:0;;;;;:::i;:::-;;:::i;17527:160::-;;;;;;;;;;-1:-1:-1;17527:160:0;;;;;:::i;:::-;;:::i;5955:42::-;;;;;;;;;;;;;;;;19202:92;;;;;;;;;;-1:-1:-1;19273:13:0;;19202:92;;17930:101;;;;;;;;;;-1:-1:-1;17930:101:0;;;;;:::i;:::-;;:::i;14125:194::-;;;;;;;;;;;;;:::i;7552:197::-;;;;;;;;;;-1:-1:-1;7552:197:0;;;;;:::i;:::-;;:::i;1660:148::-;;;;;;;;;;;;;:::i;18070:108::-;;;;;;;;;;-1:-1:-1;18070:108:0;;;;;:::i;:::-;;:::i;5782:48::-;;;;;;;;;;;;;;;;5264:43;;;;;;;;;;-1:-1:-1;5264:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;19099:95;;;;;;;;;;-1:-1:-1;19174:12:0;;19099:95;;1446:79;;;;;;;;;;-1:-1:-1;1484:7:0;1511:6;-1:-1:-1;;;;;1511:6:0;1446:79;;5837:50;;;;;;;;;;;;;;;;7263:87;;;;;;;;;;-1:-1:-1;7335:7:0;;;;;;;;;;;;-1:-1:-1;;;7335:7:0;;;;7263:87;;17739:139;;;;;;;;;;-1:-1:-1;17739:139:0;;;;;:::i;:::-;;:::i;7757:199::-;;;;;;;;;;-1:-1:-1;7757:199:0;;;;;:::i;:::-;;:::i;13922:195::-;;;;;;;;;;;;;:::i;5539:28::-;;;;;;;;;;-1:-1:-1;5539:28:0;;;;-1:-1:-1;;;5539:28:0;;;;;;19003:88;;;;;;;;;;-1:-1:-1;19074:9:0;;19003:88;;7964:184;;;;;;;;;;-1:-1:-1;7964:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8113:18:0;;;8081:7;8113:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7964:184;18186:115;;;;;;;;;;-1:-1:-1;18186:115:0;;;;;:::i;:::-;;:::i;1816:244::-;;;;;;;;;;-1:-1:-1;1816:244:0;;;;;:::i;:::-;;:::i;5689:21::-;;;;;;;;;;;;;;;;8156:193;8258:4;8280:39;285:10;8303:7;8312:6;8280:8;:39::i;:::-;-1:-1:-1;8337:4:0;8156:193;;;;;:::o;13750:164::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;;;;;;;;;13801:9:::1;:17:::0;;-1:-1:-1;;;;13829:22:0;;;13878:1:::1;13862:13;:17:::0;13813:5:::1;-1:-1:-1::0;13890:16:0;13750:164::o;8357:446::-;8489:4;8506:36;8516:6;8524:9;8535:6;8506:9;:36::i;:::-;8553:220;8576:6;285:10;8624:138;8680:6;8624:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8624:19:0;;;;;;:11;:19;;;;;;;;285:10;8624:33;;;;;;;;;;:37;:138::i;:::-;8553:8;:220::i;:::-;-1:-1:-1;8791:4:0;8357:446;;;;;;:::o;9142:328::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9223:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;9222:20;9214:60;;;::::0;-1:-1:-1;;;9214:60:0;;4737:2:1;9214:60:0::1;::::0;::::1;4719:21:1::0;4776:2;4756:18;;;4749:30;4815:29;4795:18;;;4788:57;4862:18;;9214:60:0::1;4535:351:1::0;9214:60:0::1;-1:-1:-1::0;;;;;9288:16:0;::::1;9307:1;9288:16:::0;;;:7:::1;:16;::::0;;;;;:20;9285:108:::1;;-1:-1:-1::0;;;;;9364:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9344:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9325:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9285:108:::1;-1:-1:-1::0;;;;;9403:19:0::1;;::::0;;;:10:::1;:19;::::0;;;;:26;;-1:-1:-1;;9403:26:0::1;9425:4;9403:26:::0;;::::1;::::0;;;9440:8:::1;:22:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9440:22:0::1;::::0;;::::1;::::0;;9142:328::o;17527:160::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;17614:12:::1;:26:::0;;;;17651:13:::1;:28:::0;17527:160::o;17930:101::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;17997:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17997:26:0::1;-1:-1:-1::0;;;;17997:26:0;;::::1;::::0;;;::::1;::::0;;17930:101::o;14125:194::-;14191:15;;-1:-1:-1;;;;;14191:15:0;285:10;-1:-1:-1;;;;;14175:31:0;;14167:40;;;;;;14247:21;14279:32;14247:21;14279:12;:32::i;:::-;14156:163;14125:194::o;7552:197::-;-1:-1:-1;;;;;7642:19:0;;7618:7;7642:19;;;:10;:19;;;;;;;;7638:48;;;-1:-1:-1;;;;;;7670:16:0;;;;;:7;:16;;;;;;;7552:197::o;7638:48::-;-1:-1:-1;;;;;7724:16:0;;;;;;:7;:16;;;;;;7704:37;;:19;:37::i;1660:148::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;1767:1:::1;1751:6:::0;;1730:40:::1;::::0;-1:-1:-1;;;;;1751:6:0;;::::1;::::0;1730:40:::1;::::0;1767:1;;1730:40:::1;1798:1;1781:19:::0;;-1:-1:-1;;;;;;1781:19:0::1;::::0;;1660:148::o;18070:108::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;18144:12:::1;:26:::0;18070:108::o;17739:139::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;17830:19:::1;:40:::0;17739:139::o;7757:199::-;7862:4;7884:42;285:10;7908:9;7919:6;7884:9;:42::i;13922:195::-;13988:15;;-1:-1:-1;;;;;13988:15:0;285:10;-1:-1:-1;;;;;13972:31:0;;13964:40;;;;;;14015:23;14041:24;14059:4;14041:9;:24::i;:::-;14015:50;;14076:33;14093:15;14076:16;:33::i;18186:115::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;18263:14:::1;:30:::0;18186:115::o;1816:244::-;1573:6;;-1:-1:-1;;;;;1573:6:0;285:10;1573:22;1565:67;;;;-1:-1:-1;;;1565:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1905:22:0;::::1;1897:73;;;::::0;-1:-1:-1;;;1897:73:0;;5093:2:1;1897:73:0::1;::::0;::::1;5075:21:1::0;5132:2;5112:18;;;5105:30;5171:34;5151:18;;;5144:62;-1:-1:-1;;;5222:18:1;;;5215:36;5268:19;;1897:73:0::1;4891:402:1::0;1897:73:0::1;2007:6;::::0;;1986:38:::1;::::0;-1:-1:-1;;;;;1986:38:0;;::::1;::::0;2007:6;::::1;::::0;1986:38:::1;::::0;::::1;2035:6;:17:::0;;-1:-1:-1;;;;;;2035:17:0::1;-1:-1:-1::0;;;;;2035:17:0;;;::::1;::::0;;;::::1;::::0;;1816:244::o;9592:369::-;-1:-1:-1;;;;;9719:19:0;;9711:68;;;;-1:-1:-1;;;9711:68:0;;5500:2:1;9711:68:0;;;5482:21:1;5539:2;5519:18;;;5512:30;5578:34;5558:18;;;5551:62;-1:-1:-1;;;5629:18:1;;;5622:34;5673:19;;9711:68:0;5298:400:1;9711:68:0;-1:-1:-1;;;;;9798:21:0;;9790:68;;;;-1:-1:-1;;;9790:68:0;;5905:2:1;9790:68:0;;;5887:21:1;5944:2;5924:18;;;5917:30;5983:34;5963:18;;;5956:62;-1:-1:-1;;;6034:18:1;;;6027:32;6076:19;;9790:68:0;5703:398:1;9790:68:0;-1:-1:-1;;;;;9869:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9921:32;;1919:25:1;;;9921:32:0;;1892:18:1;9921:32:0;;;;;;;9592:369;;;:::o;9969:1782::-;-1:-1:-1;;;;;10091:18:0;;10083:68;;;;-1:-1:-1;;;10083:68:0;;6308:2:1;10083:68:0;;;6290:21:1;6347:2;6327:18;;;6320:30;6386:34;6366:18;;;6359:62;-1:-1:-1;;;6437:18:1;;;6430:35;6482:19;;10083:68:0;6106:401:1;10083:68:0;-1:-1:-1;;;;;10170:16:0;;10162:64;;;;-1:-1:-1;;;10162:64:0;;6714:2:1;10162:64:0;;;6696:21:1;6753:2;6733:18;;;6726:30;6792:34;6772:18;;;6765:62;-1:-1:-1;;;6843:18:1;;;6836:33;6886:19;;10162:64:0;6512:399:1;10162:64:0;10254:1;10245:6;:10;10237:64;;;;-1:-1:-1;;;10237:64:0;;7118:2:1;10237:64:0;;;7100:21:1;7157:2;7137:18;;;7130:30;7196:34;7176:18;;;7169:62;-1:-1:-1;;;7247:18:1;;;7240:39;7296:19;;10237:64:0;6916:405:1;10237:64:0;-1:-1:-1;;;;;10352:16:0;;10314:12;10352:16;;;:10;:16;;;;;;;;10351:17;:36;;;;-1:-1:-1;;;;;;10373:14:0;;;;;;:10;:14;;;;;;;;10372:15;10351:36;10347:1158;;;10444:11;;-1:-1:-1;;;10444:11:0;;;;10439:144;;1484:7;1511:6;-1:-1:-1;;;;;10484:15:0;;;1511:6;;10484:15;10476:91;;;;-1:-1:-1;;;10476:91:0;;7528:2:1;10476:91:0;;;7510:21:1;7567:2;7547:18;;;7540:30;7606:34;7586:18;;;7579:62;7677:33;7657:18;;;7650:61;7728:19;;10476:91:0;7326:427:1;10476:91:0;10602:14;;-1:-1:-1;;;10602:14:0;;;;10599:287;;;10655:12;;10645:6;:22;;10637:63;;;;-1:-1:-1;;;10637:63:0;;7960:2:1;10637:63:0;;;7942:21:1;7999:2;7979:18;;;7972:30;8038;8018:18;;;8011:58;8086:18;;10637:63:0;7758:352:1;10637:63:0;10730:13;;-1:-1:-1;;;;;10724:19:0;;;10730:13;;10724:19;10721:150;;10797:14;;10788:6;10772:13;10782:2;10772:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10764:87;;;;-1:-1:-1;;;10764:87:0;;8579:2:1;10764:87:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:33;8751:19;;10764:87:0;8377:399:1;10764:87:0;-1:-1:-1;10993:13:0;;10912:4;;-1:-1:-1;;;;;10985:21:0;;;10993:13;;10985:21;:55;;;;-1:-1:-1;11024:15:0;;-1:-1:-1;;;;;11010:30:0;;;11024:15;;11010:30;;10985:55;10982:201;;;11073:9;;11064:6;:18;:32;;;;-1:-1:-1;11087:9:0;;-1:-1:-1;;;11087:9:0;;;;11086:10;11064:32;11061:107;;;11137:11;;11121:13;:27;11061:107;11199:28;11230:24;11248:4;11230:9;:24::i;:::-;11308:19;;11199:55;;-1:-1:-1;11284:43:0;;;;;;;11348:18;;-1:-1:-1;11360:6:0;;-1:-1:-1;;;11360:6:0;;;;11359:7;11348:18;:43;;;;-1:-1:-1;11378:13:0;;-1:-1:-1;;;;;11370:21:0;;;11378:13;;11370:21;;11348:43;:58;;;;-1:-1:-1;11395:11:0;;-1:-1:-1;;;11395:11:0;;;;11348:58;:79;;;;-1:-1:-1;;;;;;11411:16:0;;;;;;:10;:16;;;;;;;;11410:17;11348:79;:98;;;;-1:-1:-1;;;;;;11432:14:0;;;;;;:10;:14;;;;;;;;11431:15;11348:98;11344:150;;;11467:11;:9;:11::i;:::-;10389:1116;;10347:1158;-1:-1:-1;;;;;11561:16:0;;;;;;:10;:16;;;;;;;;;:34;;-1:-1:-1;;;;;;11581:14:0;;;;;;:10;:14;;;;;;;;11561:34;11560:86;;;-1:-1:-1;11609:13:0;;-1:-1:-1;;;;;11601:21:0;;;11609:13;;11601:21;;;;:44;;-1:-1:-1;11632:13:0;;-1:-1:-1;;;;;11626:19:0;;;11632:13;;11626:19;;11601:44;11556:134;;;-1:-1:-1;11673:5:0;11556:134;11702:41;11717:4;11723:2;11727:6;11735:7;11702:14;:41::i;:::-;10072:1679;9969:1782;;;:::o;2424:224::-;2544:7;2580:12;2572:6;;;;2564:29;;;;-1:-1:-1;;;2564:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2604:9:0;2616:5;2620:1;2616;:5;:::i;:::-;2604:17;2424:224;-1:-1:-1;;;;;2424:224:0:o;8811:323::-;8906:7;8964;;8953;:18;;8931:110;;;;-1:-1:-1;;;8931:110:0;;9116:2:1;8931:110:0;;;9098:21:1;9155:2;9135:18;;;9128:30;9194:34;9174:18;;;9167:62;-1:-1:-1;;;9245:18:1;;;9238:40;9295:19;;8931:110:0;8914:406:1;8931:110:0;9052:19;9074:10;:8;:10::i;:::-;9052:32;-1:-1:-1;9102:24:0;:7;9052:32;9102:11;:24::i;13645:97::-;13702:15;;:32;;-1:-1:-1;;;;;13702:15:0;;;;:32;;;;;13727:6;;13702:15;:32;:15;:32;13727:6;13702:15;:32;;;;;;;;;;;;;;;;;;;;;13645:97;:::o;13154:483::-;6466:6;:13;;-1:-1:-1;;;;6466:13:0;-1:-1:-1;;;6466:13:0;;;13256:16:::1;::::0;;13270:1:::1;13256:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13256:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13256:16:0::1;13232:40;;13301:4;13283;13288:1;13283:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13283:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13327:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13327:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13283:7;;13327:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13317:4;13322:1;13317:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13317:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13392:15:::1;::::0;13360:62:::1;::::0;13377:4:::1;::::0;13392:15:::1;13410:11:::0;13360:8:::1;:62::i;:::-;13433:15;::::0;:196:::1;::::0;-1:-1:-1;;;13433:196:0;;-1:-1:-1;;;;;13433:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13514:11;;13433:15:::1;::::0;13556:4;;13583::::1;::::0;13603:15:::1;::::0;13433:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6502:6:0;:14;;-1:-1:-1;;;;6502:14:0;;;-1:-1:-1;;;;13154:483:0:o;18307:688::-;6466:6;:13;;-1:-1:-1;;;;6466:13:0;-1:-1:-1;;;6466:13:0;;;18406:16:::1;:21:::0;18384:19:::1;::::0;6466:13;;18430:3:::1;::::0;18384:43:::1;::::0;18406:21;18384:43:::1;:::i;:::-;:49;;;;:::i;:::-;18361:72;;18444:20;18516:3;18489:16;:24;;;18467:19;;:46;;;;:::i;:::-;:52;;;;:::i;:::-;18535:9;::::0;18444:75;;-1:-1:-1;;;;18535:9:0;::::1;;;18532:221;;;-1:-1:-1::0;18576:19:0::1;::::0;18532:221:::1;;;18657:43;::::0;1919:25:1;;;4428:42:0::1;::::0;18674:4:::1;::::0;18657:43:::1;::::0;1907:2:1;1892:18;18657:43:0::1;;;;;;;18729:12;18716:9;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18532:221:0::1;18765:30;18782:12;18765:16;:30::i;:::-;18908:15;::::0;18900:51:::1;::::0;18828:21:::1;::::0;18808:17:::1;::::0;-1:-1:-1;;;;;18908:15:0;;::::1;::::0;18828:21;;18808:17;18900:51;18808:17;18900:51;18828:21;18908:15;18900:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18879:72;;;18978:9;18962:12;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6502:6:0;:14;;-1:-1:-1;;;;6502:14:0;;;-1:-1:-1;;;;18307:688:0:o;11763:1383::-;11959:13;;11917:10;;-1:-1:-1;;;;;11949:23:0;;;11959:13;;11949:23;:64;;;;-1:-1:-1;11997:15:0;;-1:-1:-1;;;;;11976:37:0;;;11997:15;;11976:37;;11949:64;11946:108;;;-1:-1:-1;12038:4:0;11946:108;12064:23;12090:35;12101:7;12110;12119:5;12090:10;:35::i;:::-;12064:61;;12205:5;12204:6;:17;;;;;12214:7;12204:17;:31;;;;-1:-1:-1;12226:9:0;;-1:-1:-1;;;12226:9:0;;;;12225:10;12204:31;12201:199;;;12269:11;;12252:13;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;12314:11:0;;12298:13;;:27;12295:94;;;12362:11;;12346:13;:27;12295:94;-1:-1:-1;;;;;12416:18:0;;;;;;:10;:18;;;;;;;;12412:97;;;-1:-1:-1;;;;;12474:15:0;;;;;;:7;:15;;;;;;:23;;12490:7;;12474:23;:::i;:::-;-1:-1:-1;;;;;12456:15:0;;;;;;:7;:15;;;;;:41;12412:97;-1:-1:-1;;;;;12523:21:0;;;;;;:10;:21;;;;;;;;12519:122;;;12607:22;;;;-1:-1:-1;;;;;12586:18:0;;;;;;:7;:18;;;;;;:43;;12607:22;12586:43;:::i;:::-;-1:-1:-1;;;;;12565:18:0;;;;;;:7;:18;;;;;:64;12519:122;12689:14;;-1:-1:-1;;;;;12669:15:0;;12689:14;12669:15;;;:7;:15;;;;;;:35;;:19;:35::i;:::-;-1:-1:-1;;;;;12651:15:0;;;;;;;:7;:15;;;;;;;;:53;;;;12759:22;;;12736:18;;;;;;;;;;:46;;:22;:46::i;:::-;-1:-1:-1;;;;;12715:18:0;;;;;;:7;:18;;;;;:67;12796:12;;;;:16;;;:36;;;12831:1;12816:6;:12;;;:16;12796:36;12793:105;;;12849:37;12859:6;:12;;;12873:6;:12;;;12849:9;:37::i;:::-;12925:1;12911:6;:11;;;:15;:34;;;;12944:1;12930:6;:11;;;:15;12911:34;12908:103;;;12962:37;12974:6;:11;;;12987:6;:11;;;12962;:37::i;:::-;13043:9;-1:-1:-1;;;;;13026:51:0;13035:6;-1:-1:-1;;;;;13026:51:0;;13054:6;:22;;;13026:51;;;;1919:25:1;;1907:2;1892:18;;1773:177;13026:51:0;;;;;;;;13118:4;-1:-1:-1;;;;;13093:45:0;13102:6;-1:-1:-1;;;;;13093:45:0;;13125:6;:12;;;13093:45;;;;1919:25:1;;1907:2;1892:18;;1773:177;13093:45:0;;;;;;;;11904:1242;;11763:1383;;;;:::o;16806:164::-;16848:7;16869:15;16886;16905:19;:17;:19::i;:::-;16868:56;;-1:-1:-1;16868:56:0;-1:-1:-1;16942:20:0;16868:56;;16942:11;:20::i;:::-;16935:27;;;;16806:164;:::o;2910:132::-;2968:7;2995:39;2999:1;3002;2995:39;;;;;;;;;;;;;;;;;:3;:39::i;14606:417::-;14718:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14718:23:0;14768:36;14780:7;14789;14798:5;14768:11;:36::i;:::-;14759:45;;14815:19;14837:10;:8;:10::i;:::-;14815:32;;14941:50;14953:7;14962:11;14975:7;14984:6;14941:11;:50::i;:::-;14912:12;;;14858:133;14899:11;;;14858:133;14875:22;;;14858:133;;;-1:-1:-1;14606:417:0;;;;;:::o;2280:136::-;2338:7;2365:43;2369:1;2372;2365:43;;;;;;;;;;;;;;;;;:3;:43::i;2093:179::-;2151:7;;2183:5;2187:1;2183;:5;:::i;:::-;2171:17;;2212:1;2207;:6;;2199:46;;;;-1:-1:-1;;;2199:46:0;;11637:2:1;2199:46:0;;;11619:21:1;11676:2;11656:18;;;11649:30;11715:29;11695:18;;;11688:57;11762:18;;2199:46:0;11435:351:1;14327:234:0;14417:4;14398:25;;;;:10;:25;;;;;;;;14395:90;;;14456:4;14440:22;;;;:7;:22;;;;;;:33;;14467:5;14440:26;:33::i;:::-;;14395:90;14536:4;14520:22;;;;:7;:22;;;;;;:33;;14547:5;14520:26;:33::i;:::-;14511:4;14495:22;;;;:7;:22;;;;;:58;-1:-1:-1;;14327:234:0:o;9478:106::-;9552:2;9542:7;;:12;;;;;;;:::i;:::-;;;;;;;;9574:2;9565:6;;:11;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;9478:106:0:o;16978:541::-;17076:7;;17029;;;;4837:20;17029:7;17130:274;17154:8;:15;17150:19;;17130:274;;;17218:7;17195;:20;17203:8;17212:1;17203:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17203:11:0;17195:20;;;;;;;;;;;;;:30;;:64;;;17252:7;17229;:20;17237:8;17246:1;17237:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17237:11:0;17229:20;;;;;;;;;;;;;:30;17195:64;17191:95;;;-1:-1:-1;;17269:7:0;;;4837:20;;-1:-1:-1;16978:541:0;-1:-1:-1;;16978:541:0:o;17191:95::-;17319:7;:20;17327:8;17336:1;17327:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17327:11:0;17319:20;;;;;;;;;;;;;17311:28;;:7;:28;:::i;:::-;17301:38;;17372:7;:20;17380:8;17389:1;17380:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17380:11:0;17372:20;;;;;;;;;;;;;17364:28;;:7;:28;:::i;:::-;17354:38;-1:-1:-1;17171:3:0;;;;:::i;:::-;;;;17130:274;;;-1:-1:-1;17428:7:0;;:20;;4837;17428:11;:20::i;:::-;17418:7;:30;17414:61;;;-1:-1:-1;;17458:7:0;;;4837:20;;-1:-1:-1;16978:541:0;-1:-1:-1;16978:541:0:o;17414:61::-;17494:7;;17503;;-1:-1:-1;16978:541:0;-1:-1:-1;16978:541:0:o;3050:223::-;3170:7;3205:12;3198:5;3190:28;;;;-1:-1:-1;;;3190:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3229:9:0;3241:5;3245:1;3241;:5;:::i;15031:1095::-;15178:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15178:23:0;15223:7;15219:876;;15247:22;;;:32;;;15219:876;;;15311:11;15341:12;15372:15;15410:5;15406:124;;;15442:12;;15436:18;;15406:124;;;15501:13;;15495:19;;15406:124;15547:9;;-1:-1:-1;;;15547:9:0;;;;15544:344;;;-1:-1:-1;15584:1:0;;-1:-1:-1;15614:3:0;15544:344;;;15673:20;;15665:38;;15699:3;;15665:29;;:3;;:7;:29::i;:::-;:33;;:38::i;:::-;15658:45;;15732:44;15772:3;15732:35;15746:16;:20;;;15740:3;:26;;;;:::i;:::-;15732:3;;:7;:35::i;:44::-;15722:54;;15798:4;15806:1;15798:9;15795:78;;15839:14;:7;15851:1;15839:11;:14::i;:::-;15832:21;;15795:78;15916:26;15938:3;15916:17;:7;15928:4;15916:11;:17::i;:26::-;15902:11;;;:40;15972:29;15997:3;15972:20;:7;15984;15972:11;:20::i;:29::-;15957:12;;;:44;;;16053:11;;;;16041:42;;15957:44;16041:24;;:7;;:11;:24::i;:::-;:28;;:42::i;:::-;16016:22;;;:67;-1:-1:-1;;;15031:1095:0;;;;;:::o;16134:664::-;16338:7;;;;;16457:24;:7;16469:11;16457;:24::i;:::-;16439:42;;16496:7;16492:67;;16525:7;-1:-1:-1;16525:7:0;;-1:-1:-1;16543:1:0;;-1:-1:-1;16543:1:0;;-1:-1:-1;16518:29:0;;16492:67;16584:11;;;;16569:12;;16584:28;;16600:11;16584:15;:28::i;:::-;16569:43;;16623:13;16639:29;16656:11;16639:6;:12;;;:16;;:29;;;;:::i;:::-;16623:45;-1:-1:-1;16679:23:0;16705:28;16623:45;16705:17;:7;16717:4;16705:11;:17::i;:28::-;16752:7;;-1:-1:-1;16679:54:0;;-1:-1:-1;16778:4:0;;-1:-1:-1;16784:5:0;-1:-1:-1;;16134:664:0;;;;;;;;;;:::o;2656:246::-;2714:7;2738:1;2743;2738:6;2734:47;;-1:-1:-1;2768:1:0;2761:8;;2734:47;2791:9;2803:5;2807:1;2803;:5;:::i;:::-;2791:17;-1:-1:-1;2836:1:0;2827:5;2831:1;2791:17;2827:5;:::i;:::-;:10;2819:56;;;;-1:-1:-1;;;2819:56:0;;12133:2:1;2819:56:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:34;12191:18;;;12184:62;-1:-1:-1;;;12262:18:1;;;12255:31;12303:19;;2819:56:0;11931:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1955:456::-;2032:6;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2282:2:1;2267:18;;2254:32;2295:33;2254:32;2295:33;:::i;:::-;1955:456;;2347:7;;-1:-1:-1;;;2401:2:1;2386:18;;;;2373:32;;1955:456::o;2813:247::-;2872:6;2925:2;2913:9;2904:7;2900:23;2896:32;2893:52;;;2941:1;2938;2931:12;2893:52;2980:9;2967:23;2999:31;3024:5;2999:31;:::i;3065:248::-;3133:6;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;-1:-1:-1;;3233:23:1;;;3303:2;3288:18;;;3275:32;;-1:-1:-1;3065:248:1:o;3318:273::-;3374:6;3427:2;3415:9;3406:7;3402:23;3398:32;3395:52;;;3443:1;3440;3433:12;3395:52;3482:9;3469:23;3535:5;3528:13;3521:21;3514:5;3511:32;3501:60;;3557:1;3554;3547:12;3596:180;3655:6;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;3747:23:1;;3596:180;-1:-1:-1;3596:180:1:o;3781:388::-;3849:6;3857;3910:2;3898:9;3889:7;3885:23;3881:32;3878:52;;;3926:1;3923;3916:12;3878:52;3965:9;3952:23;3984:31;4009:5;3984:31;:::i;:::-;4034:5;-1:-1:-1;4091:2:1;4076:18;;4063:32;4104:33;4063:32;4104:33;:::i;:::-;4156:7;4146:17;;;3781:388;;;;;:::o;4174:356::-;4376:2;4358:21;;;4395:18;;;4388:30;4454:34;4449:2;4434:18;;4427:62;4521:2;4506:18;;4174:356::o;8115:127::-;8176:10;8171:3;8167:20;8164:1;8157:31;8207:4;8204:1;8197:15;8231:4;8228:1;8221:15;8247:125;8312:9;;;8333:10;;;8330:36;;;8346:18;;:::i;8781:128::-;8848:9;;;8869:11;;;8866:37;;;8883:18;;:::i;9457:127::-;9518:10;9513:3;9509:20;9506:1;9499:31;9549:4;9546:1;9539:15;9573:4;9570:1;9563:15;9589:251;9659:6;9712:2;9700:9;9691:7;9687:23;9683:32;9680:52;;;9728:1;9725;9718:12;9680:52;9760:9;9754:16;9779:31;9804:5;9779:31;:::i;9845:980::-;10107:4;10155:3;10144:9;10140:19;10186:6;10175:9;10168:25;10212:2;10250:6;10245:2;10234:9;10230:18;10223:34;10293:3;10288:2;10277:9;10273:18;10266:31;10317:6;10352;10346:13;10383:6;10375;10368:22;10421:3;10410:9;10406:19;10399:26;;10460:2;10452:6;10448:15;10434:29;;10481:1;10491:195;10505:6;10502:1;10499:13;10491:195;;;10570:13;;-1:-1:-1;;;;;10566:39:1;10554:52;;10661:15;;;;10626:12;;;;10602:1;10520:9;10491:195;;;-1:-1:-1;;;;;;;10742:32:1;;;;10737:2;10722:18;;10715:60;-1:-1:-1;;;10806:3:1;10791:19;10784:35;10703:3;9845:980;-1:-1:-1;;;9845:980:1:o;10830:168::-;10903:9;;;10934;;10951:15;;;10945:22;;10931:37;10921:71;;10972:18;;:::i;11003:217::-;11043:1;11069;11059:132;;11113:10;11108:3;11104:20;11101:1;11094:31;11148:4;11145:1;11138:15;11176:4;11173:1;11166:15;11059:132;-1:-1:-1;11205:9:1;;11003:217::o;11791:135::-;11830:3;11851:17;;;11848:43;;11871:18;;:::i;:::-;-1:-1:-1;11918:1:1;11907:13;;11791:135::o
Swarm Source
ipfs://936e80dd477c4d783e18f4d72c4b606790ff5513358b436b090fe01909ef2e7b
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.