ERC-20
Overview
Max Total Supply
420,690,000,000 OCTAVIAN
Holders
262
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
261,709,071.576483145 OCTAVIANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Octavian
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-24 */ /** Welcome to $OCTAVIAN, Elon's dog with his first wife Justine Musk! Telegram: https://t.me/octavianerc Twitter: https://x.com/octavianerc Website: https://octavianerc.com */ //SPDX-License-Identifier: NONE pragma solidity ^0.8.21; 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 Octavian is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Octavian"; string private constant _symbol = "OCTAVIAN"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 420690000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 30; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress; address payable private _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private TradeStatus = true; bool private inSwap = false; bool private swapEnabled = true; uint256 private sellCount = 0; uint256 public maxsellsCount = 3; uint256 private lastSellBlock = 0; uint256 public _maxTxAmount = 8413800000 * 10**9; uint256 public _maxWalletSize = 8413800000 * 10**9; uint256 public _swapTokensAtAmount = 8413800000 * 10**9; uint256 public _initMaxTxAmount = 8413800000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() payable { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _developmentAddress = payable(_msgSender()); _marketingAddress = payable(_msgSender()); 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) { 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 removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); if (from != owner() && to != owner()) { //Trade start check if (!TradeStatus) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } if (from != address(this)) //add liquidity quick fix require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _initMaxTxAmount) { contractTokenBalance = min(amount,min(contractTokenBalance,_initMaxTxAmount)); } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < maxsellsCount, "Block sell limit"); swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } 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 { _marketingAddress.transfer(amount); } function openTrading() public onlyOwner { TradeStatus = true; _addLiquidity(address(this).balance); } function _addLiquidity(uint256 ethAmount) internal { _approve(address(this), address(uniswapV2Router), type(uint256).max); transfer(address(this), balanceOf(msg.sender).mul(96).div(100)); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), balanceOf(address(this)), 0, 0, address(owner()), block.timestamp ); } function manualswapor() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsendor() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blacklistorBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function notBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } 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; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFeess(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function settingAllowedSellBlockAmount(uint256 _maxsells) public onlyOwner { maxsellsCount = _maxsells; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function EnableTrading() public onlyOwner { _maxTxAmount = _initMaxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initMaxTxAmount","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":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklistorBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsendor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxsellsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"notBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFeess","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":[{"internalType":"uint256","name":"_maxsells","type":"uint256"}],"name":"settingAllowedSellBlockAmount","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":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526100186816ce3f1e16bf1500005f1961032a565b610023905f19610349565b6006555f60088190556014600955600a819055601e600b819055600c829055600d819055600e829055600f556015805462ffffff60a01b19166201000160a01b1790556016819055600360175560188190556774c3d285932e80006019819055601a819055601b819055601c556100973390565b5f80546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015610158573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017c919061036e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101eb919061036e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610235573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610259919061036e565b601580546001600160a01b039283166001600160a01b0319918216179091555f805483168152600560209081526040808320805460ff1990811660019081179092553085528285208054821683179055601280548816865283862080548316841790556013805490981686528386208054909216909217905580548516339081179091558554909416841790945592516816ce3f1e16bf1500008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35061039b565b5f8261034457634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561036857634e487b7160e01b5f52601160045260245ffd5b92915050565b5f6020828403121561037e575f80fd5b81516001600160a01b0381168114610394575f80fd5b9392505050565b611fb1806103a85f395ff3fe6080604052600436106101f4575f3560e01c80637f2feddc11610108578063a9059cbb1161009d578063c9567bf91161006d578063c9567bf9146105a6578063cc2d787e146105ba578063dd62ed3e146105cf578063ea1644d514610613578063f2fde38b14610632575f80fd5b8063a9059cbb14610526578063b780025f14610545578063bfd7928414610559578063c492f04614610587575f80fd5b806395d89b41116100d857806395d89b41146104a357806398a5c315146104d35780639f431789146104f2578063a859b5bb14610507575f80fd5b80637f2feddc146104285780638496cb46146104535780638da5cb5b146104725780638f9a55c01461048e575f80fd5b8063313ce567116101895780636d8aa8f8116101595780636d8aa8f8146103a257806370a08231146103c1578063715018a6146103e057806374010ece146103f45780637d1db4a514610413575f80fd5b8063313ce5671461032a57806349bd5a5e146103455780634a9d3ce114610364578063543135e114610383575f80fd5b806318160ddd116101c457806318160ddd146102bd5780631d97b7cd146102e257806323b872dd146102f65780632fd689e314610315575f80fd5b806306fdde03146101ff578063095ea7b31461024157806313b6ca67146102705780631694505e14610286575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5060408051808201909152600881526727b1ba30bb34b0b760c11b60208201525b6040516102389190611aed565b60405180910390f35b34801561024c575f80fd5b5061026061025b366004611b46565b610651565b6040519015158152602001610238565b34801561027b575f80fd5b50610284610667565b005b348015610291575f80fd5b506014546102a5906001600160a01b031681565b6040516001600160a01b039091168152602001610238565b3480156102c8575f80fd5b506816ce3f1e16bf1500005b604051908152602001610238565b3480156102ed575f80fd5b506102846106bc565b348015610301575f80fd5b50610260610310366004611b70565b6106f6565b348015610320575f80fd5b506102d4601b5481565b348015610335575f80fd5b5060405160098152602001610238565b348015610350575f80fd5b506015546102a5906001600160a01b031681565b34801561036f575f80fd5b5061028461037e366004611bae565b61075d565b34801561038e575f80fd5b5061028461039d366004611bdd565b6107a6565b3480156103ad575f80fd5b506102846103bc366004611cb7565b61082e565b3480156103cc575f80fd5b506102d46103db366004611bae565b610875565b3480156103eb575f80fd5b50610284610896565b3480156103ff575f80fd5b5061028461040e366004611cd0565b610907565b34801561041e575f80fd5b506102d460195481565b348015610433575f80fd5b506102d4610442366004611bae565b60116020525f908152604090205481565b34801561045e575f80fd5b5061028461046d366004611cd0565b610935565b34801561047d575f80fd5b505f546001600160a01b03166102a5565b348015610499575f80fd5b506102d4601a5481565b3480156104ae575f80fd5b5060408051808201909152600881526727a1aa20ab24a0a760c11b602082015261022b565b3480156104de575f80fd5b506102846104ed366004611cd0565b610963565b3480156104fd575f80fd5b506102d4601c5481565b348015610512575f80fd5b50610284610521366004611ce7565b610991565b348015610531575f80fd5b50610260610540366004611b46565b6109ce565b348015610550575f80fd5b506102846109da565b348015610564575f80fd5b50610260610573366004611bae565b60106020525f908152604090205460ff1681565b348015610592575f80fd5b506102846105a1366004611d16565b610a21565b3480156105b1575f80fd5b50610284610ab4565b3480156105c5575f80fd5b506102d460175481565b3480156105da575f80fd5b506102d46105e9366004611d95565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561061e575f80fd5b5061028461062d366004611cd0565b610afb565b34801561063d575f80fd5b5061028461064c366004611bae565b610b29565b5f61065d338484610c10565b5060015b92915050565b6012546001600160a01b0316336001600160a01b0316148061069c57506013546001600160a01b0316336001600160a01b0316145b6106a4575f80fd5b5f6106ae30610875565b90506106b981610d33565b50565b5f546001600160a01b031633146106ee5760405162461bcd60e51b81526004016106e590611dcc565b60405180910390fd5b601c54601955565b5f610702848484610ea3565b610753843361074e85604051806060016040528060288152602001611f54602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611462565b610c10565b5060019392505050565b5f546001600160a01b031633146107865760405162461bcd60e51b81526004016106e590611dcc565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107cf5760405162461bcd60e51b81526004016106e590611dcc565b5f5b815181101561082a57600160105f8484815181106107f1576107f1611e01565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107d1565b5050565b5f546001600160a01b031633146108575760405162461bcd60e51b81526004016106e590611dcc565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b0381165f908152600260205260408120546106619061149a565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016106e590611dcc565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109305760405162461bcd60e51b81526004016106e590611dcc565b601955565b5f546001600160a01b0316331461095e5760405162461bcd60e51b81526004016106e590611dcc565b601755565b5f546001600160a01b0316331461098c5760405162461bcd60e51b81526004016106e590611dcc565b601b55565b5f546001600160a01b031633146109ba5760405162461bcd60e51b81526004016106e590611dcc565b600893909355600a91909155600955600b55565b5f61065d338484610ea3565b6012546001600160a01b0316336001600160a01b03161480610a0f57506013546001600160a01b0316336001600160a01b0316145b610a17575f80fd5b476106b98161151c565b5f546001600160a01b03163314610a4a5760405162461bcd60e51b81526004016106e590611dcc565b5f5b82811015610aae578160055f868685818110610a6a57610a6a611e01565b9050602002016020810190610a7f9190611bae565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a4c565b50505050565b5f546001600160a01b03163314610add5760405162461bcd60e51b81526004016106e590611dcc565b6015805460ff60a01b1916600160a01b179055610af947611553565b565b5f546001600160a01b03163314610b245760405162461bcd60e51b81526004016106e590611dcc565b601a55565b5f546001600160a01b03163314610b525760405162461bcd60e51b81526004016106e590611dcc565b6001600160a01b038116610bb75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e5565b6001600160a01b038216610cd35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e5565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d7957610d79611e01565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190611e15565b81600181518110610e0757610e07611e01565b6001600160a01b039283166020918202929092010152601454610e2d9130911684610c10565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e659085905f90869030904290600401611e30565b5f604051808303815f87803b158015610e7c575f80fd5b505af1158015610e8e573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6001600160a01b038316610f075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e5565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e5565b5f8111610fca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e5565b5f546001600160a01b03848116911614801590610ff457505f546001600160a01b03838116911614155b1561135e57601554600160a01b900460ff1661108c575f546001600160a01b0384811691161461108c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106e5565b6001600160a01b03831630146110ee576019548111156110ee5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e5565b6001600160a01b0383165f9081526010602052604090205460ff1615801561112e57506001600160a01b0382165f9081526010602052604090205460ff16155b6111865760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106e5565b6015546001600160a01b0383811691161461120b57601a54816111a884610875565b6111b29190611eb4565b1061120b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e5565b5f61121530610875565b601b54601c549192508210159082106112405761123d8361123884601c5461164a565b61164a565b91505b8080156112575750601554600160a81b900460ff16155b801561127157506015546001600160a01b03868116911614155b80156112865750601554600160b01b900460ff165b80156112aa57506001600160a01b0385165f9081526005602052604090205460ff16155b80156112ce57506001600160a01b0384165f9081526005602052604090205460ff16155b1561135b576018544311156112e2575f6016555b601754601654106113285760405162461bcd60e51b815260206004820152601060248201526f109b1bd8dac81cd95b1b081b1a5b5a5d60821b60448201526064016106e5565b61133182610d33565b478015611341576113414761151c565b60168054905f61135083611ec7565b909155505043601855505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061139e57506001600160a01b0383165f9081526005602052604090205460ff165b806113d057506015546001600160a01b038581169116148015906113d057506015546001600160a01b03848116911614155b156113dc57505f611456565b6015546001600160a01b03858116911614801561140757506014546001600160a01b03848116911614155b1561141957600854600c55600954600d555b6015546001600160a01b03848116911614801561144457506014546001600160a01b03858116911614155b1561145657600a54600c55600b54600d555b610aae8484848461165e565b5f81848411156114855760405162461bcd60e51b81526004016106e59190611aed565b505f6114918486611edf565b95945050505050565b5f6006548211156115005760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e5565b5f61150961168c565b905061151583826116ad565b9392505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561082a573d5f803e3d5ffd5b60145461156c9030906001600160a01b03165f19610c10565b61158f306105406064611589606061158333610875565b906116ee565b906116ad565b506014546001600160a01b031663f305d71982306115ac81610875565b5f806115bf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611625573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aae9190611ef2565b5f8183116116585782611515565b50919050565b8061166b5761166b61176c565b611676848484611799565b80610aae57610aae600e54600c55600f54600d55565b5f805f61169761188a565b90925090506116a682826116ad565b9250505090565b5f61151583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118cb565b5f825f036116fd57505f610661565b5f6117088385611f1d565b9050826117158583611f34565b146115155760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e5565b600c5415801561177c5750600d54155b1561178357565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806117a8876118f7565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506117d9908761194c565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611807908661198d565b6001600160a01b0389165f90815260026020526040902055611828816119eb565b6118328483611a31565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161187791815260200190565b60405180910390a3505050505050505050565b6006545f9081906816ce3f1e16bf1500006118a582826116ad565b8210156118c2575050600654926816ce3f1e16bf15000092509050565b90939092509050565b5f81836118eb5760405162461bcd60e51b81526004016106e59190611aed565b505f6114918486611f34565b5f805f805f805f805f61190f8a600c54600d54611a55565b9250925092505f61191e61168c565b90505f805f61192f8e878787611aa1565b919e509c509a509598509396509194505050505091939550919395565b5f61151583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611462565b5f806119998385611eb4565b9050838110156115155760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e5565b5f6119f461168c565b90505f611a0183836116ee565b305f90815260026020526040902054909150611a1d908261198d565b305f90815260026020526040902055505050565b600654611a3e908361194c565b600655600754611a4e908261198d565b6007555050565b5f808080611a68606461158989896116ee565b90505f611a7a60646115898a896116ee565b90505f611a9182611a8b8b8661194c565b9061194c565b9992985090965090945050505050565b5f808080611aaf88866116ee565b90505f611abc88876116ee565b90505f611ac988886116ee565b90505f611ada82611a8b868661194c565b939b939a50919850919650505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146106b9575f80fd5b8035611b4181611b22565b919050565b5f8060408385031215611b57575f80fd5b8235611b6281611b22565b946020939093013593505050565b5f805f60608486031215611b82575f80fd5b8335611b8d81611b22565b92506020840135611b9d81611b22565b929592945050506040919091013590565b5f60208284031215611bbe575f80fd5b813561151581611b22565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611bed575f80fd5b813567ffffffffffffffff811115611c03575f80fd5b8201601f81018413611c13575f80fd5b803567ffffffffffffffff811115611c2d57611c2d611bc9565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611c5a57611c5a611bc9565b604052918252602081840181019290810187841115611c77575f80fd5b6020850194505b83851015611c9d57611c8f85611b36565b815260209485019401611c7e565b509695505050505050565b80358015158114611b41575f80fd5b5f60208284031215611cc7575f80fd5b61151582611ca8565b5f60208284031215611ce0575f80fd5b5035919050565b5f805f8060808587031215611cfa575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d28575f80fd5b833567ffffffffffffffff811115611d3e575f80fd5b8401601f81018613611d4e575f80fd5b803567ffffffffffffffff811115611d64575f80fd5b8660208260051b8401011115611d78575f80fd5b602091820194509250611d8c908501611ca8565b90509250925092565b5f8060408385031215611da6575f80fd5b8235611db181611b22565b91506020830135611dc181611b22565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611e25575f80fd5b815161151581611b22565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611e805783516001600160a01b0316835260209384019390920191600101611e59565b50506001600160a01b039590951660608401525050608001529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561066157610661611ea0565b5f60018201611ed857611ed8611ea0565b5060010190565b8181038181111561066157610661611ea0565b5f805f60608486031215611f04575f80fd5b5050815160208301516040909301519094929350919050565b808202811582820484141761066157610661611ea0565b5f82611f4e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bf7b0fcf7b479a209d54831f5485413a5b439f5d6ad17336a98aad33ae2bd41564736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101f4575f3560e01c80637f2feddc11610108578063a9059cbb1161009d578063c9567bf91161006d578063c9567bf9146105a6578063cc2d787e146105ba578063dd62ed3e146105cf578063ea1644d514610613578063f2fde38b14610632575f80fd5b8063a9059cbb14610526578063b780025f14610545578063bfd7928414610559578063c492f04614610587575f80fd5b806395d89b41116100d857806395d89b41146104a357806398a5c315146104d35780639f431789146104f2578063a859b5bb14610507575f80fd5b80637f2feddc146104285780638496cb46146104535780638da5cb5b146104725780638f9a55c01461048e575f80fd5b8063313ce567116101895780636d8aa8f8116101595780636d8aa8f8146103a257806370a08231146103c1578063715018a6146103e057806374010ece146103f45780637d1db4a514610413575f80fd5b8063313ce5671461032a57806349bd5a5e146103455780634a9d3ce114610364578063543135e114610383575f80fd5b806318160ddd116101c457806318160ddd146102bd5780631d97b7cd146102e257806323b872dd146102f65780632fd689e314610315575f80fd5b806306fdde03146101ff578063095ea7b31461024157806313b6ca67146102705780631694505e14610286575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5060408051808201909152600881526727b1ba30bb34b0b760c11b60208201525b6040516102389190611aed565b60405180910390f35b34801561024c575f80fd5b5061026061025b366004611b46565b610651565b6040519015158152602001610238565b34801561027b575f80fd5b50610284610667565b005b348015610291575f80fd5b506014546102a5906001600160a01b031681565b6040516001600160a01b039091168152602001610238565b3480156102c8575f80fd5b506816ce3f1e16bf1500005b604051908152602001610238565b3480156102ed575f80fd5b506102846106bc565b348015610301575f80fd5b50610260610310366004611b70565b6106f6565b348015610320575f80fd5b506102d4601b5481565b348015610335575f80fd5b5060405160098152602001610238565b348015610350575f80fd5b506015546102a5906001600160a01b031681565b34801561036f575f80fd5b5061028461037e366004611bae565b61075d565b34801561038e575f80fd5b5061028461039d366004611bdd565b6107a6565b3480156103ad575f80fd5b506102846103bc366004611cb7565b61082e565b3480156103cc575f80fd5b506102d46103db366004611bae565b610875565b3480156103eb575f80fd5b50610284610896565b3480156103ff575f80fd5b5061028461040e366004611cd0565b610907565b34801561041e575f80fd5b506102d460195481565b348015610433575f80fd5b506102d4610442366004611bae565b60116020525f908152604090205481565b34801561045e575f80fd5b5061028461046d366004611cd0565b610935565b34801561047d575f80fd5b505f546001600160a01b03166102a5565b348015610499575f80fd5b506102d4601a5481565b3480156104ae575f80fd5b5060408051808201909152600881526727a1aa20ab24a0a760c11b602082015261022b565b3480156104de575f80fd5b506102846104ed366004611cd0565b610963565b3480156104fd575f80fd5b506102d4601c5481565b348015610512575f80fd5b50610284610521366004611ce7565b610991565b348015610531575f80fd5b50610260610540366004611b46565b6109ce565b348015610550575f80fd5b506102846109da565b348015610564575f80fd5b50610260610573366004611bae565b60106020525f908152604090205460ff1681565b348015610592575f80fd5b506102846105a1366004611d16565b610a21565b3480156105b1575f80fd5b50610284610ab4565b3480156105c5575f80fd5b506102d460175481565b3480156105da575f80fd5b506102d46105e9366004611d95565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561061e575f80fd5b5061028461062d366004611cd0565b610afb565b34801561063d575f80fd5b5061028461064c366004611bae565b610b29565b5f61065d338484610c10565b5060015b92915050565b6012546001600160a01b0316336001600160a01b0316148061069c57506013546001600160a01b0316336001600160a01b0316145b6106a4575f80fd5b5f6106ae30610875565b90506106b981610d33565b50565b5f546001600160a01b031633146106ee5760405162461bcd60e51b81526004016106e590611dcc565b60405180910390fd5b601c54601955565b5f610702848484610ea3565b610753843361074e85604051806060016040528060288152602001611f54602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611462565b610c10565b5060019392505050565b5f546001600160a01b031633146107865760405162461bcd60e51b81526004016106e590611dcc565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107cf5760405162461bcd60e51b81526004016106e590611dcc565b5f5b815181101561082a57600160105f8484815181106107f1576107f1611e01565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107d1565b5050565b5f546001600160a01b031633146108575760405162461bcd60e51b81526004016106e590611dcc565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b0381165f908152600260205260408120546106619061149a565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016106e590611dcc565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109305760405162461bcd60e51b81526004016106e590611dcc565b601955565b5f546001600160a01b0316331461095e5760405162461bcd60e51b81526004016106e590611dcc565b601755565b5f546001600160a01b0316331461098c5760405162461bcd60e51b81526004016106e590611dcc565b601b55565b5f546001600160a01b031633146109ba5760405162461bcd60e51b81526004016106e590611dcc565b600893909355600a91909155600955600b55565b5f61065d338484610ea3565b6012546001600160a01b0316336001600160a01b03161480610a0f57506013546001600160a01b0316336001600160a01b0316145b610a17575f80fd5b476106b98161151c565b5f546001600160a01b03163314610a4a5760405162461bcd60e51b81526004016106e590611dcc565b5f5b82811015610aae578160055f868685818110610a6a57610a6a611e01565b9050602002016020810190610a7f9190611bae565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a4c565b50505050565b5f546001600160a01b03163314610add5760405162461bcd60e51b81526004016106e590611dcc565b6015805460ff60a01b1916600160a01b179055610af947611553565b565b5f546001600160a01b03163314610b245760405162461bcd60e51b81526004016106e590611dcc565b601a55565b5f546001600160a01b03163314610b525760405162461bcd60e51b81526004016106e590611dcc565b6001600160a01b038116610bb75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e5565b6001600160a01b038216610cd35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e5565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d7957610d79611e01565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190611e15565b81600181518110610e0757610e07611e01565b6001600160a01b039283166020918202929092010152601454610e2d9130911684610c10565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e659085905f90869030904290600401611e30565b5f604051808303815f87803b158015610e7c575f80fd5b505af1158015610e8e573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6001600160a01b038316610f075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e5565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e5565b5f8111610fca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e5565b5f546001600160a01b03848116911614801590610ff457505f546001600160a01b03838116911614155b1561135e57601554600160a01b900460ff1661108c575f546001600160a01b0384811691161461108c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106e5565b6001600160a01b03831630146110ee576019548111156110ee5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e5565b6001600160a01b0383165f9081526010602052604090205460ff1615801561112e57506001600160a01b0382165f9081526010602052604090205460ff16155b6111865760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106e5565b6015546001600160a01b0383811691161461120b57601a54816111a884610875565b6111b29190611eb4565b1061120b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e5565b5f61121530610875565b601b54601c549192508210159082106112405761123d8361123884601c5461164a565b61164a565b91505b8080156112575750601554600160a81b900460ff16155b801561127157506015546001600160a01b03868116911614155b80156112865750601554600160b01b900460ff165b80156112aa57506001600160a01b0385165f9081526005602052604090205460ff16155b80156112ce57506001600160a01b0384165f9081526005602052604090205460ff16155b1561135b576018544311156112e2575f6016555b601754601654106113285760405162461bcd60e51b815260206004820152601060248201526f109b1bd8dac81cd95b1b081b1a5b5a5d60821b60448201526064016106e5565b61133182610d33565b478015611341576113414761151c565b60168054905f61135083611ec7565b909155505043601855505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061139e57506001600160a01b0383165f9081526005602052604090205460ff165b806113d057506015546001600160a01b038581169116148015906113d057506015546001600160a01b03848116911614155b156113dc57505f611456565b6015546001600160a01b03858116911614801561140757506014546001600160a01b03848116911614155b1561141957600854600c55600954600d555b6015546001600160a01b03848116911614801561144457506014546001600160a01b03858116911614155b1561145657600a54600c55600b54600d555b610aae8484848461165e565b5f81848411156114855760405162461bcd60e51b81526004016106e59190611aed565b505f6114918486611edf565b95945050505050565b5f6006548211156115005760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e5565b5f61150961168c565b905061151583826116ad565b9392505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561082a573d5f803e3d5ffd5b60145461156c9030906001600160a01b03165f19610c10565b61158f306105406064611589606061158333610875565b906116ee565b906116ad565b506014546001600160a01b031663f305d71982306115ac81610875565b5f806115bf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611625573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aae9190611ef2565b5f8183116116585782611515565b50919050565b8061166b5761166b61176c565b611676848484611799565b80610aae57610aae600e54600c55600f54600d55565b5f805f61169761188a565b90925090506116a682826116ad565b9250505090565b5f61151583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118cb565b5f825f036116fd57505f610661565b5f6117088385611f1d565b9050826117158583611f34565b146115155760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e5565b600c5415801561177c5750600d54155b1561178357565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806117a8876118f7565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506117d9908761194c565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611807908661198d565b6001600160a01b0389165f90815260026020526040902055611828816119eb565b6118328483611a31565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161187791815260200190565b60405180910390a3505050505050505050565b6006545f9081906816ce3f1e16bf1500006118a582826116ad565b8210156118c2575050600654926816ce3f1e16bf15000092509050565b90939092509050565b5f81836118eb5760405162461bcd60e51b81526004016106e59190611aed565b505f6114918486611f34565b5f805f805f805f805f61190f8a600c54600d54611a55565b9250925092505f61191e61168c565b90505f805f61192f8e878787611aa1565b919e509c509a509598509396509194505050505091939550919395565b5f61151583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611462565b5f806119998385611eb4565b9050838110156115155760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e5565b5f6119f461168c565b90505f611a0183836116ee565b305f90815260026020526040902054909150611a1d908261198d565b305f90815260026020526040902055505050565b600654611a3e908361194c565b600655600754611a4e908261198d565b6007555050565b5f808080611a68606461158989896116ee565b90505f611a7a60646115898a896116ee565b90505f611a9182611a8b8b8661194c565b9061194c565b9992985090965090945050505050565b5f808080611aaf88866116ee565b90505f611abc88876116ee565b90505f611ac988886116ee565b90505f611ada82611a8b868661194c565b939b939a50919850919650505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146106b9575f80fd5b8035611b4181611b22565b919050565b5f8060408385031215611b57575f80fd5b8235611b6281611b22565b946020939093013593505050565b5f805f60608486031215611b82575f80fd5b8335611b8d81611b22565b92506020840135611b9d81611b22565b929592945050506040919091013590565b5f60208284031215611bbe575f80fd5b813561151581611b22565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611bed575f80fd5b813567ffffffffffffffff811115611c03575f80fd5b8201601f81018413611c13575f80fd5b803567ffffffffffffffff811115611c2d57611c2d611bc9565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611c5a57611c5a611bc9565b604052918252602081840181019290810187841115611c77575f80fd5b6020850194505b83851015611c9d57611c8f85611b36565b815260209485019401611c7e565b509695505050505050565b80358015158114611b41575f80fd5b5f60208284031215611cc7575f80fd5b61151582611ca8565b5f60208284031215611ce0575f80fd5b5035919050565b5f805f8060808587031215611cfa575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d28575f80fd5b833567ffffffffffffffff811115611d3e575f80fd5b8401601f81018613611d4e575f80fd5b803567ffffffffffffffff811115611d64575f80fd5b8660208260051b8401011115611d78575f80fd5b602091820194509250611d8c908501611ca8565b90509250925092565b5f8060408385031215611da6575f80fd5b8235611db181611b22565b91506020830135611dc181611b22565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611e25575f80fd5b815161151581611b22565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611e805783516001600160a01b0316835260209384019390920191600101611e59565b50506001600160a01b039590951660608401525050608001529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561066157610661611ea0565b5f60018201611ed857611ed8611ea0565b5060010190565b8181038181111561066157610661611ea0565b5f805f60608486031215611f04575f80fd5b5050815160208301516040909301519094929350919050565b808202811582820484141761066157610661611ea0565b5f82611f4e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bf7b0fcf7b479a209d54831f5485413a5b439f5d6ad17336a98aad33ae2bd41564736f6c634300081a0033
Deployed Bytecode Sourcemap
4251:14758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6928:83;;;;;;;;;;-1:-1:-1;6998:5:0;;;;;;;;;;;;-1:-1:-1;;;6998:5:0;;;;6928:83;;;;;;;:::i;:::-;;;;;;;;7853:193;;;;;;;;;;-1:-1:-1;7853:193:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;7853:193:0;1084:187:1;13579:238:0;;;;;;;;;;;;;:::i;:::-;;5472:41;;;;;;;;;;-1:-1:-1;5472:41:0;;;;-1:-1:-1;;;;;5472:41:0;;;;;;-1:-1:-1;;;;;1466:32:1;;;1448:51;;1436:2;1421:18;5472:41:0;1276:229:1;7205:95:0;;;;;;;;;;-1:-1:-1;4802:20:0;7205:95;;;1656:25:1;;;1644:2;1629:18;7205:95:0;1510:177:1;18547:92:0;;;;;;;;;;;;;:::i;8054:446::-;;;;;;;;;;-1:-1:-1;8054:446:0;;;;;:::i;:::-;;:::i;5896:55::-;;;;;;;;;;;;;;;;7114:83;;;;;;;;;;-1:-1:-1;7114:83:0;;4476:1;2347:36:1;;2335:2;2320:18;7114:83:0;2205:184:1;5520:28:0;;;;;;;;;;-1:-1:-1;5520:28:0;;;;-1:-1:-1;;;;;5520:28:0;;;14253:88;;;;;;;;;;-1:-1:-1;14253:88:0;;;;;:::i;:::-;;:::i;14070:175::-;;;;;;;;;;-1:-1:-1;14070:175:0;;;;;:::i;:::-;;:::i;18195:101::-;;;;;;;;;;-1:-1:-1;18195:101:0;;;;;:::i;:::-;;:::i;7308:138::-;;;;;;;;;;-1:-1:-1;7308:138:0;;;;;:::i;:::-;;:::i;1738:148::-;;;;;;;;;;;;;:::i;18431:108::-;;;;;;;;;;-1:-1:-1;18431:108:0;;;;;:::i;:::-;;:::i;5784:48::-;;;;;;;;;;;;;;;;5322:43;;;;;;;;;;-1:-1:-1;5322:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;18304:119;;;;;;;;;;-1:-1:-1;18304:119:0;;;;;:::i;:::-;;:::i;1524:79::-;;;;;;;;;;-1:-1:-1;1562:7:0;1589:6;-1:-1:-1;;;;;1589:6:0;1524:79;;5839:50;;;;;;;;;;;;;;;;7019:87;;;;;;;;;;-1:-1:-1;7091:7:0;;;;;;;;;;;;-1:-1:-1;;;7091:7:0;;;;7019:87;;18048:139;;;;;;;;;;-1:-1:-1;18048:139:0;;;;;:::i;:::-;;:::i;5958:52::-;;;;;;;;;;;;;;;;17747:293;;;;;;;;;;-1:-1:-1;17747:293:0;;;;;:::i;:::-;;:::i;7454:199::-;;;;;;;;;;-1:-1:-1;7454:199:0;;;;;:::i;:::-;;:::i;13825:237::-;;;;;;;;;;;;;:::i;5284:36::-;;;;;;;;;;-1:-1:-1;5284:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18770:234;;;;;;;;;;-1:-1:-1;18770:234:0;;;;;:::i;:::-;;:::i;12993:124::-;;;;;;;;;;;;;:::i;5703:32::-;;;;;;;;;;;;;;;;7661:184;;;;;;;;;;-1:-1:-1;7661:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7810:18:0;;;7778:7;7810:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7661:184;18647:115;;;;;;;;;;-1:-1:-1;18647:115:0;;;;;:::i;:::-;;:::i;1894:244::-;;;;;;;;;;-1:-1:-1;1894:244:0;;;;;:::i;:::-;;:::i;7853:193::-;7955:4;7977:39;363:10;8000:7;8009:6;7977:8;:39::i;:::-;-1:-1:-1;8034:4:0;7853:193;;;;;:::o;13579:238::-;13647:19;;-1:-1:-1;;;;;13647:19:0;363:10;-1:-1:-1;;;;;13631:35:0;;:72;;;-1:-1:-1;13686:17:0;;-1:-1:-1;;;;;13686:17:0;363:10;-1:-1:-1;;;;;13670:33:0;;13631:72;13623:81;;;;;;13715:23;13741:24;13759:4;13741:9;:24::i;:::-;13715:50;;13776:33;13793:15;13776:16;:33::i;:::-;13612:205;13579:238::o;18547:92::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;;;;;;;;;18615:16:::1;::::0;18600:12:::1;:31:::0;18547:92::o;8054:446::-;8186:4;8203:36;8213:6;8221:9;8232:6;8203:9;:36::i;:::-;8250:220;8273:6;363:10;8321:138;8377:6;8321:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8321:19:0;;;;;;:11;:19;;;;;;;;363:10;8321:33;;;;;;;;;;:37;:138::i;:::-;8250:8;:220::i;:::-;-1:-1:-1;8488:4:0;8054:446;;;;;:::o;14253:88::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14313:12:0::1;14328:5;14313:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14313:20:0::1;::::0;;14253:88::o;14070:175::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;14152:9:::1;14147:91;14171:5;:12;14167:1;:16;14147:91;;;14222:4;14205;:14;14210:5;14216:1;14210:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14205:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14205:14:0;:21;;-1:-1:-1;;14205:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;14185:3:0::1;14147:91;;;;14070:175:::0;:::o;18195:101::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18262:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18262:26:0::1;-1:-1:-1::0;;;;18262:26:0;;::::1;::::0;;;::::1;::::0;;18195:101::o;7308:138::-;-1:-1:-1;;;;;7421:16:0;;7374:7;7421:16;;;:7;:16;;;;;;7401:37;;:19;:37::i;1738:148::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;1845:1:::1;1829:6:::0;;1808:40:::1;::::0;-1:-1:-1;;;;;1829:6:0;;::::1;::::0;1808:40:::1;::::0;1845:1;;1808:40:::1;1876:1;1859:19:::0;;-1:-1:-1;;;;;;1859:19:0::1;::::0;;1738:148::o;18431:108::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18505:12:::1;:26:::0;18431:108::o;18304:119::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18390:13:::1;:25:::0;18304:119::o;18048:139::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18139:19:::1;:40:::0;18048:139::o;17747:293::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;17883:14:::1;:30:::0;;;;17924:15:::1;:32:::0;;;;17967:12:::1;:26:::0;18004:13:::1;:28:::0;17747:293::o;7454:199::-;7559:4;7581:42;363:10;7605:9;7616:6;7581:9;:42::i;13825:237::-;13893:19;;-1:-1:-1;;;;;13893:19:0;363:10;-1:-1:-1;;;;;13877:35:0;;:72;;;-1:-1:-1;13932:17:0;;-1:-1:-1;;;;;13932:17:0;363:10;-1:-1:-1;;;;;13916:33:0;;13877:72;13869:81;;;;;;13990:21;14022:32;13990:21;14022:12;:32::i;18770:234::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18887:9:::1;18883:114;18902:19:::0;;::::1;18883:114;;;18977:8;18943:18;:31;18962:8;;18971:1;18962:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18943:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18943:31:0;:42;;-1:-1:-1;;18943:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18923:3:0::1;18883:114;;;;18770:234:::0;;;:::o;12993:124::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;13044:11:::1;:18:::0;;-1:-1:-1;;;;13044:18:0::1;-1:-1:-1::0;;;13044:18:0::1;::::0;;13073:36:::1;13087:21;13073:13;:36::i;:::-;12993:124::o:0;18647:115::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;18724:14:::1;:30:::0;18647:115::o;1894:244::-;1651:6;;-1:-1:-1;;;;;1651:6:0;363:10;1651:22;1643:67;;;;-1:-1:-1;;;1643:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1983:22:0;::::1;1975:73;;;::::0;-1:-1:-1;;;1975:73:0;;7068:2:1;1975:73:0::1;::::0;::::1;7050:21:1::0;7107:2;7087:18;;;7080:30;7146:34;7126:18;;;7119:62;-1:-1:-1;;;7197:18:1;;;7190:36;7243:19;;1975:73:0::1;6866:402:1::0;1975:73:0::1;2085:6;::::0;;2064:38:::1;::::0;-1:-1:-1;;;;;2064:38:0;;::::1;::::0;2085:6;::::1;::::0;2064:38:::1;::::0;::::1;2113:6;:17:::0;;-1:-1:-1;;;;;;2113:17:0::1;-1:-1:-1::0;;;;;2113:17:0;;;::::1;::::0;;;::::1;::::0;;1894:244::o;9191:369::-;-1:-1:-1;;;;;9318:19:0;;9310:68;;;;-1:-1:-1;;;9310:68:0;;7475:2:1;9310:68:0;;;7457:21:1;7514:2;7494:18;;;7487:30;7553:34;7533:18;;;7526:62;-1:-1:-1;;;7604:18:1;;;7597:34;7648:19;;9310:68:0;7273:400:1;9310:68:0;-1:-1:-1;;;;;9397:21:0;;9389:68;;;;-1:-1:-1;;;9389:68:0;;7880:2:1;9389:68:0;;;7862:21:1;7919:2;7899:18;;;7892:30;7958:34;7938:18;;;7931:62;-1:-1:-1;;;8009:18:1;;;8002:32;8051:19;;9389:68:0;7678:398:1;9389:68:0;-1:-1:-1;;;;;9468:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9520:32;;1656:25:1;;;9520:32:0;;1629:18:1;9520:32:0;;;;;;;9191:369;;;:::o;12395:483::-;6104:6;:13;;-1:-1:-1;;;;6104:13:0;-1:-1:-1;;;6104:13:0;;;12497:16:::1;::::0;;12511:1:::1;12497:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12497:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12497:16:0::1;12473:40;;12542:4;12524;12529:1;12524:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12524:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12568:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12568:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12524:7;;12568:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12558:4;12563:1;12558:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12558:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12633:15:::1;::::0;12601:62:::1;::::0;12618:4:::1;::::0;12633:15:::1;12651:11:::0;12601:8:::1;:62::i;:::-;12674:15;::::0;:196:::1;::::0;-1:-1:-1;;;12674:196:0;;-1:-1:-1;;;;;12674:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12755:11;;12674:15:::1;::::0;12797:4;;12824::::1;::::0;12844:15:::1;::::0;12674:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6140:6:0;:14;;-1:-1:-1;;;;6140:14:0;;;-1:-1:-1;;;;12395:483:0:o;9568:2713::-;-1:-1:-1;;;;;9690:18:0;;9682:68;;;;-1:-1:-1;;;9682:68:0;;9503:2:1;9682:68:0;;;9485:21:1;9542:2;9522:18;;;9515:30;9581:34;9561:18;;;9554:62;-1:-1:-1;;;9632:18:1;;;9625:35;9677:19;;9682:68:0;9301:401:1;9682:68:0;-1:-1:-1;;;;;9769:16:0;;9761:64;;;;-1:-1:-1;;;9761:64:0;;9909:2:1;9761:64:0;;;9891:21:1;9948:2;9928:18;;;9921:30;9987:34;9967:18;;;9960:62;-1:-1:-1;;;10038:18:1;;;10031:33;10081:19;;9761:64:0;9707:399:1;9761:64:0;9853:1;9844:6;:10;9836:64;;;;-1:-1:-1;;;9836:64:0;;10313:2:1;9836:64:0;;;10295:21:1;10352:2;10332:18;;;10325:30;10391:34;10371:18;;;10364:62;-1:-1:-1;;;10442:18:1;;;10435:39;10491:19;;9836:64:0;10111:405:1;9836:64:0;1562:7;1589:6;-1:-1:-1;;;;;9917:15:0;;;1589:6;;9917:15;;;;:32;;-1:-1:-1;1562:7:0;1589:6;-1:-1:-1;;;;;9936:13:0;;;1589:6;;9936:13;;9917:32;9913:1642;;;10006:11;;-1:-1:-1;;;10006:11:0;;;;10001:144;;1562:7;1589:6;-1:-1:-1;;;;;10046:15:0;;;1589:6;;10046:15;10038:91;;;;-1:-1:-1;;;10038:91:0;;10723:2:1;10038:91:0;;;10705:21:1;10762:2;10742:18;;;10735:30;10801:34;10781:18;;;10774:62;10872:33;10852:18;;;10845:61;10923:19;;10038:91:0;10521:427:1;10038:91:0;-1:-1:-1;;;;;10165:21:0;;10181:4;10165:21;10161:133;;10249:12;;10239:6;:22;;10231:63;;;;-1:-1:-1;;;10231:63:0;;11155:2:1;10231:63:0;;;11137:21:1;11194:2;11174:18;;;11167:30;11233;11213:18;;;11206:58;11281:18;;10231:63:0;10953:352:1;10231:63:0;-1:-1:-1;;;;;10320:10:0;;;;;;:4;:10;;;;;;;;10319:11;:24;;;;-1:-1:-1;;;;;;10335:8:0;;;;;;:4;:8;;;;;;;;10334:9;10319:24;10311:72;;;;-1:-1:-1;;;10311:72:0;;11512:2:1;10311:72:0;;;11494:21:1;11551:2;11531:18;;;11524:30;11590:34;11570:18;;;11563:62;-1:-1:-1;;;11641:18:1;;;11634:33;11684:19;;10311:72:0;11310:399:1;10311:72:0;10409:13;;-1:-1:-1;;;;;10403:19:0;;;10409:13;;10403:19;10400:146;;10476:14;;10467:6;10451:13;10461:2;10451:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10443:87;;;;-1:-1:-1;;;10443:87:0;;12178:2:1;10443:87:0;;;12160:21:1;12217:2;12197:18;;;12190:30;12256:34;12236:18;;;12229:62;-1:-1:-1;;;12307:18:1;;;12300:33;12350:19;;10443:87:0;11976:399:1;10443:87:0;10562:28;10593:24;10611:4;10593:9;:24::i;:::-;10671:19;;10734:16;;10562:55;;-1:-1:-1;10647:43:0;;;;10710:40;;10707:157;;10794:54;10798:6;10805:42;10809:20;10830:16;;10805:3;:42::i;:::-;10794:3;:54::i;:::-;10771:77;;10707:157;10884:7;:18;;;;-1:-1:-1;10896:6:0;;-1:-1:-1;;;10896:6:0;;;;10895:7;10884:18;:43;;;;-1:-1:-1;10914:13:0;;-1:-1:-1;;;;;10906:21:0;;;10914:13;;10906:21;;10884:43;:58;;;;-1:-1:-1;10931:11:0;;-1:-1:-1;;;10931:11:0;;;;10884:58;:87;;;;-1:-1:-1;;;;;;10947:24:0;;;;;;:18;:24;;;;;;;;10946:25;10884:87;:114;;;;-1:-1:-1;;;;;;10976:22:0;;;;;;:18;:22;;;;;;;;10975:23;10884:114;10880:664;;;11038:13;;11023:12;:28;11019:90;;;11088:1;11076:9;:13;11019:90;11165:13;;11153:9;;:25;11145:54;;;;-1:-1:-1;;;11145:54:0;;12582:2:1;11145:54:0;;;12564:21:1;12621:2;12601:18;;;12594:30;-1:-1:-1;;;12640:18:1;;;12633:46;12696:18;;11145:54:0;12380:340:1;11145:54:0;11218:38;11235:20;11218:16;:38::i;:::-;11304:21;11348:22;;11344:106;;11395:35;11408:21;11395:12;:35::i;:::-;11470:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;11516:12:0;11500:13;:28;-1:-1:-1;10880:664:0;9951:1604;;9913:1642;-1:-1:-1;;;;;11631:24:0;;11567:12;11631:24;;;:18;:24;;;;;;11582:4;;11631:24;;;:50;;-1:-1:-1;;;;;;11659:22:0;;;;;;:18;:22;;;;;;;;11631:50;11630:102;;;-1:-1:-1;11695:13:0;;-1:-1:-1;;;;;11687:21:0;;;11695:13;;11687:21;;;;:44;;-1:-1:-1;11718:13:0;;-1:-1:-1;;;;;11712:19:0;;;11718:13;;11712:19;;11687:44;11626:594;;;-1:-1:-1;11759:5:0;11626:594;;;11842:13;;-1:-1:-1;;;;;11834:21:0;;;11842:13;;11834:21;:55;;;;-1:-1:-1;11873:15:0;;-1:-1:-1;;;;;11859:30:0;;;11873:15;;11859:30;;11834:55;11831:162;;;11922:14;;11910:9;:26;11965:12;;11955:7;:22;11831:162;12052:13;;-1:-1:-1;;;;;12046:19:0;;;12052:13;;12046:19;:55;;;;-1:-1:-1;12085:15:0;;-1:-1:-1;;;;;12069:32:0;;;12085:15;;12069:32;;12046:55;12042:165;;;12134:15;;12122:9;:27;12178:13;;12168:7;:23;12042:165;12232:41;12247:4;12253:2;12257:6;12265:7;12232:14;:41::i;2502:224::-;2622:7;2658:12;2650:6;;;;2642:29;;;;-1:-1:-1;;;2642:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2682:9:0;2694:5;2698:1;2694;:5;:::i;:::-;2682:17;2502:224;-1:-1:-1;;;;;2502:224:0:o;8508:323::-;8603:7;8661;;8650;:18;;8628:110;;;;-1:-1:-1;;;8628:110:0;;13200:2:1;8628:110:0;;;13182:21:1;13239:2;13219:18;;;13212:30;13278:34;13258:18;;;13251:62;-1:-1:-1;;;13329:18:1;;;13322:40;13379:19;;8628:110:0;12998:406:1;8628:110:0;8749:19;8771:10;:8;:10::i;:::-;8749:32;-1:-1:-1;8799:24:0;:7;8749:32;8799:11;:24::i;:::-;8792:31;8508:323;-1:-1:-1;;;8508:323:0:o;12886:99::-;12943:17;;:34;;-1:-1:-1;;;;;12943:17:0;;;;:34;;;;;12970:6;;12943:17;:34;:17;:34;12970:6;12943:17;:34;;;;;;;;;;;;;;;;;;;13125:444;13219:15;;13187:68;;13204:4;;-1:-1:-1;;;;;13219:15:0;-1:-1:-1;;13187:8:0;:68::i;:::-;13266:63;13283:4;13290:38;13324:3;13290:29;13316:2;13290:21;13300:10;13290:9;:21::i;:::-;:25;;:29::i;:::-;:33;;:38::i;13266:63::-;-1:-1:-1;13341:15:0;;-1:-1:-1;;;;;13341:15:0;:31;13380:9;13413:4;13433:24;13413:4;13433:9;:24::i;:::-;13472:1;13488;13512:7;1562;1589:6;-1:-1:-1;;;;;1589:6:0;;1524:79;13512:7;13341:220;;;;;;-1:-1:-1;;;;;;13341:220:0;;;-1:-1:-1;;;;;13730:32:1;;;13341:220:0;;;13712:51:1;13779:18;;;13772:34;;;;13822:18;;;13815:34;;;;13865:18;;;13858:34;13929:32;;;13908:19;;;13901:61;13535:15:0;13978:19:1;;;13971:35;13684:19;;13341:220:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12289:98::-;12346:7;12373:1;12371;:3;12370:9;;12378:1;12370:9;;;-1:-1:-1;12376:1:0;12363:16;-1:-1:-1;12289:98:0:o;14349:282::-;14505:7;14500:28;;14514:14;:12;:14::i;:::-;14539:44;14557:6;14565:9;14576:6;14539:17;:44::i;:::-;14599:7;14594:29;;14608:15;9122:17;;9110:9;:29;9160:15;;9150:7;:25;9066:117;17310:164;17352:7;17373:15;17390;17409:19;:17;:19::i;:::-;17372:56;;-1:-1:-1;17372:56:0;-1:-1:-1;17446:20:0;17372:56;;17446:11;:20::i;:::-;17439:27;;;;17310:164;:::o;2988:132::-;3046:7;3073:39;3077:1;3080;3073:39;;;;;;;;;;;;;;;;;:3;:39::i;2734:246::-;2792:7;2816:1;2821;2816:6;2812:47;;-1:-1:-1;2846:1:0;2839:8;;2812:47;2869:9;2881:5;2885:1;2881;:5;:::i;:::-;2869:17;-1:-1:-1;2914:1:0;2905:5;2909:1;2869:17;2905:5;:::i;:::-;:10;2897:56;;;;-1:-1:-1;;;2897:56:0;;15075:2:1;2897:56:0;;;15057:21:1;15114:2;15094:18;;;15087:30;15153:34;15133:18;;;15126:62;-1:-1:-1;;;15204:18:1;;;15197:31;15245:19;;2897:56:0;14873:397:1;8839:219:0;8886:9;;:14;:30;;;;-1:-1:-1;8904:7:0;;:12;8886:30;8882:43;;;8839:219::o;8882:43::-;8957:9;;;8937:17;:29;8995:7;;;8977:15;:25;-1:-1:-1;9015:13:0;;;;9039:11;8839:219::o;14639:610::-;14786:15;14816:23;14854:12;14881:23;14919:12;14946:13;14973:19;14984:7;14973:10;:19::i;:::-;-1:-1:-1;;;;;15021:15:0;;;;;;:7;:15;;;;;;14771:221;;-1:-1:-1;14771:221:0;;-1:-1:-1;14771:221:0;;-1:-1:-1;14771:221:0;-1:-1:-1;14771:221:0;-1:-1:-1;14771:221:0;-1:-1:-1;15021:28:0;;14771:221;15021:19;:28::i;:::-;-1:-1:-1;;;;;15003:15:0;;;;;;;:7;:15;;;;;;:46;;;;15081:18;;;;;;;:39;;15104:15;15081:22;:39::i;:::-;-1:-1:-1;;;;;15060:18:0;;;;;;:7;:18;;;;;:60;15131:16;15141:5;15131:9;:16::i;:::-;15158:23;15170:4;15176;15158:11;:23::i;:::-;15214:9;-1:-1:-1;;;;;15197:44:0;15206:6;-1:-1:-1;;;;;15197:44:0;;15225:15;15197:44;;;;1656:25:1;;1644:2;1629:18;;1510:177;15197:44:0;;;;;;;;14760:489;;;;;;14639:610;;;:::o;17482:257::-;17580:7;;17533;;;;4802:20;17648;17580:7;4802:20;17648:11;:20::i;:::-;17638:7;:30;17634:61;;;-1:-1:-1;;17678:7:0;;;4802:20;;-1:-1:-1;17482:257:0;-1:-1:-1;17482:257:0:o;17634:61::-;17714:7;;17723;;-1:-1:-1;17482:257:0;-1:-1:-1;17482:257:0:o;3128:223::-;3248:7;3283:12;3276:5;3268:28;;;;-1:-1:-1;;;3268:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3307:9:0;3319:5;3323:1;3319;:5;:::i;15668:615::-;15768:7;15790;15812;15834;15856;15878;15914:23;15939:12;15953:13;15983:40;15995:7;16004:9;;16015:7;;15983:11;:40::i;:::-;15913:110;;;;;;16034:19;16056:10;:8;:10::i;:::-;16034:32;;16078:15;16095:23;16120:12;16149:46;16161:7;16170:4;16176:5;16183:11;16149;:46::i;:::-;16077:118;;-1:-1:-1;16077:118:0;-1:-1:-1;16077:118:0;-1:-1:-1;16246:15:0;;-1:-1:-1;16263:4:0;;-1:-1:-1;16269:5:0;;-1:-1:-1;;;;;15668:615:0;;;;;;;:::o;2358:136::-;2416:7;2443:43;2447:1;2450;2443:43;;;;;;;;;;;;;;;;;:3;:43::i;2171:179::-;2229:7;;2261:5;2265:1;2261;:5;:::i;:::-;2249:17;;2290:1;2285;:6;;2277:46;;;;-1:-1:-1;;;2277:46:0;;15477:2:1;2277:46:0;;;15459:21:1;15516:2;15496:18;;;15489:30;15555:29;15535:18;;;15528:57;15602:18;;2277:46:0;15275:351:1;15257:211:0;15310:19;15332:10;:8;:10::i;:::-;15310:32;-1:-1:-1;15353:13:0;15369:22;:5;15310:32;15369:9;:22::i;:::-;15443:4;15427:22;;;;:7;:22;;;;;;15353:38;;-1:-1:-1;15427:33:0;;15353:38;15427:26;:33::i;:::-;15418:4;15402:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15257:211:0:o;15476:147::-;15554:7;;:17;;15566:4;15554:11;:17::i;:::-;15544:7;:27;15595:10;;:20;;15610:4;15595:14;:20::i;:::-;15582:10;:33;-1:-1:-1;;15476:147:0:o;16291:469::-;16460:7;;;;16554:30;16580:3;16554:21;:7;16566:8;16554:11;:21::i;:30::-;16539:45;-1:-1:-1;16595:13:0;16611:28;16635:3;16611:19;:7;16623:6;16611:11;:19::i;:28::-;16595:44;-1:-1:-1;16650:23:0;16676:28;16595:44;16676:17;:7;16688:4;16676:11;:17::i;:::-;:21;;:28::i;:::-;16650:54;16740:4;;-1:-1:-1;16746:5:0;;-1:-1:-1;16291:469:0;;-1:-1:-1;;;;;16291:469:0:o;16768:534::-;16962:7;;;;17059:24;:7;17071:11;17059;:24::i;:::-;17041:42;-1:-1:-1;17094:12:0;17109:21;:4;17118:11;17109:8;:21::i;:::-;17094:36;-1:-1:-1;17141:13:0;17157:22;:5;17167:11;17157:9;:22::i;:::-;17141:38;-1:-1:-1;17190:23:0;17216:28;17141:38;17216:17;:7;17228:4;17216:11;:17::i;:28::-;17263:7;;;;-1:-1:-1;17289:4:0;;-1:-1:-1;16768:534:0;;-1:-1:-1;;;;;;;16768:534:0:o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1692:508::-;1769:6;1777;1785;1838:2;1826:9;1817:7;1813:23;1809:32;1806:52;;;1854:1;1851;1844:12;1806:52;1893:9;1880:23;1912:31;1937:5;1912:31;:::i;:::-;1962:5;-1:-1:-1;2019:2:1;2004:18;;1991:32;2032:33;1991:32;2032:33;:::i;:::-;1692:508;;2084:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1692:508::o;2602:247::-;2661:6;2714:2;2702:9;2693:7;2689:23;2685:32;2682:52;;;2730:1;2727;2720:12;2682:52;2769:9;2756:23;2788:31;2813:5;2788:31;:::i;2854:127::-;2915:10;2910:3;2906:20;2903:1;2896:31;2946:4;2943:1;2936:15;2970:4;2967:1;2960:15;2986:1127;3070:6;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3179:9;3166:23;3212:18;3204:6;3201:30;3198:50;;;3244:1;3241;3234:12;3198:50;3267:22;;3320:4;3312:13;;3308:27;-1:-1:-1;3298:55:1;;3349:1;3346;3339:12;3298:55;3389:2;3376:16;3415:18;3407:6;3404:30;3401:56;;;3437:18;;:::i;:::-;3483:6;3480:1;3476:14;3519:2;3513:9;3582:2;3578:7;3573:2;3569;3565:11;3561:25;3553:6;3549:38;3653:6;3641:10;3638:22;3617:18;3605:10;3602:34;3599:62;3596:88;;;3664:18;;:::i;:::-;3700:2;3693:22;3750;;;3800:2;3830:11;;;3826:20;;;3750:22;3788:15;;3858:19;;;3855:39;;;3890:1;3887;3880:12;3855:39;3922:2;3918;3914:11;3903:22;;3934:148;3950:6;3945:3;3942:15;3934:148;;;4016:23;4035:3;4016:23;:::i;:::-;4004:36;;4069:2;3967:12;;;;4060;3934:148;;;-1:-1:-1;4101:6:1;2986:1127;-1:-1:-1;;;;;;2986:1127:1:o;4118:160::-;4183:20;;4239:13;;4232:21;4222:32;;4212:60;;4268:1;4265;4258:12;4283:180;4339:6;4392:2;4380:9;4371:7;4367:23;4363:32;4360:52;;;4408:1;4405;4398:12;4360:52;4431:26;4447:9;4431:26;:::i;4468:226::-;4527:6;4580:2;4568:9;4559:7;4555:23;4551:32;4548:52;;;4596:1;4593;4586:12;4548:52;-1:-1:-1;4641:23:1;;4468:226;-1:-1:-1;4468:226:1:o;4699:587::-;4785:6;4793;4801;4809;4862:3;4850:9;4841:7;4837:23;4833:33;4830:53;;;4879:1;4876;4869:12;4830:53;-1:-1:-1;;4924:23:1;;;5044:2;5029:18;;5016:32;;-1:-1:-1;5147:2:1;5132:18;;5119:32;;5250:2;5235:18;5222:32;;-1:-1:-1;4699:587:1;-1:-1:-1;4699:587:1:o;5291:684::-;5383:6;5391;5399;5452:2;5440:9;5431:7;5427:23;5423:32;5420:52;;;5468:1;5465;5458:12;5420:52;5508:9;5495:23;5541:18;5533:6;5530:30;5527:50;;;5573:1;5570;5563:12;5527:50;5596:22;;5649:4;5641:13;;5637:27;-1:-1:-1;5627:55:1;;5678:1;5675;5668:12;5627:55;5718:2;5705:16;5744:18;5736:6;5733:30;5730:50;;;5776:1;5773;5766:12;5730:50;5831:7;5824:4;5814:6;5811:1;5807:14;5803:2;5799:23;5795:34;5792:47;5789:67;;;5852:1;5849;5842:12;5789:67;5883:4;5875:13;;;;-1:-1:-1;5907:6:1;-1:-1:-1;5932:37:1;;5948:20;;5932:37;:::i;:::-;5922:47;;5291:684;;;;;:::o;5980:388::-;6048:6;6056;6109:2;6097:9;6088:7;6084:23;6080:32;6077:52;;;6125:1;6122;6115:12;6077:52;6164:9;6151:23;6183:31;6208:5;6183:31;:::i;:::-;6233:5;-1:-1:-1;6290:2:1;6275:18;;6262:32;6303:33;6262:32;6303:33;:::i;:::-;6355:7;6345:17;;;5980:388;;;;;:::o;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;8081:251;8151:6;8204:2;8192:9;8183:7;8179:23;8175:32;8172:52;;;8220:1;8217;8210:12;8172:52;8252:9;8246:16;8271:31;8296:5;8271:31;:::i;8337:959::-;8599:4;8647:3;8636:9;8632:19;8678:6;8667:9;8660:25;8721:6;8716:2;8705:9;8701:18;8694:34;8764:3;8759:2;8748:9;8744:18;8737:31;8788:6;8823;8817:13;8854:6;8846;8839:22;8892:3;8881:9;8877:19;8870:26;;8931:2;8923:6;8919:15;8905:29;;8952:1;8962:195;8976:6;8973:1;8970:13;8962:195;;;9041:13;;-1:-1:-1;;;;;9037:39:1;9025:52;;9106:2;9132:15;;;;9097:12;;;;9073:1;8991:9;8962:195;;;-1:-1:-1;;;;;;;9213:32:1;;;;9208:2;9193:18;;9186:60;-1:-1:-1;;9277:3:1;9262:19;9255:35;9174:3;8337:959;-1:-1:-1;;;8337:959:1:o;11714:127::-;11775:10;11770:3;11766:20;11763:1;11756:31;11806:4;11803:1;11796:15;11830:4;11827:1;11820:15;11846:125;11911:9;;;11932:10;;;11929:36;;;11945:18;;:::i;12725:135::-;12764:3;12785:17;;;12782:43;;12805:18;;:::i;:::-;-1:-1:-1;12852:1:1;12841:13;;12725:135::o;12865:128::-;12932:9;;;12953:11;;;12950:37;;;12967:18;;:::i;14017:456::-;14105:6;14113;14121;14174:2;14162:9;14153:7;14149:23;14145:32;14142:52;;;14190:1;14187;14180:12;14142:52;-1:-1:-1;;14235:16:1;;14341:2;14326:18;;14320:25;14437:2;14422:18;;;14416:25;14235:16;;14320:25;;-1:-1:-1;14416:25:1;14017:456;-1:-1:-1;14017:456:1:o;14478:168::-;14551:9;;;14582;;14599:15;;;14593:22;;14579:37;14569:71;;14620:18;;:::i;14651:217::-;14691:1;14717;14707:132;;14761:10;14756:3;14752:20;14749:1;14742:31;14796:4;14793:1;14786:15;14824:4;14821:1;14814:15;14707:132;-1:-1:-1;14853:9:1;;14651:217::o
Swarm Source
ipfs://bf7b0fcf7b479a209d54831f5485413a5b439f5d6ad17336a98aad33ae2bd415
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.