ERC-20
Overview
Max Total Supply
1,000,000,000,000 BLOOP
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
15,645,850,877.024256336 BLOOPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GAWRGURA
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-22 */ // https://t.me/gawrguraETH // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; 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 GAWRGURA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "GAWR Gura"; string private constant _symbol = "BLOOP"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 7; uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 7; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 1; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _marketingAddress = payable(0x8525E2470D3f14057D92dC49A09BcC317175E875); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private removelimit = false; uint256 public _maxTxAmount = 2e10 * 10**9; uint256 public _maxWalletSize = 2e10 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[deadAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function createPair() external onlyOwner() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } 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 && _burnFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _redisFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; _burnFee = _previousburnFee; } 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"); require(!_isSniper[to], 'Stop sniping!'); require(!_isSniper[from], 'Stop sniping!'); require(!_isSniper[_msgSender()], 'Stop sniping!'); if (from != owner() && to != owner()) { if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress && !removelimit) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress && !removelimit) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 burntAmount = 0; if (_burnFee > 0) { burntAmount = contractTokenBalance.mul(_burnFee).div(10**2); burnTokens(burntAmount); } swapTokensForEth(contractTokenBalance - burntAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; if (block.timestamp == launchTime) { _isSniper[to] = true; } } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function burnTokens(uint256 burntAmount) private { _transfer(address(this), deadAddress, burntAmount); } 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() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setRemovelimit() external onlyOwner{ removelimit = true; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _marketingAddress); _marketingAddress = payable(marketingAddress); _isExcludedFromFee[_marketingAddress] = true; } function manualswap(uint256 amount) external { require(_msgSender() == _marketingAddress); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function addSniper(address[] memory snipers) external onlyOwner { for(uint256 i= 0; i< snipers.length; i++){ _isSniper[snipers[i]] = true; } } function removeSniper(address sniper) external onlyOwner { if (_isSniper[sniper]) { _isSniper[sniper] = false; } } function isSniper(address sniper) external view returns (bool){ return _isSniper[sniper]; } function manualsend() external { require(_msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } 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 toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner { _maxWalletSize = maxWalletSize; } function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner { _taxFeeOnBuy = amountBuy; _taxFeeOnSell = amountSell; } function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner { _redisFeeOnBuy = amountRefBuy; _redisFeeOnSell = amountRefSell; } function setBurnFee(uint256 amount) external onlyOwner { _burnFee = amount; } }
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":[],"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":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","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":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRemovelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"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
60806040526200001b683635c9adc5dea00000600019620001d6565b6200002990600019620001f9565b60079081556001600b819055600c829055600d819055600e829055600f819055601082905560118190556012819055601391909155601455601580546001600160a01b031916738525e2470d3f14057d92dc49a09bcc317175e8751790556017805462ffffff60a81b1916600160b01b1790556801158e460913d00000601881905560195564e8d4a51000601a55348015620000c457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360008181526002602090815260408083209490945581546001600160a01b039081168352600682528483208054600160ff19918216811790925530855286852080548216831790556015549092168452858420805483168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549092161790559251683635c9adc5dea000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200021f565b600082620001f457634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200021a57634e487b7160e01b600052601160045260246000fd5b500390565b6121e4806200022f6000396000f3fe6080604052600436106101fd5760003560e01c806370a082311161010d5780638f9a55c0116100a0578063c55284901161006f578063c5528490146105c0578063dac91a68146105e0578063dd62ed3e146105f5578063ea1644d51461063b578063f2fde38b1461065b57600080fd5b80638f9a55c01461054757806395d89b411461055d5780639e78fb4f1461058b578063a9059cbb146105a057600080fd5b80637c519ffb116100dc5780637c519ffb146104de5780637d1db4a5146104f3578063881dce60146105095780638da5cb5b1461052957600080fd5b806370a0823114610473578063715018a61461049357806374010ece146104a8578063790ca413146104c857600080fd5b80632fd689e31161019057806349bd5a5e1161015f57806349bd5a5e146103de5780634bf2c7c9146103fe5780635d098b381461041e5780636d8aa8f81461043e5780636fc3eaec1461045e57600080fd5b80632fd689e31461036c578063313ce5671461038257806333251a0b1461039e57806338eea22d146103be57600080fd5b806318160ddd116101cc57806318160ddd146102ee57806323b872dd1461031457806327c8f8351461033457806328bb665a1461034a57600080fd5b806306fdde0314610209578063095ea7b31461024d5780630f3a325f1461027d5780631694505e146102b657600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600981526847415752204775726160b81b60208201525b6040516102449190611d70565b60405180910390f35b34801561025957600080fd5b5061026d610268366004611dea565b61067b565b6040519015158152602001610244565b34801561028957600080fd5b5061026d610298366004611e16565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102c257600080fd5b506016546102d6906001600160a01b031681565b6040516001600160a01b039091168152602001610244565b3480156102fa57600080fd5b50683635c9adc5dea000005b604051908152602001610244565b34801561032057600080fd5b5061026d61032f366004611e33565b610692565b34801561034057600080fd5b506102d661dead81565b34801561035657600080fd5b5061036a610365366004611e8a565b6106fb565b005b34801561037857600080fd5b50610306601a5481565b34801561038e57600080fd5b5060405160098152602001610244565b3480156103aa57600080fd5b5061036a6103b9366004611e16565b61079a565b3480156103ca57600080fd5b5061036a6103d9366004611f4f565b610809565b3480156103ea57600080fd5b506017546102d6906001600160a01b031681565b34801561040a57600080fd5b5061036a610419366004611f71565b61083e565b34801561042a57600080fd5b5061036a610439366004611e16565b61086d565b34801561044a57600080fd5b5061036a610459366004611f8a565b6108c7565b34801561046a57600080fd5b5061036a61090f565b34801561047f57600080fd5b5061030661048e366004611e16565b610939565b34801561049f57600080fd5b5061036a61095b565b3480156104b457600080fd5b5061036a6104c3366004611f71565b6109cf565b3480156104d457600080fd5b50610306600a5481565b3480156104ea57600080fd5b5061036a6109fe565b3480156104ff57600080fd5b5061030660185481565b34801561051557600080fd5b5061036a610524366004611f71565b610a58565b34801561053557600080fd5b506000546001600160a01b03166102d6565b34801561055357600080fd5b5061030660195481565b34801561056957600080fd5b506040805180820190915260058152640424c4f4f560dc1b6020820152610237565b34801561059757600080fd5b5061036a610ad4565b3480156105ac57600080fd5b5061026d6105bb366004611dea565b610c8c565b3480156105cc57600080fd5b5061036a6105db366004611f4f565b610c99565b3480156105ec57600080fd5b5061036a610cce565b34801561060157600080fd5b50610306610610366004611fac565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064757600080fd5b5061036a610656366004611f71565b610d0d565b34801561066757600080fd5b5061036a610676366004611e16565b610d3c565b6000610688338484610e26565b5060015b92915050565b600061069f848484610f4a565b6106f184336106ec85604051806060016040528060288152602001612187602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611622565b610e26565b5060019392505050565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611fe5565b60405180910390fd5b60005b8151811015610796576001600960008484815181106107525761075261201a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078e81612046565b915050610731565b5050565b6000546001600160a01b031633146107c45760405162461bcd60e51b815260040161072590611fe5565b6001600160a01b03811660009081526009602052604090205460ff1615610806576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161072590611fe5565b600b91909155600d55565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161072590611fe5565b601155565b6015546001600160a01b0316336001600160a01b03161461088d57600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161072590611fe5565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461092f57600080fd5b476108068161165c565b6001600160a01b03811660009081526002602052604081205461068c90611696565b6000546001600160a01b031633146109855760405162461bcd60e51b815260040161072590611fe5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f95760405162461bcd60e51b815260040161072590611fe5565b601855565b6000546001600160a01b03163314610a285760405162461bcd60e51b815260040161072590611fe5565b601754600160a01b900460ff1615610a3f57600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610a7857600080fd5b610a8130610939565b8111158015610a905750600081115b610acb5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610725565b6108068161171a565b6000546001600160a01b03163314610afe5760405162461bcd60e51b815260040161072590611fe5565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b879190612061565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf89190612061565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c699190612061565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6000610688338484610f4a565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161072590611fe5565b600c91909155600e55565b6000546001600160a01b03163314610cf85760405162461bcd60e51b815260040161072590611fe5565b6017805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610d375760405162461bcd60e51b815260040161072590611fe5565b601955565b6000546001600160a01b03163314610d665760405162461bcd60e51b815260040161072590611fe5565b6001600160a01b038116610dcb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610725565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b038216610ee95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166110105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b600081116110725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610725565b6001600160a01b03821660009081526009602052604090205460ff16156110ab5760405162461bcd60e51b81526004016107259061207e565b6001600160a01b03831660009081526009602052604090205460ff16156110e45760405162461bcd60e51b81526004016107259061207e565b3360009081526009602052604090205460ff16156111145760405162461bcd60e51b81526004016107259061207e565b6000546001600160a01b0384811691161480159061114057506000546001600160a01b03838116911614155b156114cc57601754600160a01b900460ff1661119e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610725565b6017546001600160a01b0383811691161480156111c957506016546001600160a01b03848116911614155b15611291576001600160a01b03821630148015906111f057506001600160a01b0383163014155b801561120a57506015546001600160a01b03838116911614155b801561122457506015546001600160a01b03848116911614155b801561123a5750601754600160b81b900460ff16155b15611291576018548111156112915760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610725565b6017546001600160a01b038381169116148015906112bd57506015546001600160a01b03838116911614155b80156112d257506001600160a01b0382163014155b80156112e957506001600160a01b03821661dead14155b80156112ff5750601754600160b81b900460ff16155b156113c6576018548111156113565760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610725565b6019548161136384610939565b61136d91906120a5565b106113c65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610725565b60006113d130610939565b601a5490915081118080156113f05750601754600160a81b900460ff16155b801561140a57506017546001600160a01b03868116911614155b801561141f5750601754600160b01b900460ff165b801561144457506001600160a01b03851660009081526006602052604090205460ff16155b801561146957506001600160a01b03841660009081526006602052604090205460ff16155b156114c957601154600090156114a45761149960646114936011548661189490919063ffffffff16565b90611913565b90506114a481611955565b6114b66114b182856120bd565b61171a565b4780156114c6576114c64761165c565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061150e57506001600160a01b03831660009081526006602052604090205460ff165b8061154057506017546001600160a01b0385811691161480159061154057506017546001600160a01b03848116911614155b1561154d57506000611610565b6017546001600160a01b03858116911614801561157857506016546001600160a01b03848116911614155b156115d3576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a5414156115d3576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b0384811691161480156115fe57506016546001600160a01b03858116911614155b1561161057600d54600f55600e546010555b61161c84848484611962565b50505050565b600081848411156116465760405162461bcd60e51b81526004016107259190611d70565b50600061165384866120bd565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610796573d6000803e3d6000fd5b60006007548211156116fd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610725565b6000611707611996565b90506117138382611913565b9392505050565b6017805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117625761176261201a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117df9190612061565b816001815181106117f2576117f261201a565b6001600160a01b0392831660209182029290920101526016546118189130911684610e26565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906118519085906000908690309042906004016120d4565b600060405180830381600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826118a35750600061068c565b60006118af8385612145565b9050826118bc8583612164565b146117135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610725565b600061171383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b9565b6108063061dead83610f4a565b8061196f5761196f6119e7565b61197a848484611a2c565b8061161c5761161c601254600f55601354601055601454601155565b60008060006119a3611b23565b90925090506119b28282611913565b9250505090565b600081836119da5760405162461bcd60e51b81526004016107259190611d70565b5060006116538486612164565b600f541580156119f75750601054155b8015611a035750601154155b15611a0a57565b600f805460125560108054601355601180546014556000928390559082905555565b600080600080600080611a3e87611b65565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a709087611bc2565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a9f9086611c04565b6001600160a01b038916600090815260026020526040902055611ac181611c63565b611acb8483611cad565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1091815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611b3f8282611913565b821015611b5c57505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611b828a600f54601054611cd1565b9250925092506000611b92611996565b90506000806000611ba58e878787611d20565b919e509c509a509598509396509194505050505091939550919395565b600061171383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611622565b600080611c1183856120a5565b9050838110156117135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610725565b6000611c6d611996565b90506000611c7b8383611894565b30600090815260026020526040902054909150611c989082611c04565b30600090815260026020526040902055505050565b600754611cba9083611bc2565b600755600854611cca9082611c04565b6008555050565b6000808080611ce560646114938989611894565b90506000611cf860646114938a89611894565b90506000611d1082611d0a8b86611bc2565b90611bc2565b9992985090965090945050505050565b6000808080611d2f8886611894565b90506000611d3d8887611894565b90506000611d4b8888611894565b90506000611d5d82611d0a8686611bc2565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611d9d57858101830151858201604001528201611d81565b81811115611daf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461080657600080fd5b8035611de581611dc5565b919050565b60008060408385031215611dfd57600080fd5b8235611e0881611dc5565b946020939093013593505050565b600060208284031215611e2857600080fd5b813561171381611dc5565b600080600060608486031215611e4857600080fd5b8335611e5381611dc5565b92506020840135611e6381611dc5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e9d57600080fd5b823567ffffffffffffffff80821115611eb557600080fd5b818501915085601f830112611ec957600080fd5b813581811115611edb57611edb611e74565b8060051b604051601f19603f83011681018181108582111715611f0057611f00611e74565b604052918252848201925083810185019188831115611f1e57600080fd5b938501935b82851015611f4357611f3485611dda565b84529385019392850192611f23565b98975050505050505050565b60008060408385031215611f6257600080fd5b50508035926020909101359150565b600060208284031215611f8357600080fd5b5035919050565b600060208284031215611f9c57600080fd5b8135801515811461171357600080fd5b60008060408385031215611fbf57600080fd5b8235611fca81611dc5565b91506020830135611fda81611dc5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561205a5761205a612030565b5060010190565b60006020828403121561207357600080fd5b815161171381611dc5565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600082198211156120b8576120b8612030565b500190565b6000828210156120cf576120cf612030565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121245784516001600160a01b0316835293830193918301916001016120ff565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561215f5761215f612030565b500290565b60008261218157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122054d3fcad8ee1b2231cf5e0c9a3c80784c4b2baf7ba90d092bdf62fca13cb464964736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c806370a082311161010d5780638f9a55c0116100a0578063c55284901161006f578063c5528490146105c0578063dac91a68146105e0578063dd62ed3e146105f5578063ea1644d51461063b578063f2fde38b1461065b57600080fd5b80638f9a55c01461054757806395d89b411461055d5780639e78fb4f1461058b578063a9059cbb146105a057600080fd5b80637c519ffb116100dc5780637c519ffb146104de5780637d1db4a5146104f3578063881dce60146105095780638da5cb5b1461052957600080fd5b806370a0823114610473578063715018a61461049357806374010ece146104a8578063790ca413146104c857600080fd5b80632fd689e31161019057806349bd5a5e1161015f57806349bd5a5e146103de5780634bf2c7c9146103fe5780635d098b381461041e5780636d8aa8f81461043e5780636fc3eaec1461045e57600080fd5b80632fd689e31461036c578063313ce5671461038257806333251a0b1461039e57806338eea22d146103be57600080fd5b806318160ddd116101cc57806318160ddd146102ee57806323b872dd1461031457806327c8f8351461033457806328bb665a1461034a57600080fd5b806306fdde0314610209578063095ea7b31461024d5780630f3a325f1461027d5780631694505e146102b657600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600981526847415752204775726160b81b60208201525b6040516102449190611d70565b60405180910390f35b34801561025957600080fd5b5061026d610268366004611dea565b61067b565b6040519015158152602001610244565b34801561028957600080fd5b5061026d610298366004611e16565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102c257600080fd5b506016546102d6906001600160a01b031681565b6040516001600160a01b039091168152602001610244565b3480156102fa57600080fd5b50683635c9adc5dea000005b604051908152602001610244565b34801561032057600080fd5b5061026d61032f366004611e33565b610692565b34801561034057600080fd5b506102d661dead81565b34801561035657600080fd5b5061036a610365366004611e8a565b6106fb565b005b34801561037857600080fd5b50610306601a5481565b34801561038e57600080fd5b5060405160098152602001610244565b3480156103aa57600080fd5b5061036a6103b9366004611e16565b61079a565b3480156103ca57600080fd5b5061036a6103d9366004611f4f565b610809565b3480156103ea57600080fd5b506017546102d6906001600160a01b031681565b34801561040a57600080fd5b5061036a610419366004611f71565b61083e565b34801561042a57600080fd5b5061036a610439366004611e16565b61086d565b34801561044a57600080fd5b5061036a610459366004611f8a565b6108c7565b34801561046a57600080fd5b5061036a61090f565b34801561047f57600080fd5b5061030661048e366004611e16565b610939565b34801561049f57600080fd5b5061036a61095b565b3480156104b457600080fd5b5061036a6104c3366004611f71565b6109cf565b3480156104d457600080fd5b50610306600a5481565b3480156104ea57600080fd5b5061036a6109fe565b3480156104ff57600080fd5b5061030660185481565b34801561051557600080fd5b5061036a610524366004611f71565b610a58565b34801561053557600080fd5b506000546001600160a01b03166102d6565b34801561055357600080fd5b5061030660195481565b34801561056957600080fd5b506040805180820190915260058152640424c4f4f560dc1b6020820152610237565b34801561059757600080fd5b5061036a610ad4565b3480156105ac57600080fd5b5061026d6105bb366004611dea565b610c8c565b3480156105cc57600080fd5b5061036a6105db366004611f4f565b610c99565b3480156105ec57600080fd5b5061036a610cce565b34801561060157600080fd5b50610306610610366004611fac565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064757600080fd5b5061036a610656366004611f71565b610d0d565b34801561066757600080fd5b5061036a610676366004611e16565b610d3c565b6000610688338484610e26565b5060015b92915050565b600061069f848484610f4a565b6106f184336106ec85604051806060016040528060288152602001612187602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611622565b610e26565b5060019392505050565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611fe5565b60405180910390fd5b60005b8151811015610796576001600960008484815181106107525761075261201a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078e81612046565b915050610731565b5050565b6000546001600160a01b031633146107c45760405162461bcd60e51b815260040161072590611fe5565b6001600160a01b03811660009081526009602052604090205460ff1615610806576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161072590611fe5565b600b91909155600d55565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161072590611fe5565b601155565b6015546001600160a01b0316336001600160a01b03161461088d57600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161072590611fe5565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461092f57600080fd5b476108068161165c565b6001600160a01b03811660009081526002602052604081205461068c90611696565b6000546001600160a01b031633146109855760405162461bcd60e51b815260040161072590611fe5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f95760405162461bcd60e51b815260040161072590611fe5565b601855565b6000546001600160a01b03163314610a285760405162461bcd60e51b815260040161072590611fe5565b601754600160a01b900460ff1615610a3f57600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610a7857600080fd5b610a8130610939565b8111158015610a905750600081115b610acb5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610725565b6108068161171a565b6000546001600160a01b03163314610afe5760405162461bcd60e51b815260040161072590611fe5565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b879190612061565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf89190612061565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c699190612061565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6000610688338484610f4a565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161072590611fe5565b600c91909155600e55565b6000546001600160a01b03163314610cf85760405162461bcd60e51b815260040161072590611fe5565b6017805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610d375760405162461bcd60e51b815260040161072590611fe5565b601955565b6000546001600160a01b03163314610d665760405162461bcd60e51b815260040161072590611fe5565b6001600160a01b038116610dcb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610725565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b038216610ee95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166110105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b600081116110725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610725565b6001600160a01b03821660009081526009602052604090205460ff16156110ab5760405162461bcd60e51b81526004016107259061207e565b6001600160a01b03831660009081526009602052604090205460ff16156110e45760405162461bcd60e51b81526004016107259061207e565b3360009081526009602052604090205460ff16156111145760405162461bcd60e51b81526004016107259061207e565b6000546001600160a01b0384811691161480159061114057506000546001600160a01b03838116911614155b156114cc57601754600160a01b900460ff1661119e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610725565b6017546001600160a01b0383811691161480156111c957506016546001600160a01b03848116911614155b15611291576001600160a01b03821630148015906111f057506001600160a01b0383163014155b801561120a57506015546001600160a01b03838116911614155b801561122457506015546001600160a01b03848116911614155b801561123a5750601754600160b81b900460ff16155b15611291576018548111156112915760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610725565b6017546001600160a01b038381169116148015906112bd57506015546001600160a01b03838116911614155b80156112d257506001600160a01b0382163014155b80156112e957506001600160a01b03821661dead14155b80156112ff5750601754600160b81b900460ff16155b156113c6576018548111156113565760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610725565b6019548161136384610939565b61136d91906120a5565b106113c65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610725565b60006113d130610939565b601a5490915081118080156113f05750601754600160a81b900460ff16155b801561140a57506017546001600160a01b03868116911614155b801561141f5750601754600160b01b900460ff165b801561144457506001600160a01b03851660009081526006602052604090205460ff16155b801561146957506001600160a01b03841660009081526006602052604090205460ff16155b156114c957601154600090156114a45761149960646114936011548661189490919063ffffffff16565b90611913565b90506114a481611955565b6114b66114b182856120bd565b61171a565b4780156114c6576114c64761165c565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061150e57506001600160a01b03831660009081526006602052604090205460ff165b8061154057506017546001600160a01b0385811691161480159061154057506017546001600160a01b03848116911614155b1561154d57506000611610565b6017546001600160a01b03858116911614801561157857506016546001600160a01b03848116911614155b156115d3576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a5414156115d3576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b0384811691161480156115fe57506016546001600160a01b03858116911614155b1561161057600d54600f55600e546010555b61161c84848484611962565b50505050565b600081848411156116465760405162461bcd60e51b81526004016107259190611d70565b50600061165384866120bd565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610796573d6000803e3d6000fd5b60006007548211156116fd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610725565b6000611707611996565b90506117138382611913565b9392505050565b6017805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117625761176261201a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117df9190612061565b816001815181106117f2576117f261201a565b6001600160a01b0392831660209182029290920101526016546118189130911684610e26565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906118519085906000908690309042906004016120d4565b600060405180830381600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826118a35750600061068c565b60006118af8385612145565b9050826118bc8583612164565b146117135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610725565b600061171383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b9565b6108063061dead83610f4a565b8061196f5761196f6119e7565b61197a848484611a2c565b8061161c5761161c601254600f55601354601055601454601155565b60008060006119a3611b23565b90925090506119b28282611913565b9250505090565b600081836119da5760405162461bcd60e51b81526004016107259190611d70565b5060006116538486612164565b600f541580156119f75750601054155b8015611a035750601154155b15611a0a57565b600f805460125560108054601355601180546014556000928390559082905555565b600080600080600080611a3e87611b65565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a709087611bc2565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a9f9086611c04565b6001600160a01b038916600090815260026020526040902055611ac181611c63565b611acb8483611cad565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1091815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611b3f8282611913565b821015611b5c57505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611b828a600f54601054611cd1565b9250925092506000611b92611996565b90506000806000611ba58e878787611d20565b919e509c509a509598509396509194505050505091939550919395565b600061171383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611622565b600080611c1183856120a5565b9050838110156117135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610725565b6000611c6d611996565b90506000611c7b8383611894565b30600090815260026020526040902054909150611c989082611c04565b30600090815260026020526040902055505050565b600754611cba9083611bc2565b600755600854611cca9082611c04565b6008555050565b6000808080611ce560646114938989611894565b90506000611cf860646114938a89611894565b90506000611d1082611d0a8b86611bc2565b90611bc2565b9992985090965090945050505050565b6000808080611d2f8886611894565b90506000611d3d8887611894565b90506000611d4b8888611894565b90506000611d5d82611d0a8686611bc2565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611d9d57858101830151858201604001528201611d81565b81811115611daf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461080657600080fd5b8035611de581611dc5565b919050565b60008060408385031215611dfd57600080fd5b8235611e0881611dc5565b946020939093013593505050565b600060208284031215611e2857600080fd5b813561171381611dc5565b600080600060608486031215611e4857600080fd5b8335611e5381611dc5565b92506020840135611e6381611dc5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e9d57600080fd5b823567ffffffffffffffff80821115611eb557600080fd5b818501915085601f830112611ec957600080fd5b813581811115611edb57611edb611e74565b8060051b604051601f19603f83011681018181108582111715611f0057611f00611e74565b604052918252848201925083810185019188831115611f1e57600080fd5b938501935b82851015611f4357611f3485611dda565b84529385019392850192611f23565b98975050505050505050565b60008060408385031215611f6257600080fd5b50508035926020909101359150565b600060208284031215611f8357600080fd5b5035919050565b600060208284031215611f9c57600080fd5b8135801515811461171357600080fd5b60008060408385031215611fbf57600080fd5b8235611fca81611dc5565b91506020830135611fda81611dc5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561205a5761205a612030565b5060010190565b60006020828403121561207357600080fd5b815161171381611dc5565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600082198211156120b8576120b8612030565b500190565b6000828210156120cf576120cf612030565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121245784516001600160a01b0316835293830193918301916001016120ff565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561215f5761215f612030565b500290565b60008261218157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122054d3fcad8ee1b2231cf5e0c9a3c80784c4b2baf7ba90d092bdf62fca13cb464964736f6c634300080c0033
Deployed Bytecode Sourcemap
4170:14893:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6894:83;;;;;;;;;;-1:-1:-1;6964:5:0;;;;;;;;;;;;-1:-1:-1;;;6964:5:0;;;;6894:83;;;;;;;:::i;:::-;;;;;;;;7819:193;;;;;;;;;;-1:-1:-1;7819:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7819:193:0;1211:187:1;14522:105:0;;;;;;;;;;-1:-1:-1;14522:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14602:17:0;14579:4;14602:17;;;:9;:17;;;;;;;;;14522:105;5623:41;;;;;;;;;;-1:-1:-1;5623:41:0;;;;-1:-1:-1;;;;;5623:41:0;;;;;;-1:-1:-1;;;;;1845:32:1;;;1827:51;;1815:2;1800:18;5623:41:0;1655:229:1;7171:95:0;;;;;;;;;;-1:-1:-1;4774:12:0;7171:95;;;2035:25:1;;;2023:2;2008:18;7171:95:0;1889:177:1;8020:446:0;;;;;;;;;;-1:-1:-1;8020:446:0;;;;;:::i;:::-;;:::i;5534:80::-;;;;;;;;;;;;5572:42;5534:80;;14164:192;;;;;;;;;;-1:-1:-1;14164:192:0;;;;;:::i;:::-;;:::i;:::-;;5961:49;;;;;;;;;;;;;;;;7080:83;;;;;;;;;;-1:-1:-1;7080:83:0;;4397:1;4140:36:1;;4128:2;4113:18;7080:83:0;3998:184:1;14364:150:0;;;;;;;;;;-1:-1:-1;14364:150:0;;;;;:::i;:::-;;:::i;18784:173::-;;;;;;;;;;-1:-1:-1;18784:173:0;;;;;:::i;:::-;;:::i;5671:28::-;;;;;;;;;;-1:-1:-1;5671:28:0;;;;-1:-1:-1;;;;;5671:28:0;;;18965:91;;;;;;;;;;-1:-1:-1;18965:91:0;;;;;:::i;:::-;;:::i;13682:235::-;;;;;;;;;;-1:-1:-1;13682:235:0;;;;;:::i;:::-;;:::i;18259:101::-;;;;;;;;;;-1:-1:-1;18259:101:0;;;;;:::i;:::-;;:::i;14635:196::-;;;;;;;;;;;;;:::i;7274:138::-;;;;;;;;;;-1:-1:-1;7274:138:0;;;;;:::i;:::-;;:::i;1649:148::-;;;;;;;;;;;;;:::i;18372:110::-;;;;;;;;;;-1:-1:-1;18372:110:0;;;;;:::i;:::-;;:::i;4931:25::-;;;;;;;;;;;;;;;;13436:147;;;;;;;;;;;;;:::i;5860:42::-;;;;;;;;;;;;;;;;13931:225;;;;;;;;;;-1:-1:-1;13931:225:0;;;;;:::i;:::-;;:::i;1435:79::-;;;;;;;;;;-1:-1:-1;1473:7:0;1500:6;-1:-1:-1;;;;;1500:6:0;1435:79;;5910:44;;;;;;;;;;;;;;;;6985:87;;;;;;;;;;-1:-1:-1;7057:7:0;;;;;;;;;;;;-1:-1:-1;;;7057:7:0;;;;6985:87;;6542:344;;;;;;;;;;;;;:::i;7420:199::-;;;;;;;;;;-1:-1:-1;7420:199:0;;;;;:::i;:::-;;:::i;18619:157::-;;;;;;;;;;-1:-1:-1;18619:157:0;;;;;:::i;:::-;;:::i;13591:81::-;;;;;;;;;;;;;:::i;7627:184::-;;;;;;;;;;-1:-1:-1;7627:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7776:18:0;;;7744:7;7776:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7627:184;18494:117;;;;;;;;;;-1:-1:-1;18494:117:0;;;;;:::i;:::-;;:::i;1809:244::-;;;;;;;;;;-1:-1:-1;1809:244:0;;;;;:::i;:::-;;:::i;7819:193::-;7921:4;7943:39;274:10;7966:7;7975:6;7943:8;:39::i;:::-;-1:-1:-1;8000:4:0;7819:193;;;;;:::o;8020:446::-;8152:4;8169:36;8179:6;8187:9;8198:6;8169:9;:36::i;:::-;8216:220;8239:6;274:10;8287:138;8343:6;8287:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8287:19:0;;;;;;:11;:19;;;;;;;;274:10;8287:33;;;;;;;;;;:37;:138::i;:::-;8216:8;:220::i;:::-;-1:-1:-1;8454:4:0;8020:446;;;;;:::o;14164:192::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;;;;;;;;;14243:9:::1;14239:110;14260:7;:14;14257:1;:17;14239:110;;;14319:4;14295:9;:21;14305:7;14313:1;14305:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14295:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14295:21:0;:28;;-1:-1:-1;;14295:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14276:3;::::1;::::0;::::1;:::i;:::-;;;;14239:110;;;;14164:192:::0;:::o;14364:150::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14436:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14432:75;;;-1:-1:-1::0;;;;;14470:17:0;::::1;14490:5;14470:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14470:25:0::1;::::0;;14432:75:::1;14364:150:::0;:::o;18784:173::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;18878:14:::1;:29:::0;;;;18918:15:::1;:31:::0;18784:173::o;18965:91::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;19031:8:::1;:17:::0;18965:91::o;13682:235::-;13780:17;;-1:-1:-1;;;;;13780:17:0;274:10;-1:-1:-1;;;;;13764:33:0;;13756:42;;;;;;13809:17;:45;;-1:-1:-1;;;;;13809:45:0;;;-1:-1:-1;;;;;;13809:45:0;;;;;;;:17;13865:37;;;:18;:37;;;;;:44;;-1:-1:-1;;13865:44:0;13809:45;13865:44;;;13682:235::o;18259:101::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;18326:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18326:26:0::1;-1:-1:-1::0;;;;18326:26:0;;::::1;::::0;;;::::1;::::0;;18259:101::o;14635:196::-;14701:17;;-1:-1:-1;;;;;14701:17:0;274:10;-1:-1:-1;;;;;14685:33:0;;14677:42;;;;;;14759:21;14791:32;14759:21;14791:12;:32::i;7274:138::-;-1:-1:-1;;;;;7387:16:0;;7340:7;7387:16;;;:7;:16;;;;;;7367:37;;:19;:37::i;1649:148::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;1756:1:::1;1740:6:::0;;1719:40:::1;::::0;-1:-1:-1;;;;;1740:6:0;;::::1;::::0;1719:40:::1;::::0;1756:1;;1719:40:::1;1787:1;1770:19:::0;;-1:-1:-1;;;;;;1770:19:0::1;::::0;;1649:148::o;18372:110::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;18448:12:::1;:26:::0;18372:110::o;13436:147::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;13495:11:::1;::::0;-1:-1:-1;;;13495:11:0;::::1;;;13494:12;13486:21;;;::::0;::::1;;13518:11;:18:::0;;-1:-1:-1;;;;13518:18:0::1;-1:-1:-1::0;;;13518:18:0::1;::::0;;13560:15:::1;13547:10;:28:::0;13436:147::o;13931:225::-;14011:17;;-1:-1:-1;;;;;14011:17:0;274:10;-1:-1:-1;;;;;13995:33:0;;13987:42;;;;;;14058:24;14076:4;14058:9;:24::i;:::-;14048:6;:34;;:48;;;;;14095:1;14086:6;:10;14048:48;14040:73;;;;-1:-1:-1;;;14040:73:0;;6263:2:1;14040:73:0;;;6245:21:1;6302:2;6282:18;;;6275:30;-1:-1:-1;;;6321:18:1;;;6314:42;6373:18;;14040:73:0;6061:336:1;14040:73:0;14124:24;14141:6;14124:16;:24::i;6542:344::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;6709:15:::1;:34:::0;;-1:-1:-1;;;;;;6709:34:0::1;6655:42;6709:34:::0;;::::1;::::0;;;6788:26:::1;::::0;;-1:-1:-1;;;6788:26:0;;;;6655:42;;6788:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;6655:42;6788:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6770:66:0::1;;6845:4;6852:16;-1:-1:-1::0;;;;;6852:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6770:106;::::0;-1:-1:-1;;;;;;6770:106:0::1;::::0;;;;;;-1:-1:-1;;;;;6888:15:1;;;6770:106:0::1;::::0;::::1;6870:34:1::0;6940:15;;6920:18;;;6913:43;6805:18;;6770:106:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6754:13;:122:::0;;-1:-1:-1;;;;;;6754:122:0::1;-1:-1:-1::0;;;;;6754:122:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6542:344:0:o;7420:199::-;7525:4;7547:42;274:10;7571:9;7582:6;7547:9;:42::i;18619:157::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;18707:12:::1;:24:::0;;;;18742:13:::1;:26:::0;18619:157::o;13591:81::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;13646:11:::1;:18:::0;;-1:-1:-1;;;;13646:18:0::1;-1:-1:-1::0;;;13646:18:0::1;::::0;;13591:81::o;18494:117::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;18573:14:::1;:30:::0;18494:117::o;1809:244::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1898:22:0;::::1;1890:73;;;::::0;-1:-1:-1;;;1890:73:0;;7169:2:1;1890:73:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:34;7227:18;;;7220:62;-1:-1:-1;;;7298:18:1;;;7291:36;7344:19;;1890:73:0::1;6967:402:1::0;1890:73:0::1;2000:6;::::0;;1979:38:::1;::::0;-1:-1:-1;;;;;1979:38:0;;::::1;::::0;2000:6;::::1;::::0;1979:38:::1;::::0;::::1;2028:6;:17:::0;;-1:-1:-1;;;;;;2028:17:0::1;-1:-1:-1::0;;;;;2028:17:0;;;::::1;::::0;;;::::1;::::0;;1809:244::o;9285:369::-;-1:-1:-1;;;;;9412:19:0;;9404:68;;;;-1:-1:-1;;;9404:68:0;;7576:2:1;9404:68:0;;;7558:21:1;7615:2;7595:18;;;7588:30;7654:34;7634:18;;;7627:62;-1:-1:-1;;;7705:18:1;;;7698:34;7749:19;;9404:68:0;7374:400:1;9404:68:0;-1:-1:-1;;;;;9491:21:0;;9483:68;;;;-1:-1:-1;;;9483:68:0;;7981:2:1;9483:68:0;;;7963:21:1;8020:2;8000:18;;;7993:30;8059:34;8039:18;;;8032:62;-1:-1:-1;;;8110:18:1;;;8103:32;8152:19;;9483:68:0;7779:398:1;9483:68:0;-1:-1:-1;;;;;9562:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9614:32;;2035:25:1;;;9614:32:0;;2008:18:1;9614:32:0;;;;;;;9285:369;;;:::o;9662:3042::-;-1:-1:-1;;;;;9784:18:0;;9776:68;;;;-1:-1:-1;;;9776:68:0;;8384:2:1;9776:68:0;;;8366:21:1;8423:2;8403:18;;;8396:30;8462:34;8442:18;;;8435:62;-1:-1:-1;;;8513:18:1;;;8506:35;8558:19;;9776:68:0;8182:401:1;9776:68:0;-1:-1:-1;;;;;9863:16:0;;9855:64;;;;-1:-1:-1;;;9855:64:0;;8790:2:1;9855:64:0;;;8772:21:1;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:33;8962:19;;9855:64:0;8588:399:1;9855:64:0;9947:1;9938:6;:10;9930:64;;;;-1:-1:-1;;;9930:64:0;;9194:2:1;9930:64:0;;;9176:21:1;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:39;9372:19;;9930:64:0;8992:405:1;9930:64:0;-1:-1:-1;;;;;10014:13:0;;;;;;:9;:13;;;;;;;;10013:14;10005:40;;;;-1:-1:-1;;;10005:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10065:15:0;;;;;;:9;:15;;;;;;;;10064:16;10056:42;;;;-1:-1:-1;;;10056:42:0;;;;;;;:::i;:::-;274:10;10118:23;;;;:9;:23;;;;;;;;10117:24;10109:50;;;;-1:-1:-1;;;10109:50:0;;;;;;;:::i;:::-;1473:7;1500:6;-1:-1:-1;;;;;10176:15:0;;;1500:6;;10176:15;;;;:32;;-1:-1:-1;1473:7:0;1500:6;-1:-1:-1;;;;;10195:13:0;;;1500:6;;10195:13;;10176:32;10172:1676;;;10244:11;;-1:-1:-1;;;10244:11:0;;;;10239:87;;10276:34;;-1:-1:-1;;;10276:34:0;;9946:2:1;10276:34:0;;;9928:21:1;9985:2;9965:18;;;9958:30;10024:26;10004:18;;;9997:54;10068:18;;10276:34:0;9744:348:1;10239:87:0;10364:13;;-1:-1:-1;;;;;10358:19:0;;;10364:13;;10358:19;:55;;;;-1:-1:-1;10397:15:0;;-1:-1:-1;;;;;10381:32:0;;;10397:15;;10381:32;;10358:55;10354:323;;;-1:-1:-1;;;;;10438:19:0;;10452:4;10438:19;;;;:44;;-1:-1:-1;;;;;;10461:21:0;;10477:4;10461:21;;10438:44;:71;;;;-1:-1:-1;10492:17:0;;-1:-1:-1;;;;;10486:23:0;;;10492:17;;10486:23;;10438:71;:100;;;;-1:-1:-1;10521:17:0;;-1:-1:-1;;;;;10513:25:0;;;10521:17;;10513:25;;10438:100;:116;;;;-1:-1:-1;10543:11:0;;-1:-1:-1;;;10543:11:0;;;;10542:12;10438:116;10434:228;;;10597:12;;10587:6;:22;;10579:63;;;;-1:-1:-1;;;10579:63:0;;10299:2:1;10579:63:0;;;10281:21:1;10338:2;10318:18;;;10311:30;10377;10357:18;;;10350:58;10425:18;;10579:63:0;10097:352:1;10579:63:0;10703:13;;-1:-1:-1;;;;;10697:19:0;;;10703:13;;10697:19;;;;:46;;-1:-1:-1;10726:17:0;;-1:-1:-1;;;;;10720:23:0;;;10726:17;;10720:23;;10697:46;:69;;;;-1:-1:-1;;;;;;10747:19:0;;10761:4;10747:19;;10697:69;:90;;;;-1:-1:-1;;;;;;10770:17:0;;5572:42;10770:17;;10697:90;:106;;;;-1:-1:-1;10792:11:0;;-1:-1:-1;;;10792:11:0;;;;10791:12;10697:106;10693:334;;;10842:12;;10832:6;:22;;10824:63;;;;-1:-1:-1;;;10824:63:0;;10299:2:1;10824:63:0;;;10281:21:1;10338:2;10318:18;;;10311:30;10377;10357:18;;;10350:58;10425:18;;10824:63:0;10097:352:1;10824:63:0;10939:14;;10930:6;10914:13;10924:2;10914:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10906:87;;;;-1:-1:-1;;;10906:87:0;;10789:2:1;10906:87:0;;;10771:21:1;10828:2;10808:18;;;10801:30;10867:34;10847:18;;;10840:62;-1:-1:-1;;;10918:18:1;;;10911:33;10961:19;;10906:87:0;10587:399:1;10906:87:0;11055:28;11086:24;11104:4;11086:9;:24::i;:::-;11163:19;;11055:55;;-1:-1:-1;11140:42:0;;;11215:18;;;;-1:-1:-1;11227:6:0;;-1:-1:-1;;;11227:6:0;;;;11226:7;11215:18;:43;;;;-1:-1:-1;11245:13:0;;-1:-1:-1;;;;;11237:21:0;;;11245:13;;11237:21;;11215:43;:58;;;;-1:-1:-1;11262:11:0;;-1:-1:-1;;;11262:11:0;;;;11215:58;:87;;;;-1:-1:-1;;;;;;11278:24:0;;;;;;:18;:24;;;;;;;;11277:25;11215:87;:114;;;;-1:-1:-1;;;;;;11307:22:0;;;;;;:18;:22;;;;;;;;11306:23;11215:114;11211:626;;;11396:8;;11350:19;;11396:12;11392:166;;11447:45;11486:5;11447:34;11472:8;;11447:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11433:59;;11515:23;11526:11;11515:10;:23::i;:::-;11576:52;11593:34;11616:11;11593:20;:34;:::i;:::-;11576:16;:52::i;:::-;11676:21;11720:22;;11716:106;;11767:35;11780:21;11767:12;:35::i;:::-;11331:506;;11211:626;10210:1638;;10172:1676;-1:-1:-1;;;;;11905:24:0;;11868:12;11905:24;;;:18;:24;;;;;;11883:4;;11905:24;;;:50;;-1:-1:-1;;;;;;11933:22:0;;;;;;:18;:22;;;;;;;;11905:50;11904:102;;;-1:-1:-1;11969:13:0;;-1:-1:-1;;;;;11961:21:0;;;11969:13;;11961:21;;;;:44;;-1:-1:-1;11992:13:0;;-1:-1:-1;;;;;11986:19:0;;;11992:13;;11986:19;;11961:44;11900:743;;;-1:-1:-1;12033:5:0;11900:743;;;12082:13;;-1:-1:-1;;;;;12074:21:0;;;12082:13;;12074:21;:55;;;;-1:-1:-1;12113:15:0;;-1:-1:-1;;;;;12099:30:0;;;12113:15;;12099:30;;12074:55;12071:350;;;-1:-1:-1;;;;;12154:11:0;;;;;;:7;:11;;;;;12168:15;12154:29;;;;12218:14;;12206:9;:26;12265:12;;12255:7;:22;12323:10;;12304:29;12300:106;;;-1:-1:-1;;;;;12362:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12362:20:0;12378:4;12362:20;;;12300:106;12451:13;;-1:-1:-1;;;;;12445:19:0;;;12451:13;;12445:19;:55;;;;-1:-1:-1;12484:15:0;;-1:-1:-1;;;;;12468:32:0;;;12484:15;;12468:32;;12445:55;12441:191;;;12555:15;;12543:9;:27;12603:13;;12593:7;:23;12441:191;12655:41;12670:4;12676:2;12680:6;12688:7;12655:14;:41::i;:::-;9765:2939;9662:3042;;;:::o;2421:224::-;2541:7;2577:12;2569:6;;;;2561:29;;;;-1:-1:-1;;;2561:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2601:9:0;2613:5;2617:1;2613;:5;:::i;:::-;2601:17;2421:224;-1:-1:-1;;;;;2421:224:0:o;13329:99::-;13386:17;;:34;;-1:-1:-1;;;;;13386:17:0;;;;:34;;;;;13413:6;;13386:17;:34;:17;:34;13413:6;13386:17;:34;;;;;;;;;;;;;;;;;;;8474:323;8569:7;8627;;8616;:18;;8594:110;;;;-1:-1:-1;;;8594:110:0;;11323:2:1;8594:110:0;;;11305:21:1;11362:2;11342:18;;;11335:30;11401:34;11381:18;;;11374:62;-1:-1:-1;;;11452:18:1;;;11445:40;11502:19;;8594:110:0;11121:406:1;8594:110:0;8715:19;8737:10;:8;:10::i;:::-;8715:32;-1:-1:-1;8765:24:0;:7;8715:32;8765:11;:24::i;:::-;8758:31;8474:323;-1:-1:-1;;;8474:323:0:o;12838:483::-;6104:6;:13;;-1:-1:-1;;;;6104:13:0;-1:-1:-1;;;6104:13:0;;;12940:16:::1;::::0;;12954:1:::1;12940:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12940:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12940:16:0::1;12916:40;;12985:4;12967;12972:1;12967:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12967:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13011:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13011:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12967:7;;13011:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13001:4;13006:1;13001:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13001:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13076:15:::1;::::0;13044:62:::1;::::0;13061:4:::1;::::0;13076:15:::1;13094:11:::0;13044:8:::1;:62::i;:::-;13117:15;::::0;:196:::1;::::0;-1:-1:-1;;;13117:196:0;;-1:-1:-1;;;;;13117:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13198:11;;13117:15:::1;::::0;13240:4;;13267::::1;::::0;13287:15:::1;::::0;13117:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6140:6:0;:14;;-1:-1:-1;;;;6140:14:0;;;-1:-1:-1;;;;12838:483:0:o;2653:246::-;2711:7;2735:6;2731:47;;-1:-1:-1;2765:1:0;2758:8;;2731:47;2788:9;2800:5;2804:1;2800;:5;:::i;:::-;2788:17;-1:-1:-1;2833:1:0;2824:5;2828:1;2788:17;2824:5;:::i;:::-;:10;2816:56;;;;-1:-1:-1;;;2816:56:0;;13114:2:1;2816:56:0;;;13096:21:1;13153:2;13133:18;;;13126:30;13192:34;13172:18;;;13165:62;-1:-1:-1;;;13243:18:1;;;13236:31;13284:19;;2816:56:0;12912:397:1;2907:132:0;2965:7;2992:39;2996:1;2999;2992:39;;;;;;;;;;;;;;;;;:3;:39::i;12712:118::-;12772:50;12790:4;5572:42;12810:11;12772:9;:50::i;14839:282::-;14995:7;14990:28;;15004:14;:12;:14::i;:::-;15029:44;15047:6;15055:9;15066:6;15029:17;:44::i;:::-;15089:7;15084:29;;15098:15;9178:17;;9166:9;:29;9216:15;;9206:7;:25;9253:16;;9242:8;:27;9122:155;17814:166;17856:7;17877:15;17894;17913:19;:17;:19::i;:::-;17876:56;;-1:-1:-1;17876:56:0;-1:-1:-1;17952:20:0;17876:56;;17952:11;:20::i;:::-;17945:27;;;;17814:166;:::o;3047:223::-;3167:7;3202:12;3195:5;3187:28;;;;-1:-1:-1;;;3187:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3226:9:0;3238:5;3242:1;3238;:5;:::i;8805:309::-;8852:9;;:14;:30;;;;-1:-1:-1;8870:7:0;;:12;8852:30;:47;;;;-1:-1:-1;8886:8:0;;:13;8852:47;8848:60;;;8805:309::o;8848:60::-;8944:9;;;8924:17;:29;8982:7;;;8964:15;:25;9019:8;;;9000:16;:27;-1:-1:-1;9048:13:0;;;;9072:11;;;;9094:12;8805:309::o;15129:610::-;15276:15;15306:23;15344:12;15371:23;15409:12;15436:13;15463:19;15474:7;15463:10;:19::i;:::-;-1:-1:-1;;;;;15511:15:0;;;;;;:7;:15;;;;;;15261:221;;-1:-1:-1;15261:221:0;;-1:-1:-1;15261:221:0;;-1:-1:-1;15261:221:0;-1:-1:-1;15261:221:0;-1:-1:-1;15261:221:0;-1:-1:-1;15511:28:0;;15261:221;15511:19;:28::i;:::-;-1:-1:-1;;;;;15493:15:0;;;;;;;:7;:15;;;;;;:46;;;;15571:18;;;;;;;:39;;15594:15;15571:22;:39::i;:::-;-1:-1:-1;;;;;15550:18:0;;;;;;:7;:18;;;;;:60;15621:16;15631:5;15621:9;:16::i;:::-;15648:23;15660:4;15666;15648:11;:23::i;:::-;15704:9;-1:-1:-1;;;;;15687:44:0;15696:6;-1:-1:-1;;;;;15687:44:0;;15715:15;15687:44;;;;2035:25:1;;2023:2;2008:18;;1889:177;15687:44:0;;;;;;;;15250:489;;;;;;15129:610;;;:::o;17988:263::-;18086:7;;18039;;;;4774:12;18154:20;18086:7;4774:12;18154:11;:20::i;:::-;18144:7;:30;18140:61;;;-1:-1:-1;;18184:7:0;;;4774:12;;-1:-1:-1;17988:263:0;-1:-1:-1;17988:263:0:o;18140:61::-;18226:7;;18235;;-1:-1:-1;17988:263:0;-1:-1:-1;17988:263:0:o;16158:625::-;16258:7;16280;16302;16324;16346;16368;16404:23;16429:12;16443:13;16473:40;16485:7;16494:9;;16505:7;;16473:11;:40::i;:::-;16403:110;;;;;;16524:19;16546:10;:8;:10::i;:::-;16524:32;;16568:15;16585:23;16610:12;16639:46;16651:7;16660:4;16666:5;16673:11;16639;:46::i;:::-;16567:118;;-1:-1:-1;16567:118:0;-1:-1:-1;16567:118:0;-1:-1:-1;16746:15:0;;-1:-1:-1;16763:4:0;;-1:-1:-1;16769:5:0;;-1:-1:-1;;;;;16158:625:0;;;;;;;:::o;2277:136::-;2335:7;2362:43;2366:1;2369;2362:43;;;;;;;;;;;;;;;;;:3;:43::i;2090:179::-;2148:7;;2180:5;2184:1;2180;:5;:::i;:::-;2168:17;;2209:1;2204;:6;;2196:46;;;;-1:-1:-1;;;2196:46:0;;13516:2:1;2196:46:0;;;13498:21:1;13555:2;13535:18;;;13528:30;13594:29;13574:18;;;13567:57;13641:18;;2196:46:0;13314:351:1;15747:211:0;15800:19;15822:10;:8;:10::i;:::-;15800:32;-1:-1:-1;15843:13:0;15859:22;:5;15800:32;15859:9;:22::i;:::-;15933:4;15917:22;;;;:7;:22;;;;;;15843:38;;-1:-1:-1;15917:33:0;;15843:38;15917:26;:33::i;:::-;15908:4;15892:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15747:211:0:o;15966:147::-;16044:7;;:17;;16056:4;16044:11;:17::i;:::-;16034:7;:27;16085:10;;:20;;16100:4;16085:14;:20::i;:::-;16072:10;:33;-1:-1:-1;;15966:147:0:o;16791:471::-;16960:7;;;;17054:30;17080:3;17054:21;:7;17066:8;17054:11;:21::i;:30::-;17039:45;-1:-1:-1;17095:13:0;17111:28;17135:3;17111:19;:7;17123:6;17111:11;:19::i;:28::-;17095:44;-1:-1:-1;17150:23:0;17176:28;17095:44;17176:17;:7;17188:4;17176:11;:17::i;:::-;:21;;:28::i;:::-;17150:54;17242:4;;-1:-1:-1;17248:5:0;;-1:-1:-1;16791:471:0;;-1:-1:-1;;;;;16791:471:0:o;17270:536::-;17464:7;;;;17561:24;:7;17573:11;17561;:24::i;:::-;17543:42;-1:-1:-1;17596:12:0;17611:21;:4;17620:11;17611:8;:21::i;:::-;17596:36;-1:-1:-1;17643:13:0;17659:22;:5;17669:11;17659:9;:22::i;:::-;17643:38;-1:-1:-1;17692:23:0;17718:28;17643:38;17718:17;:7;17730:4;17718:11;:17::i;:28::-;17767:7;;;;-1:-1:-1;17793:4:0;;-1:-1:-1;17270:536:0;;-1:-1:-1;;;;;;;17270:536:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:247::-;1462:6;1515:2;1503:9;1494:7;1490:23;1486:32;1483:52;;;1531:1;1528;1521:12;1483:52;1570:9;1557:23;1589:31;1614:5;1589:31;:::i;2071:456::-;2148:6;2156;2164;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2272:9;2259:23;2291:31;2316:5;2291:31;:::i;:::-;2341:5;-1:-1:-1;2398:2:1;2383:18;;2370:32;2411:33;2370:32;2411:33;:::i;:::-;2071:456;;2463:7;;-1:-1:-1;;;2517:2:1;2502:18;;;;2489:32;;2071:456::o;2740:127::-;2801:10;2796:3;2792:20;2789:1;2782:31;2832:4;2829:1;2822:15;2856:4;2853:1;2846:15;2872:1121;2956:6;2987:2;3030;3018:9;3009:7;3005:23;3001:32;2998:52;;;3046:1;3043;3036:12;2998:52;3086:9;3073:23;3115:18;3156:2;3148:6;3145:14;3142:34;;;3172:1;3169;3162:12;3142:34;3210:6;3199:9;3195:22;3185:32;;3255:7;3248:4;3244:2;3240:13;3236:27;3226:55;;3277:1;3274;3267:12;3226:55;3313:2;3300:16;3335:2;3331;3328:10;3325:36;;;3341:18;;:::i;:::-;3387:2;3384:1;3380:10;3419:2;3413:9;3482:2;3478:7;3473:2;3469;3465:11;3461:25;3453:6;3449:38;3537:6;3525:10;3522:22;3517:2;3505:10;3502:18;3499:46;3496:72;;;3548:18;;:::i;:::-;3584:2;3577:22;3634:18;;;3668:15;;;;-1:-1:-1;3710:11:1;;;3706:20;;;3738:19;;;3735:39;;;3770:1;3767;3760:12;3735:39;3794:11;;;;3814:148;3830:6;3825:3;3822:15;3814:148;;;3896:23;3915:3;3896:23;:::i;:::-;3884:36;;3847:12;;;;3940;;;;3814:148;;;3981:6;2872:1121;-1:-1:-1;;;;;;;;2872:1121:1:o;4187:248::-;4255:6;4263;4316:2;4304:9;4295:7;4291:23;4287:32;4284:52;;;4332:1;4329;4322:12;4284:52;-1:-1:-1;;4355:23:1;;;4425:2;4410:18;;;4397:32;;-1:-1:-1;4187:248:1:o;4440:180::-;4499:6;4552:2;4540:9;4531:7;4527:23;4523:32;4520:52;;;4568:1;4565;4558:12;4520:52;-1:-1:-1;4591:23:1;;4440:180;-1:-1:-1;4440:180:1:o;4625:273::-;4681:6;4734:2;4722:9;4713:7;4709:23;4705:32;4702:52;;;4750:1;4747;4740:12;4702:52;4789:9;4776:23;4842:5;4835:13;4828:21;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4903:388;4971:6;4979;5032:2;5020:9;5011:7;5007:23;5003:32;5000:52;;;5048:1;5045;5038:12;5000:52;5087:9;5074:23;5106:31;5131:5;5106:31;:::i;:::-;5156:5;-1:-1:-1;5213:2:1;5198:18;;5185:32;5226:33;5185:32;5226:33;:::i;:::-;5278:7;5268:17;;;4903:388;;;;;:::o;5296:356::-;5498:2;5480:21;;;5517:18;;;5510:30;5576:34;5571:2;5556:18;;5549:62;5643:2;5628:18;;5296:356::o;5657:127::-;5718:10;5713:3;5709:20;5706:1;5699:31;5749:4;5746:1;5739:15;5773:4;5770:1;5763:15;5789:127;5850:10;5845:3;5841:20;5838:1;5831:31;5881:4;5878:1;5871:15;5905:4;5902:1;5895:15;5921:135;5960:3;-1:-1:-1;;5981:17:1;;5978:43;;;6001:18;;:::i;:::-;-1:-1:-1;6048:1:1;6037:13;;5921:135::o;6402:251::-;6472:6;6525:2;6513:9;6504:7;6500:23;6496:32;6493:52;;;6541:1;6538;6531:12;6493:52;6573:9;6567:16;6592:31;6617:5;6592:31;:::i;9402:337::-;9604:2;9586:21;;;9643:2;9623:18;;;9616:30;-1:-1:-1;;;9677:2:1;9662:18;;9655:43;9730:2;9715:18;;9402:337::o;10454:128::-;10494:3;10525:1;10521:6;10518:1;10515:13;10512:39;;;10531:18;;:::i;:::-;-1:-1:-1;10567:9:1;;10454:128::o;10991:125::-;11031:4;11059:1;11056;11053:8;11050:34;;;11064:18;;:::i;:::-;-1:-1:-1;11101:9:1;;10991:125::o;11532:980::-;11794:4;11842:3;11831:9;11827:19;11873:6;11862:9;11855:25;11899:2;11937:6;11932:2;11921:9;11917:18;11910:34;11980:3;11975:2;11964:9;11960:18;11953:31;12004:6;12039;12033:13;12070:6;12062;12055:22;12108:3;12097:9;12093:19;12086:26;;12147:2;12139:6;12135:15;12121:29;;12168:1;12178:195;12192:6;12189:1;12186:13;12178:195;;;12257:13;;-1:-1:-1;;;;;12253:39:1;12241:52;;12348:15;;;;12313:12;;;;12289:1;12207:9;12178:195;;;-1:-1:-1;;;;;;;12429:32:1;;;;12424:2;12409:18;;12402:60;-1:-1:-1;;;12493:3:1;12478:19;12471:35;12390:3;11532:980;-1:-1:-1;;;11532:980:1:o;12517:168::-;12557:7;12623:1;12619;12615:6;12611:14;12608:1;12605:21;12600:1;12593:9;12586:17;12582:45;12579:71;;;12630:18;;:::i;:::-;-1:-1:-1;12670:9:1;;12517:168::o;12690:217::-;12730:1;12756;12746:132;;12800:10;12795:3;12791:20;12788:1;12781:31;12835:4;12832:1;12825:15;12863:4;12860:1;12853:15;12746:132;-1:-1:-1;12892:9:1;;12690:217::o
Swarm Source
ipfs://54d3fcad8ee1b2231cf5e0c9a3c80784c4b2baf7ba90d092bdf62fca13cb4649
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.