ERC-20
Overview
Max Total Supply
1,000,000,000 TANUKI
Holders
127
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
468.816295391 TANUKIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TANUKI
Compiler Version
v0.8.8+commit.dddeac2f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-12 */ /* https://tanukitoken.com The japanese raccoon dog. 100% owned by the community. */ pragma solidity 0.8.8; // SPDX-License-Identifier: UNLICENSED 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; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract TANUKI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private constant _name = "Tanuki Inu"; string private constant _symbol = "TANUKI"; uint8 private constant _decimals = 9; uint256 private _feeAddr1; uint256 private _feeAddr2; uint256 private _standardTax; address payable private _feeAddrWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = 30000000 * 10**9; uint256 private _maxWalletSize = 30000000 * 10**9; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(_msgSender()); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; _standardTax = 6; // only active during launch emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); _feeAddr1 = 1; _feeAddr2 = _standardTax; if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } }else{ _feeAddr1 = 0; _feeAddr2 = 0; } _tokenTransfer(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setStandardTax(uint256 newTax) external onlyOwner{ require(newTax<_standardTax); _standardTax=newTax; } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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
6080604052670de0b6b3a76400006000196200001c919062000428565b6000196200002b91906200048f565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550666a94d74f430000601055666a94d74f430000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b09190620004db565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043582620003ef565b91506200044283620003ef565b925082620004555762000454620003f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200049c82620003ef565b9150620004a983620003ef565b925082821015620004bf57620004be62000460565b5b828203905092915050565b620004d581620003ef565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b61305280620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600a81526020017f54616e756b6920496e7500000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54414e554b490000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072dfcd29941e09782f7dac04a6883a77a25fde3205023aff13e76f23e9e9127964736f6c63430008080033
Deployed Bytecode
0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600a81526020017f54616e756b6920496e7500000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54414e554b490000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072dfcd29941e09782f7dac04a6883a77a25fde3205023aff13e76f23e9e9127964736f6c63430008080033
Deployed Bytecode Sourcemap
3613:10012:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5396:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6248:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6417:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5582:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6738:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11740:193;;;;;;;;;;;;;:::i;:::-;;5776:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2694:148;;;;;;;;;;;;;:::i;:::-;;9466:118;;;;;;;;;;;;;:::i;:::-;;9327:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2480:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5922:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11538:194;;;;;;;;;;;;;:::i;:::-;;9696:773;;;;;;;;;;;;;:::i;:::-;;6097:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5396:83;5433:13;5466:5;;;;;;;;;;;;;;;;;5459:12;;5396:83;:::o;6248:161::-;6323:4;6340:39;6349:12;:10;:12::i;:::-;6363:7;6372:6;6340:8;:39::i;:::-;6397:4;6390:11;;6248:161;;;;:::o;5673:95::-;5726:7;4112:18;5746:14;;5673:95;:::o;6417:313::-;6515:4;6532:36;6542:6;6550:9;6561:6;6532:9;:36::i;:::-;6579:121;6588:6;6596:12;:10;:12::i;:::-;6610:89;6648:6;6610:89;;;;;;;;;;;;;;;;;:11;:19;6622:6;6610:19;;;;;;;;;;;;;;;:33;6630:12;:10;:12::i;:::-;6610:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6579:8;:121::i;:::-;6718:4;6711:11;;6417:313;;;;;:::o;5582:83::-;5623:5;4363:1;5641:16;;5582:83;:::o;6738:103::-;2617:12;:10;:12::i;:::-;2607:22;;:6;;;;;;;;;;:22;;;2599:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6828:5:::1;6810:15;;:23;;;;;;;;;;;;;;;;;;6738:103:::0;:::o;11740:193::-;11806:14;;;;;;;;;;;11790:30;;:12;:10;:12::i;:::-;:30;;;11782:39;;;;;;11832:26;11861:21;11832:50;;11893:32;11906:18;11893:12;:32::i;:::-;11771:162;11740:193::o;5776:138::-;5842:7;5869:37;5889:7;:16;5897:7;5889:16;;;;;;;;;;;;;;;;5869:19;:37::i;:::-;5862:44;;5776:138;;;:::o;2694:148::-;2617:12;:10;:12::i;:::-;2607:22;;:6;;;;;;;;;;:22;;;2599:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2801:1:::1;2764:40;;2785:6;::::0;::::1;;;;;;;;2764:40;;;;;;;;;;;;2832:1;2815:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2694:148::o:0;9466:118::-;2617:12;:10;:12::i;:::-;2607:22;;:6;;;;;;;;;;:22;;;2599:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4112:18:::1;9519:12;:22;;;;4112:18;9552:14;:24;;;;9466:118::o:0;9327:131::-;2617:12;:10;:12::i;:::-;2607:22;;:6;;;;;;;;;;:22;;;2599:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9409:12:::1;;9402:6;:19;9394:28;;;::::0;::::1;;9444:6;9431:12;:19;;;;9327:131:::0;:::o;2480:79::-;2518:7;2545:6;;;;;;;;;;;2538:13;;2480:79;:::o;5487:87::-;5526:13;5559:7;;;;;;;;;;;;;;;;;5552:14;;5487:87;:::o;5922:167::-;6000:4;6017:42;6027:12;:10;:12::i;:::-;6041:9;6052:6;6017:9;:42::i;:::-;6077:4;6070:11;;5922:167;;;;:::o;11538:194::-;11604:14;;;;;;;;;;;11588:30;;:12;:10;:12::i;:::-;:30;;;11580:39;;;;;;11630:23;11656:24;11674:4;11656:9;:24::i;:::-;11630:50;;11691:33;11708:15;11691:16;:33::i;:::-;11569:163;11538:194::o;9696:773::-;2617:12;:10;:12::i;:::-;2607:22;;:6;;;;;;;;;;:22;;;2599:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9760:11:::1;;;;;;;;;;;9759:12;9751:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9809:35;9866:42;9809:100;;9938:16;9920:15;;:34;;;;;;;;;;;;;;;;;;9965:58;9982:4;9997:15;;;;;;;;;;;4112:18;9965:8;:58::i;:::-;10068:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10050:56;;;10115:4;10122:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10050:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10034:13;;:112;;;;;;;;;;;;;;;;;;10157:15;;;;;;;;;;;:31;;;10196:21;10227:4;10233:24;10251:4;10233:9;:24::i;:::-;10258:1;10260::::0;10262:7:::1;:5;:7::i;:::-;10270:15;10157:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10311:4;10297:11;;:18;;;;;;;;;;;;;;;;;;10344:4;10326:15;;:22;;;;;;;;;;;;;;;;;;10375:4;10361:11;;:18;;;;;;;;;;;;;;;;;;10397:13;;;;;;;;;;;10390:29;;;10428:15;;;;;;;;;;;10446:14;10390:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9740:729;9696:773::o:0;6097:143::-;6178:7;6205:11;:18;6217:5;6205:18;;;;;;;;;;;;;;;:27;6224:7;6205:27;;;;;;;;;;;;;;;;6198:34;;6097:143;;;;:::o;198:98::-;251:7;278:10;271:17;;198:98;:::o;7111:335::-;7221:1;7204:19;;:5;:19;;;;7196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7302:1;7283:21;;:7;:21;;;;7275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7384:6;7354:11;:18;7366:5;7354:18;;;;;;;;;;;;;;;:27;7373:7;7354:27;;;;;;;;;;;;;;;:36;;;;7422:7;7406:32;;7415:5;7406:32;;;7431:6;7406:32;;;;;;:::i;:::-;;;;;;;;7111:335;;;:::o;7454:1374::-;7558:1;7542:18;;:4;:18;;;;7534:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7635:1;7621:16;;:2;:16;;;;7613:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7705:1;7696:6;:10;7688:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:7;:5;:7::i;:::-;7771:15;;:4;:15;;;;:32;;;;;7796:7;:5;:7::i;:::-;7790:13;;:2;:13;;;;7771:32;7767:1011;;;7829:4;:10;7834:4;7829:10;;;;;;;;;;;;;;;;;;;;;;;;;7828:11;:24;;;;;7844:4;:8;7849:2;7844:8;;;;;;;;;;;;;;;;;;;;;;;;;7843:9;7828:24;7820:33;;;;;;7880:1;7868:9;:13;;;;7908:12;;7896:9;:24;;;;7947:13;;;;;;;;;;;7939:21;;:4;:21;;;:55;;;;;7978:15;;;;;;;;;;;7964:30;;:2;:30;;;;7939:55;:83;;;;;8000:18;:22;8019:2;8000:22;;;;;;;;;;;;;;;;;;;;;;;;;7998:24;7939:83;:102;;;;;8026:15;;;;;;;;;;;7939:102;7935:332;;;8109:12;;8099:6;:22;;8091:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8204:14;;8194:6;8178:13;8188:2;8178:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8170:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7935:332;8285:28;8316:24;8334:4;8316:9;:24::i;:::-;8285:55;;8360:6;;;;;;;;;;;8359:7;:32;;;;;8378:13;;;;;;;;;;;8370:21;;:4;:21;;;;8359:32;:47;;;;;8395:11;;;;;;;;;;;8359:47;:73;;;;;8431:1;8410:20;:22;8359:73;8355:344;;;8453:38;8470:20;8453:16;:38::i;:::-;8510:26;8539:21;8510:50;;8603:1;8582:18;:22;8579:105;;;8629:35;8642:21;8629:12;:35::i;:::-;8579:105;8434:265;8355:344;7805:905;7767:1011;;;8739:1;8727:9;:13;;;;8765:1;8753:9;:13;;;;7767:1011;8790:30;8805:4;8810:2;8813:6;8790:14;:30::i;:::-;7454:1374;;;:::o;1335:190::-;1421:7;1454:1;1449;:6;;1457:12;1441:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1481:9;1497:1;1493;:5;;;;:::i;:::-;1481:17;;1516:1;1509:8;;;1335:190;;;;;:::o;9592:96::-;9649:14;;;;;;;;;;;:23;;:31;9673:6;9649:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9592:96;:::o;6849:254::-;6916:7;6955;;6944;:18;;6936:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7020:19;7043:10;:8;:10::i;:::-;7020:33;;7071:24;7083:11;7071:7;:11;;:24;;;;:::i;:::-;7064:31;;;6849:254;;;:::o;8836:483::-;4952:4;4943:6;;:13;;;;;;;;;;;;;;;;;;8914:21:::1;8952:1;8938:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8914:40;;8983:4;8965;8970:1;8965:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9009:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8999:4;9004:1;8999:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9042:62;9059:4;9074:15;;;;;;;;;;;9092:11;9042:8;:62::i;:::-;9115:15;;;;;;;;;;;:66;;;9196:11;9222:1;9238:4;9265;9285:15;9115:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8903:416;4988:5:::0;4979:6;;:14;;;;;;;;;;;;;;;;;;8836:483;:::o;10477:146::-;10571:44;10589:6;10597:9;10608:6;10571:17;:44::i;:::-;10477:146;;;:::o;13195:163::-;13236:7;13257:15;13274;13293:19;:17;:19::i;:::-;13256:56;;;;13330:20;13342:7;13330;:11;;:20;;;;:::i;:::-;13323:27;;;;13195:163;:::o;1787:132::-;1845:7;1872:39;1876:1;1879;1872:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1865:46;;1787:132;;;;:::o;10631:487::-;10730:15;10747:23;10772:12;10786:23;10811:12;10825:13;10842:19;10853:7;10842:10;:19::i;:::-;10729:132;;;;;;;;;;;;10890:28;10910:7;10890;:15;10898:6;10890:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10872:7;:15;10880:6;10872:15;;;;;;;;;;;;;;;:46;;;;10950:39;10973:15;10950:7;:18;10958:9;10950:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10929:7;:18;10937:9;10929:18;;;;;;;;;;;;;;;:60;;;;11000:16;11010:5;11000:9;:16::i;:::-;11027:23;11039:4;11045;11027:11;:23::i;:::-;11083:9;11066:44;;11075:6;11066:44;;;11094:15;11066:44;;;;;;:::i;:::-;;;;;;;;10718:400;;;;;;10631:487;;;:::o;13366:256::-;13416:7;13425;13445:15;13463:7;;13445:25;;13481:15;4112:18;13481:25;;13531:20;4112:18;13531:7;;:11;;:20;;;;:::i;:::-;13521:7;:30;13517:61;;;13561:7;;4112:18;13553:25;;;;;;;;13517:61;13597:7;13606;13589:25;;;;;;13366:256;;;:::o;1927:189::-;2013:7;2045:1;2041;:5;2048:12;2033:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2072:9;2088:1;2084;:5;;;;:::i;:::-;2072:17;;2107:1;2100:8;;;1927:189;;;;;:::o;11943:471::-;12002:7;12011;12020;12029;12038;12047;12068:23;12093:12;12107:13;12124:42;12136:7;12145:9;;12156;;12124:11;:42::i;:::-;12067:99;;;;;;12177:19;12200:10;:8;:10::i;:::-;12177:33;;12222:15;12239:23;12264:12;12280:46;12292:7;12301:4;12307:5;12314:11;12280;:46::i;:::-;12221:105;;;;;;12345:7;12354:15;12371:4;12377:15;12394:4;12400:5;12337:69;;;;;;;;;;;;;;;;;;;11943:471;;;;;;;:::o;1191:136::-;1249:7;1276:43;1280:1;1283;1276:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1269:50;;1191:136;;;;:::o;1004:179::-;1062:7;1082:9;1098:1;1094;:5;;;;:::i;:::-;1082:17;;1123:1;1118;:6;;1110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1174:1;1167:8;;;1004:179;;;;:::o;11126:212::-;11179:19;11202:10;:8;:10::i;:::-;11179:33;;11223:13;11239:22;11249:11;11239:5;:9;;:22;;;;:::i;:::-;11223:38;;11297:33;11324:5;11297:7;:22;11313:4;11297:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11272:7;:22;11288:4;11272:22;;;;;;;;;;;;;;;:58;;;;11168:170;;11126:212;:::o;11346:147::-;11424:17;11436:4;11424:7;;:11;;:17;;;;:::i;:::-;11414:7;:27;;;;11465:20;11480:4;11465:10;;:14;;:20;;;;:::i;:::-;11452:10;:33;;;;11346:147;;:::o;12422:351::-;12515:7;12524;12533;12553:12;12568:28;12592:3;12568:19;12580:6;12568:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12553:43;;12607:13;12623:29;12648:3;12623:20;12635:7;12623;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12607:45;;12663:23;12689:28;12711:5;12689:17;12701:4;12689:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12663:54;;12736:15;12753:4;12759:5;12728:37;;;;;;;;;12422:351;;;;;;;:::o;12781:409::-;12891:7;12900;12909;12929:15;12947:24;12959:11;12947:7;:11;;:24;;;;:::i;:::-;12929:42;;12982:12;12997:21;13006:11;12997:4;:8;;:21;;;;:::i;:::-;12982:36;;13029:13;13045:22;13055:11;13045:5;:9;;:22;;;;:::i;:::-;13029:38;;13078:23;13104:28;13126:5;13104:17;13116:4;13104:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13078:54;;13151:7;13160:15;13177:4;13143:39;;;;;;;;;;12781:409;;;;;;;;:::o;1533:246::-;1591:7;1620:1;1615;:6;1611:47;;;1645:1;1638:8;;;;1611:47;1668:9;1684:1;1680;:5;;;;:::i;:::-;1668:17;;1713:1;1708;1704;:5;;;;:::i;:::-;:10;1696:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1770:1;1763:8;;;1533:246;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:173::-;8118:25;8114:1;8106:6;8102:14;8095:49;7978:173;:::o;8157:366::-;8299:3;8320:67;8384:2;8379:3;8320:67;:::i;:::-;8313:74;;8396:93;8485:3;8396:93;:::i;:::-;8514:2;8509:3;8505:12;8498:19;;8157:366;;;:::o;8529:419::-;8695:4;8733:2;8722:9;8718:18;8710:26;;8782:9;8776:4;8772:20;8768:1;8757:9;8753:17;8746:47;8810:131;8936:4;8810:131;:::i;:::-;8802:139;;8529:419;;;:::o;8954:143::-;9011:5;9042:6;9036:13;9027:22;;9058:33;9085:5;9058:33;:::i;:::-;8954:143;;;;:::o;9103:351::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:64;9429:7;9420:6;9409:9;9405:22;9373:64;:::i;:::-;9363:74;;9319:128;9103:351;;;;:::o;9460:332::-;9581:4;9619:2;9608:9;9604:18;9596:26;;9632:71;9700:1;9689:9;9685:17;9676:6;9632:71;:::i;:::-;9713:72;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9460:332;;;;;:::o;9798:85::-;9843:7;9872:5;9861:16;;9798:85;;;:::o;9889:60::-;9917:3;9938:5;9931:12;;9889:60;;;:::o;9955:158::-;10013:9;10046:61;10064:42;10073:32;10099:5;10073:32;:::i;:::-;10064:42;:::i;:::-;10046:61;:::i;:::-;10033:74;;9955:158;;;:::o;10119:147::-;10214:45;10253:5;10214:45;:::i;:::-;10209:3;10202:58;10119:147;;:::o;10272:807::-;10521:4;10559:3;10548:9;10544:19;10536:27;;10573:71;10641:1;10630:9;10626:17;10617:6;10573:71;:::i;:::-;10654:72;10722:2;10711:9;10707:18;10698:6;10654:72;:::i;:::-;10736:80;10812:2;10801:9;10797:18;10788:6;10736:80;:::i;:::-;10826;10902:2;10891:9;10887:18;10878:6;10826:80;:::i;:::-;10916:73;10984:3;10973:9;10969:19;10960:6;10916:73;:::i;:::-;10999;11067:3;11056:9;11052:19;11043:6;10999:73;:::i;:::-;10272:807;;;;;;;;;:::o;11085:143::-;11142:5;11173:6;11167:13;11158:22;;11189:33;11216:5;11189:33;:::i;:::-;11085:143;;;;:::o;11234:663::-;11322:6;11330;11338;11387:2;11375:9;11366:7;11362:23;11358:32;11355:119;;;11393:79;;:::i;:::-;11355:119;11513:1;11538:64;11594:7;11585:6;11574:9;11570:22;11538:64;:::i;:::-;11528:74;;11484:128;11651:2;11677:64;11733:7;11724:6;11713:9;11709:22;11677:64;:::i;:::-;11667:74;;11622:129;11790:2;11816:64;11872:7;11863:6;11852:9;11848:22;11816:64;:::i;:::-;11806:74;;11761:129;11234:663;;;;;:::o;11903:332::-;12024:4;12062:2;12051:9;12047:18;12039:26;;12075:71;12143:1;12132:9;12128:17;12119:6;12075:71;:::i;:::-;12156:72;12224:2;12213:9;12209:18;12200:6;12156:72;:::i;:::-;11903:332;;;;;:::o;12241:137::-;12295:5;12326:6;12320:13;12311:22;;12342:30;12366:5;12342:30;:::i;:::-;12241:137;;;;:::o;12384:345::-;12451:6;12500:2;12488:9;12479:7;12475:23;12471:32;12468:119;;;12506:79;;:::i;:::-;12468:119;12626:1;12651:61;12704:7;12695:6;12684:9;12680:22;12651:61;:::i;:::-;12641:71;;12597:125;12384:345;;;;:::o;12735:223::-;12875:34;12871:1;12863:6;12859:14;12852:58;12944:6;12939:2;12931:6;12927:15;12920:31;12735:223;:::o;12964:366::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:419::-;13502:4;13540:2;13529:9;13525:18;13517:26;;13589:9;13583:4;13579:20;13575:1;13564:9;13560:17;13553:47;13617:131;13743:4;13617:131;:::i;:::-;13609:139;;13336:419;;;:::o;13761:221::-;13901:34;13897:1;13889:6;13885:14;13878:58;13970:4;13965:2;13957:6;13953:15;13946:29;13761:221;:::o;13988:366::-;14130:3;14151:67;14215:2;14210:3;14151:67;:::i;:::-;14144:74;;14227:93;14316:3;14227:93;:::i;:::-;14345:2;14340:3;14336:12;14329:19;;13988:366;;;:::o;14360:419::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:131;14767:4;14641:131;:::i;:::-;14633:139;;14360:419;;;:::o;14785:224::-;14925:34;14921:1;14913:6;14909:14;14902:58;14994:7;14989:2;14981:6;14977:15;14970:32;14785:224;:::o;15015:366::-;15157:3;15178:67;15242:2;15237:3;15178:67;:::i;:::-;15171:74;;15254:93;15343:3;15254:93;:::i;:::-;15372:2;15367:3;15363:12;15356:19;;15015:366;;;:::o;15387:419::-;15553:4;15591:2;15580:9;15576:18;15568:26;;15640:9;15634:4;15630:20;15626:1;15615:9;15611:17;15604:47;15668:131;15794:4;15668:131;:::i;:::-;15660:139;;15387:419;;;:::o;15812:222::-;15952:34;15948:1;15940:6;15936:14;15929:58;16021:5;16016:2;16008:6;16004:15;15997:30;15812:222;:::o;16040:366::-;16182:3;16203:67;16267:2;16262:3;16203:67;:::i;:::-;16196:74;;16279:93;16368:3;16279:93;:::i;:::-;16397:2;16392:3;16388:12;16381:19;;16040:366;;;:::o;16412:419::-;16578:4;16616:2;16605:9;16601:18;16593:26;;16665:9;16659:4;16655:20;16651:1;16640:9;16636:17;16629:47;16693:131;16819:4;16693:131;:::i;:::-;16685:139;;16412:419;;;:::o;16837:228::-;16977:34;16973:1;16965:6;16961:14;16954:58;17046:11;17041:2;17033:6;17029:15;17022:36;16837:228;:::o;17071:366::-;17213:3;17234:67;17298:2;17293:3;17234:67;:::i;:::-;17227:74;;17310:93;17399:3;17310:93;:::i;:::-;17428:2;17423:3;17419:12;17412:19;;17071:366;;;:::o;17443:419::-;17609:4;17647:2;17636:9;17632:18;17624:26;;17696:9;17690:4;17686:20;17682:1;17671:9;17667:17;17660:47;17724:131;17850:4;17724:131;:::i;:::-;17716:139;;17443:419;;;:::o;17868:175::-;18008:27;18004:1;17996:6;17992:14;17985:51;17868:175;:::o;18049:366::-;18191:3;18212:67;18276:2;18271:3;18212:67;:::i;:::-;18205:74;;18288:93;18377:3;18288:93;:::i;:::-;18406:2;18401:3;18397:12;18390:19;;18049:366;;;:::o;18421:419::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18674:9;18668:4;18664:20;18660:1;18649:9;18645:17;18638:47;18702:131;18828:4;18702:131;:::i;:::-;18694:139;;18421:419;;;:::o;18846:180::-;18894:77;18891:1;18884:88;18991:4;18988:1;18981:15;19015:4;19012:1;19005:15;19032:305;19072:3;19091:20;19109:1;19091:20;:::i;:::-;19086:25;;19125:20;19143:1;19125:20;:::i;:::-;19120:25;;19279:1;19211:66;19207:74;19204:1;19201:81;19198:107;;;19285:18;;:::i;:::-;19198:107;19329:1;19326;19322:9;19315:16;;19032:305;;;;:::o;19343:176::-;19483:28;19479:1;19471:6;19467:14;19460:52;19343:176;:::o;19525:366::-;19667:3;19688:67;19752:2;19747:3;19688:67;:::i;:::-;19681:74;;19764:93;19853:3;19764:93;:::i;:::-;19882:2;19877:3;19873:12;19866:19;;19525:366;;;:::o;19897:419::-;20063:4;20101:2;20090:9;20086:18;20078:26;;20150:9;20144:4;20140:20;20136:1;20125:9;20121:17;20114:47;20178:131;20304:4;20178:131;:::i;:::-;20170:139;;19897:419;;;:::o;20322:191::-;20362:4;20382:20;20400:1;20382:20;:::i;:::-;20377:25;;20416:20;20434:1;20416:20;:::i;:::-;20411:25;;20455:1;20452;20449:8;20446:34;;;20460:18;;:::i;:::-;20446:34;20505:1;20502;20498:9;20490:17;;20322:191;;;;:::o;20519:229::-;20659:34;20655:1;20647:6;20643:14;20636:58;20728:12;20723:2;20715:6;20711:15;20704:37;20519:229;:::o;20754:366::-;20896:3;20917:67;20981:2;20976:3;20917:67;:::i;:::-;20910:74;;20993:93;21082:3;20993:93;:::i;:::-;21111:2;21106:3;21102:12;21095:19;;20754:366;;;:::o;21126:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21379:9;21373:4;21369:20;21365:1;21354:9;21350:17;21343:47;21407:131;21533:4;21407:131;:::i;:::-;21399:139;;21126:419;;;:::o;21551:180::-;21599:77;21596:1;21589:88;21696:4;21693:1;21686:15;21720:4;21717:1;21710:15;21737:180;21785:77;21782:1;21775:88;21882:4;21879:1;21872:15;21906:4;21903:1;21896:15;21923:114;21990:6;22024:5;22018:12;22008:22;;21923:114;;;:::o;22043:184::-;22142:11;22176:6;22171:3;22164:19;22216:4;22211:3;22207:14;22192:29;;22043:184;;;;:::o;22233:132::-;22300:4;22323:3;22315:11;;22353:4;22348:3;22344:14;22336:22;;22233:132;;;:::o;22371:108::-;22448:24;22466:5;22448:24;:::i;:::-;22443:3;22436:37;22371:108;;:::o;22485:179::-;22554:10;22575:46;22617:3;22609:6;22575:46;:::i;:::-;22653:4;22648:3;22644:14;22630:28;;22485:179;;;;:::o;22670:113::-;22740:4;22772;22767:3;22763:14;22755:22;;22670:113;;;:::o;22819:732::-;22938:3;22967:54;23015:5;22967:54;:::i;:::-;23037:86;23116:6;23111:3;23037:86;:::i;:::-;23030:93;;23147:56;23197:5;23147:56;:::i;:::-;23226:7;23257:1;23242:284;23267:6;23264:1;23261:13;23242:284;;;23343:6;23337:13;23370:63;23429:3;23414:13;23370:63;:::i;:::-;23363:70;;23456:60;23509:6;23456:60;:::i;:::-;23446:70;;23302:224;23289:1;23286;23282:9;23277:14;;23242:284;;;23246:14;23542:3;23535:10;;22943:608;;;22819:732;;;;:::o;23557:831::-;23820:4;23858:3;23847:9;23843:19;23835:27;;23872:71;23940:1;23929:9;23925:17;23916:6;23872:71;:::i;:::-;23953:80;24029:2;24018:9;24014:18;24005:6;23953:80;:::i;:::-;24080:9;24074:4;24070:20;24065:2;24054:9;24050:18;24043:48;24108:108;24211:4;24202:6;24108:108;:::i;:::-;24100:116;;24226:72;24294:2;24283:9;24279:18;24270:6;24226:72;:::i;:::-;24308:73;24376:3;24365:9;24361:19;24352:6;24308:73;:::i;:::-;23557:831;;;;;;;;:::o;24394:180::-;24442:77;24439:1;24432:88;24539:4;24536:1;24529:15;24563:4;24560:1;24553:15;24580:185;24620:1;24637:20;24655:1;24637:20;:::i;:::-;24632:25;;24671:20;24689:1;24671:20;:::i;:::-;24666:25;;24710:1;24700:35;;24715:18;;:::i;:::-;24700:35;24757:1;24754;24750:9;24745:14;;24580:185;;;;:::o;24771:177::-;24911:29;24907:1;24899:6;24895:14;24888:53;24771:177;:::o;24954:366::-;25096:3;25117:67;25181:2;25176:3;25117:67;:::i;:::-;25110:74;;25193:93;25282:3;25193:93;:::i;:::-;25311:2;25306:3;25302:12;25295:19;;24954:366;;;:::o;25326:419::-;25492:4;25530:2;25519:9;25515:18;25507:26;;25579:9;25573:4;25569:20;25565:1;25554:9;25550:17;25543:47;25607:131;25733:4;25607:131;:::i;:::-;25599:139;;25326:419;;;:::o;25751:348::-;25791:7;25814:20;25832:1;25814:20;:::i;:::-;25809:25;;25848:20;25866:1;25848:20;:::i;:::-;25843:25;;26036:1;25968:66;25964:74;25961:1;25958:81;25953:1;25946:9;25939:17;25935:105;25932:131;;;26043:18;;:::i;:::-;25932:131;26091:1;26088;26084:9;26073:20;;25751:348;;;;:::o;26105:220::-;26245:34;26241:1;26233:6;26229:14;26222:58;26314:3;26309:2;26301:6;26297:15;26290:28;26105:220;:::o;26331:366::-;26473:3;26494:67;26558:2;26553:3;26494:67;:::i;:::-;26487:74;;26570:93;26659:3;26570:93;:::i;:::-;26688:2;26683:3;26679:12;26672:19;;26331:366;;;:::o;26703:419::-;26869:4;26907:2;26896:9;26892:18;26884:26;;26956:9;26950:4;26946:20;26942:1;26931:9;26927:17;26920:47;26984:131;27110:4;26984:131;:::i;:::-;26976:139;;26703:419;;;:::o
Swarm Source
ipfs://72dfcd29941e09782f7dac04a6883a77a25fde3205023aff13e76f23e9e91279
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.