ERC-20
Overview
Max Total Supply
1,000,000,000 CNAI
Holders
828
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000027632354 CNAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CloudnetAi
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-25 */ // website: https://cloudnetai.io/ // document: https://docs.cloudnetai.io/ // telegram: https://t.me/cloudnetai // medium: https://medium.com/@CloudnetAi // twitter: https://twitter.com/cloudneteth // SPDX-License-Identifier: MIT pragma solidity 0.8.19; 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 ); } 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; } } contract Ownable is Context { address private _owner; 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); } } 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 CloudnetAi is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; address payable private _taxWallet; address private uniswapV2Pair; IUniswapV2Router02 private uniswapV2Router; uint256 private constant _initialBuyTax = 20; uint256 private constant _initialSellTax = 30; uint256 private constant _reduceBuyTaxAt = 35; uint256 private constant _reduceSellTaxAt = 45; uint256 private constant _preventSwapBefore = 40; uint256 private _finalBuyTax = 10; uint256 private _finalSellTax = 25; uint256 private _buyCount = 0; uint256 private _countTax; uint256 private _countSwapTx; string private constant _name = unicode" Cloudnet Ai "; string private constant _symbol = unicode" CNAI "; uint8 private constant _decimals = 18; uint256 private constant _totalSupply = 1_000_000_000 * 10**_decimals; uint256 private constant _countTrigger = 500_000 * 10**_decimals; uint256 public constant _taxSwapThreshold = 2_000_000 * 10**_decimals; uint256 public constant _maxTaxSwap = 5_000_000 * 10**_decimals; uint256 public _maxTxAmount = 5_000_000 * 10**_decimals; uint256 public _maxWalletSize = 5_000_000 * 10**_decimals; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private guard = false; event FinalTax(uint256 _valueBuy, uint256 _valueSell); event TradingActive(bool _tradingOpen, bool _swapEnabled); event maxAmount(uint256 _value); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor(address taxWallet) { _taxWallet = payable(taxWallet); _balances[owner()] = _totalSupply; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[_taxWallet] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), owner(), _totalSupply); } 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 _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 _approve( address owner, address spender, uint256 amount ) private { require( owner != address(0) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address" ); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if (!tradingOpen) { require( _isExcludedFromFee[to] || _isExcludedFromFee[from], "trading not yet open" ); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); _buyCount++; } if (to == uniswapV2Pair && from != address(this)) { taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax)/100; } else if (from == uniswapV2Pair && to != address(this)) { taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax )/100; } _countTax += taxAmount; uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore && _countTax > _countTrigger ) { _countSwapTx++; uint256 getMinValue = (contractTokenBalance > _maxTaxSwap)? _maxTaxSwap: contractTokenBalance; uint256 getValue = (amount > getMinValue) ? getMinValue : amount; if (_countSwapTx >= 3 ) { swapTokensForEth(getValue); _countTax = 0; _countSwapTx = 0; } else if (guard == false) { swapTokensForEth(getValue); _countTax = 0; } uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { bool success; (success, ) = address(_taxWallet).call{ value: address(this).balance }(""); } } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this), taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } 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 ); } /** * @notice initialize getting pair tarding */ function getPair() external onlyOwner { require(!tradingOpen, "getpair already paired"); uint256 tokenAmount = balanceOf(address(this)).sub(_totalSupply.mul(_initialBuyTax).div(100)); uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), _totalSupply); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), tokenAmount, 0, 0, _msgSender(), block.timestamp ); IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); } /** * @notice openTrading */ function openTrading() external onlyOwner { require(!tradingOpen, "trading already open"); swapEnabled = true; tradingOpen = true; emit TradingActive(tradingOpen, swapEnabled); } /** * @notice remove limit buy amount and limit max wallet. */ function maxAmountLimits () external onlyOwner { require(tradingOpen, "trading not yet open"); _maxTxAmount = _totalSupply; _maxWalletSize = _totalSupply; emit maxAmount(_totalSupply); } /** * @notice configuration tax. * @param _valueBuy tax for buy. * @param _valueSell tax for sell. * @param _guard protection of uncloged. */ function taxFeeConfig (uint256 _valueBuy, uint256 _valueSell, bool _guard) external onlyOwner { require(_valueBuy <= 25 && _valueSell <= 25 && tradingOpen, "Exceeds value"); _finalBuyTax = _valueBuy; _finalSellTax = _valueSell; guard = _guard; emit FinalTax(_valueBuy, _valueSell); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAmountLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"},{"internalType":"bool","name":"_guard","type":"bool"}],"name":"taxFeeConfig","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600755601960085560006009556012600a620000239190620005e3565b624c4b4062000033919062000634565b600c556012600a620000469190620005e3565b624c4b4062000056919062000634565b600d556000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055506000600e60036101000a81548160ff021916908315150217905550348015620000b757600080fd5b5060405162003b1638038062003b168339818101604052810190620000dd9190620006e9565b6000620000ef6200041860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001de9190620005e3565b633b9aca00620001ef919062000634565b60016000620002036200042060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002576200042060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200038a6200042060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003e99190620005e3565b633b9aca00620003fa919062000634565b6040516200040991906200072c565b60405180910390a35062000749565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004d757808604811115620004af57620004ae62000449565b5b6001851615620004bf5780820291505b8081029050620004cf8562000478565b94506200048f565b94509492505050565b600082620004f25760019050620005c5565b81620005025760009050620005c5565b81600181146200051b576002811462000526576200055c565b6001915050620005c5565b60ff8411156200053b576200053a62000449565b5b8360020a91508482111562000555576200055462000449565b5b50620005c5565b5060208310610133831016604e8410600b8410161715620005965782820a90508381111562000590576200058f62000449565b5b620005c5565b620005a5848484600162000485565b92509050818404811115620005bf57620005be62000449565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005f082620005cc565b9150620005fd83620005d6565b92506200062c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e0565b905092915050565b60006200064182620005cc565b91506200064e83620005cc565b92508282026200065e81620005cc565b9150828204841483151762000678576200067762000449565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006b18262000684565b9050919050565b620006c381620006a4565b8114620006cf57600080fd5b50565b600081519050620006e381620006b8565b92915050565b6000602082840312156200070257620007016200067f565b5b60006200071284828501620006d2565b91505092915050565b6200072681620005cc565b82525050565b60006020820190506200074360008301846200071b565b92915050565b6133bd80620007596000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb1461038a578063bf474bed146103c7578063c1f1b1b5146103f2578063c9567bf914610409578063dd62ed3e146104205761011f565b80637d1db4a5146102c75780638da5cb5b146102f25780638f9a55c01461031d5780639532c6141461034857806395d89b411461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a61461028757806374a2c4c11461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b6040516101469190612417565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906124d2565b61049a565b604051610183919061252d565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b6040516101ae9190612557565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612557565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612572565b6104fb565b604051610216919061252d565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b60405161024191906125e1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906125fc565b6105dd565b60405161027e9190612557565b60405180910390f35b34801561029357600080fd5b5061029c610626565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612655565b610779565b005b3480156102d357600080fd5b506102dc6108dd565b6040516102e99190612557565b60405180910390f35b3480156102fe57600080fd5b506103076108e3565b60405161031491906126b7565b60405180910390f35b34801561032957600080fd5b5061033261090c565b60405161033f9190612557565b60405180910390f35b34801561035457600080fd5b5061035d610912565b005b34801561036b57600080fd5b50610374610a91565b6040516103819190612417565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac91906124d2565b610ace565b6040516103be919061252d565b60405180910390f35b3480156103d357600080fd5b506103dc610aec565b6040516103e99190612557565b60405180910390f35b3480156103fe57600080fd5b50610407610b0b565b005b34801561041557600080fd5b5061041e611067565b005b34801561042c57600080fd5b50610447600480360381019061044291906126d2565b6111db565b6040516104549190612557565b60405180910390f35b60606040518060400160405280600d81526020017f20436c6f75646e65742041692000000000000000000000000000000000000000815250905090565b60006104ae6104a7611262565b848461126a565b6001905092915050565b6012600a6104c69190612874565b624c4b406104d491906128bf565b81565b60006012600a6104e79190612874565b633b9aca006104f691906128bf565b905090565b60006105088484846113fe565b6105c984610514611262565b6105c48560405180606001604052806028815260200161336060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a611262565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edb9092919063ffffffff16565b61126a565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61062e611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b29061294d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610781611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108059061294d565b60405180910390fd5b60198311158015610820575060198211155b80156108385750600e60009054906101000a900460ff165b610877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086e906129b9565b60405180910390fd5b826007819055508160088190555080600e60036101000a81548160ff0219169083151502179055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f483836040516108d09291906129d9565b60405180910390a1505050565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b61091a611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e9061294d565b60405180910390fd5b600e60009054906101000a900460ff166109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90612a4e565b60405180910390fd5b6012600a610a049190612874565b633b9aca00610a1391906128bf565b600c819055506012600a610a279190612874565b633b9aca00610a3691906128bf565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a610a6b9190612874565b633b9aca00610a7a91906128bf565b604051610a879190612557565b60405180910390a1565b60606040518060400160405280600681526020017f20434e4149200000000000000000000000000000000000000000000000000000815250905090565b6000610ae2610adb611262565b84846113fe565b6001905092915050565b6012600a610afa9190612874565b621e8480610b0891906128bf565b81565b610b13611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b979061294d565b60405180910390fd5b600e60009054906101000a900460ff1615610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612aba565b60405180910390fd5b6000610c4f610c386064610c2a60146012600a610c0d9190612874565b633b9aca00610c1c91906128bf565b611f3f90919063ffffffff16565b611fb990919063ffffffff16565b610c41306105dd565b61200390919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cdb9190612874565b633b9aca00610cea91906128bf565b61126a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612aef565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612aef565b6040518363ffffffff1660e01b8152600401610e4a929190612b1c565b6020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612aef565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f19611262565b426040518863ffffffff1660e01b8152600401610f3b96959493929190612b8a565b60606040518083038185885af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e9190612c00565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611020929190612c53565b6020604051808303816000875af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190612c91565b5050565b61106f611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f39061294d565b60405180910390fd5b600e60009054906101000a900460ff161561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612d0a565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff166040516111d1929190612d2a565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112d45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612d9f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f19190612557565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612e0b565b60405180910390fd5b600081116114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e190612e9d565b60405180910390fd5b60006114f46108e3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561156257506115326108e3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1e57600e60009054906101000a900460ff1661165c57600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612a4e565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117075750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561175d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181857600c548211156117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90612f09565b60405180910390fd5b600d54826117b4856105dd565b6117be9190612f29565b11156117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f690612fa9565b60405180910390fd5b6009600081548092919061181290612fc9565b91905055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118a157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118e05760646118cf602d600954116118bc57601e6118c0565b6008545b84611f3f90919063ffffffff16565b6118d99190613040565b90506119a5565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a4576064611997602360095411611984576014611988565b6007545b84611f3f90919063ffffffff16565b6119a19190613040565b90505b5b80600a60008282546119b79190612f29565b9250508190555060006119c9306105dd565b9050600e60019054906101000a900460ff16158015611a355750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a4d5750600e60029054906101000a900460ff165b8015611a7357506012600a611a629190612874565b621e8480611a7091906128bf565b81115b8015611a8157506028600954115b8015611aa957506012600a611a969190612874565b6207a120611aa491906128bf565b600a54115b15611c1c57600b6000815480929190611ac190612fc9565b919050555060006012600a611ad69190612874565b624c4b40611ae491906128bf565b8211611af05781611b0d565b6012600a611afe9190612874565b624c4b40611b0c91906128bf565b5b90506000818511611b1e5784611b20565b815b90506003600b5410611b4a57611b358161204d565b6000600a819055506000600b81905550611b78565b60001515600e60039054906101000a900460ff16151503611b7757611b6e8161204d565b6000600a819055505b5b60004790506000811115611c18576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611bce906130a2565b60006040518083038185875af1925050503d8060008114611c0b576040519150601f19603f3d011682016040523d82523d6000602084013e611c10565b606091505b505080915050505b5050505b505b6000811115611d2257611c7981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d199190612557565b60405180910390a35b611d7482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1b611dcd828461200390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ec0848661200390919063ffffffff16565b604051611ecd9190612557565b60405180910390a350505050565b6000838311158290611f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1a9190612417565b60405180910390fd5b5060008385611f3291906130b7565b9050809150509392505050565b6000808303611f515760009050611fb3565b60008284611f5f91906128bf565b9050828482611f6e9190613040565b14611fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa59061315d565b60405180910390fd5b809150505b92915050565b6000611ffb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b905092915050565b600061204583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edb565b905092915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120855761208461317d565b5b6040519080825280602002602001820160405280156120b35781602001602082028036833780820191505090505b50905030816000815181106120cb576120ca6131ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190612aef565b816001815181106121aa576121a96131ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061221130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612275959493929190613299565b600060405180830381600087803b15801561228f57600080fd5b505af11580156122a3573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b60008082846122d59190612f29565b90508381101561231a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123119061333f565b60405180910390fd5b8091505092915050565b6000808311829061236b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123629190612417565b60405180910390fd5b506000838561237a9190613040565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c15780820151818401526020810190506123a6565b60008484015250505050565b6000601f19601f8301169050919050565b60006123e982612387565b6123f38185612392565b93506124038185602086016123a3565b61240c816123cd565b840191505092915050565b6000602082019050818103600083015261243181846123de565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124698261243e565b9050919050565b6124798161245e565b811461248457600080fd5b50565b60008135905061249681612470565b92915050565b6000819050919050565b6124af8161249c565b81146124ba57600080fd5b50565b6000813590506124cc816124a6565b92915050565b600080604083850312156124e9576124e8612439565b5b60006124f785828601612487565b9250506020612508858286016124bd565b9150509250929050565b60008115159050919050565b61252781612512565b82525050565b6000602082019050612542600083018461251e565b92915050565b6125518161249c565b82525050565b600060208201905061256c6000830184612548565b92915050565b60008060006060848603121561258b5761258a612439565b5b600061259986828701612487565b93505060206125aa86828701612487565b92505060406125bb868287016124bd565b9150509250925092565b600060ff82169050919050565b6125db816125c5565b82525050565b60006020820190506125f660008301846125d2565b92915050565b60006020828403121561261257612611612439565b5b600061262084828501612487565b91505092915050565b61263281612512565b811461263d57600080fd5b50565b60008135905061264f81612629565b92915050565b60008060006060848603121561266e5761266d612439565b5b600061267c868287016124bd565b935050602061268d868287016124bd565b925050604061269e86828701612640565b9150509250925092565b6126b18161245e565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b600080604083850312156126e9576126e8612439565b5b60006126f785828601612487565b925050602061270885828601612487565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127985780860481111561277457612773612712565b5b60018516156127835780820291505b808102905061279185612741565b9450612758565b94509492505050565b6000826127b1576001905061286d565b816127bf576000905061286d565b81600181146127d557600281146127df5761280e565b600191505061286d565b60ff8411156127f1576127f0612712565b5b8360020a91508482111561280857612807612712565b5b5061286d565b5060208310610133831016604e8410600b84101617156128435782820a90508381111561283e5761283d612712565b5b61286d565b612850848484600161274e565b9250905081840481111561286757612866612712565b5b81810290505b9392505050565b600061287f8261249c565b915061288a836125c5565b92506128b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127a1565b905092915050565b60006128ca8261249c565b91506128d58361249c565b92508282026128e38161249c565b915082820484148315176128fa576128f9612712565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612937602083612392565b915061294282612901565b602082019050919050565b600060208201905081810360008301526129668161292a565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006129a3600d83612392565b91506129ae8261296d565b602082019050919050565b600060208201905081810360008301526129d281612996565b9050919050565b60006040820190506129ee6000830185612548565b6129fb6020830184612548565b9392505050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612a38601483612392565b9150612a4382612a02565b602082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f6765747061697220616c72656164792070616972656400000000000000000000600082015250565b6000612aa4601683612392565b9150612aaf82612a6e565b602082019050919050565b60006020820190508181036000830152612ad381612a97565b9050919050565b600081519050612ae981612470565b92915050565b600060208284031215612b0557612b04612439565b5b6000612b1384828501612ada565b91505092915050565b6000604082019050612b3160008301856126a8565b612b3e60208301846126a8565b9392505050565b6000819050919050565b6000819050919050565b6000612b74612b6f612b6a84612b45565b612b4f565b61249c565b9050919050565b612b8481612b59565b82525050565b600060c082019050612b9f60008301896126a8565b612bac6020830188612548565b612bb96040830187612b7b565b612bc66060830186612b7b565b612bd360808301856126a8565b612be060a0830184612548565b979650505050505050565b600081519050612bfa816124a6565b92915050565b600080600060608486031215612c1957612c18612439565b5b6000612c2786828701612beb565b9350506020612c3886828701612beb565b9250506040612c4986828701612beb565b9150509250925092565b6000604082019050612c6860008301856126a8565b612c756020830184612548565b9392505050565b600081519050612c8b81612629565b92915050565b600060208284031215612ca757612ca6612439565b5b6000612cb584828501612c7c565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612cf4601483612392565b9150612cff82612cbe565b602082019050919050565b60006020820190508181036000830152612d2381612ce7565b9050919050565b6000604082019050612d3f600083018561251e565b612d4c602083018461251e565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612d89601f83612392565b9150612d9482612d53565b602082019050919050565b60006020820190508181036000830152612db881612d7c565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612df5602083612392565b9150612e0082612dbf565b602082019050919050565b60006020820190508181036000830152612e2481612de8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e87602983612392565b9150612e9282612e2b565b604082019050919050565b60006020820190508181036000830152612eb681612e7a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ef3601983612392565b9150612efe82612ebd565b602082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b6000612f348261249c565b9150612f3f8361249c565b9250828201905080821115612f5757612f56612712565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f93601a83612392565b9150612f9e82612f5d565b602082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b6000612fd48261249c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300657613005612712565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061304b8261249c565b91506130568361249c565b92508261306657613065613011565b5b828204905092915050565b600081905092915050565b50565b600061308c600083613071565b91506130978261307c565b600082019050919050565b60006130ad8261307f565b9150819050919050565b60006130c28261249c565b91506130cd8361249c565b92508282039050818111156130e5576130e4612712565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613147602183612392565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132108161245e565b82525050565b60006132228383613207565b60208301905092915050565b6000602082019050919050565b6000613246826131db565b61325081856131e6565b935061325b836131f7565b8060005b8381101561328c5781516132738882613216565b975061327e8361322e565b92505060018101905061325f565b5085935050505092915050565b600060a0820190506132ae6000830188612548565b6132bb6020830187612b7b565b81810360408301526132cd818661323b565b90506132dc60608301856126a8565b6132e96080830184612548565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613329601b83612392565b9150613334826132f3565b602082019050919050565b600060208201905081810360008301526133588161331c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f2910a9aeb90859fbae82d271a199abe1cca5a19401c72138537b567977e10d64736f6c6343000813003300000000000000000000000091ab9825b05bade93917199982626282b11c9e95
Deployed Bytecode
0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb1461038a578063bf474bed146103c7578063c1f1b1b5146103f2578063c9567bf914610409578063dd62ed3e146104205761011f565b80637d1db4a5146102c75780638da5cb5b146102f25780638f9a55c01461031d5780639532c6141461034857806395d89b411461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a61461028757806374a2c4c11461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b6040516101469190612417565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906124d2565b61049a565b604051610183919061252d565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b6040516101ae9190612557565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612557565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612572565b6104fb565b604051610216919061252d565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b60405161024191906125e1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906125fc565b6105dd565b60405161027e9190612557565b60405180910390f35b34801561029357600080fd5b5061029c610626565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612655565b610779565b005b3480156102d357600080fd5b506102dc6108dd565b6040516102e99190612557565b60405180910390f35b3480156102fe57600080fd5b506103076108e3565b60405161031491906126b7565b60405180910390f35b34801561032957600080fd5b5061033261090c565b60405161033f9190612557565b60405180910390f35b34801561035457600080fd5b5061035d610912565b005b34801561036b57600080fd5b50610374610a91565b6040516103819190612417565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac91906124d2565b610ace565b6040516103be919061252d565b60405180910390f35b3480156103d357600080fd5b506103dc610aec565b6040516103e99190612557565b60405180910390f35b3480156103fe57600080fd5b50610407610b0b565b005b34801561041557600080fd5b5061041e611067565b005b34801561042c57600080fd5b50610447600480360381019061044291906126d2565b6111db565b6040516104549190612557565b60405180910390f35b60606040518060400160405280600d81526020017f20436c6f75646e65742041692000000000000000000000000000000000000000815250905090565b60006104ae6104a7611262565b848461126a565b6001905092915050565b6012600a6104c69190612874565b624c4b406104d491906128bf565b81565b60006012600a6104e79190612874565b633b9aca006104f691906128bf565b905090565b60006105088484846113fe565b6105c984610514611262565b6105c48560405180606001604052806028815260200161336060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a611262565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edb9092919063ffffffff16565b61126a565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61062e611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b29061294d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610781611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108059061294d565b60405180910390fd5b60198311158015610820575060198211155b80156108385750600e60009054906101000a900460ff165b610877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086e906129b9565b60405180910390fd5b826007819055508160088190555080600e60036101000a81548160ff0219169083151502179055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f483836040516108d09291906129d9565b60405180910390a1505050565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b61091a611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e9061294d565b60405180910390fd5b600e60009054906101000a900460ff166109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90612a4e565b60405180910390fd5b6012600a610a049190612874565b633b9aca00610a1391906128bf565b600c819055506012600a610a279190612874565b633b9aca00610a3691906128bf565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a610a6b9190612874565b633b9aca00610a7a91906128bf565b604051610a879190612557565b60405180910390a1565b60606040518060400160405280600681526020017f20434e4149200000000000000000000000000000000000000000000000000000815250905090565b6000610ae2610adb611262565b84846113fe565b6001905092915050565b6012600a610afa9190612874565b621e8480610b0891906128bf565b81565b610b13611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b979061294d565b60405180910390fd5b600e60009054906101000a900460ff1615610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612aba565b60405180910390fd5b6000610c4f610c386064610c2a60146012600a610c0d9190612874565b633b9aca00610c1c91906128bf565b611f3f90919063ffffffff16565b611fb990919063ffffffff16565b610c41306105dd565b61200390919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cdb9190612874565b633b9aca00610cea91906128bf565b61126a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612aef565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612aef565b6040518363ffffffff1660e01b8152600401610e4a929190612b1c565b6020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612aef565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f19611262565b426040518863ffffffff1660e01b8152600401610f3b96959493929190612b8a565b60606040518083038185885af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e9190612c00565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611020929190612c53565b6020604051808303816000875af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190612c91565b5050565b61106f611262565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f39061294d565b60405180910390fd5b600e60009054906101000a900460ff161561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612d0a565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff166040516111d1929190612d2a565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112d45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612d9f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f19190612557565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612e0b565b60405180910390fd5b600081116114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e190612e9d565b60405180910390fd5b60006114f46108e3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561156257506115326108e3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1e57600e60009054906101000a900460ff1661165c57600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612a4e565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117075750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561175d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181857600c548211156117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90612f09565b60405180910390fd5b600d54826117b4856105dd565b6117be9190612f29565b11156117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f690612fa9565b60405180910390fd5b6009600081548092919061181290612fc9565b91905055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118a157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118e05760646118cf602d600954116118bc57601e6118c0565b6008545b84611f3f90919063ffffffff16565b6118d99190613040565b90506119a5565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a4576064611997602360095411611984576014611988565b6007545b84611f3f90919063ffffffff16565b6119a19190613040565b90505b5b80600a60008282546119b79190612f29565b9250508190555060006119c9306105dd565b9050600e60019054906101000a900460ff16158015611a355750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a4d5750600e60029054906101000a900460ff165b8015611a7357506012600a611a629190612874565b621e8480611a7091906128bf565b81115b8015611a8157506028600954115b8015611aa957506012600a611a969190612874565b6207a120611aa491906128bf565b600a54115b15611c1c57600b6000815480929190611ac190612fc9565b919050555060006012600a611ad69190612874565b624c4b40611ae491906128bf565b8211611af05781611b0d565b6012600a611afe9190612874565b624c4b40611b0c91906128bf565b5b90506000818511611b1e5784611b20565b815b90506003600b5410611b4a57611b358161204d565b6000600a819055506000600b81905550611b78565b60001515600e60039054906101000a900460ff16151503611b7757611b6e8161204d565b6000600a819055505b5b60004790506000811115611c18576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611bce906130a2565b60006040518083038185875af1925050503d8060008114611c0b576040519150601f19603f3d011682016040523d82523d6000602084013e611c10565b606091505b505080915050505b5050505b505b6000811115611d2257611c7981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d199190612557565b60405180910390a35b611d7482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1b611dcd828461200390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ec0848661200390919063ffffffff16565b604051611ecd9190612557565b60405180910390a350505050565b6000838311158290611f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1a9190612417565b60405180910390fd5b5060008385611f3291906130b7565b9050809150509392505050565b6000808303611f515760009050611fb3565b60008284611f5f91906128bf565b9050828482611f6e9190613040565b14611fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa59061315d565b60405180910390fd5b809150505b92915050565b6000611ffb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b905092915050565b600061204583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edb565b905092915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120855761208461317d565b5b6040519080825280602002602001820160405280156120b35781602001602082028036833780820191505090505b50905030816000815181106120cb576120ca6131ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190612aef565b816001815181106121aa576121a96131ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061221130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612275959493929190613299565b600060405180830381600087803b15801561228f57600080fd5b505af11580156122a3573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b60008082846122d59190612f29565b90508381101561231a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123119061333f565b60405180910390fd5b8091505092915050565b6000808311829061236b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123629190612417565b60405180910390fd5b506000838561237a9190613040565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c15780820151818401526020810190506123a6565b60008484015250505050565b6000601f19601f8301169050919050565b60006123e982612387565b6123f38185612392565b93506124038185602086016123a3565b61240c816123cd565b840191505092915050565b6000602082019050818103600083015261243181846123de565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124698261243e565b9050919050565b6124798161245e565b811461248457600080fd5b50565b60008135905061249681612470565b92915050565b6000819050919050565b6124af8161249c565b81146124ba57600080fd5b50565b6000813590506124cc816124a6565b92915050565b600080604083850312156124e9576124e8612439565b5b60006124f785828601612487565b9250506020612508858286016124bd565b9150509250929050565b60008115159050919050565b61252781612512565b82525050565b6000602082019050612542600083018461251e565b92915050565b6125518161249c565b82525050565b600060208201905061256c6000830184612548565b92915050565b60008060006060848603121561258b5761258a612439565b5b600061259986828701612487565b93505060206125aa86828701612487565b92505060406125bb868287016124bd565b9150509250925092565b600060ff82169050919050565b6125db816125c5565b82525050565b60006020820190506125f660008301846125d2565b92915050565b60006020828403121561261257612611612439565b5b600061262084828501612487565b91505092915050565b61263281612512565b811461263d57600080fd5b50565b60008135905061264f81612629565b92915050565b60008060006060848603121561266e5761266d612439565b5b600061267c868287016124bd565b935050602061268d868287016124bd565b925050604061269e86828701612640565b9150509250925092565b6126b18161245e565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b600080604083850312156126e9576126e8612439565b5b60006126f785828601612487565b925050602061270885828601612487565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127985780860481111561277457612773612712565b5b60018516156127835780820291505b808102905061279185612741565b9450612758565b94509492505050565b6000826127b1576001905061286d565b816127bf576000905061286d565b81600181146127d557600281146127df5761280e565b600191505061286d565b60ff8411156127f1576127f0612712565b5b8360020a91508482111561280857612807612712565b5b5061286d565b5060208310610133831016604e8410600b84101617156128435782820a90508381111561283e5761283d612712565b5b61286d565b612850848484600161274e565b9250905081840481111561286757612866612712565b5b81810290505b9392505050565b600061287f8261249c565b915061288a836125c5565b92506128b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127a1565b905092915050565b60006128ca8261249c565b91506128d58361249c565b92508282026128e38161249c565b915082820484148315176128fa576128f9612712565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612937602083612392565b915061294282612901565b602082019050919050565b600060208201905081810360008301526129668161292a565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006129a3600d83612392565b91506129ae8261296d565b602082019050919050565b600060208201905081810360008301526129d281612996565b9050919050565b60006040820190506129ee6000830185612548565b6129fb6020830184612548565b9392505050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612a38601483612392565b9150612a4382612a02565b602082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f6765747061697220616c72656164792070616972656400000000000000000000600082015250565b6000612aa4601683612392565b9150612aaf82612a6e565b602082019050919050565b60006020820190508181036000830152612ad381612a97565b9050919050565b600081519050612ae981612470565b92915050565b600060208284031215612b0557612b04612439565b5b6000612b1384828501612ada565b91505092915050565b6000604082019050612b3160008301856126a8565b612b3e60208301846126a8565b9392505050565b6000819050919050565b6000819050919050565b6000612b74612b6f612b6a84612b45565b612b4f565b61249c565b9050919050565b612b8481612b59565b82525050565b600060c082019050612b9f60008301896126a8565b612bac6020830188612548565b612bb96040830187612b7b565b612bc66060830186612b7b565b612bd360808301856126a8565b612be060a0830184612548565b979650505050505050565b600081519050612bfa816124a6565b92915050565b600080600060608486031215612c1957612c18612439565b5b6000612c2786828701612beb565b9350506020612c3886828701612beb565b9250506040612c4986828701612beb565b9150509250925092565b6000604082019050612c6860008301856126a8565b612c756020830184612548565b9392505050565b600081519050612c8b81612629565b92915050565b600060208284031215612ca757612ca6612439565b5b6000612cb584828501612c7c565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612cf4601483612392565b9150612cff82612cbe565b602082019050919050565b60006020820190508181036000830152612d2381612ce7565b9050919050565b6000604082019050612d3f600083018561251e565b612d4c602083018461251e565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612d89601f83612392565b9150612d9482612d53565b602082019050919050565b60006020820190508181036000830152612db881612d7c565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612df5602083612392565b9150612e0082612dbf565b602082019050919050565b60006020820190508181036000830152612e2481612de8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e87602983612392565b9150612e9282612e2b565b604082019050919050565b60006020820190508181036000830152612eb681612e7a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ef3601983612392565b9150612efe82612ebd565b602082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b6000612f348261249c565b9150612f3f8361249c565b9250828201905080821115612f5757612f56612712565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f93601a83612392565b9150612f9e82612f5d565b602082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b6000612fd48261249c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300657613005612712565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061304b8261249c565b91506130568361249c565b92508261306657613065613011565b5b828204905092915050565b600081905092915050565b50565b600061308c600083613071565b91506130978261307c565b600082019050919050565b60006130ad8261307f565b9150819050919050565b60006130c28261249c565b91506130cd8361249c565b92508282039050818111156130e5576130e4612712565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613147602183612392565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132108161245e565b82525050565b60006132228383613207565b60208301905092915050565b6000602082019050919050565b6000613246826131db565b61325081856131e6565b935061325b836131f7565b8060005b8381101561328c5781516132738882613216565b975061327e8361322e565b92505060018101905061325f565b5085935050505092915050565b600060a0820190506132ae6000830188612548565b6132bb6020830187612b7b565b81810360408301526132cd818661323b565b90506132dc60608301856126a8565b6132e96080830184612548565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613329601b83612392565b9150613334826132f3565b602082019050919050565b600060208201905081810360008301526133588161331c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f2910a9aeb90859fbae82d271a199abe1cca5a19401c72138537b567977e10d64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000091ab9825b05bade93917199982626282b11c9e95
-----Decoded View---------------
Arg [0] : taxWallet (address): 0x91Ab9825b05BAdE93917199982626282b11c9e95
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000091ab9825b05bade93917199982626282b11c9e95
Deployed Bytecode Sourcemap
4026:9622:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6200:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7111:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6477:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7312:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6386:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6585:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2978:148;;;;;;;;;;;;;:::i;:::-;;13275:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5331:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2764:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5393:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12863:227;;;;;;;;;;;;;:::i;:::-;;6291:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6712:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5185:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11596:904;;;;;;;;;;;;;:::i;:::-;;12555:219;;;;;;;;;;;;;:::i;:::-;;6919:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6200:83;6237:13;6270:5;;;;;;;;;;;;;;;;;6263:12;;6200:83;:::o;7111:193::-;7213:4;7235:39;7244:12;:10;:12::i;:::-;7258:7;7267:6;7235:8;:39::i;:::-;7292:4;7285:11;;7111:193;;;;:::o;5261:63::-;5029:2;5311;:13;;;;:::i;:::-;5299:9;:25;;;;:::i;:::-;5261:63;:::o;6477:100::-;6530:7;5029:2;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;6550:19;;6477:100;:::o;7312:446::-;7444:4;7461:36;7471:6;7479:9;7490:6;7461:9;:36::i;:::-;7508:220;7531:6;7552:12;:10;:12::i;:::-;7579:138;7635:6;7579:138;;;;;;;;;;;;;;;;;:11;:19;7591:6;7579:19;;;;;;;;;;;;;;;:33;7599:12;:10;:12::i;:::-;7579:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7508:8;:220::i;:::-;7746:4;7739:11;;7312:446;;;;;:::o;6386:83::-;6427:5;5029:2;6445:16;;6386:83;:::o;6585:119::-;6651:7;6678:9;:18;6688:7;6678:18;;;;;;;;;;;;;;;;6671:25;;6585:119;;;:::o;2978:148::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3085:1:::1;3048:40;;3069:6;::::0;::::1;;;;;;;;3048:40;;;;;;;;;;;;3116:1;3099:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2978:148::o:0;13275:333::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13401:2:::1;13388:9;:15;;:35;;;;;13421:2;13407:10;:16;;13388:35;:50;;;;;13427:11;;;;;;;;;;;13388:50;13380:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13482:9;13467:12;:24;;;;13518:10;13502:13;:26;;;;13547:6;13539:5;;:14;;;;;;;;;;;;;;;;;;13569:31;13578:9;13589:10;13569:31;;;;;;;:::i;:::-;;;;;;;;13275:333:::0;;;:::o;5331:55::-;;;;:::o;2764:79::-;2802:7;2829:6;;;;;;;;;;;2822:13;;2764:79;:::o;5393:57::-;;;;:::o;12863:227::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12929:11:::1;;;;;;;;;;;12921:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5029:2;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;12976:12;:27;;;;5029:2;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;13014:14;:29;;;;13059:23;5029:2;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;13059:23;;;;;;:::i;:::-;;;;;;;;12863:227::o:0;6291:87::-;6330:13;6363:7;;;;;;;;;;;;;;;;;6356:14;;6291:87;:::o;6712:199::-;6817:4;6839:42;6849:12;:10;:12::i;:::-;6863:9;6874:6;6839:9;:42::i;:::-;6899:4;6892:11;;6712:199;;;;:::o;5185:69::-;5029:2;5241;:13;;;;:::i;:::-;5229:9;:25;;;;:::i;:::-;5185:69;:::o;11596:904::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11654:11:::1;;;;;;;;;;;11653:12;11645:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11703:19;11725:71;11754:41;11791:3;11754:32;4470:2;5029;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;11754:16;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;11725:24;11743:4;11725:9;:24::i;:::-;:28;;:71;;;;:::i;:::-;11703:93;;11858:42;11807:15;;:104;;;;;;;;;;;;;;;;;;11923:63;11940:4;11955:15;;;;;;;;;;;5029:2;5094;:13;;;;:::i;:::-;5078;:29;;;;:::i;:::-;11923:8;:63::i;:::-;12031:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12013:55;;;12091:4;12111:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12013:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11997:13;;:147;;;;;;;;;;;;;;;;;;12155:15;;;;;;;;;;;:31;;;12194:21;12239:4;12259:11;12285:1;12301::::0;12317:12:::1;:10;:12::i;:::-;12344:15;12155:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12388:13;;;;;;;;;;;12381:29;;;12433:15;;;;;;;;;;;12464:17;12381:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11634:866;11596:904::o:0;12555:219::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12617:11:::1;;;;;;;;;;;12616:12;12608:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12678:4;12664:11;;:18;;;;;;;;;;;;;;;;;;12707:4;12693:11;;:18;;;;;;;;;;;;;;;;;;12727:39;12741:11;;;;;;;;;;;12754;;;;;;;;;;;12727:39;;;;;;;:::i;:::-;;;;;;;;12555:219::o:0;6919:184::-;7036:7;7068:11;:18;7080:5;7068:18;;;;;;;;;;;;;;;:27;7087:7;7068:27;;;;;;;;;;;;;;;;7061:34;;6919:184;;;;:::o;304:98::-;357:7;384:10;377:17;;304:98;:::o;7766:347::-;7924:1;7907:19;;:5;:19;;;;:44;;;;;7949:1;7930:21;;:7;:21;;;;7907:44;7885:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:6;8021:11;:18;8033:5;8021:18;;;;;;;;;;;;;;;:27;8040:7;8021:27;;;;;;;;;;;;;;;:36;;;;8089:7;8073:32;;8082:5;8073:32;;;8098:6;8073:32;;;;;;:::i;:::-;;;;;;;;7766:347;;;:::o;8121:2912::-;8273:1;8257:18;;:4;:18;;;;:38;;;;;8293:1;8279:16;;:2;:16;;;;8257:38;8235:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8383:1;8374:6;:10;8366:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8441:17;8487:7;:5;:7::i;:::-;8479:15;;:4;:15;;;;:32;;;;;8504:7;:5;:7::i;:::-;8498:13;;:2;:13;;;;8479:32;8475:2187;;;8533:11;;;;;;;;;;;8528:197;;8595:18;:22;8614:2;8595:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8621:18;:24;8640:4;8621:24;;;;;;;;;;;;;;;;;;;;;;;;;8595:50;8565:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8528:197;8753:13;;;;;;;;;;;8745:21;;:4;:21;;;:55;;;;;8784:15;;;;;;;;;;;8770:30;;:2;:30;;;;8745:55;:82;;;;;8805:18;:22;8824:2;8805:22;;;;;;;;;;;;;;;;;;;;;;;;;8804:23;8745:82;8741:373;;;8867:12;;8857:6;:22;;8849:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8984:14;;8974:6;8958:13;8968:2;8958:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8928:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9087:9;;:11;;;;;;;;;:::i;:::-;;;;;;8741:373;9140:13;;;;;;;;;;;9134:19;;:2;:19;;;:44;;;;;9173:4;9157:21;;:4;:21;;;;9134:44;9130:358;;;9288:3;9211:76;4627:2;9223:9;;:28;9222:64;;4522:2;9222:64;;;9255:13;;9222:64;9211:6;:10;;:76;;;;:::i;:::-;:80;;;;:::i;:::-;9199:92;;9130:358;;;9325:13;;;;;;;;;;;9317:21;;:4;:21;;;:44;;;;;9356:4;9342:19;;:2;:19;;;;9317:44;9313:175;;;9469:3;9394:74;4574:2;9406:9;;:27;9405:61;;4470:2;9405:61;;;9437:12;;9405:61;9394:6;:10;;:74;;;;:::i;:::-;:78;;;;:::i;:::-;9382:90;;9313:175;9130:358;9517:9;9504;;:22;;;;;;;:::i;:::-;;;;;;;;9541:28;9572:24;9590:4;9572:9;:24::i;:::-;9541:55;;9637:6;;;;;;;;;;;9636:7;:30;;;;;9653:13;;;;;;;;;;;9647:19;;:2;:19;;;9636:30;:45;;;;;9670:11;;;;;;;;;;;9636:45;:89;;;;;5029:2;5241;:13;;;;:::i;:::-;5229:9;:25;;;;:::i;:::-;9685:20;:40;9636:89;:140;;;;;4682:2;9746:9;;:30;9636:140;:169;;;;;5029:2;5165;:13;;;;:::i;:::-;5155:7;:23;;;;:::i;:::-;9780:9;;:25;9636:169;9613:1038;;;9840:12;;:14;;;;;;;;;:::i;:::-;;;;;;9873:19;5029:2;5311;:13;;;;:::i;:::-;5299:9;:25;;;;:::i;:::-;9896:20;:34;9895:71;;9946:20;9895:71;;;5029:2;5311;:13;;;;:::i;:::-;5299:9;:25;;;;:::i;:::-;9895:71;9873:93;;9985:16;10014:11;10005:6;:20;10004:45;;10043:6;10004:45;;;10029:11;10004:45;9985:64;;10090:1;10074:12;;:17;10070:305;;10118:26;10135:8;10118:16;:26::i;:::-;10180:1;10168:9;:13;;;;10220:1;10205:12;:16;;;;10070:305;;;10260:5;10251:14;;:5;;;;;;;;;;;:14;;;10247:128;;10291:26;10308:8;10291:16;:26::i;:::-;10353:1;10341:9;:13;;;;10247:128;10070:305;10395:26;10424:21;10395:50;;10489:1;10468:18;:22;10464:172;;;10511:12;10564:10;;;;;;;;;;;10556:24;;10589:21;10556:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10542:74;;;;;10492:144;10464:172;9821:830;;;9613:1038;8513:2149;8475:2187;10690:1;10678:9;:13;10674:172;;;10735:39;10764:9;10735;:24;10753:4;10735:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10708:9;:24;10726:4;10708:24;;;;;;;;;;;;;;;:66;;;;10817:4;10794:40;;10803:4;10794:40;;;10824:9;10794:40;;;;;;:::i;:::-;;;;;;;;10674:172;10874:27;10894:6;10874:9;:15;10884:4;10874:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10856:9;:15;10866:4;10856:15;;;;;;;;;;;;;;;:45;;;;10928:40;10946:21;10957:9;10946:6;:10;;:21;;;;:::i;:::-;10928:9;:13;10938:2;10928:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10912:9;:13;10922:2;10912:13;;;;;;;;;;;;;;;:56;;;;10999:2;10984:41;;10993:4;10984:41;;;11003:21;11014:9;11003:6;:10;;:21;;;;:::i;:::-;10984:41;;;;;;:::i;:::-;;;;;;;;8224:2809;8121:2912;;;:::o;1566:224::-;1686:7;1719:1;1714;:6;;1722:12;1706:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1746:9;1762:1;1758;:5;;;;:::i;:::-;1746:17;;1781:1;1774:8;;;1566:224;;;;;:::o;1798:246::-;1856:7;1885:1;1880;:6;1876:47;;1910:1;1903:8;;;;1876:47;1933:9;1949:1;1945;:5;;;;:::i;:::-;1933:17;;1978:1;1973;1969;:5;;;;:::i;:::-;:10;1961:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2035:1;2028:8;;;1798:246;;;;;:::o;2052:132::-;2110:7;2137:39;2141:1;2144;2137:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2130:46;;2052:132;;;;:::o;1422:136::-;1480:7;1507:43;1511:1;1514;1507:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1500:50;;1422:136;;;;:::o;11041:483::-;5805:4;5796:6;;:13;;;;;;;;;;;;;;;;;;11119:21:::1;11157:1;11143:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:40;;11188:4;11170;11175:1;11170:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11214:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11204:4;11209:1;11204:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11247:62;11264:4;11279:15;;;;;;;;;;;11297:11;11247:8;:62::i;:::-;11320:15;;;;;;;;;;;:66;;;11401:11;11427:1;11443:4;11470;11490:15;11320:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11108:416;5841:5:::0;5832:6;;:14;;;;;;;;;;;;;;;;;;11041:483;:::o;1235:179::-;1293:7;1313:9;1329:1;1325;:5;;;;:::i;:::-;1313:17;;1354:1;1349;:6;;1341:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1405:1;1398:8;;;1235:179;;;;:::o;2192:223::-;2312:7;2344:1;2340;:5;2347:12;2332:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2371:9;2387:1;2383;:5;;;;:::i;:::-;2371:17;;2406:1;2399:8;;;2192:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:613::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:50;6037:7;6028:6;6017:9;6013:22;5995:50;:::i;:::-;5985:60;;5940:115;5449:613;;;;;:::o;6068:118::-;6155:24;6173:5;6155:24;:::i;:::-;6150:3;6143:37;6068:118;;:::o;6192:222::-;6285:4;6323:2;6312:9;6308:18;6300:26;;6336:71;6404:1;6393:9;6389:17;6380:6;6336:71;:::i;:::-;6192:222;;;;:::o;6420:474::-;6488:6;6496;6545:2;6533:9;6524:7;6520:23;6516:32;6513:119;;;6551:79;;:::i;:::-;6513:119;6671:1;6696:53;6741:7;6732:6;6721:9;6717:22;6696:53;:::i;:::-;6686:63;;6642:117;6798:2;6824:53;6869:7;6860:6;6849:9;6845:22;6824:53;:::i;:::-;6814:63;;6769:118;6420:474;;;;;:::o;6900:180::-;6948:77;6945:1;6938:88;7045:4;7042:1;7035:15;7069:4;7066:1;7059:15;7086:102;7128:8;7175:5;7172:1;7168:13;7147:34;;7086:102;;;:::o;7194:848::-;7255:5;7262:4;7286:6;7277:15;;7310:5;7301:14;;7324:712;7345:1;7335:8;7332:15;7324:712;;;7440:4;7435:3;7431:14;7425:4;7422:24;7419:50;;;7449:18;;:::i;:::-;7419:50;7499:1;7489:8;7485:16;7482:451;;;7914:4;7907:5;7903:16;7894:25;;7482:451;7964:4;7958;7954:15;7946:23;;7994:32;8017:8;7994:32;:::i;:::-;7982:44;;7324:712;;;7194:848;;;;;;;:::o;8048:1073::-;8102:5;8293:8;8283:40;;8314:1;8305:10;;8316:5;;8283:40;8342:4;8332:36;;8359:1;8350:10;;8361:5;;8332:36;8428:4;8476:1;8471:27;;;;8512:1;8507:191;;;;8421:277;;8471:27;8489:1;8480:10;;8491:5;;;8507:191;8552:3;8542:8;8539:17;8536:43;;;8559:18;;:::i;:::-;8536:43;8608:8;8605:1;8601:16;8592:25;;8643:3;8636:5;8633:14;8630:40;;;8650:18;;:::i;:::-;8630:40;8683:5;;;8421:277;;8807:2;8797:8;8794:16;8788:3;8782:4;8779:13;8775:36;8757:2;8747:8;8744:16;8739:2;8733:4;8730:12;8726:35;8710:111;8707:246;;;8863:8;8857:4;8853:19;8844:28;;8898:3;8891:5;8888:14;8885:40;;;8905:18;;:::i;:::-;8885:40;8938:5;;8707:246;8978:42;9016:3;9006:8;9000:4;8997:1;8978:42;:::i;:::-;8963:57;;;;9052:4;9047:3;9043:14;9036:5;9033:25;9030:51;;;9061:18;;:::i;:::-;9030:51;9110:4;9103:5;9099:16;9090:25;;8048:1073;;;;;;:::o;9127:281::-;9185:5;9209:23;9227:4;9209:23;:::i;:::-;9201:31;;9253:25;9269:8;9253:25;:::i;:::-;9241:37;;9297:104;9334:66;9324:8;9318:4;9297:104;:::i;:::-;9288:113;;9127:281;;;;:::o;9414:410::-;9454:7;9477:20;9495:1;9477:20;:::i;:::-;9472:25;;9511:20;9529:1;9511:20;:::i;:::-;9506:25;;9566:1;9563;9559:9;9588:30;9606:11;9588:30;:::i;:::-;9577:41;;9767:1;9758:7;9754:15;9751:1;9748:22;9728:1;9721:9;9701:83;9678:139;;9797:18;;:::i;:::-;9678:139;9462:362;9414:410;;;;:::o;9830:182::-;9970:34;9966:1;9958:6;9954:14;9947:58;9830:182;:::o;10018:366::-;10160:3;10181:67;10245:2;10240:3;10181:67;:::i;:::-;10174:74;;10257:93;10346:3;10257:93;:::i;:::-;10375:2;10370:3;10366:12;10359:19;;10018:366;;;:::o;10390:419::-;10556:4;10594:2;10583:9;10579:18;10571:26;;10643:9;10637:4;10633:20;10629:1;10618:9;10614:17;10607:47;10671:131;10797:4;10671:131;:::i;:::-;10663:139;;10390:419;;;:::o;10815:163::-;10955:15;10951:1;10943:6;10939:14;10932:39;10815:163;:::o;10984:366::-;11126:3;11147:67;11211:2;11206:3;11147:67;:::i;:::-;11140:74;;11223:93;11312:3;11223:93;:::i;:::-;11341:2;11336:3;11332:12;11325:19;;10984:366;;;:::o;11356:419::-;11522:4;11560:2;11549:9;11545:18;11537:26;;11609:9;11603:4;11599:20;11595:1;11584:9;11580:17;11573:47;11637:131;11763:4;11637:131;:::i;:::-;11629:139;;11356:419;;;:::o;11781:332::-;11902:4;11940:2;11929:9;11925:18;11917:26;;11953:71;12021:1;12010:9;12006:17;11997:6;11953:71;:::i;:::-;12034:72;12102:2;12091:9;12087:18;12078:6;12034:72;:::i;:::-;11781:332;;;;;:::o;12119:170::-;12259:22;12255:1;12247:6;12243:14;12236:46;12119:170;:::o;12295:366::-;12437:3;12458:67;12522:2;12517:3;12458:67;:::i;:::-;12451:74;;12534:93;12623:3;12534:93;:::i;:::-;12652:2;12647:3;12643:12;12636:19;;12295:366;;;:::o;12667:419::-;12833:4;12871:2;12860:9;12856:18;12848:26;;12920:9;12914:4;12910:20;12906:1;12895:9;12891:17;12884:47;12948:131;13074:4;12948:131;:::i;:::-;12940:139;;12667:419;;;:::o;13092:172::-;13232:24;13228:1;13220:6;13216:14;13209:48;13092:172;:::o;13270:366::-;13412:3;13433:67;13497:2;13492:3;13433:67;:::i;:::-;13426:74;;13509:93;13598:3;13509:93;:::i;:::-;13627:2;13622:3;13618:12;13611:19;;13270:366;;;:::o;13642:419::-;13808:4;13846:2;13835:9;13831:18;13823:26;;13895:9;13889:4;13885:20;13881:1;13870:9;13866:17;13859:47;13923:131;14049:4;13923:131;:::i;:::-;13915:139;;13642:419;;;:::o;14067:143::-;14124:5;14155:6;14149:13;14140:22;;14171:33;14198:5;14171:33;:::i;:::-;14067:143;;;;:::o;14216:351::-;14286:6;14335:2;14323:9;14314:7;14310:23;14306:32;14303:119;;;14341:79;;:::i;:::-;14303:119;14461:1;14486:64;14542:7;14533:6;14522:9;14518:22;14486:64;:::i;:::-;14476:74;;14432:128;14216:351;;;;:::o;14573:332::-;14694:4;14732:2;14721:9;14717:18;14709:26;;14745:71;14813:1;14802:9;14798:17;14789:6;14745:71;:::i;:::-;14826:72;14894:2;14883:9;14879:18;14870:6;14826:72;:::i;:::-;14573:332;;;;;:::o;14911:85::-;14956:7;14985:5;14974:16;;14911:85;;;:::o;15002:60::-;15030:3;15051:5;15044:12;;15002:60;;;:::o;15068:158::-;15126:9;15159:61;15177:42;15186:32;15212:5;15186:32;:::i;:::-;15177:42;:::i;:::-;15159:61;:::i;:::-;15146:74;;15068:158;;;:::o;15232:147::-;15327:45;15366:5;15327:45;:::i;:::-;15322:3;15315:58;15232:147;;:::o;15385:807::-;15634:4;15672:3;15661:9;15657:19;15649:27;;15686:71;15754:1;15743:9;15739:17;15730:6;15686:71;:::i;:::-;15767:72;15835:2;15824:9;15820:18;15811:6;15767:72;:::i;:::-;15849:80;15925:2;15914:9;15910:18;15901:6;15849:80;:::i;:::-;15939;16015:2;16004:9;16000:18;15991:6;15939:80;:::i;:::-;16029:73;16097:3;16086:9;16082:19;16073:6;16029:73;:::i;:::-;16112;16180:3;16169:9;16165:19;16156:6;16112:73;:::i;:::-;15385:807;;;;;;;;;:::o;16198:143::-;16255:5;16286:6;16280:13;16271:22;;16302:33;16329:5;16302:33;:::i;:::-;16198:143;;;;:::o;16347:663::-;16435:6;16443;16451;16500:2;16488:9;16479:7;16475:23;16471:32;16468:119;;;16506:79;;:::i;:::-;16468:119;16626:1;16651:64;16707:7;16698:6;16687:9;16683:22;16651:64;:::i;:::-;16641:74;;16597:128;16764:2;16790:64;16846:7;16837:6;16826:9;16822:22;16790:64;:::i;:::-;16780:74;;16735:129;16903:2;16929:64;16985:7;16976:6;16965:9;16961:22;16929:64;:::i;:::-;16919:74;;16874:129;16347:663;;;;;:::o;17016:332::-;17137:4;17175:2;17164:9;17160:18;17152:26;;17188:71;17256:1;17245:9;17241:17;17232:6;17188:71;:::i;:::-;17269:72;17337:2;17326:9;17322:18;17313:6;17269:72;:::i;:::-;17016:332;;;;;:::o;17354:137::-;17408:5;17439:6;17433:13;17424:22;;17455:30;17479:5;17455:30;:::i;:::-;17354:137;;;;:::o;17497:345::-;17564:6;17613:2;17601:9;17592:7;17588:23;17584:32;17581:119;;;17619:79;;:::i;:::-;17581:119;17739:1;17764:61;17817:7;17808:6;17797:9;17793:22;17764:61;:::i;:::-;17754:71;;17710:125;17497:345;;;;:::o;17848:170::-;17988:22;17984:1;17976:6;17972:14;17965:46;17848:170;:::o;18024:366::-;18166:3;18187:67;18251:2;18246:3;18187:67;:::i;:::-;18180:74;;18263:93;18352:3;18263:93;:::i;:::-;18381:2;18376:3;18372:12;18365:19;;18024:366;;;:::o;18396:419::-;18562:4;18600:2;18589:9;18585:18;18577:26;;18649:9;18643:4;18639:20;18635:1;18624:9;18620:17;18613:47;18677:131;18803:4;18677:131;:::i;:::-;18669:139;;18396:419;;;:::o;18821:308::-;18930:4;18968:2;18957:9;18953:18;18945:26;;18981:65;19043:1;19032:9;19028:17;19019:6;18981:65;:::i;:::-;19056:66;19118:2;19107:9;19103:18;19094:6;19056:66;:::i;:::-;18821:308;;;;;:::o;19135:181::-;19275:33;19271:1;19263:6;19259:14;19252:57;19135:181;:::o;19322:366::-;19464:3;19485:67;19549:2;19544:3;19485:67;:::i;:::-;19478:74;;19561:93;19650:3;19561:93;:::i;:::-;19679:2;19674:3;19670:12;19663:19;;19322:366;;;:::o;19694:419::-;19860:4;19898:2;19887:9;19883:18;19875:26;;19947:9;19941:4;19937:20;19933:1;19922:9;19918:17;19911:47;19975:131;20101:4;19975:131;:::i;:::-;19967:139;;19694:419;;;:::o;20119:182::-;20259:34;20255:1;20247:6;20243:14;20236:58;20119:182;:::o;20307:366::-;20449:3;20470:67;20534:2;20529:3;20470:67;:::i;:::-;20463:74;;20546:93;20635:3;20546:93;:::i;:::-;20664:2;20659:3;20655:12;20648:19;;20307:366;;;:::o;20679:419::-;20845:4;20883:2;20872:9;20868:18;20860:26;;20932:9;20926:4;20922:20;20918:1;20907:9;20903:17;20896:47;20960:131;21086:4;20960:131;:::i;:::-;20952:139;;20679:419;;;:::o;21104:228::-;21244:34;21240:1;21232:6;21228:14;21221:58;21313:11;21308:2;21300:6;21296:15;21289:36;21104:228;:::o;21338:366::-;21480:3;21501:67;21565:2;21560:3;21501:67;:::i;:::-;21494:74;;21577:93;21666:3;21577:93;:::i;:::-;21695:2;21690:3;21686:12;21679:19;;21338:366;;;:::o;21710:419::-;21876:4;21914:2;21903:9;21899:18;21891:26;;21963:9;21957:4;21953:20;21949:1;21938:9;21934:17;21927:47;21991:131;22117:4;21991:131;:::i;:::-;21983:139;;21710:419;;;:::o;22135:175::-;22275:27;22271:1;22263:6;22259:14;22252:51;22135:175;:::o;22316:366::-;22458:3;22479:67;22543:2;22538:3;22479:67;:::i;:::-;22472:74;;22555:93;22644:3;22555:93;:::i;:::-;22673:2;22668:3;22664:12;22657:19;;22316:366;;;:::o;22688:419::-;22854:4;22892:2;22881:9;22877:18;22869:26;;22941:9;22935:4;22931:20;22927:1;22916:9;22912:17;22905:47;22969:131;23095:4;22969:131;:::i;:::-;22961:139;;22688:419;;;:::o;23113:191::-;23153:3;23172:20;23190:1;23172:20;:::i;:::-;23167:25;;23206:20;23224:1;23206:20;:::i;:::-;23201:25;;23249:1;23246;23242:9;23235:16;;23270:3;23267:1;23264:10;23261:36;;;23277:18;;:::i;:::-;23261:36;23113:191;;;;:::o;23310:176::-;23450:28;23446:1;23438:6;23434:14;23427:52;23310:176;:::o;23492:366::-;23634:3;23655:67;23719:2;23714:3;23655:67;:::i;:::-;23648:74;;23731:93;23820:3;23731:93;:::i;:::-;23849:2;23844:3;23840:12;23833:19;;23492:366;;;:::o;23864:419::-;24030:4;24068:2;24057:9;24053:18;24045:26;;24117:9;24111:4;24107:20;24103:1;24092:9;24088:17;24081:47;24145:131;24271:4;24145:131;:::i;:::-;24137:139;;23864:419;;;:::o;24289:233::-;24328:3;24351:24;24369:5;24351:24;:::i;:::-;24342:33;;24397:66;24390:5;24387:77;24384:103;;24467:18;;:::i;:::-;24384:103;24514:1;24507:5;24503:13;24496:20;;24289:233;;;:::o;24528:180::-;24576:77;24573:1;24566:88;24673:4;24670:1;24663:15;24697:4;24694:1;24687:15;24714:185;24754:1;24771:20;24789:1;24771:20;:::i;:::-;24766:25;;24805:20;24823:1;24805:20;:::i;:::-;24800:25;;24844:1;24834:35;;24849:18;;:::i;:::-;24834:35;24891:1;24888;24884:9;24879:14;;24714:185;;;;:::o;24905:147::-;25006:11;25043:3;25028:18;;24905:147;;;;:::o;25058:114::-;;:::o;25178:398::-;25337:3;25358:83;25439:1;25434:3;25358:83;:::i;:::-;25351:90;;25450:93;25539:3;25450:93;:::i;:::-;25568:1;25563:3;25559:11;25552:18;;25178:398;;;:::o;25582:379::-;25766:3;25788:147;25931:3;25788:147;:::i;:::-;25781:154;;25952:3;25945:10;;25582:379;;;:::o;25967:194::-;26007:4;26027:20;26045:1;26027:20;:::i;:::-;26022:25;;26061:20;26079:1;26061:20;:::i;:::-;26056:25;;26105:1;26102;26098:9;26090:17;;26129:1;26123:4;26120:11;26117:37;;;26134:18;;:::i;:::-;26117:37;25967:194;;;;:::o;26167:220::-;26307:34;26303:1;26295:6;26291:14;26284:58;26376:3;26371:2;26363:6;26359:15;26352:28;26167:220;:::o;26393:366::-;26535:3;26556:67;26620:2;26615:3;26556:67;:::i;:::-;26549:74;;26632:93;26721:3;26632:93;:::i;:::-;26750:2;26745:3;26741:12;26734:19;;26393:366;;;:::o;26765:419::-;26931:4;26969:2;26958:9;26954:18;26946:26;;27018:9;27012:4;27008:20;27004:1;26993:9;26989:17;26982:47;27046:131;27172:4;27046:131;:::i;:::-;27038:139;;26765:419;;;:::o;27190:180::-;27238:77;27235:1;27228:88;27335:4;27332:1;27325:15;27359:4;27356:1;27349:15;27376:180;27424:77;27421:1;27414:88;27521:4;27518:1;27511:15;27545:4;27542:1;27535:15;27562:114;27629:6;27663:5;27657:12;27647:22;;27562:114;;;:::o;27682:184::-;27781:11;27815:6;27810:3;27803:19;27855:4;27850:3;27846:14;27831:29;;27682:184;;;;:::o;27872:132::-;27939:4;27962:3;27954:11;;27992:4;27987:3;27983:14;27975:22;;27872:132;;;:::o;28010:108::-;28087:24;28105:5;28087:24;:::i;:::-;28082:3;28075:37;28010:108;;:::o;28124:179::-;28193:10;28214:46;28256:3;28248:6;28214:46;:::i;:::-;28292:4;28287:3;28283:14;28269:28;;28124:179;;;;:::o;28309:113::-;28379:4;28411;28406:3;28402:14;28394:22;;28309:113;;;:::o;28458:732::-;28577:3;28606:54;28654:5;28606:54;:::i;:::-;28676:86;28755:6;28750:3;28676:86;:::i;:::-;28669:93;;28786:56;28836:5;28786:56;:::i;:::-;28865:7;28896:1;28881:284;28906:6;28903:1;28900:13;28881:284;;;28982:6;28976:13;29009:63;29068:3;29053:13;29009:63;:::i;:::-;29002:70;;29095:60;29148:6;29095:60;:::i;:::-;29085:70;;28941:224;28928:1;28925;28921:9;28916:14;;28881:284;;;28885:14;29181:3;29174:10;;28582:608;;;28458:732;;;;:::o;29196:831::-;29459:4;29497:3;29486:9;29482:19;29474:27;;29511:71;29579:1;29568:9;29564:17;29555:6;29511:71;:::i;:::-;29592:80;29668:2;29657:9;29653:18;29644:6;29592:80;:::i;:::-;29719:9;29713:4;29709:20;29704:2;29693:9;29689:18;29682:48;29747:108;29850:4;29841:6;29747:108;:::i;:::-;29739:116;;29865:72;29933:2;29922:9;29918:18;29909:6;29865:72;:::i;:::-;29947:73;30015:3;30004:9;30000:19;29991:6;29947:73;:::i;:::-;29196:831;;;;;;;;:::o;30033:177::-;30173:29;30169:1;30161:6;30157:14;30150:53;30033:177;:::o;30216:366::-;30358:3;30379:67;30443:2;30438:3;30379:67;:::i;:::-;30372:74;;30455:93;30544:3;30455:93;:::i;:::-;30573:2;30568:3;30564:12;30557:19;;30216:366;;;:::o;30588:419::-;30754:4;30792:2;30781:9;30777:18;30769:26;;30841:9;30835:4;30831:20;30827:1;30816:9;30812:17;30805:47;30869:131;30995:4;30869:131;:::i;:::-;30861:139;;30588:419;;;:::o
Swarm Source
ipfs://1f2910a9aeb90859fbae82d271a199abe1cca5a19401c72138537b567977e10d
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.