ERC-20
Overview
Max Total Supply
1,000,000,000,000 PASHA
Holders
325
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Pasha
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-11 */ /* Pasha Inu https://t.me/PashaInu https://twitter.com/PashaInu_Eth Meet Паша (Pasha) , our President's puppy given to him from the President of Serbia. Pasha has always been a happy pup but there's one problem....HE FEEDS ON OIL Pasha NEEDS MORE OIL, so PUTIN must begin an invasion on UKRAINE. The Kremlin will spend $$$$ to make sure the price of PASHA stays high and he can be receive his full supply of OIL! */ // 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 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 Pasha is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Pasha Inu"; string private constant _symbol = "PASHA"; 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 = 1000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 15; uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 5; //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(0xEf5082AD0fA473787163B94C7fB748e3720C000A); address payable private _marketingAddress = payable(0x6542e8170355d5325fa9e967Ba8086e40eC4E418); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 10000000000 * 10**9; uint256 public _maxWalletSize = 25000000000 * 10**9; uint256 public _swapTokensAtAmount = 10000000 * 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 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 (!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 _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 { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 2%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 14, "Buy tax must be between 0% and 14%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 2%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 14, "Sell tax must be between 0% and 14%"); _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 { if (maxTxAmount > 5000000000 * 10**9) { _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; } } }
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":[],"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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"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":"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":[{"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
60806040526200001b683635c9adc5dea00000600019620003af565b6200002990600019620003d2565b60065560016008819055600f6009819055600a8290556005600b819055600c839055600d819055600e9290925555601280546001600160a01b031990811673ef5082ad0fa473787163b94c7fb748e3720c000a1790915560138054909116736542e8170355d5325fa9e967ba8086e40ec4e4181790556015805461ffff60a81b1916600160b01b179055678ac7230489e8000060165568015af1d78b58c40000601755662386f26fc10000601855348015620000e457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200019d57600080fd5b505afa158015620001b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d89190620003f8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022157600080fd5b505afa15801562000236573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025c9190620003f8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002a557600080fd5b505af1158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e09190620003f8565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003a091815260200190565b60405180910390a3506200042a565b600082620003cd57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003f357634e487b7160e01b600052601160045260246000fd5b500390565b6000602082840312156200040b57600080fd5b81516001600160a01b03811681146200042357600080fd5b9392505050565b61250a806200043a6000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610582578063dd62ed3e146105a2578063ea1644d5146105e8578063f2fde38b1461060857600080fd5b8063a2a957bb146104fd578063a9059cbb1461051d578063bfd792841461053d578063c3c8cd801461056d57600080fd5b80638f70ccf7116100d15780638f70ccf7146104615780638f9a55c01461048157806395d89b411461049757806398a5c315146104dd57600080fd5b80637d1db4a5146104005780637f2feddc146104165780638da5cb5b1461044357600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461039657806370a08231146103ab578063715018a6146103cb57806374010ece146103e057600080fd5b8063313ce5671461031a57806349bd5a5e146103365780636b999053146103565780636d8aa8f81461037657600080fd5b80631694505e116101ab5780631694505e1461028657806318160ddd146102be57806323b872dd146102e45780632fd689e31461030457600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461025657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611fcd565b610628565b005b34801561020a57600080fd5b5060408051808201909152600981527f506173686120496e75000000000000000000000000000000000000000000000060208201525b60405161024d91906120b0565b60405180910390f35b34801561026257600080fd5b50610276610271366004612123565b6106f3565b604051901515815260200161024d565b34801561029257600080fd5b506014546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102ca57600080fd5b50683635c9adc5dea000005b60405190815260200161024d565b3480156102f057600080fd5b506102766102ff36600461214f565b61070a565b34801561031057600080fd5b506102d660185481565b34801561032657600080fd5b506040516009815260200161024d565b34801561034257600080fd5b506015546102a6906001600160a01b031681565b34801561036257600080fd5b506101fc610371366004612190565b610773565b34801561038257600080fd5b506101fc6103913660046121bd565b6107ee565b3480156103a257600080fd5b506101fc610894565b3480156103b757600080fd5b506102d66103c6366004612190565b6108df565b3480156103d757600080fd5b506101fc610901565b3480156103ec57600080fd5b506101fc6103fb3660046121d8565b6109bd565b34801561040c57600080fd5b506102d660165481565b34801561042257600080fd5b506102d6610431366004612190565b60116020526000908152604090205481565b34801561044f57600080fd5b506000546001600160a01b03166102a6565b34801561046d57600080fd5b506101fc61047c3660046121bd565b610a2c565b34801561048d57600080fd5b506102d660175481565b3480156104a357600080fd5b5060408051808201909152600581527f50415348410000000000000000000000000000000000000000000000000000006020820152610240565b3480156104e957600080fd5b506101fc6104f83660046121d8565b610ad0565b34801561050957600080fd5b506101fc6105183660046121f1565b610b2f565b34801561052957600080fd5b50610276610538366004612123565b610d79565b34801561054957600080fd5b50610276610558366004612190565b60106020526000908152604090205460ff1681565b34801561057957600080fd5b506101fc610d86565b34801561058e57600080fd5b506101fc61059d366004612223565b610dda565b3480156105ae57600080fd5b506102d66105bd3660046122a7565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f457600080fd5b506101fc6106033660046121d8565b610eab565b34801561061457600080fd5b506101fc610623366004612190565b610f0a565b6000546001600160a01b031633146106875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156106ef576001601060008484815181106106ab576106ab6122e0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106e78161233e565b91505061068a565b5050565b6000610700338484611053565b5060015b92915050565b60006107178484846111ab565b6107698433610764856040518060600160405280602881526020016124ad602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611797565b611053565b5060019392505050565b6000546001600160a01b031633146107cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60158054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6012546001600160a01b0316336001600160a01b031614806108c957506013546001600160a01b0316336001600160a01b0316145b6108d257600080fd5b476108dc816117d1565b50565b6001600160a01b0381166000908152600260205260408120546107049061180b565b6000546001600160a01b0316331461095b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b03163314610a175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b674563918244f400008111156108dc57601655565b6000546001600160a01b03163314610a865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6015805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601855565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6004841115610c005760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e203025206160448201527f6e64203225000000000000000000000000000000000000000000000000000000606482015260840161067e565b600e821115610c775760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e64203160448201527f3425000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6004831115610cee5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e2030252060448201527f616e642032250000000000000000000000000000000000000000000000000000606482015260840161067e565b600e811115610d655760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201527f3134250000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600893909355600a91909155600955600b55565b60006107003384846111ab565b6012546001600160a01b0316336001600160a01b03161480610dbb57506013546001600160a01b0316336001600160a01b0316145b610dc457600080fd5b6000610dcf306108df565b90506108dc816118a2565b6000546001600160a01b03163314610e345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60005b82811015610ea5578160056000868685818110610e5657610e566122e0565b9050602002016020810190610e6b9190612190565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e9d8161233e565b915050610e37565b50505050565b6000546001600160a01b03163314610f055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601755565b6000546001600160a01b03163314610f645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b038116610fe05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b0383166110ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0382166112a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600081116113195760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161067e565b6000546001600160a01b0384811691161480159061134557506000546001600160a01b03838116911614155b156116905760155474010000000000000000000000000000000000000000900460ff166113ef576000546001600160a01b038481169116146113ef5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067e565b6016548111156114415760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067e565b6001600160a01b03831660009081526010602052604090205460ff1615801561148357506001600160a01b03821660009081526010602052604090205460ff16155b6114f55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f6564210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6015546001600160a01b038381169116146115945760175481611517846108df565b6115219190612377565b106115945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a65210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600061159f306108df565b6018546016549192508210159082106115b85760165491505b8080156115e157506015547501000000000000000000000000000000000000000000900460ff16155b80156115fb57506015546001600160a01b03868116911614155b80156116235750601554760100000000000000000000000000000000000000000000900460ff165b801561164857506001600160a01b03851660009081526005602052604090205460ff16155b801561166d57506001600160a01b03841660009081526005602052604090205460ff16155b1561168d5761167b826118a2565b47801561168b5761168b476117d1565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806116d257506001600160a01b03831660009081526005602052604090205460ff165b8061170457506015546001600160a01b0385811691161480159061170457506015546001600160a01b03848116911614155b156117115750600061178b565b6015546001600160a01b03858116911614801561173c57506014546001600160a01b03848116911614155b1561174e57600854600c55600954600d555b6015546001600160a01b03848116911614801561177957506014546001600160a01b03858116911614155b1561178b57600a54600c55600b54600d555b610ea584848484611aa5565b600081848411156117bb5760405162461bcd60e51b815260040161067e91906120b0565b5060006117c8848661238f565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106ef573d6000803e3d6000fd5b60006006548211156118855760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161067e565b600061188f611ad3565b905061189b8382611af6565b9392505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611917576119176122e0565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561198457600080fd5b505afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc91906123a6565b816001815181106119cf576119cf6122e0565b6001600160a01b0392831660209182029290920101526014546119f59130911684611053565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611a479085906000908690309042906004016123c3565b600060405180830381600087803b158015611a6157600080fd5b505af1158015611a75573d6000803e3d6000fd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b80611ab257611ab2611b38565b611abd848484611b66565b80610ea557610ea5600e54600c55600f54600d55565b6000806000611ae0611c5d565b9092509050611aef8282611af6565b9250505090565b600061189b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c9f565b600c54158015611b485750600d54155b15611b4f57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611b7887611ccd565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611baa9087611d2a565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bd99086611d6c565b6001600160a01b038916600090815260026020526040902055611bfb81611dcb565b611c058483611e15565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4a91815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea00000611c798282611af6565b821015611c9657505060065492683635c9adc5dea0000092509050565b90939092509050565b60008183611cc05760405162461bcd60e51b815260040161067e91906120b0565b5060006117c88486612434565b6000806000806000806000806000611cea8a600c54600d54611e39565b9250925092506000611cfa611ad3565b90506000806000611d0d8e878787611e8e565b919e509c509a509598509396509194505050505091939550919395565b600061189b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611797565b600080611d798385612377565b90508381101561189b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067e565b6000611dd5611ad3565b90506000611de38383611ede565b30600090815260026020526040902054909150611e009082611d6c565b30600090815260026020526040902055505050565b600654611e229083611d2a565b600655600754611e329082611d6c565b6007555050565b6000808080611e536064611e4d8989611ede565b90611af6565b90506000611e666064611e4d8a89611ede565b90506000611e7e82611e788b86611d2a565b90611d2a565b9992985090965090945050505050565b6000808080611e9d8886611ede565b90506000611eab8887611ede565b90506000611eb98888611ede565b90506000611ecb82611e788686611d2a565b939b939a50919850919650505050505050565b600082611eed57506000610704565b6000611ef9838561246f565b905082611f068583612434565b1461189b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b03811681146108dc57600080fd5b8035611fc881611fa8565b919050565b60006020808385031215611fe057600080fd5b823567ffffffffffffffff80821115611ff857600080fd5b818501915085601f83011261200c57600080fd5b81358181111561201e5761201e611f79565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561206157612061611f79565b60405291825284820192508381018501918883111561207f57600080fd5b938501935b828510156120a45761209585611fbd565b84529385019392850192612084565b98975050505050505050565b600060208083528351808285015260005b818110156120dd578581018301518582016040015282016120c1565b818111156120ef576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561213657600080fd5b823561214181611fa8565b946020939093013593505050565b60008060006060848603121561216457600080fd5b833561216f81611fa8565b9250602084013561217f81611fa8565b929592945050506040919091013590565b6000602082840312156121a257600080fd5b813561189b81611fa8565b80358015158114611fc857600080fd5b6000602082840312156121cf57600080fd5b61189b826121ad565b6000602082840312156121ea57600080fd5b5035919050565b6000806000806080858703121561220757600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561223857600080fd5b833567ffffffffffffffff8082111561225057600080fd5b818601915086601f83011261226457600080fd5b81358181111561227357600080fd5b8760208260051b850101111561228857600080fd5b60209283019550935061229e91860190506121ad565b90509250925092565b600080604083850312156122ba57600080fd5b82356122c581611fa8565b915060208301356122d581611fa8565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156123705761237061230f565b5060010190565b6000821982111561238a5761238a61230f565b500190565b6000828210156123a1576123a161230f565b500390565b6000602082840312156123b857600080fd5b815161189b81611fa8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124135784516001600160a01b0316835293830193918301916001016123ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261246a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a7576124a761230f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220db7ffa0c72ff59797d77beea2664d9da5fbcbaa5522c4ee2b182cf288f71b74264736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610582578063dd62ed3e146105a2578063ea1644d5146105e8578063f2fde38b1461060857600080fd5b8063a2a957bb146104fd578063a9059cbb1461051d578063bfd792841461053d578063c3c8cd801461056d57600080fd5b80638f70ccf7116100d15780638f70ccf7146104615780638f9a55c01461048157806395d89b411461049757806398a5c315146104dd57600080fd5b80637d1db4a5146104005780637f2feddc146104165780638da5cb5b1461044357600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461039657806370a08231146103ab578063715018a6146103cb57806374010ece146103e057600080fd5b8063313ce5671461031a57806349bd5a5e146103365780636b999053146103565780636d8aa8f81461037657600080fd5b80631694505e116101ab5780631694505e1461028657806318160ddd146102be57806323b872dd146102e45780632fd689e31461030457600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461025657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611fcd565b610628565b005b34801561020a57600080fd5b5060408051808201909152600981527f506173686120496e75000000000000000000000000000000000000000000000060208201525b60405161024d91906120b0565b60405180910390f35b34801561026257600080fd5b50610276610271366004612123565b6106f3565b604051901515815260200161024d565b34801561029257600080fd5b506014546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102ca57600080fd5b50683635c9adc5dea000005b60405190815260200161024d565b3480156102f057600080fd5b506102766102ff36600461214f565b61070a565b34801561031057600080fd5b506102d660185481565b34801561032657600080fd5b506040516009815260200161024d565b34801561034257600080fd5b506015546102a6906001600160a01b031681565b34801561036257600080fd5b506101fc610371366004612190565b610773565b34801561038257600080fd5b506101fc6103913660046121bd565b6107ee565b3480156103a257600080fd5b506101fc610894565b3480156103b757600080fd5b506102d66103c6366004612190565b6108df565b3480156103d757600080fd5b506101fc610901565b3480156103ec57600080fd5b506101fc6103fb3660046121d8565b6109bd565b34801561040c57600080fd5b506102d660165481565b34801561042257600080fd5b506102d6610431366004612190565b60116020526000908152604090205481565b34801561044f57600080fd5b506000546001600160a01b03166102a6565b34801561046d57600080fd5b506101fc61047c3660046121bd565b610a2c565b34801561048d57600080fd5b506102d660175481565b3480156104a357600080fd5b5060408051808201909152600581527f50415348410000000000000000000000000000000000000000000000000000006020820152610240565b3480156104e957600080fd5b506101fc6104f83660046121d8565b610ad0565b34801561050957600080fd5b506101fc6105183660046121f1565b610b2f565b34801561052957600080fd5b50610276610538366004612123565b610d79565b34801561054957600080fd5b50610276610558366004612190565b60106020526000908152604090205460ff1681565b34801561057957600080fd5b506101fc610d86565b34801561058e57600080fd5b506101fc61059d366004612223565b610dda565b3480156105ae57600080fd5b506102d66105bd3660046122a7565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f457600080fd5b506101fc6106033660046121d8565b610eab565b34801561061457600080fd5b506101fc610623366004612190565b610f0a565b6000546001600160a01b031633146106875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156106ef576001601060008484815181106106ab576106ab6122e0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106e78161233e565b91505061068a565b5050565b6000610700338484611053565b5060015b92915050565b60006107178484846111ab565b6107698433610764856040518060600160405280602881526020016124ad602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611797565b611053565b5060019392505050565b6000546001600160a01b031633146107cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60158054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6012546001600160a01b0316336001600160a01b031614806108c957506013546001600160a01b0316336001600160a01b0316145b6108d257600080fd5b476108dc816117d1565b50565b6001600160a01b0381166000908152600260205260408120546107049061180b565b6000546001600160a01b0316331461095b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b03163314610a175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b674563918244f400008111156108dc57601655565b6000546001600160a01b03163314610a865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6015805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601855565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6004841115610c005760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e203025206160448201527f6e64203225000000000000000000000000000000000000000000000000000000606482015260840161067e565b600e821115610c775760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e64203160448201527f3425000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6004831115610cee5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e2030252060448201527f616e642032250000000000000000000000000000000000000000000000000000606482015260840161067e565b600e811115610d655760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201527f3134250000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600893909355600a91909155600955600b55565b60006107003384846111ab565b6012546001600160a01b0316336001600160a01b03161480610dbb57506013546001600160a01b0316336001600160a01b0316145b610dc457600080fd5b6000610dcf306108df565b90506108dc816118a2565b6000546001600160a01b03163314610e345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60005b82811015610ea5578160056000868685818110610e5657610e566122e0565b9050602002016020810190610e6b9190612190565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e9d8161233e565b915050610e37565b50505050565b6000546001600160a01b03163314610f055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601755565b6000546001600160a01b03163314610f645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b038116610fe05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b0383166110ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0382166112a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600081116113195760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161067e565b6000546001600160a01b0384811691161480159061134557506000546001600160a01b03838116911614155b156116905760155474010000000000000000000000000000000000000000900460ff166113ef576000546001600160a01b038481169116146113ef5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067e565b6016548111156114415760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067e565b6001600160a01b03831660009081526010602052604090205460ff1615801561148357506001600160a01b03821660009081526010602052604090205460ff16155b6114f55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f6564210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6015546001600160a01b038381169116146115945760175481611517846108df565b6115219190612377565b106115945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a65210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600061159f306108df565b6018546016549192508210159082106115b85760165491505b8080156115e157506015547501000000000000000000000000000000000000000000900460ff16155b80156115fb57506015546001600160a01b03868116911614155b80156116235750601554760100000000000000000000000000000000000000000000900460ff165b801561164857506001600160a01b03851660009081526005602052604090205460ff16155b801561166d57506001600160a01b03841660009081526005602052604090205460ff16155b1561168d5761167b826118a2565b47801561168b5761168b476117d1565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806116d257506001600160a01b03831660009081526005602052604090205460ff165b8061170457506015546001600160a01b0385811691161480159061170457506015546001600160a01b03848116911614155b156117115750600061178b565b6015546001600160a01b03858116911614801561173c57506014546001600160a01b03848116911614155b1561174e57600854600c55600954600d555b6015546001600160a01b03848116911614801561177957506014546001600160a01b03858116911614155b1561178b57600a54600c55600b54600d555b610ea584848484611aa5565b600081848411156117bb5760405162461bcd60e51b815260040161067e91906120b0565b5060006117c8848661238f565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106ef573d6000803e3d6000fd5b60006006548211156118855760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161067e565b600061188f611ad3565b905061189b8382611af6565b9392505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611917576119176122e0565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561198457600080fd5b505afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc91906123a6565b816001815181106119cf576119cf6122e0565b6001600160a01b0392831660209182029290920101526014546119f59130911684611053565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611a479085906000908690309042906004016123c3565b600060405180830381600087803b158015611a6157600080fd5b505af1158015611a75573d6000803e3d6000fd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b80611ab257611ab2611b38565b611abd848484611b66565b80610ea557610ea5600e54600c55600f54600d55565b6000806000611ae0611c5d565b9092509050611aef8282611af6565b9250505090565b600061189b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c9f565b600c54158015611b485750600d54155b15611b4f57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611b7887611ccd565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611baa9087611d2a565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bd99086611d6c565b6001600160a01b038916600090815260026020526040902055611bfb81611dcb565b611c058483611e15565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4a91815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea00000611c798282611af6565b821015611c9657505060065492683635c9adc5dea0000092509050565b90939092509050565b60008183611cc05760405162461bcd60e51b815260040161067e91906120b0565b5060006117c88486612434565b6000806000806000806000806000611cea8a600c54600d54611e39565b9250925092506000611cfa611ad3565b90506000806000611d0d8e878787611e8e565b919e509c509a509598509396509194505050505091939550919395565b600061189b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611797565b600080611d798385612377565b90508381101561189b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067e565b6000611dd5611ad3565b90506000611de38383611ede565b30600090815260026020526040902054909150611e009082611d6c565b30600090815260026020526040902055505050565b600654611e229083611d2a565b600655600754611e329082611d6c565b6007555050565b6000808080611e536064611e4d8989611ede565b90611af6565b90506000611e666064611e4d8a89611ede565b90506000611e7e82611e788b86611d2a565b90611d2a565b9992985090965090945050505050565b6000808080611e9d8886611ede565b90506000611eab8887611ede565b90506000611eb98888611ede565b90506000611ecb82611e788686611d2a565b939b939a50919850919650505050505050565b600082611eed57506000610704565b6000611ef9838561246f565b905082611f068583612434565b1461189b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b03811681146108dc57600080fd5b8035611fc881611fa8565b919050565b60006020808385031215611fe057600080fd5b823567ffffffffffffffff80821115611ff857600080fd5b818501915085601f83011261200c57600080fd5b81358181111561201e5761201e611f79565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561206157612061611f79565b60405291825284820192508381018501918883111561207f57600080fd5b938501935b828510156120a45761209585611fbd565b84529385019392850192612084565b98975050505050505050565b600060208083528351808285015260005b818110156120dd578581018301518582016040015282016120c1565b818111156120ef576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561213657600080fd5b823561214181611fa8565b946020939093013593505050565b60008060006060848603121561216457600080fd5b833561216f81611fa8565b9250602084013561217f81611fa8565b929592945050506040919091013590565b6000602082840312156121a257600080fd5b813561189b81611fa8565b80358015158114611fc857600080fd5b6000602082840312156121cf57600080fd5b61189b826121ad565b6000602082840312156121ea57600080fd5b5035919050565b6000806000806080858703121561220757600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561223857600080fd5b833567ffffffffffffffff8082111561225057600080fd5b818601915086601f83011261226457600080fd5b81358181111561227357600080fd5b8760208260051b850101111561228857600080fd5b60209283019550935061229e91860190506121ad565b90509250925092565b600080604083850312156122ba57600080fd5b82356122c581611fa8565b915060208301356122d581611fa8565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156123705761237061230f565b5060010190565b6000821982111561238a5761238a61230f565b500190565b6000828210156123a1576123a161230f565b500390565b6000602082840312156123b857600080fd5b815161189b81611fa8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124135784516001600160a01b0316835293830193918301916001016123ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261246a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a7576124a761230f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220db7ffa0c72ff59797d77beea2664d9da5fbcbaa5522c4ee2b182cf288f71b74264736f6c63430008090033
Deployed Bytecode Sourcemap
4545:14043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13281:169;;;;;;;;;;-1:-1:-1;13281:169:0;;;;;:::i;:::-;;:::i;:::-;;7075:83;;;;;;;;;;-1:-1:-1;7145:5:0;;;;;;;;;;;;;;;;;7075:83;;;;;;;:::i;:::-;;;;;;;;8007:193;;;;;;;;;;-1:-1:-1;8007:193:0;;;;;:::i;:::-;;:::i;:::-;;;2832:14:1;;2825:22;2807:41;;2795:2;2780:18;8007:193:0;2667:187:1;5904:41:0;;;;;;;;;;-1:-1:-1;5904:41:0;;;;-1:-1:-1;;;;;5904:41:0;;;;;;-1:-1:-1;;;;;3049:55:1;;;3031:74;;3019:2;3004:18;5904:41:0;2859:252:1;7355:95:0;;;;;;;;;;-1:-1:-1;5094:21:0;7355:95;;;3262:25:1;;;3250:2;3235:18;7355:95:0;3116:177:1;8209:446:0;;;;;;;;;;-1:-1:-1;8209:446:0;;;;;:::i;:::-;;:::i;6212:53::-;;;;;;;;;;;;;;;;7263:83;;;;;;;;;;-1:-1:-1;7263:83:0;;4767:1;3901:36:1;;3889:2;3874:18;7263:83:0;3759:184:1;5952:28:0;;;;;;;;;;-1:-1:-1;5952:28:0;;;;-1:-1:-1;;;;;5952:28:0;;;13459:92;;;;;;;;;;-1:-1:-1;13459:92:0;;;;;:::i;:::-;;:::i;17906:101::-;;;;;;;;;;-1:-1:-1;17906:101:0;;;;;:::i;:::-;;:::i;13037:235::-;;;;;;;;;;;;;:::i;7459:138::-;;;;;;;;;;-1:-1:-1;7459:138:0;;;;;:::i;:::-;;:::i;2018:148::-;;;;;;;;;;;;;:::i;18047:169::-;;;;;;;;;;-1:-1:-1;18047:169:0;;;;;:::i;:::-;;:::i;6096:49::-;;;;;;;;;;;;;;;;5643:43;;;;;;;;;;-1:-1:-1;5643:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1802:79;;;;;;;;;;-1:-1:-1;1840:7:0;1867:6;-1:-1:-1;;;;;1867:6:0;1802:79;;12682:101;;;;;;;;;;-1:-1:-1;12682:101:0;;;;;:::i;:::-;;:::i;6153:51::-;;;;;;;;;;;;;;;;7167:87;;;;;;;;;;-1:-1:-1;7239:7:0;;;;;;;;;;;;;;;;;7167:87;;17714:139;;;;;;;;;;-1:-1:-1;17714:139:0;;;;;:::i;:::-;;:::i;16968:693::-;;;;;;;;;;-1:-1:-1;16968:693:0;;;;;:::i;:::-;;:::i;7606:199::-;;;;;;;;;;-1:-1:-1;7606:199:0;;;;;:::i;:::-;;:::i;5605:36::-;;;;;;;;;;-1:-1:-1;5605:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12792:236;;;;;;;;;;;;;:::i;18349:234::-;;;;;;;;;;-1:-1:-1;18349:234:0;;;;;:::i;:::-;;:::i;7814:184::-;;;;;;;;;;-1:-1:-1;7814:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7963:18:0;;;7931:7;7963:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7814:184;18225:115;;;;;;;;;;-1:-1:-1;18225:115:0;;;;;:::i;:::-;;:::i;2175:244::-;;;;;;;;;;-1:-1:-1;2175:244:0;;;;;:::i;:::-;;:::i;13281:169::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;;;;;;;;;13357:9:::1;13352:91;13376:5;:12;13372:1;:16;13352:91;;;13427:4;13410;:14;13415:5;13421:1;13415:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13410:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13410:14:0;:21;;-1:-1:-1;;13410:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13390:3;::::1;::::0;::::1;:::i;:::-;;;;13352:91;;;;13281:169:::0;:::o;8007:193::-;8109:4;8131:39;631:10;8154:7;8163:6;8131:8;:39::i;:::-;-1:-1:-1;8188:4:0;8007:193;;;;;:::o;8209:446::-;8341:4;8358:36;8368:6;8376:9;8387:6;8358:9;:36::i;:::-;8405:220;8428:6;631:10;8476:138;8532:6;8476:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8476:19:0;;;;;;:11;:19;;;;;;;;631:10;8476:33;;;;;;;;;;:37;:138::i;:::-;8405:8;:220::i;:::-;-1:-1:-1;8643:4:0;8209:446;;;;;:::o;13459:92::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;-1:-1:-1;;;;;13523:12:0::1;13538:5;13523:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13523:20:0::1;::::0;;13459:92::o;17906:101::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;17973:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17906:101::o;13037:235::-;13103:19;;-1:-1:-1;;;;;13103:19:0;631:10;-1:-1:-1;;;;;13087:35:0;;:72;;;-1:-1:-1;13142:17:0;;-1:-1:-1;;;;;13142:17:0;631:10;-1:-1:-1;;;;;13126:33:0;;13087:72;13079:81;;;;;;13200:21;13232:32;13200:21;13232:12;:32::i;:::-;13068:204;13037:235::o;7459:138::-;-1:-1:-1;;;;;7572:16:0;;7525:7;7572:16;;;:7;:16;;;;;;7552:37;;:19;:37::i;2018:148::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;2125:1:::1;2109:6:::0;;2088:40:::1;::::0;-1:-1:-1;;;;;2109:6:0;;::::1;::::0;2088:40:::1;::::0;2125:1;;2088:40:::1;2156:1;2139:19:::0;;;::::1;::::0;;2018:148::o;18047:169::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;18137:18:::1;18123:11;:32;18119:90;;;18171:12;:26:::0;18047:169::o;12682:101::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;12749:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12682:101::o;17714:139::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;17805:19:::1;:40:::0;17714:139::o;16968:693::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;17149:1:::1;17132:13;:18;;17102:90;;;::::0;-1:-1:-1;;;17102:90:0;;7584:2:1;17102:90:0::1;::::0;::::1;7566:21:1::0;7623:2;7603:18;;;7596:30;7662:34;7642:18;;;7635:62;7733:7;7713:18;;;7706:35;7758:19;;17102:90:0::1;7382:401:1::0;17102:90:0::1;17246:2;17231:11;:17;;17203:84;;;::::0;-1:-1:-1;;;17203:84:0;;7990:2:1;17203:84:0::1;::::0;::::1;7972:21:1::0;8029:2;8009:18;;;8002:30;8068:34;8048:18;;;8041:62;8139:4;8119:18;;;8112:32;8161:19;;17203:84:0::1;7788:398:1::0;17203:84:0::1;17347:1;17329:14;:19;;17298:93;;;::::0;-1:-1:-1;;;17298:93:0;;8393:2:1;17298:93:0::1;::::0;::::1;8375:21:1::0;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;8542:8;8522:18;;;8515:36;8568:19;;17298:93:0::1;8191:402:1::0;17298:93:0::1;17447:2;17431:12;:18;;17402:87;;;::::0;-1:-1:-1;;;17402:87:0;;8800:2:1;17402:87:0::1;::::0;::::1;8782:21:1::0;8839:2;8819:18;;;8812:30;8878:34;8858:18;;;8851:62;8949:5;8929:18;;;8922:33;8972:19;;17402:87:0::1;8598:399:1::0;17402:87:0::1;17502:14;:30:::0;;;;17543:15:::1;:32:::0;;;;17586:12:::1;:26:::0;17623:13:::1;:28:::0;16968:693::o;7606:199::-;7711:4;7733:42;631:10;7757:9;7768:6;7733:9;:42::i;12792:236::-;12858:19;;-1:-1:-1;;;;;12858:19:0;631:10;-1:-1:-1;;;;;12842:35:0;;:72;;;-1:-1:-1;12897:17:0;;-1:-1:-1;;;;;12897:17:0;631:10;-1:-1:-1;;;;;12881:33:0;;12842:72;12834:81;;;;;;12926:23;12952:24;12970:4;12952:9;:24::i;:::-;12926:50;;12987:33;13004:15;12987:16;:33::i;18349:234::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;18466:9:::1;18462:114;18481:19:::0;;::::1;18462:114;;;18556:8;18522:18;:31;18541:8;;18550:1;18541:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18522:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18522:31:0;:42;;-1:-1:-1;;18522:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18502:3;::::1;::::0;::::1;:::i;:::-;;;;18462:114;;;;18349:234:::0;;;:::o;18225:115::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;18302:14:::1;:30:::0;18225:115::o;2175:244::-;1930:6;;-1:-1:-1;;;;;1930:6:0;631:10;1930:22;1922:67;;;;-1:-1:-1;;;1922:67:0;;6645:2:1;1922:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1922:67:0;6443:356:1;1922:67:0;-1:-1:-1;;;;;2264:22:0;::::1;2256:73;;;::::0;-1:-1:-1;;;2256:73:0;;9204:2:1;2256:73:0::1;::::0;::::1;9186:21:1::0;9243:2;9223:18;;;9216:30;9282:34;9262:18;;;9255:62;9353:8;9333:18;;;9326:36;9379:19;;2256:73:0::1;9002:402:1::0;2256:73:0::1;2366:6;::::0;;2345:38:::1;::::0;-1:-1:-1;;;;;2345:38:0;;::::1;::::0;2366:6;::::1;::::0;2345:38:::1;::::0;::::1;2394:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;2394:17:0;;;::::1;::::0;;;::::1;::::0;;2175:244::o;9352:369::-;-1:-1:-1;;;;;9479:19:0;;9471:68;;;;-1:-1:-1;;;9471:68:0;;9611:2:1;9471:68:0;;;9593:21:1;9650:2;9630:18;;;9623:30;9689:34;9669:18;;;9662:62;9760:6;9740:18;;;9733:34;9784:19;;9471:68:0;9409:400:1;9471:68:0;-1:-1:-1;;;;;9558:21:0;;9550:68;;;;-1:-1:-1;;;9550:68:0;;10016:2:1;9550:68:0;;;9998:21:1;10055:2;10035:18;;;10028:30;10094:34;10074:18;;;10067:62;10165:4;10145:18;;;10138:32;10187:19;;9550:68:0;9814:398:1;9550:68:0;-1:-1:-1;;;;;9629:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9681:32;;3262:25:1;;;9681:32:0;;3235:18:1;9681:32:0;;;;;;;9352:369;;;:::o;9730:2343::-;-1:-1:-1;;;;;9852:18:0;;9844:68;;;;-1:-1:-1;;;9844:68:0;;10419:2:1;9844:68:0;;;10401:21:1;10458:2;10438:18;;;10431:30;10497:34;10477:18;;;10470:62;10568:7;10548:18;;;10541:35;10593:19;;9844:68:0;10217:401:1;9844:68:0;-1:-1:-1;;;;;9931:16:0;;9923:64;;;;-1:-1:-1;;;9923:64:0;;10825:2:1;9923:64:0;;;10807:21:1;10864:2;10844:18;;;10837:30;10903:34;10883:18;;;10876:62;10974:5;10954:18;;;10947:33;10997:19;;9923:64:0;10623:399:1;9923:64:0;10015:1;10006:6;:10;9998:64;;;;-1:-1:-1;;;9998:64:0;;11229:2:1;9998:64:0;;;11211:21:1;11268:2;11248:18;;;11241:30;11307:34;11287:18;;;11280:62;11378:11;11358:18;;;11351:39;11407:19;;9998:64:0;11027:405:1;9998:64:0;1840:7;1867:6;-1:-1:-1;;;;;10080:15:0;;;1867:6;;10080:15;;;;:32;;-1:-1:-1;1840:7:0;1867:6;-1:-1:-1;;;;;10099:13:0;;;1867:6;;10099:13;;10080:32;10076:1265;;;10170:11;;;;;;;10165:144;;1840:7;1867:6;-1:-1:-1;;;;;10210:15:0;;;1867:6;;10210:15;10202:91;;;;-1:-1:-1;;;10202:91:0;;11639:2:1;10202:91:0;;;11621:21:1;11678:2;11658:18;;;11651:30;11717:34;11697:18;;;11690:62;11788:33;11768:18;;;11761:61;11839:19;;10202:91:0;11437:427:1;10202:91:0;10344:12;;10334:6;:22;;10326:63;;;;-1:-1:-1;;;10326:63:0;;12071:2:1;10326:63:0;;;12053:21:1;12110:2;12090:18;;;12083:30;12149;12129:18;;;12122:58;12197:18;;10326:63:0;11869:352:1;10326:63:0;-1:-1:-1;;;;;10413:10:0;;;;;;:4;:10;;;;;;;;10412:11;:24;;;;-1:-1:-1;;;;;;10428:8:0;;;;;;:4;:8;;;;;;;;10427:9;10412:24;10404:72;;;;-1:-1:-1;;;10404:72:0;;12428:2:1;10404:72:0;;;12410:21:1;12467:2;12447:18;;;12440:30;12506:34;12486:18;;;12479:62;12577:5;12557:18;;;12550:33;12600:19;;10404:72:0;12226:399:1;10404:72:0;10503:13;;-1:-1:-1;;;;;10497:19:0;;;10503:13;;10497:19;10494:146;;10570:14;;10561:6;10545:13;10555:2;10545:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10537:87;;;;-1:-1:-1;;;10537:87:0;;12965:2:1;10537:87:0;;;12947:21:1;13004:2;12984:18;;;12977:30;13043:34;13023:18;;;13016:62;13114:5;13094:18;;;13087:33;13137:19;;10537:87:0;12763:399:1;10537:87:0;10657:28;10688:24;10706:4;10688:9;:24::i;:::-;10766:19;;10830:12;;10657:55;;-1:-1:-1;10742:43:0;;;;10806:36;;10803:124;;10899:12;;10876:35;;10803:124;10948:7;:18;;;;-1:-1:-1;10960:6:0;;;;;;;10959:7;10948:18;:43;;;;-1:-1:-1;10978:13:0;;-1:-1:-1;;;;;10970:21:0;;;10978:13;;10970:21;;10948:43;:58;;;;-1:-1:-1;10995:11:0;;;;;;;10948:58;:87;;;;-1:-1:-1;;;;;;11011:24:0;;;;;;:18;:24;;;;;;;;11010:25;10948:87;:114;;;;-1:-1:-1;;;;;;11040:22:0;;;;;;:18;:22;;;;;;;;11039:23;10948:114;10944:386;;;11083:38;11100:20;11083:16;:38::i;:::-;11169:21;11213:22;;11209:106;;11260:35;11273:21;11260:12;:35::i;:::-;11064:266;10944:386;10114:1227;;10076:1265;-1:-1:-1;;;;;11419:24:0;;11354:12;11419:24;;;:18;:24;;;;;;11369:4;;11419:24;;;:50;;-1:-1:-1;;;;;;11447:22:0;;;;;;:18;:22;;;;;;;;11419:50;11418:102;;;-1:-1:-1;11483:13:0;;-1:-1:-1;;;;;11475:21:0;;;11483:13;;11475:21;;;;:44;;-1:-1:-1;11506:13:0;;-1:-1:-1;;;;;11500:19:0;;;11506:13;;11500:19;;11475:44;11414:597;;;-1:-1:-1;11547:5:0;11414:597;;;11631:13;;-1:-1:-1;;;;;11623:21:0;;;11631:13;;11623:21;:55;;;;-1:-1:-1;11662:15:0;;-1:-1:-1;;;;;11648:30:0;;;11662:15;;11648:30;;11623:55;11620:162;;;11711:14;;11699:9;:26;11754:12;;11744:7;:22;11620:162;11842:13;;-1:-1:-1;;;;;11836:19:0;;;11842:13;;11836:19;:55;;;;-1:-1:-1;11875:15:0;;-1:-1:-1;;;;;11859:32:0;;;11875:15;;11859:32;;11836:55;11832:165;;;11924:15;;11912:9;:27;11968:13;;11958:7;:23;11832:165;12024:41;12039:4;12045:2;12049:6;12057:7;12024:14;:41::i;2787:224::-;2907:7;2943:12;2935:6;;;;2927:29;;;;-1:-1:-1;;;2927:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2967:9:0;2979:5;2983:1;2979;:5;:::i;:::-;2967:17;2787:224;-1:-1:-1;;;;;2787:224:0:o;12574:99::-;12631:17;;:34;;-1:-1:-1;;;;;12631:17:0;;;;:34;;;;;12658:6;;12631:17;:34;:17;:34;12658:6;12631:17;:34;;;;;;;;;;;;;;;;;;;8664:323;8759:7;8817;;8806;:18;;8784:110;;;;-1:-1:-1;;;8784:110:0;;13499:2:1;8784:110:0;;;13481:21:1;13538:2;13518:18;;;13511:30;13577:34;13557:18;;;13550:62;13648:12;13628:18;;;13621:40;13678:19;;8784:110:0;13297:406:1;8784:110:0;8905:19;8927:10;:8;:10::i;:::-;8905:32;-1:-1:-1;8955:24:0;:7;8905:32;8955:11;:24::i;:::-;8948:31;8664:323;-1:-1:-1;;;8664:323:0:o;12082:483::-;6361:6;:13;;;;;;;;12184:16:::1;::::0;;12198:1:::1;12184:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12184:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12184:16:0::1;12160:40;;12229:4;12211;12216:1;12211:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12211:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12255:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12211:7;;12255:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12245:4;12250:1;12245:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12245:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12320:15:::1;::::0;12288:62:::1;::::0;12305:4:::1;::::0;12320:15:::1;12338:11:::0;12288:8:::1;:62::i;:::-;12361:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;12361:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12442:11;;12361:15:::1;::::0;12484:4;;12511::::1;::::0;12531:15:::1;::::0;12361:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6397:6:0;:14;;;;;;-1:-1:-1;;;;12082:483:0:o;13560:282::-;13716:7;13711:28;;13725:14;:12;:14::i;:::-;13750:44;13768:6;13776:9;13787:6;13750:17;:44::i;:::-;13810:7;13805:29;;13819:15;9282:17;;9270:9;:29;9320:15;;9310:7;:25;9226:117;16529:164;16571:7;16592:15;16609;16628:19;:17;:19::i;:::-;16591:56;;-1:-1:-1;16591:56:0;-1:-1:-1;16665:20:0;16591:56;;16665:11;:20::i;:::-;16658:27;;;;16529:164;:::o;3275:132::-;3333:7;3360:39;3364:1;3367;3360:39;;;;;;;;;;;;;;;;;:3;:39::i;8996:221::-;9043:9;;:14;:30;;;;-1:-1:-1;9061:7:0;;:12;9043:30;9039:43;;;8996:221::o;9039:43::-;9115:9;;;9095:17;:29;9153:7;;;9135:15;:25;-1:-1:-1;9174:13:0;;;;9198:11;8996:221::o;13851:610::-;13998:15;14028:23;14066:12;14093:23;14131:12;14158:13;14185:19;14196:7;14185:10;:19::i;:::-;-1:-1:-1;;;;;14233:15:0;;;;;;:7;:15;;;;;;13983:221;;-1:-1:-1;13983:221:0;;-1:-1:-1;13983:221:0;;-1:-1:-1;13983:221:0;-1:-1:-1;13983:221:0;-1:-1:-1;13983:221:0;-1:-1:-1;14233:28:0;;13983:221;14233:19;:28::i;:::-;-1:-1:-1;;;;;14215:15:0;;;;;;;:7;:15;;;;;;:46;;;;14293:18;;;;;;;:39;;14316:15;14293:22;:39::i;:::-;-1:-1:-1;;;;;14272:18:0;;;;;;:7;:18;;;;;:60;14343:16;14353:5;14343:9;:16::i;:::-;14370:23;14382:4;14388;14370:11;:23::i;:::-;14426:9;-1:-1:-1;;;;;14409:44:0;14418:6;-1:-1:-1;;;;;14409:44:0;;14437:15;14409:44;;;;3262:25:1;;3250:2;3235:18;;3116:177;14409:44:0;;;;;;;;13972:489;;;;;;13851:610;;;:::o;16702:257::-;16800:7;;16753;;;;5094:21;16868:20;16800:7;5094:21;16868:11;:20::i;:::-;16858:7;:30;16854:61;;;-1:-1:-1;;16898:7:0;;;5094:21;;-1:-1:-1;16702:257:0;-1:-1:-1;16702:257:0:o;16854:61::-;16934:7;;16943;;-1:-1:-1;16702:257:0;-1:-1:-1;16702:257:0:o;3416:223::-;3536:7;3571:12;3564:5;3556:28;;;;-1:-1:-1;;;3556:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3595:9:0;3607:5;3611:1;3607;:5;:::i;14884:615::-;14984:7;15006;15028;15050;15072;15094;15130:23;15155:12;15169:13;15199:40;15211:7;15220:9;;15231:7;;15199:11;:40::i;:::-;15129:110;;;;;;15250:19;15272:10;:8;:10::i;:::-;15250:32;;15294:15;15311:23;15336:12;15365:46;15377:7;15386:4;15392:5;15399:11;15365;:46::i;:::-;15293:118;;-1:-1:-1;15293:118:0;-1:-1:-1;15293:118:0;-1:-1:-1;15462:15:0;;-1:-1:-1;15479:4:0;;-1:-1:-1;15485:5:0;;-1:-1:-1;;;;;14884:615:0;;;;;;;:::o;2642:136::-;2700:7;2727:43;2731:1;2734;2727:43;;;;;;;;;;;;;;;;;:3;:43::i;2454:179::-;2512:7;;2544:5;2548:1;2544;:5;:::i;:::-;2532:17;;2573:1;2568;:6;;2560:46;;;;-1:-1:-1;;;2560:46:0;;15476:2:1;2560:46:0;;;15458:21:1;15515:2;15495:18;;;15488:30;15554:29;15534:18;;;15527:57;15601:18;;2560:46:0;15274:351:1;14470:211:0;14523:19;14545:10;:8;:10::i;:::-;14523:32;-1:-1:-1;14566:13:0;14582:22;:5;14523:32;14582:9;:22::i;:::-;14656:4;14640:22;;;;:7;:22;;;;;;14566:38;;-1:-1:-1;14640:33:0;;14566:38;14640:26;:33::i;:::-;14631:4;14615:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14470:211:0:o;14690:147::-;14768:7;;:17;;14780:4;14768:11;:17::i;:::-;14758:7;:27;14809:10;;:20;;14824:4;14809:14;:20::i;:::-;14796:10;:33;-1:-1:-1;;14690:147:0:o;15508:469::-;15677:7;;;;15771:30;15797:3;15771:21;:7;15783:8;15771:11;:21::i;:::-;:25;;:30::i;:::-;15756:45;-1:-1:-1;15812:13:0;15828:28;15852:3;15828:19;:7;15840:6;15828:11;:19::i;:28::-;15812:44;-1:-1:-1;15867:23:0;15893:28;15812:44;15893:17;:7;15905:4;15893:11;:17::i;:::-;:21;;:28::i;:::-;15867:54;15957:4;;-1:-1:-1;15963:5:0;;-1:-1:-1;15508:469:0;;-1:-1:-1;;;;;15508:469:0:o;15986:534::-;16180:7;;;;16277:24;:7;16289:11;16277;:24::i;:::-;16259:42;-1:-1:-1;16312:12:0;16327:21;:4;16336:11;16327:8;:21::i;:::-;16312:36;-1:-1:-1;16359:13:0;16375:22;:5;16385:11;16375:9;:22::i;:::-;16359:38;-1:-1:-1;16408:23:0;16434:28;16359:38;16434:17;:7;16446:4;16434:11;:17::i;:28::-;16481:7;;;;-1:-1:-1;16507:4:0;;-1:-1:-1;15986:534:0;;-1:-1:-1;;;;;;;15986:534:0:o;3020:246::-;3078:7;3102:6;3098:47;;-1:-1:-1;3132:1:0;3125:8;;3098:47;3155:9;3167:5;3171:1;3167;:5;:::i;:::-;3155:17;-1:-1:-1;3200:1:0;3191:5;3195:1;3155:17;3191:5;:::i;:::-;:10;3183:56;;;;-1:-1:-1;;;3183:56:0;;16065:2:1;3183:56:0;;;16047:21:1;16104:2;16084:18;;;16077:30;16143:34;16123:18;;;16116:62;16214:3;16194:18;;;16187:31;16235:19;;3183:56:0;15863:397:1;14:184;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:154;-1:-1:-1;;;;;282:5:1;278:54;271:5;268:65;258:93;;347:1;344;337:12;362:134;430:20;;459:31;430:20;459:31;:::i;:::-;362:134;;;:::o;501:1180::-;585:6;616:2;659;647:9;638:7;634:23;630:32;627:52;;;675:1;672;665:12;627:52;715:9;702:23;744:18;785:2;777:6;774:14;771:34;;;801:1;798;791:12;771:34;839:6;828:9;824:22;814:32;;884:7;877:4;873:2;869:13;865:27;855:55;;906:1;903;896:12;855:55;942:2;929:16;964:2;960;957:10;954:36;;;970:18;;:::i;:::-;1016:2;1013:1;1009:10;1048:2;1042:9;1107:66;1102:2;1098;1094:11;1090:84;1082:6;1078:97;1225:6;1213:10;1210:22;1205:2;1193:10;1190:18;1187:46;1184:72;;;1236:18;;:::i;:::-;1272:2;1265:22;1322:18;;;1356:15;;;;-1:-1:-1;1398:11:1;;;1394:20;;;1426:19;;;1423:39;;;1458:1;1455;1448:12;1423:39;1482:11;;;;1502:148;1518:6;1513:3;1510:15;1502:148;;;1584:23;1603:3;1584:23;:::i;:::-;1572:36;;1535:12;;;;1628;;;;1502:148;;;1669:6;501:1180;-1:-1:-1;;;;;;;;501:1180:1:o;1686:656::-;1798:4;1827:2;1856;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1956:1;1966:140;1980:6;1977:1;1974:13;1966:140;;;2075:14;;;2071:23;;2065:30;2041:17;;;2060:2;2037:26;2030:66;1995:10;;1966:140;;;2124:6;2121:1;2118:13;2115:91;;;2194:1;2189:2;2180:6;2169:9;2165:22;2161:31;2154:42;2115:91;-1:-1:-1;2258:2:1;2246:15;2263:66;2242:88;2227:104;;;;2333:2;2223:113;;1686:656;-1:-1:-1;;;1686:656:1:o;2347:315::-;2415:6;2423;2476:2;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2531:9;2518:23;2550:31;2575:5;2550:31;:::i;:::-;2600:5;2652:2;2637:18;;;;2624:32;;-1:-1:-1;;;2347:315:1:o;3298:456::-;3375:6;3383;3391;3444:2;3432:9;3423:7;3419:23;3415:32;3412:52;;;3460:1;3457;3450:12;3412:52;3499:9;3486:23;3518:31;3543:5;3518:31;:::i;:::-;3568:5;-1:-1:-1;3625:2:1;3610:18;;3597:32;3638:33;3597:32;3638:33;:::i;:::-;3298:456;;3690:7;;-1:-1:-1;;;3744:2:1;3729:18;;;;3716:32;;3298:456::o;4179:247::-;4238:6;4291:2;4279:9;4270:7;4266:23;4262:32;4259:52;;;4307:1;4304;4297:12;4259:52;4346:9;4333:23;4365:31;4390:5;4365:31;:::i;4431:160::-;4496:20;;4552:13;;4545:21;4535:32;;4525:60;;4581:1;4578;4571:12;4596:180;4652:6;4705:2;4693:9;4684:7;4680:23;4676:32;4673:52;;;4721:1;4718;4711:12;4673:52;4744:26;4760:9;4744:26;:::i;4781:180::-;4840:6;4893:2;4881:9;4872:7;4868:23;4864:32;4861:52;;;4909:1;4906;4899:12;4861:52;-1:-1:-1;4932:23:1;;4781:180;-1:-1:-1;4781:180:1:o;4966:385::-;5052:6;5060;5068;5076;5129:3;5117:9;5108:7;5104:23;5100:33;5097:53;;;5146:1;5143;5136:12;5097:53;-1:-1:-1;;5169:23:1;;;5239:2;5224:18;;5211:32;;-1:-1:-1;5290:2:1;5275:18;;5262:32;;5341:2;5326:18;5313:32;;-1:-1:-1;4966:385:1;-1:-1:-1;4966:385:1:o;5356:689::-;5448:6;5456;5464;5517:2;5505:9;5496:7;5492:23;5488:32;5485:52;;;5533:1;5530;5523:12;5485:52;5573:9;5560:23;5602:18;5643:2;5635:6;5632:14;5629:34;;;5659:1;5656;5649:12;5629:34;5697:6;5686:9;5682:22;5672:32;;5742:7;5735:4;5731:2;5727:13;5723:27;5713:55;;5764:1;5761;5754:12;5713:55;5804:2;5791:16;5830:2;5822:6;5819:14;5816:34;;;5846:1;5843;5836:12;5816:34;5901:7;5894:4;5884:6;5881:1;5877:14;5873:2;5869:23;5865:34;5862:47;5859:67;;;5922:1;5919;5912:12;5859:67;5953:4;5945:13;;;;-1:-1:-1;5977:6:1;-1:-1:-1;6002:37:1;;6018:20;;;-1:-1:-1;6002:37:1;:::i;:::-;5992:47;;5356:689;;;;;:::o;6050:388::-;6118:6;6126;6179:2;6167:9;6158:7;6154:23;6150:32;6147:52;;;6195:1;6192;6185:12;6147:52;6234:9;6221:23;6253:31;6278:5;6253:31;:::i;:::-;6303:5;-1:-1:-1;6360:2:1;6345:18;;6332:32;6373:33;6332:32;6373:33;:::i;:::-;6425:7;6415:17;;;6050:388;;;;;:::o;6804:184::-;6856:77;6853:1;6846:88;6953:4;6950:1;6943:15;6977:4;6974:1;6967:15;6993:184;7045:77;7042:1;7035:88;7142:4;7139:1;7132:15;7166:4;7163:1;7156:15;7182:195;7221:3;7252:66;7245:5;7242:77;7239:103;;;7322:18;;:::i;:::-;-1:-1:-1;7369:1:1;7358:13;;7182:195::o;12630:128::-;12670:3;12701:1;12697:6;12694:1;12691:13;12688:39;;;12707:18;;:::i;:::-;-1:-1:-1;12743:9:1;;12630:128::o;13167:125::-;13207:4;13235:1;13232;13229:8;13226:34;;;13240:18;;:::i;:::-;-1:-1:-1;13277:9:1;;13167:125::o;13708:251::-;13778:6;13831:2;13819:9;13810:7;13806:23;13802:32;13799:52;;;13847:1;13844;13837:12;13799:52;13879:9;13873:16;13898:31;13923:5;13898:31;:::i;13964:1026::-;14226:4;14274:3;14263:9;14259:19;14305:6;14294:9;14287:25;14331:2;14369:6;14364:2;14353:9;14349:18;14342:34;14412:3;14407:2;14396:9;14392:18;14385:31;14436:6;14471;14465:13;14502:6;14494;14487:22;14540:3;14529:9;14525:19;14518:26;;14579:2;14571:6;14567:15;14553:29;;14600:1;14610:218;14624:6;14621:1;14618:13;14610:218;;;14689:13;;-1:-1:-1;;;;;14685:62:1;14673:75;;14803:15;;;;14768:12;;;;14646:1;14639:9;14610:218;;;-1:-1:-1;;;;;;;14884:55:1;;;;14879:2;14864:18;;14857:83;-1:-1:-1;;;14971:3:1;14956:19;14949:35;14845:3;13964:1026;-1:-1:-1;;;13964:1026:1:o;14995:274::-;15035:1;15061;15051:189;;15096:77;15093:1;15086:88;15197:4;15194:1;15187:15;15225:4;15222:1;15215:15;15051:189;-1:-1:-1;15254:9:1;;14995:274::o;15630:228::-;15670:7;15796:1;15728:66;15724:74;15721:1;15718:81;15713:1;15706:9;15699:17;15695:105;15692:131;;;15803:18;;:::i;:::-;-1:-1:-1;15843:9:1;;15630:228::o
Swarm Source
ipfs://db7ffa0c72ff59797d77beea2664d9da5fbcbaa5522c4ee2b182cf288f71b742
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.