ERC-20
Overview
Max Total Supply
100,000,000,000 GALLET
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,246,716,532.677691776 GALLETValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GenerationalWallet
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-25 */ /* https://generationalwallet.xyz/ https://t.me/Generationalwallet https://twitter.com/galleterc */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.16; 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 GenerationalWallet is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Generational Wallet"; string private constant _symbol = "GALLET"; 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 = 100_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _reflectionFeeOnBuy = 5; uint256 private _reflectionFeeOnSell = 5; uint256 private _taxFeeOnBuy = 30; uint256 private _taxFeeOnSell = 45; uint256 private _reflectionFee = _reflectionFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 0; uint256 private _previousreflectoinFee = _reflectionFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _taxAddress = payable(0xC3A6fd86274552f4dca16c5979E2cfCBf854C099); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private isMaxBuyActivated = true; uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); uint256 public _maxBuyAmount = _tTotal.mul(20).div(1000); uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000); 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[_taxAddress] = true; _isExcludedFromFee[deadAddress] = 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 (_reflectionFee == 0 && _taxFee == 0 && _burnFee == 0) return; _previousreflectoinFee = _reflectionFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _reflectionFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _reflectionFee = _previousreflectoinFee; _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"); if (from != owner() && to != owner()) { require(!_isSniper[to] && !_isSniper[from]); if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _taxAddress && from != _taxAddress) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _taxAddress && to != address(this) && to != deadAddress) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); if (isMaxBuyActivated) { require(amount <= _maxBuyAmount, "Amount too much"); } } 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)) { _reflectionFee = _reflectionFeeOnBuy; _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _reflectionFee = _reflectionFeeOnSell; _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 { _taxAddress.transfer(amount); } function setTrading() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _taxAddress); _taxAddress = payable(marketingAddress); _isExcludedFromFee[_taxAddress] = true; } function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner { isMaxBuyActivated = _isMaxBuyActivated; } function manualswap(uint256 amount) external { require(_msgSender() == _taxAddress); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function manualsend() external { require(_msgSender() == _taxAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } 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 _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, _reflectionFee, _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 removeLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; _maxBuyAmount = _tTotal; } 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 { _reflectionFeeOnBuy = amountRefBuy; _reflectionFeeOnSell = 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":"_maxBuyAmount","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":"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":"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":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","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":[{"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
60806040526200001b68056bc75e2d6310000060001962000549565b620000299060001962000576565b6006556005600a819055600b819055601e600c55602d600d819055600e829055600f819055600060108190556011929092556012556013556014805473c3a6fd86274552f4dca16c5979e2cfcbf854c0996001600160a01b03199091161781556016805462ffffff60a81b191661010160b01b179055620000de906103e890620000ca9068056bc75e2d631000009062000416602090811b62000cf117901c565b620004ad60201b62000d7a1790919060201c565b6017556200010c6103e8620000ca601468056bc75e2d631000006200041660201b62000cf11790919060201c565b6018556200013a6103e8620000ca601468056bc75e2d631000006200041660201b62000cf11790919060201c565b601955620001686103e8620000ca600168056bc75e2d631000006200041660201b62000cf11790919060201c565b601a553480156200017857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000236573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025c91906200058c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d091906200058c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034491906200058c565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556014549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490951617909355915168056bc75e2d63100000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000640565b6000826000036200042a57506000620004a7565b6000620004388385620005b7565b905082620004478583620005d9565b14620004a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004f760201b60201c565b600081836200051b5760405162461bcd60e51b81526004016200049b9190620005f0565b5060006200052a8486620005d9565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200055b576200055b62000533565b500690565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004a757620004a762000560565b6000602082840312156200059f57600080fd5b81516001600160a01b0381168114620004a457600080fd5b6000816000190483118215151615620005d457620005d462000560565b500290565b600082620005eb57620005eb62000533565b500490565b600060208083528351808285015260005b818110156200061f5785810183015185820160400152820162000601565b506000604082860101526040601f19601f8301168501019250505092915050565b611fb180620006506000396000f3fe6080604052600436106102085760003560e01c80636d8aa8f8116101185780638da5cb5b116100a0578063a9059cbb1161006f578063a9059cbb146105ec578063c55284901461060c578063dd62ed3e1461062c578063ea1644d514610672578063f2fde38b1461069257600080fd5b80638da5cb5b146105695780638f9a55c01461058757806395d89b411461059d5780639f131571146105cc57600080fd5b806374010ece116100e757806374010ece146104e8578063790ca413146105085780637c519ffb1461051e5780637d1db4a514610533578063881dce601461054957600080fd5b80636d8aa8f81461047e5780636fc3eaec1461049e57806370a08231146104b3578063715018a6146104d357600080fd5b806328bb665a1161019b57806338eea22d1161016a57806338eea22d146103e957806349bd5a5e146104095780634bf2c7c9146104295780635d098b3814610449578063622565891461046957600080fd5b806328bb665a146103755780632fd689e314610397578063313ce567146103ad57806333251a0b146103c957600080fd5b80631694505e116101d75780631694505e146102eb57806318160ddd1461032357806323b872dd1461033f57806327c8f8351461035f57600080fd5b80630492f0551461021457806306fdde031461023d578063095ea7b3146102825780630f3a325f146102b257600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a60195481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b5060408051808201909152601381527211d95b995c985d1a5bdb985b0815d85b1b195d606a1b60208201525b6040516102349190611b76565b34801561028e57600080fd5b506102a261029d366004611be9565b6106b2565b6040519015158152602001610234565b3480156102be57600080fd5b506102a26102cd366004611c15565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156102f757600080fd5b5060155461030b906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561032f57600080fd5b5068056bc75e2d6310000061022a565b34801561034b57600080fd5b506102a261035a366004611c32565b6106c9565b34801561036b57600080fd5b5061030b61dead81565b34801561038157600080fd5b50610395610390366004611c89565b610732565b005b3480156103a357600080fd5b5061022a601a5481565b3480156103b957600080fd5b5060405160098152602001610234565b3480156103d557600080fd5b506103956103e4366004611c15565b6107d1565b3480156103f557600080fd5b50610395610404366004611d4e565b610840565b34801561041557600080fd5b5060165461030b906001600160a01b031681565b34801561043557600080fd5b50610395610444366004611d70565b610875565b34801561045557600080fd5b50610395610464366004611c15565b6108a4565b34801561047557600080fd5b506103956108fe565b34801561048a57600080fd5b50610395610499366004611d89565b610941565b3480156104aa57600080fd5b50610395610989565b3480156104bf57600080fd5b5061022a6104ce366004611c15565b6109b3565b3480156104df57600080fd5b506103956109d5565b3480156104f457600080fd5b50610395610503366004611d70565b610a49565b34801561051457600080fd5b5061022a60095481565b34801561052a57600080fd5b50610395610a78565b34801561053f57600080fd5b5061022a60175481565b34801561055557600080fd5b50610395610564366004611d70565b610ad2565b34801561057557600080fd5b506000546001600160a01b031661030b565b34801561059357600080fd5b5061022a60185481565b3480156105a957600080fd5b5060408051808201909152600681526511d05313115560d21b6020820152610275565b3480156105d857600080fd5b506103956105e7366004611d89565b610b4e565b3480156105f857600080fd5b506102a2610607366004611be9565b610b96565b34801561061857600080fd5b50610395610627366004611d4e565b610ba3565b34801561063857600080fd5b5061022a610647366004611dab565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067e57600080fd5b5061039561068d366004611d70565b610bd8565b34801561069e57600080fd5b506103956106ad366004611c15565b610c07565b60006106bf338484610dbc565b5060015b92915050565b60006106d6848484610ee0565b610728843361072385604051806060016040528060288152602001611f54602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906114f0565b610dbc565b5060019392505050565b6000546001600160a01b031633146107655760405162461bcd60e51b815260040161075c90611de4565b60405180910390fd5b60005b81518110156107cd5760016008600084848151811061078957610789611e19565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107c581611e45565b915050610768565b5050565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161075c90611de4565b6001600160a01b03811660009081526008602052604090205460ff161561083d576001600160a01b0381166000908152600860205260409020805460ff191690555b50565b6000546001600160a01b0316331461086a5760405162461bcd60e51b815260040161075c90611de4565b600a91909155600b55565b6000546001600160a01b0316331461089f5760405162461bcd60e51b815260040161075c90611de4565b601055565b6014546001600160a01b0316336001600160a01b0316146108c457600080fd5b601480546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161075c90611de4565b68056bc75e2d6310000060178190556018819055601955565b6000546001600160a01b0316331461096b5760405162461bcd60e51b815260040161075c90611de4565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6014546001600160a01b0316336001600160a01b0316146109a957600080fd5b4761083d8161152a565b6001600160a01b0381166000908152600260205260408120546106c390611564565b6000546001600160a01b031633146109ff5760405162461bcd60e51b815260040161075c90611de4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a735760405162461bcd60e51b815260040161075c90611de4565b601755565b6000546001600160a01b03163314610aa25760405162461bcd60e51b815260040161075c90611de4565b601654600160a01b900460ff1615610ab957600080fd5b6016805460ff60a01b1916600160a01b17905542600955565b6014546001600160a01b0316336001600160a01b031614610af257600080fd5b610afb306109b3565b8111158015610b0a5750600081115b610b455760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b604482015260640161075c565b61083d816115e1565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161075c90611de4565b60168054911515600160b81b0260ff60b81b19909216919091179055565b60006106bf338484610ee0565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b815260040161075c90611de4565b600c91909155600d55565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260040161075c90611de4565b601855565b6000546001600160a01b03163314610c315760405162461bcd60e51b815260040161075c90611de4565b6001600160a01b038116610c965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610d03575060006106c3565b6000610d0f8385611e5e565b905082610d1c8583611e7d565b14610d735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075c565b9392505050565b6000610d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061175b565b6001600160a01b038316610e1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610e7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075c565b6001600160a01b038216610fa65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075c565b600081116110085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075c565b6000546001600160a01b0384811691161480159061103457506000546001600160a01b03838116911614155b156113e3576001600160a01b03821660009081526008602052604090205460ff1615801561107b57506001600160a01b03831660009081526008602052604090205460ff16155b61108457600080fd5b601654600160a01b900460ff166110dd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161075c565b6016546001600160a01b03838116911614801561110857506015546001600160a01b03848116911614155b156111ba576001600160a01b038216301480159061112f57506001600160a01b0383163014155b801561114957506014546001600160a01b03838116911614155b801561116357506014546001600160a01b03848116911614155b156111ba576017548111156111ba5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161075c565b6016546001600160a01b038381169116148015906111e657506014546001600160a01b03838116911614155b80156111fb57506001600160a01b0382163014155b801561121257506001600160a01b03821661dead14155b156112dd5760185481611224846109b3565b61122e9190611e9f565b106112875760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161075c565b601654600160b81b900460ff16156112dd576019548111156112dd5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b604482015260640161075c565b60006112e8306109b3565b601a5490915081118080156113075750601654600160a81b900460ff16155b801561132157506016546001600160a01b03868116911614155b80156113365750601654600160b01b900460ff165b801561135b57506001600160a01b03851660009081526005602052604090205460ff16155b801561138057506001600160a01b03841660009081526005602052604090205460ff16155b156113e057601054600090156113bb576113b060646113aa60105486610cf190919063ffffffff16565b90610d7a565b90506113bb81611789565b6113cd6113c88285611eb2565b6115e1565b4780156113dd576113dd4761152a565b50505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061142557506001600160a01b03831660009081526005602052604090205460ff165b8061145757506016546001600160a01b0385811691161480159061145757506016546001600160a01b03848116911614155b15611464575060006114de565b6016546001600160a01b03858116911614801561148f57506015546001600160a01b03848116911614155b156114a157600a54600e55600c54600f555b6016546001600160a01b0384811691161480156114cc57506015546001600160a01b03858116911614155b156114de57600b54600e55600d54600f555b6114ea84848484611796565b50505050565b600081848411156115145760405162461bcd60e51b815260040161075c9190611b76565b5060006115218486611eb2565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156107cd573d6000803e3d6000fd5b60006006548211156115cb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161075c565b60006115d56117ca565b9050610d738382610d7a565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061162957611629611e19565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611ec5565b816001815181106116b9576116b9611e19565b6001600160a01b0392831660209182029290920101526015546116df9130911684610dbc565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611718908590600090869030904290600401611ee2565b600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000818361177c5760405162461bcd60e51b815260040161075c9190611b76565b5060006115218486611e7d565b61083d3061dead83610ee0565b806117a3576117a36117ed565b6117ae848484611832565b806114ea576114ea601154600e55601254600f55601354601055565b60008060006117d7611929565b90925090506117e68282610d7a565b9250505090565b600e541580156117fd5750600f54155b80156118095750601054155b1561181057565b600e8054601155600f8054601255601080546013556000928390559082905555565b6000806000806000806118448761196b565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061187690876119c8565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118a59086611a0a565b6001600160a01b0389166000908152600260205260409020556118c781611a69565b6118d18483611ab3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161191691815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006119458282610d7a565b8210156119625750506006549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006119888a600e54600f54611ad7565b92509250925060006119986117ca565b905060008060006119ab8e878787611b26565b919e509c509a509598509396509194505050505091939550919395565b6000610d7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f0565b600080611a178385611e9f565b905083811015610d735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075c565b6000611a736117ca565b90506000611a818383610cf1565b30600090815260026020526040902054909150611a9e9082611a0a565b30600090815260026020526040902055505050565b600654611ac090836119c8565b600655600754611ad09082611a0a565b6007555050565b6000808080611aeb60646113aa8989610cf1565b90506000611afe60646113aa8a89610cf1565b90506000611b1682611b108b866119c8565b906119c8565b9992985090965090945050505050565b6000808080611b358886610cf1565b90506000611b438887610cf1565b90506000611b518888610cf1565b90506000611b6382611b1086866119c8565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611ba357858101830151858201604001528201611b87565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083d57600080fd5b8035611be481611bc4565b919050565b60008060408385031215611bfc57600080fd5b8235611c0781611bc4565b946020939093013593505050565b600060208284031215611c2757600080fd5b8135610d7381611bc4565b600080600060608486031215611c4757600080fd5b8335611c5281611bc4565b92506020840135611c6281611bc4565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611c9c57600080fd5b823567ffffffffffffffff80821115611cb457600080fd5b818501915085601f830112611cc857600080fd5b813581811115611cda57611cda611c73565b8060051b604051601f19603f83011681018181108582111715611cff57611cff611c73565b604052918252848201925083810185019188831115611d1d57600080fd5b938501935b82851015611d4257611d3385611bd9565b84529385019392850192611d22565b98975050505050505050565b60008060408385031215611d6157600080fd5b50508035926020909101359150565b600060208284031215611d8257600080fd5b5035919050565b600060208284031215611d9b57600080fd5b81358015158114610d7357600080fd5b60008060408385031215611dbe57600080fd5b8235611dc981611bc4565b91506020830135611dd981611bc4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611e5757611e57611e2f565b5060010190565b6000816000190483118215151615611e7857611e78611e2f565b500290565b600082611e9a57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106c3576106c3611e2f565b818103818111156106c3576106c3611e2f565b600060208284031215611ed757600080fd5b8151610d7381611bc4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f325784516001600160a01b031683529383019391830191600101611f0d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1aeb43681fd2f821d3e72f79516ee85d2c1e7d5a0202615c8cfd0fe7167398c64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106102085760003560e01c80636d8aa8f8116101185780638da5cb5b116100a0578063a9059cbb1161006f578063a9059cbb146105ec578063c55284901461060c578063dd62ed3e1461062c578063ea1644d514610672578063f2fde38b1461069257600080fd5b80638da5cb5b146105695780638f9a55c01461058757806395d89b411461059d5780639f131571146105cc57600080fd5b806374010ece116100e757806374010ece146104e8578063790ca413146105085780637c519ffb1461051e5780637d1db4a514610533578063881dce601461054957600080fd5b80636d8aa8f81461047e5780636fc3eaec1461049e57806370a08231146104b3578063715018a6146104d357600080fd5b806328bb665a1161019b57806338eea22d1161016a57806338eea22d146103e957806349bd5a5e146104095780634bf2c7c9146104295780635d098b3814610449578063622565891461046957600080fd5b806328bb665a146103755780632fd689e314610397578063313ce567146103ad57806333251a0b146103c957600080fd5b80631694505e116101d75780631694505e146102eb57806318160ddd1461032357806323b872dd1461033f57806327c8f8351461035f57600080fd5b80630492f0551461021457806306fdde031461023d578063095ea7b3146102825780630f3a325f146102b257600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a60195481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b5060408051808201909152601381527211d95b995c985d1a5bdb985b0815d85b1b195d606a1b60208201525b6040516102349190611b76565b34801561028e57600080fd5b506102a261029d366004611be9565b6106b2565b6040519015158152602001610234565b3480156102be57600080fd5b506102a26102cd366004611c15565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156102f757600080fd5b5060155461030b906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561032f57600080fd5b5068056bc75e2d6310000061022a565b34801561034b57600080fd5b506102a261035a366004611c32565b6106c9565b34801561036b57600080fd5b5061030b61dead81565b34801561038157600080fd5b50610395610390366004611c89565b610732565b005b3480156103a357600080fd5b5061022a601a5481565b3480156103b957600080fd5b5060405160098152602001610234565b3480156103d557600080fd5b506103956103e4366004611c15565b6107d1565b3480156103f557600080fd5b50610395610404366004611d4e565b610840565b34801561041557600080fd5b5060165461030b906001600160a01b031681565b34801561043557600080fd5b50610395610444366004611d70565b610875565b34801561045557600080fd5b50610395610464366004611c15565b6108a4565b34801561047557600080fd5b506103956108fe565b34801561048a57600080fd5b50610395610499366004611d89565b610941565b3480156104aa57600080fd5b50610395610989565b3480156104bf57600080fd5b5061022a6104ce366004611c15565b6109b3565b3480156104df57600080fd5b506103956109d5565b3480156104f457600080fd5b50610395610503366004611d70565b610a49565b34801561051457600080fd5b5061022a60095481565b34801561052a57600080fd5b50610395610a78565b34801561053f57600080fd5b5061022a60175481565b34801561055557600080fd5b50610395610564366004611d70565b610ad2565b34801561057557600080fd5b506000546001600160a01b031661030b565b34801561059357600080fd5b5061022a60185481565b3480156105a957600080fd5b5060408051808201909152600681526511d05313115560d21b6020820152610275565b3480156105d857600080fd5b506103956105e7366004611d89565b610b4e565b3480156105f857600080fd5b506102a2610607366004611be9565b610b96565b34801561061857600080fd5b50610395610627366004611d4e565b610ba3565b34801561063857600080fd5b5061022a610647366004611dab565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067e57600080fd5b5061039561068d366004611d70565b610bd8565b34801561069e57600080fd5b506103956106ad366004611c15565b610c07565b60006106bf338484610dbc565b5060015b92915050565b60006106d6848484610ee0565b610728843361072385604051806060016040528060288152602001611f54602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906114f0565b610dbc565b5060019392505050565b6000546001600160a01b031633146107655760405162461bcd60e51b815260040161075c90611de4565b60405180910390fd5b60005b81518110156107cd5760016008600084848151811061078957610789611e19565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107c581611e45565b915050610768565b5050565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161075c90611de4565b6001600160a01b03811660009081526008602052604090205460ff161561083d576001600160a01b0381166000908152600860205260409020805460ff191690555b50565b6000546001600160a01b0316331461086a5760405162461bcd60e51b815260040161075c90611de4565b600a91909155600b55565b6000546001600160a01b0316331461089f5760405162461bcd60e51b815260040161075c90611de4565b601055565b6014546001600160a01b0316336001600160a01b0316146108c457600080fd5b601480546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161075c90611de4565b68056bc75e2d6310000060178190556018819055601955565b6000546001600160a01b0316331461096b5760405162461bcd60e51b815260040161075c90611de4565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6014546001600160a01b0316336001600160a01b0316146109a957600080fd5b4761083d8161152a565b6001600160a01b0381166000908152600260205260408120546106c390611564565b6000546001600160a01b031633146109ff5760405162461bcd60e51b815260040161075c90611de4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a735760405162461bcd60e51b815260040161075c90611de4565b601755565b6000546001600160a01b03163314610aa25760405162461bcd60e51b815260040161075c90611de4565b601654600160a01b900460ff1615610ab957600080fd5b6016805460ff60a01b1916600160a01b17905542600955565b6014546001600160a01b0316336001600160a01b031614610af257600080fd5b610afb306109b3565b8111158015610b0a5750600081115b610b455760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b604482015260640161075c565b61083d816115e1565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161075c90611de4565b60168054911515600160b81b0260ff60b81b19909216919091179055565b60006106bf338484610ee0565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b815260040161075c90611de4565b600c91909155600d55565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260040161075c90611de4565b601855565b6000546001600160a01b03163314610c315760405162461bcd60e51b815260040161075c90611de4565b6001600160a01b038116610c965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610d03575060006106c3565b6000610d0f8385611e5e565b905082610d1c8583611e7d565b14610d735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075c565b9392505050565b6000610d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061175b565b6001600160a01b038316610e1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610e7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075c565b6001600160a01b038216610fa65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075c565b600081116110085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075c565b6000546001600160a01b0384811691161480159061103457506000546001600160a01b03838116911614155b156113e3576001600160a01b03821660009081526008602052604090205460ff1615801561107b57506001600160a01b03831660009081526008602052604090205460ff16155b61108457600080fd5b601654600160a01b900460ff166110dd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161075c565b6016546001600160a01b03838116911614801561110857506015546001600160a01b03848116911614155b156111ba576001600160a01b038216301480159061112f57506001600160a01b0383163014155b801561114957506014546001600160a01b03838116911614155b801561116357506014546001600160a01b03848116911614155b156111ba576017548111156111ba5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161075c565b6016546001600160a01b038381169116148015906111e657506014546001600160a01b03838116911614155b80156111fb57506001600160a01b0382163014155b801561121257506001600160a01b03821661dead14155b156112dd5760185481611224846109b3565b61122e9190611e9f565b106112875760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161075c565b601654600160b81b900460ff16156112dd576019548111156112dd5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b604482015260640161075c565b60006112e8306109b3565b601a5490915081118080156113075750601654600160a81b900460ff16155b801561132157506016546001600160a01b03868116911614155b80156113365750601654600160b01b900460ff165b801561135b57506001600160a01b03851660009081526005602052604090205460ff16155b801561138057506001600160a01b03841660009081526005602052604090205460ff16155b156113e057601054600090156113bb576113b060646113aa60105486610cf190919063ffffffff16565b90610d7a565b90506113bb81611789565b6113cd6113c88285611eb2565b6115e1565b4780156113dd576113dd4761152a565b50505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061142557506001600160a01b03831660009081526005602052604090205460ff165b8061145757506016546001600160a01b0385811691161480159061145757506016546001600160a01b03848116911614155b15611464575060006114de565b6016546001600160a01b03858116911614801561148f57506015546001600160a01b03848116911614155b156114a157600a54600e55600c54600f555b6016546001600160a01b0384811691161480156114cc57506015546001600160a01b03858116911614155b156114de57600b54600e55600d54600f555b6114ea84848484611796565b50505050565b600081848411156115145760405162461bcd60e51b815260040161075c9190611b76565b5060006115218486611eb2565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156107cd573d6000803e3d6000fd5b60006006548211156115cb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161075c565b60006115d56117ca565b9050610d738382610d7a565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061162957611629611e19565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611ec5565b816001815181106116b9576116b9611e19565b6001600160a01b0392831660209182029290920101526015546116df9130911684610dbc565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611718908590600090869030904290600401611ee2565b600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000818361177c5760405162461bcd60e51b815260040161075c9190611b76565b5060006115218486611e7d565b61083d3061dead83610ee0565b806117a3576117a36117ed565b6117ae848484611832565b806114ea576114ea601154600e55601254600f55601354601055565b60008060006117d7611929565b90925090506117e68282610d7a565b9250505090565b600e541580156117fd5750600f54155b80156118095750601054155b1561181057565b600e8054601155600f8054601255601080546013556000928390559082905555565b6000806000806000806118448761196b565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061187690876119c8565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118a59086611a0a565b6001600160a01b0389166000908152600260205260409020556118c781611a69565b6118d18483611ab3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161191691815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006119458282610d7a565b8210156119625750506006549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006119888a600e54600f54611ad7565b92509250925060006119986117ca565b905060008060006119ab8e878787611b26565b919e509c509a509598509396509194505050505091939550919395565b6000610d7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f0565b600080611a178385611e9f565b905083811015610d735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075c565b6000611a736117ca565b90506000611a818383610cf1565b30600090815260026020526040902054909150611a9e9082611a0a565b30600090815260026020526040902055505050565b600654611ac090836119c8565b600655600754611ad09082611a0a565b6007555050565b6000808080611aeb60646113aa8989610cf1565b90506000611afe60646113aa8a89610cf1565b90506000611b1682611b108b866119c8565b906119c8565b9992985090965090945050505050565b6000808080611b358886610cf1565b90506000611b438887610cf1565b90506000611b518888610cf1565b90506000611b6382611b1086866119c8565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611ba357858101830151858201604001528201611b87565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083d57600080fd5b8035611be481611bc4565b919050565b60008060408385031215611bfc57600080fd5b8235611c0781611bc4565b946020939093013593505050565b600060208284031215611c2757600080fd5b8135610d7381611bc4565b600080600060608486031215611c4757600080fd5b8335611c5281611bc4565b92506020840135611c6281611bc4565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611c9c57600080fd5b823567ffffffffffffffff80821115611cb457600080fd5b818501915085601f830112611cc857600080fd5b813581811115611cda57611cda611c73565b8060051b604051601f19603f83011681018181108582111715611cff57611cff611c73565b604052918252848201925083810185019188831115611d1d57600080fd5b938501935b82851015611d4257611d3385611bd9565b84529385019392850192611d22565b98975050505050505050565b60008060408385031215611d6157600080fd5b50508035926020909101359150565b600060208284031215611d8257600080fd5b5035919050565b600060208284031215611d9b57600080fd5b81358015158114610d7357600080fd5b60008060408385031215611dbe57600080fd5b8235611dc981611bc4565b91506020830135611dd981611bc4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611e5757611e57611e2f565b5060010190565b6000816000190483118215151615611e7857611e78611e2f565b500290565b600082611e9a57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106c3576106c3611e2f565b818103818111156106c3576106c3611e2f565b600060208284031215611ed757600080fd5b8151610d7381611bc4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f325784516001600160a01b031683529383019391830191600101611f0d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1aeb43681fd2f821d3e72f79516ee85d2c1e7d5a0202615c8cfd0fe7167398c64736f6c63430008100033
Deployed Bytecode Sourcemap
4185:14827:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6008:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6008:56:0;;;;;;;;6943:83;;;;;;;;;;-1:-1:-1;7013:5:0;;;;;;;;;;;;-1:-1:-1;;;7013:5:0;;;;6943:83;;;;;;;:::i;7868:193::-;;;;;;;;;;-1:-1:-1;7868:193:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;7868:193:0;1344:187:1;14499:105:0;;;;;;;;;;-1:-1:-1;14499:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14579:17:0;14556:4;14579:17;;;:9;:17;;;;;;;;;14499:105;5640:41;;;;;;;;;;-1:-1:-1;5640:41:0;;;;-1:-1:-1;;;;;5640:41:0;;;;;;-1:-1:-1;;;;;1978:32:1;;;1960:51;;1948:2;1933:18;5640:41:0;1788:229:1;7220:95:0;;;;;;;;;;-1:-1:-1;4759:23:0;7220:95;;8069:446;;;;;;;;;;-1:-1:-1;8069:446:0;;;;;:::i;:::-;;:::i;5551:80::-;;;;;;;;;;;;5589:42;5551:80;;14155:178;;;;;;;;;;-1:-1:-1;14155:178:0;;;;;:::i;:::-;;:::i;:::-;;6072:61;;;;;;;;;;;;;;;;7129:83;;;;;;;;;;-1:-1:-1;7129:83:0;;4433:1;4091:36:1;;4079:2;4064:18;7129:83:0;3949:184:1;14341:150:0;;;;;;;;;;-1:-1:-1;14341:150:0;;;;;:::i;:::-;;:::i;18725:183::-;;;;;;;;;;-1:-1:-1;18725:183:0;;;;;:::i;:::-;;:::i;5688:28::-;;;;;;;;;;-1:-1:-1;5688:28:0;;;;-1:-1:-1;;;;;5688:28:0;;;18916:91;;;;;;;;;;-1:-1:-1;18916:91:0;;;;;:::i;:::-;;:::i;13368:217::-;;;;;;;;;;-1:-1:-1;13368:217:0;;;;;:::i;:::-;;:::i;18150:151::-;;;;;;;;;;;;;:::i;18041:101::-;;;;;;;;;;-1:-1:-1;18041:101:0;;;;;:::i;:::-;;:::i;13957:190::-;;;;;;;;;;;;;:::i;7323:138::-;;;;;;;;;;-1:-1:-1;7323:138:0;;;;;:::i;:::-;;:::i;1664:148::-;;;;;;;;;;;;;:::i;18313:110::-;;;;;;;;;;-1:-1:-1;18313:110:0;;;;;:::i;:::-;;:::i;4927:25::-;;;;;;;;;;;;;;;;13213:147;;;;;;;;;;;;;:::i;5882:55::-;;;;;;;;;;;;;;;;13730:219;;;;;;;;;;-1:-1:-1;13730:219:0;;;;;:::i;:::-;;:::i;1450:79::-;;;;;;;;;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;1515:6:0;1450:79;;5944:57;;;;;;;;;;;;;;;;7034:87;;;;;;;;;;-1:-1:-1;7106:7:0;;;;;;;;;;;;-1:-1:-1;;;7106:7:0;;;;7034:87;;13593:129;;;;;;;;;;-1:-1:-1;13593:129:0;;;;;:::i;:::-;;:::i;7469:199::-;;;;;;;;;;-1:-1:-1;7469:199:0;;;;;:::i;:::-;;:::i;18560:157::-;;;;;;;;;;-1:-1:-1;18560:157:0;;;;;:::i;:::-;;:::i;7676:184::-;;;;;;;;;;-1:-1:-1;7676:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7825:18:0;;;7793:7;7825:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7676:184;18435:117;;;;;;;;;;-1:-1:-1;18435:117:0;;;;;:::i;:::-;;:::i;1824:244::-;;;;;;;;;;-1:-1:-1;1824:244:0;;;;;:::i;:::-;;:::i;7868:193::-;7970:4;7992:39;289:10;8015:7;8024:6;7992:8;:39::i;:::-;-1:-1:-1;8049:4:0;7868:193;;;;;:::o;8069:446::-;8201:4;8218:36;8228:6;8236:9;8247:6;8218:9;:36::i;:::-;8265:220;8288:6;289:10;8336:138;8392:6;8336:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;289:10;8336:33;;;;;;;;;;:37;:138::i;:::-;8265:8;:220::i;:::-;-1:-1:-1;8503:4:0;8069:446;;;;;:::o;14155:178::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;;;;;;;;;14234:9:::1;14230:96;14251:7;:14;14248:1;:17;14230:96;;;14310:4;14286:9;:21;14296:7;14304:1;14296:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14286:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14286:21:0;:28;;-1:-1:-1;;14286:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14267:3;::::1;::::0;::::1;:::i;:::-;;;;14230:96;;;;14155:178:::0;:::o;14341:150::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14413:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14409:75;;;-1:-1:-1::0;;;;;14447:17:0;::::1;14467:5;14447:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14447:25:0::1;::::0;;14409:75:::1;14341:150:::0;:::o;18725:183::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18819:19:::1;:34:::0;;;;18864:20:::1;:36:::0;18725:183::o;18916:91::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18982:8:::1;:17:::0;18916:91::o;13368:217::-;13466:11;;-1:-1:-1;;;;;13466:11:0;289:10;-1:-1:-1;;;;;13450:27:0;;13442:36;;;;;;13489:11;:39;;-1:-1:-1;;;;;13489:39:0;;;-1:-1:-1;;;;;;13489:39:0;;;;;;;:11;13539:31;;;:18;:31;;;;;:38;;-1:-1:-1;;13539:38:0;13489:39;13539:38;;;13368:217::o;18150:151::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;4759:23:::1;18202:12;:22:::0;;;18235:14:::1;:24:::0;;;18270:13:::1;:23:::0;18150:151::o;18041:101::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18108:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18108:26:0::1;-1:-1:-1::0;;;;18108:26:0;;::::1;::::0;;;::::1;::::0;;18041:101::o;13957:190::-;14023:11;;-1:-1:-1;;;;;14023:11:0;289:10;-1:-1:-1;;;;;14007:27:0;;13999:36;;;;;;14075:21;14107:32;14075:21;14107:12;:32::i;7323:138::-;-1:-1:-1;;;;;7436:16:0;;7389:7;7436:16;;;:7;:16;;;;;;7416:37;;:19;:37::i;1664:148::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;1771:1:::1;1755:6:::0;;1734:40:::1;::::0;-1:-1:-1;;;;;1755:6:0;;::::1;::::0;1734:40:::1;::::0;1771:1;;1734:40:::1;1802:1;1785:19:::0;;-1:-1:-1;;;;;;1785:19:0::1;::::0;;1664:148::o;18313:110::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18389:12:::1;:26:::0;18313:110::o;13213:147::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;13272:11:::1;::::0;-1:-1:-1;;;13272:11:0;::::1;;;13271:12;13263:21;;;::::0;::::1;;13295:11;:18:::0;;-1:-1:-1;;;;13295:18:0::1;-1:-1:-1::0;;;13295:18:0::1;::::0;;13337:15:::1;13324:10;:28:::0;13213:147::o;13730:219::-;13810:11;;-1:-1:-1;;;;;13810:11:0;289:10;-1:-1:-1;;;;;13794:27:0;;13786:36;;;;;;13851:24;13869:4;13851:9;:24::i;:::-;13841:6;:34;;:48;;;;;13888:1;13879:6;:10;13841:48;13833:73;;;;-1:-1:-1;;;13833:73:0;;6214:2:1;13833:73:0;;;6196:21:1;6253:2;6233:18;;;6226:30;-1:-1:-1;;;6272:18:1;;;6265:42;6324:18;;13833:73:0;6012:336:1;13833:73:0;13917:24;13934:6;13917:16;:24::i;13593:129::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;13676:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;13676:38:0::1;-1:-1:-1::0;;;;13676:38:0;;::::1;::::0;;;::::1;::::0;;13593:129::o;7469:199::-;7574:4;7596:42;289:10;7620:9;7631:6;7596:9;:42::i;18560:157::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18648:12:::1;:24:::0;;;;18683:13:::1;:26:::0;18560:157::o;18435:117::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;18514:14:::1;:30:::0;18435:117::o;1824:244::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1913:22:0;::::1;1905:73;;;::::0;-1:-1:-1;;;1905:73:0;;6555:2:1;1905:73:0::1;::::0;::::1;6537:21:1::0;6594:2;6574:18;;;6567:30;6633:34;6613:18;;;6606:62;-1:-1:-1;;;6684:18:1;;;6677:36;6730:19;;1905:73:0::1;6353:402:1::0;1905:73:0::1;2015:6;::::0;;1994:38:::1;::::0;-1:-1:-1;;;;;1994:38:0;;::::1;::::0;2015:6;::::1;::::0;1994:38:::1;::::0;::::1;2043:6;:17:::0;;-1:-1:-1;;;;;;2043:17:0::1;-1:-1:-1::0;;;;;2043:17:0;;;::::1;::::0;;;::::1;::::0;;1824:244::o;2668:246::-;2726:7;2750:1;2755;2750:6;2746:47;;-1:-1:-1;2780:1:0;2773:8;;2746:47;2803:9;2815:5;2819:1;2815;:5;:::i;:::-;2803:17;-1:-1:-1;2848:1:0;2839:5;2843:1;2803:17;2839:5;:::i;:::-;:10;2831:56;;;;-1:-1:-1;;;2831:56:0;;7357:2:1;2831:56:0;;;7339:21:1;7396:2;7376:18;;;7369:30;7435:34;7415:18;;;7408:62;-1:-1:-1;;;7486:18:1;;;7479:31;7527:19;;2831:56:0;7155:397:1;2831:56:0;2905:1;2668:246;-1:-1:-1;;;2668:246:0:o;2922:132::-;2980:7;3007:39;3011:1;3014;3007:39;;;;;;;;;;;;;;;;;:3;:39::i;9364:369::-;-1:-1:-1;;;;;9491:19:0;;9483:68;;;;-1:-1:-1;;;9483:68:0;;7759:2:1;9483:68:0;;;7741:21:1;7798:2;7778:18;;;7771:30;7837:34;7817:18;;;7810:62;-1:-1:-1;;;7888:18:1;;;7881:34;7932:19;;9483:68:0;7557:400:1;9483:68:0;-1:-1:-1;;;;;9570:21:0;;9562:68;;;;-1:-1:-1;;;9562:68:0;;8164:2:1;9562:68:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:34;8222:18;;;8215:62;-1:-1:-1;;;8293:18:1;;;8286:32;8335:19;;9562:68:0;7962:398:1;9562:68:0;-1:-1:-1;;;;;9641:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9693:32;;160:25:1;;;9693:32:0;;133:18:1;9693:32:0;;;;;;;9364:369;;;:::o;9741:2746::-;-1:-1:-1;;;;;9863:18:0;;9855:68;;;;-1:-1:-1;;;9855:68:0;;8567:2:1;9855:68:0;;;8549:21:1;8606:2;8586:18;;;8579:30;8645:34;8625:18;;;8618:62;-1:-1:-1;;;8696:18:1;;;8689:35;8741:19;;9855:68:0;8365:401:1;9855:68:0;-1:-1:-1;;;;;9942:16:0;;9934:64;;;;-1:-1:-1;;;9934:64:0;;8973:2:1;9934:64:0;;;8955:21:1;9012:2;8992:18;;;8985:30;9051:34;9031:18;;;9024:62;-1:-1:-1;;;9102:18:1;;;9095:33;9145:19;;9934:64:0;8771:399:1;9934:64:0;10026:1;10017:6;:10;10009:64;;;;-1:-1:-1;;;10009:64:0;;9377:2:1;10009:64:0;;;9359:21:1;9416:2;9396:18;;;9389:30;9455:34;9435:18;;;9428:62;-1:-1:-1;;;9506:18:1;;;9499:39;9555:19;;10009:64:0;9175:405:1;10009:64:0;1488:7;1515:6;-1:-1:-1;;;;;10090:15:0;;;1515:6;;10090:15;;;;:32;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;10109:13:0;;;1515:6;;10109:13;;10090:32;10086:1723;;;-1:-1:-1;;;;;10148:13:0;;;;;;:9;:13;;;;;;;;10147:14;:34;;;;-1:-1:-1;;;;;;10166:15:0;;;;;;:9;:15;;;;;;;;10165:16;10147:34;10139:43;;;;;;10216:11;;-1:-1:-1;;;10216:11:0;;;;10211:87;;10248:34;;-1:-1:-1;;;10248:34:0;;9787:2:1;10248:34:0;;;9769:21:1;9826:2;9806:18;;;9799:30;9865:26;9845:18;;;9838:54;9909:18;;10248:34:0;9585:348:1;10211:87:0;10336:13;;-1:-1:-1;;;;;10330:19:0;;;10336:13;;10330:19;:55;;;;-1:-1:-1;10369:15:0;;-1:-1:-1;;;;;10353:32:0;;;10369:15;;10353:32;;10330:55;10326:295;;;-1:-1:-1;;;;;10410:19:0;;10424:4;10410:19;;;;:44;;-1:-1:-1;;;;;;10433:21:0;;10449:4;10433:21;;10410:44;:65;;;;-1:-1:-1;10464:11:0;;-1:-1:-1;;;;;10458:17:0;;;10464:11;;10458:17;;10410:65;:88;;;;-1:-1:-1;10487:11:0;;-1:-1:-1;;;;;10479:19:0;;;10487:11;;10479:19;;10410:88;10406:200;;;10541:12;;10531:6;:22;;10523:63;;;;-1:-1:-1;;;10523:63:0;;10140:2:1;10523:63:0;;;10122:21:1;10179:2;10159:18;;;10152:30;10218;10198:18;;;10191:58;10266:18;;10523:63:0;9938:352:1;10523:63:0;10647:13;;-1:-1:-1;;;;;10641:19:0;;;10647:13;;10641:19;;;;:40;;-1:-1:-1;10670:11:0;;-1:-1:-1;;;;;10664:17:0;;;10670:11;;10664:17;;10641:40;:63;;;;-1:-1:-1;;;;;;10685:19:0;;10699:4;10685:19;;10641:63;:84;;;;-1:-1:-1;;;;;;10708:17:0;;5589:42;10708:17;;10641:84;10637:351;;;10779:14;;10770:6;10754:13;10764:2;10754:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10746:87;;;;-1:-1:-1;;;10746:87:0;;10627:2:1;10746:87:0;;;10609:21:1;10666:2;10646:18;;;10639:30;10705:34;10685:18;;;10678:62;-1:-1:-1;;;10756:18:1;;;10749:33;10799:19;;10746:87:0;10425:399:1;10746:87:0;10856:17;;-1:-1:-1;;;10856:17:0;;;;10852:121;;;10920:13;;10910:6;:23;;10902:51;;;;-1:-1:-1;;;10902:51:0;;11031:2:1;10902:51:0;;;11013:21:1;11070:2;11050:18;;;11043:30;-1:-1:-1;;;11089:18:1;;;11082:45;11144:18;;10902:51:0;10829:339:1;10902:51:0;11016:28;11047:24;11065:4;11047:9;:24::i;:::-;11124:19;;11016:55;;-1:-1:-1;11101:42:0;;;11176:18;;;;-1:-1:-1;11188:6:0;;-1:-1:-1;;;11188:6:0;;;;11187:7;11176:18;:43;;;;-1:-1:-1;11206:13:0;;-1:-1:-1;;;;;11198:21:0;;;11206:13;;11198:21;;11176:43;:58;;;;-1:-1:-1;11223:11:0;;-1:-1:-1;;;11223:11:0;;;;11176:58;:87;;;;-1:-1:-1;;;;;;11239:24:0;;;;;;:18;:24;;;;;;;;11238:25;11176:87;:114;;;;-1:-1:-1;;;;;;11268:22:0;;;;;;:18;:22;;;;;;;;11267:23;11176:114;11172:626;;;11357:8;;11311:19;;11357:12;11353:166;;11408:45;11447:5;11408:34;11433:8;;11408:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11394:59;;11476:23;11487:11;11476:10;:23::i;:::-;11537:52;11554:34;11577:11;11554:20;:34;:::i;:::-;11537:16;:52::i;:::-;11637:21;11681:22;;11677:106;;11728:35;11741:21;11728:12;:35::i;:::-;11292:506;;11172:626;10124:1685;;10086:1723;-1:-1:-1;;;;;11866:24:0;;11829:12;11866:24;;;:18;:24;;;;;;11844:4;;11866:24;;;:50;;-1:-1:-1;;;;;;11894:22:0;;;;;;:18;:22;;;;;;;;11866:50;11865:102;;;-1:-1:-1;11930:13:0;;-1:-1:-1;;;;;11922:21:0;;;11930:13;;11922:21;;;;:44;;-1:-1:-1;11953:13:0;;-1:-1:-1;;;;;11947:19:0;;;11953:13;;11947:19;;11922:44;11861:565;;;-1:-1:-1;11994:5:0;11861:565;;;12043:13;;-1:-1:-1;;;;;12035:21:0;;;12043:13;;12035:21;:55;;;;-1:-1:-1;12074:15:0;;-1:-1:-1;;;;;12060:30:0;;;12074:15;;12060:30;;12035:55;12032:180;;;12132:19;;12115:14;:36;12184:12;;12174:7;:22;12032:180;12242:13;;-1:-1:-1;;;;;12236:19:0;;;12242:13;;12236:19;:55;;;;-1:-1:-1;12275:15:0;;-1:-1:-1;;;;;12259:32:0;;;12275:15;;12259:32;;12236:55;12232:183;;;12333:20;;12316:14;:37;12386:13;;12376:7;:23;12232:183;12438:41;12453:4;12459:2;12463:6;12471:7;12438:14;:41::i;:::-;9844:2643;9741:2746;;;:::o;2436:224::-;2556:7;2592:12;2584:6;;;;2576:29;;;;-1:-1:-1;;;2576:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2616:9:0;2628:5;2632:1;2628;:5;:::i;:::-;2616:17;2436:224;-1:-1:-1;;;;;2436:224:0:o;13112:93::-;13169:11;;:28;;-1:-1:-1;;;;;13169:11:0;;;;:28;;;;;13190:6;;13169:11;:28;:11;:28;13190:6;13169:11;:28;;;;;;;;;;;;;;;;;;;8523:323;8618:7;8676;;8665;:18;;8643:110;;;;-1:-1:-1;;;8643:110:0;;11508:2:1;8643:110:0;;;11490:21:1;11547:2;11527:18;;;11520:30;11586:34;11566:18;;;11559:62;-1:-1:-1;;;11637:18:1;;;11630:40;11687:19;;8643:110:0;11306:406:1;8643:110:0;8764:19;8786:10;:8;:10::i;:::-;8764:32;-1:-1:-1;8814:24:0;:7;8764:32;8814:11;:24::i;12621:483::-;6227:6;:13;;-1:-1:-1;;;;6227:13:0;-1:-1:-1;;;6227:13:0;;;12723:16:::1;::::0;;12737:1:::1;12723:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12723:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12723:16:0::1;12699:40;;12768:4;12750;12755:1;12750:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12750:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12794:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12794:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12750:7;;12794:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12784:4;12789:1;12784:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12784:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12859:15:::1;::::0;12827:62:::1;::::0;12844:4:::1;::::0;12859:15:::1;12877:11:::0;12827:8:::1;:62::i;:::-;12900:15;::::0;:196:::1;::::0;-1:-1:-1;;;12900:196:0;;-1:-1:-1;;;;;12900:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12981:11;;12900:15:::1;::::0;13023:4;;13050::::1;::::0;13070:15:::1;::::0;12900:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6263:6:0;:14;;-1:-1:-1;;;;6263:14:0;;;-1:-1:-1;;;;12621:483:0:o;3062:223::-;3182:7;3217:12;3210:5;3202:28;;;;-1:-1:-1;;;3202:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3241:9:0;3253:5;3257:1;3253;:5;:::i;12495:118::-;12555:50;12573:4;5589:42;12593:11;12555:9;:50::i;14616:282::-;14772:7;14767:28;;14781:14;:12;:14::i;:::-;14806:44;14824:6;14832:9;14843:6;14806:17;:44::i;:::-;14866:7;14861:29;;14875:15;9252:22;;9235:14;:39;9295:15;;9285:7;:25;9332:16;;9321:8;:27;9191:165;17596:166;17638:7;17659:15;17676;17695:19;:17;:19::i;:::-;17658:56;;-1:-1:-1;17658:56:0;-1:-1:-1;17734:20:0;17658:56;;17734:11;:20::i;:::-;17727:27;;;;17596:166;:::o;8854:329::-;8901:14;;:19;:35;;;;-1:-1:-1;8924:7:0;;:12;8901:35;:52;;;;-1:-1:-1;8940:8:0;;:13;8901:52;8897:65;;;8854:329::o;8897:65::-;9003:14;;;8978:22;:39;9046:7;;;9028:15;:25;9083:8;;;9064:16;:27;-1:-1:-1;9112:18:0;;;;9141:11;;;;9163:12;8854:329::o;14906:610::-;15053:15;15083:23;15121:12;15148:23;15186:12;15213:13;15240:19;15251:7;15240:10;:19::i;:::-;-1:-1:-1;;;;;15288:15:0;;;;;;:7;:15;;;;;;15038:221;;-1:-1:-1;15038:221:0;;-1:-1:-1;15038:221:0;;-1:-1:-1;15038:221:0;-1:-1:-1;15038:221:0;-1:-1:-1;15038:221:0;-1:-1:-1;15288:28:0;;15038:221;15288:19;:28::i;:::-;-1:-1:-1;;;;;15270:15:0;;;;;;;:7;:15;;;;;;:46;;;;15348:18;;;;;;;:39;;15371:15;15348:22;:39::i;:::-;-1:-1:-1;;;;;15327:18:0;;;;;;:7;:18;;;;;:60;15398:16;15408:5;15398:9;:16::i;:::-;15425:23;15437:4;15443;15425:11;:23::i;:::-;15481:9;-1:-1:-1;;;;;15464:44:0;15473:6;-1:-1:-1;;;;;15464:44:0;;15492:15;15464:44;;;;160:25:1;;148:2;133:18;;14:177;15464:44:0;;;;;;;;15027:489;;;;;;14906:610;;;:::o;17770:263::-;17868:7;;17821;;;;4759:23;17936:20;17868:7;4759:23;17936:11;:20::i;:::-;17926:7;:30;17922:61;;;-1:-1:-1;;17966:7:0;;;4759:23;;-1:-1:-1;17770:263:0;-1:-1:-1;17770:263:0:o;17922:61::-;18008:7;;18017;;-1:-1:-1;17770:263:0;-1:-1:-1;17770:263:0:o;15935:630::-;16035:7;16057;16079;16101;16123;16145;16181:23;16206:12;16220:13;16250:45;16262:7;16271:14;;16287:7;;16250:11;:45::i;:::-;16180:115;;;;;;16306:19;16328:10;:8;:10::i;:::-;16306:32;;16350:15;16367:23;16392:12;16421:46;16433:7;16442:4;16448:5;16455:11;16421;:46::i;:::-;16349:118;;-1:-1:-1;16349:118:0;-1:-1:-1;16349:118:0;-1:-1:-1;16528:15:0;;-1:-1:-1;16545:4:0;;-1:-1:-1;16551:5:0;;-1:-1:-1;;;;;15935:630:0;;;;;;;:::o;2292:136::-;2350:7;2377:43;2381:1;2384;2377:43;;;;;;;;;;;;;;;;;:3;:43::i;2105:179::-;2163:7;;2195:5;2199:1;2195;:5;:::i;:::-;2183:17;;2224:1;2219;:6;;2211:46;;;;-1:-1:-1;;;2211:46:0;;13160:2:1;2211:46:0;;;13142:21:1;13199:2;13179:18;;;13172:30;13238:29;13218:18;;;13211:57;13285:18;;2211:46:0;12958:351:1;15524:211:0;15577:19;15599:10;:8;:10::i;:::-;15577:32;-1:-1:-1;15620:13:0;15636:22;:5;15577:32;15636:9;:22::i;:::-;15710:4;15694:22;;;;:7;:22;;;;;;15620:38;;-1:-1:-1;15694:33:0;;15620:38;15694:26;:33::i;:::-;15685:4;15669:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15524:211:0:o;15743:147::-;15821:7;;:17;;15833:4;15821:11;:17::i;:::-;15811:7;:27;15862:10;;:20;;15877:4;15862:14;:20::i;:::-;15849:10;:33;-1:-1:-1;;15743:147:0:o;16573:471::-;16742:7;;;;16836:30;16862:3;16836:21;:7;16848:8;16836:11;:21::i;:30::-;16821:45;-1:-1:-1;16877:13:0;16893:28;16917:3;16893:19;:7;16905:6;16893:11;:19::i;:28::-;16877:44;-1:-1:-1;16932:23:0;16958:28;16877:44;16958:17;:7;16970:4;16958:11;:17::i;:::-;:21;;:28::i;:::-;16932:54;17024:4;;-1:-1:-1;17030:5:0;;-1:-1:-1;16573:471:0;;-1:-1:-1;;;;;16573:471:0:o;17052:536::-;17246:7;;;;17343:24;:7;17355:11;17343;:24::i;:::-;17325:42;-1:-1:-1;17378:12:0;17393:21;:4;17402:11;17393:8;:21::i;:::-;17378:36;-1:-1:-1;17425:13:0;17441:22;:5;17451:11;17441:9;:22::i;:::-;17425:38;-1:-1:-1;17474:23:0;17500:28;17425:38;17500:17;:7;17512:4;17500:11;:17::i;:28::-;17549:7;;;;-1:-1:-1;17575:4:0;;-1:-1:-1;17052:536:0;;-1:-1:-1;;;;;;;17052:536:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;2022:456::-;2099:6;2107;2115;2168:2;2156:9;2147:7;2143:23;2139:32;2136:52;;;2184:1;2181;2174:12;2136:52;2223:9;2210:23;2242:31;2267:5;2242:31;:::i;:::-;2292:5;-1:-1:-1;2349:2:1;2334:18;;2321:32;2362:33;2321:32;2362:33;:::i;:::-;2022:456;;2414:7;;-1:-1:-1;;;2468:2:1;2453:18;;;;2440:32;;2022:456::o;2691:127::-;2752:10;2747:3;2743:20;2740:1;2733:31;2783:4;2780:1;2773:15;2807:4;2804:1;2797:15;2823:1121;2907:6;2938:2;2981;2969:9;2960:7;2956:23;2952:32;2949:52;;;2997:1;2994;2987:12;2949:52;3037:9;3024:23;3066:18;3107:2;3099:6;3096:14;3093:34;;;3123:1;3120;3113:12;3093:34;3161:6;3150:9;3146:22;3136:32;;3206:7;3199:4;3195:2;3191:13;3187:27;3177:55;;3228:1;3225;3218:12;3177:55;3264:2;3251:16;3286:2;3282;3279:10;3276:36;;;3292:18;;:::i;:::-;3338:2;3335:1;3331:10;3370:2;3364:9;3433:2;3429:7;3424:2;3420;3416:11;3412:25;3404:6;3400:38;3488:6;3476:10;3473:22;3468:2;3456:10;3453:18;3450:46;3447:72;;;3499:18;;:::i;:::-;3535:2;3528:22;3585:18;;;3619:15;;;;-1:-1:-1;3661:11:1;;;3657:20;;;3689:19;;;3686:39;;;3721:1;3718;3711:12;3686:39;3745:11;;;;3765:148;3781:6;3776:3;3773:15;3765:148;;;3847:23;3866:3;3847:23;:::i;:::-;3835:36;;3798:12;;;;3891;;;;3765:148;;;3932:6;2823:1121;-1:-1:-1;;;;;;;;2823:1121:1:o;4138:248::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;-1:-1:-1;;4306:23:1;;;4376:2;4361:18;;;4348:32;;-1:-1:-1;4138:248:1:o;4391:180::-;4450:6;4503:2;4491:9;4482:7;4478:23;4474:32;4471:52;;;4519:1;4516;4509:12;4471:52;-1:-1:-1;4542:23:1;;4391:180;-1:-1:-1;4391:180:1:o;4576:273::-;4632:6;4685:2;4673:9;4664:7;4660:23;4656:32;4653:52;;;4701:1;4698;4691:12;4653:52;4740:9;4727:23;4793:5;4786:13;4779:21;4772:5;4769:32;4759:60;;4815:1;4812;4805:12;4854:388;4922:6;4930;4983:2;4971:9;4962:7;4958:23;4954:32;4951:52;;;4999:1;4996;4989:12;4951:52;5038:9;5025:23;5057:31;5082:5;5057:31;:::i;:::-;5107:5;-1:-1:-1;5164:2:1;5149:18;;5136:32;5177:33;5136:32;5177:33;:::i;:::-;5229:7;5219:17;;;4854:388;;;;;:::o;5247:356::-;5449:2;5431:21;;;5468:18;;;5461:30;5527:34;5522:2;5507:18;;5500:62;5594:2;5579:18;;5247:356::o;5608:127::-;5669:10;5664:3;5660:20;5657:1;5650:31;5700:4;5697:1;5690:15;5724:4;5721:1;5714:15;5740:127;5801:10;5796:3;5792:20;5789:1;5782:31;5832:4;5829:1;5822:15;5856:4;5853:1;5846:15;5872:135;5911:3;5932:17;;;5929:43;;5952:18;;:::i;:::-;-1:-1:-1;5999:1:1;5988:13;;5872:135::o;6760:168::-;6800:7;6866:1;6862;6858:6;6854:14;6851:1;6848:21;6843:1;6836:9;6829:17;6825:45;6822:71;;;6873:18;;:::i;:::-;-1:-1:-1;6913:9:1;;6760:168::o;6933:217::-;6973:1;6999;6989:132;;7043:10;7038:3;7034:20;7031:1;7024:31;7078:4;7075:1;7068:15;7106:4;7103:1;7096:15;6989:132;-1:-1:-1;7135:9:1;;6933:217::o;10295:125::-;10360:9;;;10381:10;;;10378:36;;;10394:18;;:::i;11173:128::-;11240:9;;;11261:11;;;11258:37;;;11275:18;;:::i;11717:251::-;11787:6;11840:2;11828:9;11819:7;11815:23;11811:32;11808:52;;;11856:1;11853;11846:12;11808:52;11888:9;11882:16;11907:31;11932:5;11907:31;:::i;11973:980::-;12235:4;12283:3;12272:9;12268:19;12314:6;12303:9;12296:25;12340:2;12378:6;12373:2;12362:9;12358:18;12351:34;12421:3;12416:2;12405:9;12401:18;12394:31;12445:6;12480;12474:13;12511:6;12503;12496:22;12549:3;12538:9;12534:19;12527:26;;12588:2;12580:6;12576:15;12562:29;;12609:1;12619:195;12633:6;12630:1;12627:13;12619:195;;;12698:13;;-1:-1:-1;;;;;12694:39:1;12682:52;;12789:15;;;;12754:12;;;;12730:1;12648:9;12619:195;;;-1:-1:-1;;;;;;;12870:32:1;;;;12865:2;12850:18;;12843:60;-1:-1:-1;;;12934:3:1;12919:19;12912:35;12831:3;11973:980;-1:-1:-1;;;11973:980:1:o
Swarm Source
ipfs://a1aeb43681fd2f821d3e72f79516ee85d2c1e7d5a0202615c8cfd0fe7167398c
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.