Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 Worm
Holders
21
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
43,591,796.271439119 WormValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
WormInu
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-18 */ // SPDX-License-Identifier: Unlicensed // Worm inu is the strangest memcoin in existence. // $$\ $$\ $$$$$$\ // $$ | $\ $$ | \_$$ _| // $$ |$$$\ $$ | $$$$$$\ $$$$$$\ $$$$$$\$$$$\ $$ | $$$$$$$\ $$\ $$\ // $$ $$ $$\$$ |$$ __$$\ $$ __$$\ $$ _$$ _$$\ $$ | $$ __$$\ $$ | $$ | // $$$$ _$$$$ |$$ / $$ |$$ | \__|$$ / $$ / $$ | $$ | $$ | $$ |$$ | $$ | // $$$ / \$$$ |$$ | $$ |$$ | $$ | $$ | $$ | $$ | $$ | $$ |$$ | $$ | // $$ / \$$ |\$$$$$$ |$$ | $$ | $$ | $$ | $$$$$$\ $$ | $$ |\$$$$$$ | // \__/ \__| \______/ \__| \__| \__| \__| \______|\__| \__| \______/ // Website: https://worm-inu.org/ // Twitter(X): https://twitter.com/worm_inu // Telegram: https://t.me/worm_inu_official // For propose: [email protected] pragma solidity ^0.8.18; interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract WormInu is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => bool) private _isExcludedFromFee; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _reflectedTotal = (MAX - (MAX % _tTotal)); uint256 private _previoustaxFee = _taxFee; uint256 private _taxFee = _sellTax; uint256 private _buyTax = 5; uint256 private _sellTax = 5; address payable private _marketingAddress = payable(0x833e35C3C143219501CE5EFd1B6F80a56C73b28b); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private isTradingOpen; bool private isAutoswapEnabled = true; bool private inSwap = false; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } uint8 private constant _decimals = 9; string private constant _name = "Worm Inu"; string private constant _symbol = "Worm"; uint256 public _minSwappableAmount = 10_000 * 10**9; constructor() { _balances[_msgSender()] = _reflectedTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function symbol() public pure returns (string memory) { return _symbol; } function balanceOf(address account) public view override returns (uint256) { return reftectedTokens(_balances[account]); } function name() public pure returns (string memory) { return _name; } function disableFee() private { if (_taxFee == 0) return; _previoustaxFee = _taxFee; _taxFee = 0; } function enableFee() private { _taxFee = _previoustaxFee; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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 owner, address spender, uint256 amount ) private { require(owner != address(0), "Can't approve from zero address"); require(spender != address(0), "Can't approve to zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "the transfer amount exceeds allowance" ) ); return true; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) disableFee(); _transferApplyingFees(sender, recipient, amount); if (!takeFee) enableFee(); } function reftectedTokens(uint256 rAmount) private view returns (uint256) { require( rAmount <= _reflectedTotal, "Amount has to be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "Cant transfer from address zero"); require(to != address(0), "Cant transfer to address zero"); require(amount > 0, "Amount should be above zero"); if (from != owner() && to != owner()) { //Trade start check if (!isTradingOpen) { require( from == owner(), "Only owner can trade before trading activation" ); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _minSwappableAmount; if ( canSwap && !inSwap && from != uniswapV2Pair && isAutoswapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendEthToMarketing(address(this).balance); } } } bool takeFee = true; if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else { if (from == uniswapV2Pair && to != address(uniswapV2Router)) { _taxFee = _buyTax; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _taxFee = _sellTax; } } _tokenTransfer(from, to, amount, takeFee); } function sendEthToMarketing(uint256 amount) private { _marketingAddress.transfer(amount); } function manualswap() external { require(_msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function _transferApplyingFees( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tTeam ) = _getFeeValues(tAmount); _balances[sender] = _balances[sender].sub(rAmount); _balances[recipient] = _balances[recipient].add(rTransferAmount); _transferFeeDev(tTeam); emit Transfer(sender, recipient, tTransferAmount); } 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 _getTValues(uint256 tAmount, uint256 taxFee) private pure returns (uint256, uint256) { uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tTeam); return (tTransferAmount, tTeam); } function toggleTrading(bool _isTradingOpen) public onlyOwner { isTradingOpen = _isTradingOpen; } function manualsend() external { require(_msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendEthToMarketing(contractETHBalance); } function _transferFeeDev(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _balances[address(this)] = _balances[address(this)].add(rTeam); } function _getFeeValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tTeam) = _getTValues( tAmount, _taxFee ); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount) = _getRValues( tAmount, tTeam, currentRate ); return (rAmount, rTransferAmount, tTransferAmount, tTeam); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { return (_reflectedTotal, _tTotal); } function setisAutoswapEnabled(bool _isAutoswapEnabled) public onlyOwner { isAutoswapEnabled = _isAutoswapEnabled; } function setTax(uint256 buyTax, uint256 sellTax) public onlyOwner { require(buyTax >= 0 && buyTax <= 45); require(sellTax >= 0 && sellTax <= 45); _buyTax = buyTax; _sellTax = sellTax; } function setMinSwappableAmount(uint256 minSwappableAmount) public onlyOwner { _minSwappableAmount = minSwappableAmount; } receive() external payable {} function _getRValues( uint256 tAmount, uint256 tTeam, uint256 currentRate ) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rTeam); return (rAmount, rTransferAmount); } function excludeMultipleAccountsFromFees( address[] calldata accounts, bool excluded ) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_minSwappableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minSwappableAmount","type":"uint256"}],"name":"setMinSwappableAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isAutoswapEnabled","type":"bool"}],"name":"setisAutoswapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingOpen","type":"bool"}],"name":"toggleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000614565b6000196200002b91906200067b565b6005556007546006556009546007556005600855600560095573833e35c3c143219501ce5efd1b6f80a56c73b28b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055506509184e72a000600d55348015620000e657600080fd5b506000620000f9620005aa60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460036000620001ae620005aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000720565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000720565b6040518363ffffffff1660e01b81526004016200036592919062000763565b6020604051808303816000875af115801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000720565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016002600062000459620005b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000534620005aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200059b9190620007a1565b60405180910390a350620007be565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200062182620005db565b91506200062e83620005db565b925082620006415762000640620005e5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200068882620005db565b91506200069583620005db565b9250828203905081811115620006b057620006af6200064c565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006e882620006bb565b9050919050565b620006fa81620006db565b81146200070657600080fd5b50565b6000815190506200071a81620006ef565b92915050565b600060208284031215620007395762000738620006b6565b5b6000620007498482850162000709565b91505092915050565b6200075d81620006db565b82525050565b60006040820190506200077a600083018562000752565b62000789602083018462000752565b9392505050565b6200079b81620005db565b82525050565b6000602082019050620007b8600083018462000790565b92915050565b61302e80620007ce6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb146103fb578063c3c8cd8014610438578063c492f0461461044f578063dd62ed3e14610478578063e5c43633146104b5578063f2fde38b146104e057610140565b806370a0823114610328578063715018a6146103655780638da5cb5b1461037c5780638f2f003c146103a757806395d89b41146103d057610140565b806326560be7116100fd57806326560be714610240578063313ce5671461026957806349bd5a5e1461029457806353382938146102bf578063667f6526146102e85780636fc3eaec1461031157610140565b806306fdde0314610145578063095ea7b3146101705780631694505e146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610509565b604051610167919061229d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061235d565b610546565b6040516101a491906123b8565b60405180910390f35b3480156101b957600080fd5b506101c2610564565b6040516101cf9190612432565b60405180910390f35b3480156101e457600080fd5b506101ed61058a565b6040516101fa919061245c565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612477565b61059a565b60405161023791906123b8565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906124f6565b610673565b005b34801561027557600080fd5b5061027e610725565b60405161028b919061253f565b60405180910390f35b3480156102a057600080fd5b506102a961072e565b6040516102b69190612569565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906124f6565b610754565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612584565b610806565b005b34801561031d57600080fd5b506103266108e3565b005b34801561033457600080fd5b5061034f600480360381019061034a91906125c4565b610955565b60405161035c919061245c565b60405180910390f35b34801561037157600080fd5b5061037a6109a6565b005b34801561038857600080fd5b50610391610af9565b60405161039e9190612569565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906125f1565b610b22565b005b3480156103dc57600080fd5b506103e5610bc1565b6040516103f2919061229d565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061235d565b610bfe565b60405161042f91906123b8565b60405180910390f35b34801561044457600080fd5b5061044d610c1c565b005b34801561045b57600080fd5b5061047660048036038101906104719190612683565b610c96565b005b34801561048457600080fd5b5061049f600480360381019061049a91906126e3565b610dd0565b6040516104ac919061245c565b60405180910390f35b3480156104c157600080fd5b506104ca610e57565b6040516104d7919061245c565b60405180910390f35b3480156104ec57600080fd5b50610507600480360381019061050291906125c4565b610e5d565b005b60606040518060400160405280600881526020017f576f726d20496e75000000000000000000000000000000000000000000000000815250905090565b600061055a61055361101e565b8484611026565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006105a78484846111ef565b610668846105b361101e565b61066385604051806060016040528060258152602001612fd460259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061961101e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187e9092919063ffffffff16565b611026565b600190509392505050565b61067b61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff9061276f565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61075c61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e09061276f565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b61080e61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929061276f565b60405180910390fd5b600082101580156108ad5750602d8211155b6108b657600080fd5b600081101580156108c85750602d8111155b6108d157600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092461101e565b73ffffffffffffffffffffffffffffffffffffffff161461094457600080fd5b6000479050610952816118e2565b50565b600061099f600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194e565b9050919050565b6109ae61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a329061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b2a61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061276f565b60405180910390fd5b80600d8190555050565b60606040518060400160405280600481526020017f576f726d00000000000000000000000000000000000000000000000000000000815250905090565b6000610c12610c0b61101e565b84846111ef565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5d61101e565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d57600080fd5b6000610c8830610955565b9050610c93816119bc565b50565b610c9e61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061276f565b60405180910390fd5b60005b83839050811015610dca578160026000868685818110610d5157610d5061278f565b5b9050602002016020810190610d6691906125c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dc2906127ed565b915050610d2e565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b610e6561101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee99061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f58906128a7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb9061297f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e2919061245c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611255906129eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612a57565b60405180910390fd5b60008111611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790612ac3565b60405180910390fd5b611318610af9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113865750611356610af9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561158f57600c60149054906101000a900460ff16611415576113a7610af9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90612b55565b60405180910390fd5b5b600061142030610955565b90506000600d5482101590508080156114465750600c60169054906101000a900460ff16155b80156114a05750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114b85750600c60159054906101000a900460ff165b801561150e5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115645750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158c57611572826119bc565b6000479050600081111561158a57611589476118e2565b5b505b50505b600060019050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116365750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116e95750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156116f7576000905061186c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117a25750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b1576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186b576009546007819055505b5b61187884848484611c35565b50505050565b60008383111582906118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd919061229d565b60405180910390fd5b50600083856118d59190612b75565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561194a573d6000803e3d6000fd5b5050565b6000600554821115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90612c1b565b60405180910390fd5b600061199f611c62565b90506119b48184611c8d90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f4576119f3612c3b565b5b604051908082528060200260200182016040528015611a225781602001602082028036833780820191505090505b5090503081600081518110611a3a57611a3961278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b059190612c7f565b81600181518110611b1957611b1861278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b8030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611026565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611be4959493929190612da5565b600060405180830381600087803b158015611bfe57600080fd5b505af1158015611c12573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611c4357611c42611cd7565b5b611c4e848484611cf6565b80611c5c57611c5b611eae565b5b50505050565b6000806000611c6f611eb9565b91509150611c868183611c8d90919063ffffffff16565b9250505090565b6000611ccf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed0565b905092915050565b60006007540315611cf45760075460068190555060006007819055505b565b600080600080611d0585611f33565b9350935093509350611d5f84600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8290919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df483600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcc90919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e408161202a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e9d919061245c565b60405180910390a350505050505050565b600654600781905550565b600080600554670de0b6b3a7640000915091509091565b60008083118290611f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0e919061229d565b60405180910390fd5b5060008385611f269190612e2e565b9050809150509392505050565b600080600080600080611f48876007546120e7565b915091506000611f56611c62565b9050600080611f668a858561213a565b9150915081818686985098509850985050505050509193509193565b6000611fc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187e565b905092915050565b6000808284611fdb9190612e5f565b905083811015612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201790612edf565b60405180910390fd5b8091505092915050565b6000612034611c62565b9050600061204b828461219390919063ffffffff16565b905061209f81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcc90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006121126064612104868861219390919063ffffffff16565b611c8d90919063ffffffff16565b905060006121298287611f8290919063ffffffff16565b905080829350935050509250929050565b6000806000612152848761219390919063ffffffff16565b90506000612169858761219390919063ffffffff16565b905060006121808284611f8290919063ffffffff16565b9050828194509450505050935093915050565b60008083036121a55760009050612207565b600082846121b39190612eff565b90508284826121c29190612e2e565b14612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f990612fb3565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561224757808201518184015260208101905061222c565b60008484015250505050565b6000601f19601f8301169050919050565b600061226f8261220d565b6122798185612218565b9350612289818560208601612229565b61229281612253565b840191505092915050565b600060208201905081810360008301526122b78184612264565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122f4826122c9565b9050919050565b612304816122e9565b811461230f57600080fd5b50565b600081359050612321816122fb565b92915050565b6000819050919050565b61233a81612327565b811461234557600080fd5b50565b60008135905061235781612331565b92915050565b60008060408385031215612374576123736122bf565b5b600061238285828601612312565b925050602061239385828601612348565b9150509250929050565b60008115159050919050565b6123b28161239d565b82525050565b60006020820190506123cd60008301846123a9565b92915050565b6000819050919050565b60006123f86123f36123ee846122c9565b6123d3565b6122c9565b9050919050565b600061240a826123dd565b9050919050565b600061241c826123ff565b9050919050565b61242c81612411565b82525050565b60006020820190506124476000830184612423565b92915050565b61245681612327565b82525050565b6000602082019050612471600083018461244d565b92915050565b6000806000606084860312156124905761248f6122bf565b5b600061249e86828701612312565b93505060206124af86828701612312565b92505060406124c086828701612348565b9150509250925092565b6124d38161239d565b81146124de57600080fd5b50565b6000813590506124f0816124ca565b92915050565b60006020828403121561250c5761250b6122bf565b5b600061251a848285016124e1565b91505092915050565b600060ff82169050919050565b61253981612523565b82525050565b60006020820190506125546000830184612530565b92915050565b612563816122e9565b82525050565b600060208201905061257e600083018461255a565b92915050565b6000806040838503121561259b5761259a6122bf565b5b60006125a985828601612348565b92505060206125ba85828601612348565b9150509250929050565b6000602082840312156125da576125d96122bf565b5b60006125e884828501612312565b91505092915050565b600060208284031215612607576126066122bf565b5b600061261584828501612348565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126435761264261261e565b5b8235905067ffffffffffffffff8111156126605761265f612623565b5b60208301915083602082028301111561267c5761267b612628565b5b9250929050565b60008060006040848603121561269c5761269b6122bf565b5b600084013567ffffffffffffffff8111156126ba576126b96122c4565b5b6126c68682870161262d565b935093505060206126d9868287016124e1565b9150509250925092565b600080604083850312156126fa576126f96122bf565b5b600061270885828601612312565b925050602061271985828601612312565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612759602083612218565b915061276482612723565b602082019050919050565b600060208201905081810360008301526127888161274c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127f882612327565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361282a576128296127be565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612891602683612218565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b60006128fd601f83612218565b9150612908826128c7565b602082019050919050565b6000602082019050818103600083015261292c816128f0565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612969601d83612218565b915061297482612933565b602082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b60006129d5601f83612218565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612a41601d83612218565b9150612a4c82612a0b565b602082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612aad601b83612218565b9150612ab882612a77565b602082019050919050565b60006020820190508181036000830152612adc81612aa0565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612b3f602e83612218565b9150612b4a82612ae3565b604082019050919050565b60006020820190508181036000830152612b6e81612b32565b9050919050565b6000612b8082612327565b9150612b8b83612327565b9250828203905081811115612ba357612ba26127be565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000612c05602c83612218565b9150612c1082612ba9565b604082019050919050565b60006020820190508181036000830152612c3481612bf8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612c79816122fb565b92915050565b600060208284031215612c9557612c946122bf565b5b6000612ca384828501612c6a565b91505092915050565b6000819050919050565b6000612cd1612ccc612cc784612cac565b6123d3565b612327565b9050919050565b612ce181612cb6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d1c816122e9565b82525050565b6000612d2e8383612d13565b60208301905092915050565b6000602082019050919050565b6000612d5282612ce7565b612d5c8185612cf2565b9350612d6783612d03565b8060005b83811015612d98578151612d7f8882612d22565b9750612d8a83612d3a565b925050600181019050612d6b565b5085935050505092915050565b600060a082019050612dba600083018861244d565b612dc76020830187612cd8565b8181036040830152612dd98186612d47565b9050612de8606083018561255a565b612df5608083018461244d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e3982612327565b9150612e4483612327565b925082612e5457612e53612dff565b5b828204905092915050565b6000612e6a82612327565b9150612e7583612327565b9250828201905080821115612e8d57612e8c6127be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ec9601b83612218565b9150612ed482612e93565b602082019050919050565b60006020820190508181036000830152612ef881612ebc565b9050919050565b6000612f0a82612327565b9150612f1583612327565b9250828202612f2381612327565b91508282048414831517612f3a57612f396127be565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f9d602183612218565b9150612fa882612f41565b604082019050919050565b60006020820190508181036000830152612fcc81612f90565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b827b65386b504a85e139bafd8ebbd3807c2f0013a878a62c875f564ea46b36d64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb146103fb578063c3c8cd8014610438578063c492f0461461044f578063dd62ed3e14610478578063e5c43633146104b5578063f2fde38b146104e057610140565b806370a0823114610328578063715018a6146103655780638da5cb5b1461037c5780638f2f003c146103a757806395d89b41146103d057610140565b806326560be7116100fd57806326560be714610240578063313ce5671461026957806349bd5a5e1461029457806353382938146102bf578063667f6526146102e85780636fc3eaec1461031157610140565b806306fdde0314610145578063095ea7b3146101705780631694505e146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610509565b604051610167919061229d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061235d565b610546565b6040516101a491906123b8565b60405180910390f35b3480156101b957600080fd5b506101c2610564565b6040516101cf9190612432565b60405180910390f35b3480156101e457600080fd5b506101ed61058a565b6040516101fa919061245c565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612477565b61059a565b60405161023791906123b8565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906124f6565b610673565b005b34801561027557600080fd5b5061027e610725565b60405161028b919061253f565b60405180910390f35b3480156102a057600080fd5b506102a961072e565b6040516102b69190612569565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906124f6565b610754565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612584565b610806565b005b34801561031d57600080fd5b506103266108e3565b005b34801561033457600080fd5b5061034f600480360381019061034a91906125c4565b610955565b60405161035c919061245c565b60405180910390f35b34801561037157600080fd5b5061037a6109a6565b005b34801561038857600080fd5b50610391610af9565b60405161039e9190612569565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906125f1565b610b22565b005b3480156103dc57600080fd5b506103e5610bc1565b6040516103f2919061229d565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061235d565b610bfe565b60405161042f91906123b8565b60405180910390f35b34801561044457600080fd5b5061044d610c1c565b005b34801561045b57600080fd5b5061047660048036038101906104719190612683565b610c96565b005b34801561048457600080fd5b5061049f600480360381019061049a91906126e3565b610dd0565b6040516104ac919061245c565b60405180910390f35b3480156104c157600080fd5b506104ca610e57565b6040516104d7919061245c565b60405180910390f35b3480156104ec57600080fd5b50610507600480360381019061050291906125c4565b610e5d565b005b60606040518060400160405280600881526020017f576f726d20496e75000000000000000000000000000000000000000000000000815250905090565b600061055a61055361101e565b8484611026565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006105a78484846111ef565b610668846105b361101e565b61066385604051806060016040528060258152602001612fd460259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061961101e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187e9092919063ffffffff16565b611026565b600190509392505050565b61067b61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff9061276f565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61075c61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e09061276f565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b61080e61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929061276f565b60405180910390fd5b600082101580156108ad5750602d8211155b6108b657600080fd5b600081101580156108c85750602d8111155b6108d157600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092461101e565b73ffffffffffffffffffffffffffffffffffffffff161461094457600080fd5b6000479050610952816118e2565b50565b600061099f600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194e565b9050919050565b6109ae61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a329061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b2a61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061276f565b60405180910390fd5b80600d8190555050565b60606040518060400160405280600481526020017f576f726d00000000000000000000000000000000000000000000000000000000815250905090565b6000610c12610c0b61101e565b84846111ef565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5d61101e565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d57600080fd5b6000610c8830610955565b9050610c93816119bc565b50565b610c9e61101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061276f565b60405180910390fd5b60005b83839050811015610dca578160026000868685818110610d5157610d5061278f565b5b9050602002016020810190610d6691906125c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dc2906127ed565b915050610d2e565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b610e6561101e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee99061276f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f58906128a7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb9061297f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e2919061245c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611255906129eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612a57565b60405180910390fd5b60008111611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790612ac3565b60405180910390fd5b611318610af9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113865750611356610af9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561158f57600c60149054906101000a900460ff16611415576113a7610af9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90612b55565b60405180910390fd5b5b600061142030610955565b90506000600d5482101590508080156114465750600c60169054906101000a900460ff16155b80156114a05750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114b85750600c60159054906101000a900460ff165b801561150e5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115645750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158c57611572826119bc565b6000479050600081111561158a57611589476118e2565b5b505b50505b600060019050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116365750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116e95750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156116f7576000905061186c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117a25750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b1576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186b576009546007819055505b5b61187884848484611c35565b50505050565b60008383111582906118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd919061229d565b60405180910390fd5b50600083856118d59190612b75565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561194a573d6000803e3d6000fd5b5050565b6000600554821115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90612c1b565b60405180910390fd5b600061199f611c62565b90506119b48184611c8d90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f4576119f3612c3b565b5b604051908082528060200260200182016040528015611a225781602001602082028036833780820191505090505b5090503081600081518110611a3a57611a3961278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b059190612c7f565b81600181518110611b1957611b1861278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b8030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611026565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611be4959493929190612da5565b600060405180830381600087803b158015611bfe57600080fd5b505af1158015611c12573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611c4357611c42611cd7565b5b611c4e848484611cf6565b80611c5c57611c5b611eae565b5b50505050565b6000806000611c6f611eb9565b91509150611c868183611c8d90919063ffffffff16565b9250505090565b6000611ccf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed0565b905092915050565b60006007540315611cf45760075460068190555060006007819055505b565b600080600080611d0585611f33565b9350935093509350611d5f84600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8290919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df483600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcc90919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e408161202a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e9d919061245c565b60405180910390a350505050505050565b600654600781905550565b600080600554670de0b6b3a7640000915091509091565b60008083118290611f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0e919061229d565b60405180910390fd5b5060008385611f269190612e2e565b9050809150509392505050565b600080600080600080611f48876007546120e7565b915091506000611f56611c62565b9050600080611f668a858561213a565b9150915081818686985098509850985050505050509193509193565b6000611fc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187e565b905092915050565b6000808284611fdb9190612e5f565b905083811015612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201790612edf565b60405180910390fd5b8091505092915050565b6000612034611c62565b9050600061204b828461219390919063ffffffff16565b905061209f81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcc90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006121126064612104868861219390919063ffffffff16565b611c8d90919063ffffffff16565b905060006121298287611f8290919063ffffffff16565b905080829350935050509250929050565b6000806000612152848761219390919063ffffffff16565b90506000612169858761219390919063ffffffff16565b905060006121808284611f8290919063ffffffff16565b9050828194509450505050935093915050565b60008083036121a55760009050612207565b600082846121b39190612eff565b90508284826121c29190612e2e565b14612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f990612fb3565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561224757808201518184015260208101905061222c565b60008484015250505050565b6000601f19601f8301169050919050565b600061226f8261220d565b6122798185612218565b9350612289818560208601612229565b61229281612253565b840191505092915050565b600060208201905081810360008301526122b78184612264565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122f4826122c9565b9050919050565b612304816122e9565b811461230f57600080fd5b50565b600081359050612321816122fb565b92915050565b6000819050919050565b61233a81612327565b811461234557600080fd5b50565b60008135905061235781612331565b92915050565b60008060408385031215612374576123736122bf565b5b600061238285828601612312565b925050602061239385828601612348565b9150509250929050565b60008115159050919050565b6123b28161239d565b82525050565b60006020820190506123cd60008301846123a9565b92915050565b6000819050919050565b60006123f86123f36123ee846122c9565b6123d3565b6122c9565b9050919050565b600061240a826123dd565b9050919050565b600061241c826123ff565b9050919050565b61242c81612411565b82525050565b60006020820190506124476000830184612423565b92915050565b61245681612327565b82525050565b6000602082019050612471600083018461244d565b92915050565b6000806000606084860312156124905761248f6122bf565b5b600061249e86828701612312565b93505060206124af86828701612312565b92505060406124c086828701612348565b9150509250925092565b6124d38161239d565b81146124de57600080fd5b50565b6000813590506124f0816124ca565b92915050565b60006020828403121561250c5761250b6122bf565b5b600061251a848285016124e1565b91505092915050565b600060ff82169050919050565b61253981612523565b82525050565b60006020820190506125546000830184612530565b92915050565b612563816122e9565b82525050565b600060208201905061257e600083018461255a565b92915050565b6000806040838503121561259b5761259a6122bf565b5b60006125a985828601612348565b92505060206125ba85828601612348565b9150509250929050565b6000602082840312156125da576125d96122bf565b5b60006125e884828501612312565b91505092915050565b600060208284031215612607576126066122bf565b5b600061261584828501612348565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126435761264261261e565b5b8235905067ffffffffffffffff8111156126605761265f612623565b5b60208301915083602082028301111561267c5761267b612628565b5b9250929050565b60008060006040848603121561269c5761269b6122bf565b5b600084013567ffffffffffffffff8111156126ba576126b96122c4565b5b6126c68682870161262d565b935093505060206126d9868287016124e1565b9150509250925092565b600080604083850312156126fa576126f96122bf565b5b600061270885828601612312565b925050602061271985828601612312565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612759602083612218565b915061276482612723565b602082019050919050565b600060208201905081810360008301526127888161274c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127f882612327565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361282a576128296127be565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612891602683612218565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b60006128fd601f83612218565b9150612908826128c7565b602082019050919050565b6000602082019050818103600083015261292c816128f0565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612969601d83612218565b915061297482612933565b602082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b60006129d5601f83612218565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612a41601d83612218565b9150612a4c82612a0b565b602082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612aad601b83612218565b9150612ab882612a77565b602082019050919050565b60006020820190508181036000830152612adc81612aa0565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612b3f602e83612218565b9150612b4a82612ae3565b604082019050919050565b60006020820190508181036000830152612b6e81612b32565b9050919050565b6000612b8082612327565b9150612b8b83612327565b9250828203905081811115612ba357612ba26127be565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000612c05602c83612218565b9150612c1082612ba9565b604082019050919050565b60006020820190508181036000830152612c3481612bf8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612c79816122fb565b92915050565b600060208284031215612c9557612c946122bf565b5b6000612ca384828501612c6a565b91505092915050565b6000819050919050565b6000612cd1612ccc612cc784612cac565b6123d3565b612327565b9050919050565b612ce181612cb6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d1c816122e9565b82525050565b6000612d2e8383612d13565b60208301905092915050565b6000602082019050919050565b6000612d5282612ce7565b612d5c8185612cf2565b9350612d6783612d03565b8060005b83811015612d98578151612d7f8882612d22565b9750612d8a83612d3a565b925050600181019050612d6b565b5085935050505092915050565b600060a082019050612dba600083018861244d565b612dc76020830187612cd8565b8181036040830152612dd98186612d47565b9050612de8606083018561255a565b612df5608083018461244d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e3982612327565b9150612e4483612327565b925082612e5457612e53612dff565b5b828204905092915050565b6000612e6a82612327565b9150612e7583612327565b9250828201905080821115612e8d57612e8c6127be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ec9601b83612218565b9150612ed482612e93565b602082019050919050565b60006020820190508181036000830152612ef881612ebc565b9050919050565b6000612f0a82612327565b9150612f1583612327565b9250828202612f2381612327565b91508282048414831517612f3a57612f396127be565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f9d602183612218565b9150612fa882612f41565b604082019050919050565b60006020820190508181036000830152612fcc81612f90565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b827b65386b504a85e139bafd8ebbd3807c2f0013a878a62c875f564ea46b36d64736f6c63430008120033
Deployed Bytecode Sourcemap
5226:10792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7305:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7814:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5954:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7711:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8783:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13370:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7620:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14814:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14951:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13488:202;;;;;;;;;;;;;:::i;:::-;;7161:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2623:148;;;;;;;;;;;;;:::i;:::-;;2409:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15210:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7066:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8015:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11829:197;;;;;;;;;;;;;:::i;:::-;;15755:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8222:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7305:83;7342:13;7375:5;;;;;;;;;;;;;;;;;7368:12;;7305:83;:::o;7814:193::-;7916:4;7938:39;7947:12;:10;:12::i;:::-;7961:7;7970:6;7938:8;:39::i;:::-;7995:4;7988:11;;7814:193;;;;:::o;5954:41::-;;;;;;;;;;;;;:::o;7711:95::-;7764:7;5586:21;7784:14;;7711:95;:::o;8783:443::-;8915:4;8932:36;8942:6;8950:9;8961:6;8932:9;:36::i;:::-;8979:217;9002:6;9023:12;:10;:12::i;:::-;9050:135;9106:6;9050:135;;;;;;;;;;;;;;;;;:11;:19;9062:6;9050:19;;;;;;;;;;;;;;;:33;9070:12;:10;:12::i;:::-;9050:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;8979:8;:217::i;:::-;9214:4;9207:11;;8783:443;;;;;:::o;13370:110::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13458:14:::1;13442:13;;:30;;;;;;;;;;;;;;;;;;13370:110:::0;:::o;7620:83::-;7661:5;6287:1;7679:16;;7620:83;:::o;6002:28::-;;;;;;;;;;;;;:::o;14814:129::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14917:18:::1;14897:17;;:38;;;;;;;;;;;;;;;;;;14814:129:::0;:::o;14951:251::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15069:1:::1;15059:6;:11;;:27;;;;;15084:2;15074:6;:12;;15059:27;15051:36;;;::::0;::::1;;15117:1;15106:7;:12;;:29;;;;;15133:2;15122:7;:13;;15106:29;15098:38;;;::::0;::::1;;15159:6;15149:7;:16;;;;15187:7;15176:8;:18;;;;14951:251:::0;;:::o;13488:202::-;13554:17;;;;;;;;;;;13538:33;;:12;:10;:12::i;:::-;:33;;;13530:42;;;;;;13583:26;13612:21;13583:50;;13644:38;13663:18;13644;:38::i;:::-;13519:171;13488:202::o;7161:136::-;7227:7;7254:35;7270:9;:18;7280:7;7270:18;;;;;;;;;;;;;;;;7254:15;:35::i;:::-;7247:42;;7161:136;;;:::o;2623:148::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2730:1:::1;2693:40;;2714:6;::::0;::::1;;;;;;;;2693:40;;;;;;;;;;;;2761:1;2744:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2623:148::o:0;2409:79::-;2447:7;2474:6;;;;;;;;;;;2467:13;;2409:79;:::o;15210:135::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15319:18:::1;15297:19;:40;;;;15210:135:::0;:::o;7066:87::-;7105:13;7138:7;;;;;;;;;;;;;;;;;7131:14;;7066:87;:::o;8015:199::-;8120:4;8142:42;8152:12;:10;:12::i;:::-;8166:9;8177:6;8142:9;:42::i;:::-;8202:4;8195:11;;8015:199;;;;:::o;11829:197::-;11895:17;;;;;;;;;;;11879:33;;:12;:10;:12::i;:::-;:33;;;11871:42;;;;;;11924:23;11950:24;11968:4;11950:9;:24::i;:::-;11924:50;;11985:33;12002:15;11985:16;:33::i;:::-;11860:166;11829:197::o;15755:260::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15898:9:::1;15893:115;15917:8;;:15;;15913:1;:19;15893:115;;;15988:8;15954:18;:31;15973:8;;15982:1;15973:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15954:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;15934:3;;;;;:::i;:::-;;;;15893:115;;;;15755:260:::0;;;:::o;8222:184::-;8339:7;8371:11;:18;8383:5;8371:18;;;;;;;;;;;;;;;:27;8390:7;8371:27;;;;;;;;;;;;;;;;8364:34;;8222:184;;;;:::o;6395:51::-;;;;:::o;2779:281::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2902:1:::1;2882:22;;:8;:22;;::::0;2860:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3015:8;2986:38;;3007:6;::::0;::::1;;;;;;;;2986:38;;;;;;;;;;;;3044:8;3035:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2779:281:::0;:::o;1925:98::-;1978:7;2005:10;1998:17;;1925:98;:::o;8414:361::-;8558:1;8541:19;;:5;:19;;;8533:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8634:1;8615:21;;:7;:21;;;8607:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8713:6;8683:11;:18;8695:5;8683:18;;;;;;;;;;;;;;;:27;8702:7;8683:27;;;;;;;;;;;;;;;:36;;;;8751:7;8735:32;;8744:5;8735:32;;;8760:6;8735:32;;;;;;:::i;:::-;;;;;;;;8414:361;;;:::o;9859:1849::-;9997:1;9981:18;;:4;:18;;;9973:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10068:1;10054:16;;:2;:16;;;10046:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10132:1;10123:6;:10;10115:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10190:7;:5;:7::i;:::-;10182:15;;:4;:15;;;;:32;;;;;10207:7;:5;:7::i;:::-;10201:13;;:2;:13;;;;10182:32;10178:963;;;10269:13;;;;;;;;;;;10264:190;;10341:7;:5;:7::i;:::-;10333:15;;:4;:15;;;10303:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:190;10470:28;10501:24;10519:4;10501:9;:24::i;:::-;10470:55;;10540:12;10579:19;;10555:20;:43;;10540:58;;10637:7;:35;;;;;10666:6;;;;;;;;;;;10665:7;10637:35;:77;;;;;10701:13;;;;;;;;;;;10693:21;;:4;:21;;;;10637:77;:115;;;;;10735:17;;;;;;;;;;;10637:115;:161;;;;;10774:18;:24;10793:4;10774:24;;;;;;;;;;;;;;;;;;;;;;;;;10773:25;10637:161;:205;;;;;10820:18;:22;10839:2;10820:22;;;;;;;;;;;;;;;;;;;;;;;;;10819:23;10637:205;10615:515;;;10877:38;10894:20;10877:16;:38::i;:::-;10934:26;10963:21;10934:50;;11028:1;11007:18;:22;11003:112;;;11054:41;11073:21;11054:18;:41::i;:::-;11003:112;10858:272;10615:515;10216:925;;10178:963;11153:12;11168:4;11153:19;;11204:18;:24;11223:4;11204:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11232:18;:22;11251:2;11232:22;;;;;;;;;;;;;;;;;;;;;;;;;11204:50;11203:115;;;;11281:13;;;;;;;;;;;11273:21;;:4;:21;;;;:44;;;;;11304:13;;;;;;;;;;;11298:19;;:2;:19;;;;11273:44;11203:115;11185:462;;;11355:5;11345:15;;11185:462;;;11405:13;;;;;;;;;;;11397:21;;:4;:21;;;:55;;;;;11436:15;;;;;;;;;;;11422:30;;:2;:30;;;;11397:55;11393:113;;;11483:7;;11473;:17;;;;11393:113;11532:13;;;;;;;;;;;11526:19;;:2;:19;;;:55;;;;;11565:15;;;;;;;;;;;11549:32;;:4;:32;;;;11526:55;11522:114;;;11612:8;;11602:7;:18;;;;11522:114;11185:462;11659:41;11674:4;11680:2;11684:6;11692:7;11659:14;:41::i;:::-;9962:1746;9859:1849;;;:::o;3566:224::-;3686:7;3719:1;3714;:6;;3722:12;3706:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3746:9;3762:1;3758;:5;;;;:::i;:::-;3746:17;;3781:1;3774:8;;;3566:224;;;;;:::o;11716:105::-;11779:17;;;;;;;;;;;:26;;:34;11806:6;11779:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11716:105;:::o;9522:329::-;9613:7;9671:15;;9660:7;:26;;9638:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;9769:19;9791:10;:8;:10::i;:::-;9769:32;;9819:24;9831:11;9819:7;:11;;:24;;;;:::i;:::-;9812:31;;;9522:329;;;:::o;12585:483::-;6195:4;6186:6;;:13;;;;;;;;;;;;;;;;;;12663:21:::1;12701:1;12687:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12663:40;;12732:4;12714;12719:1;12714:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12758:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12748:4;12753:1;12748:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12791:62;12808:4;12823:15;;;;;;;;;;;12841:11;12791:8;:62::i;:::-;12864:15;;;;;;;;;;;:66;;;12945:11;12971:1;12987:4;13014;13034:15;12864:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12652:416;6231:5:::0;6222:6;;:14;;;;;;;;;;;;;;;;;;12585:483;:::o;9234:280::-;9390:7;9385:26;;9399:12;:10;:12::i;:::-;9385:26;9422:48;9444:6;9452:9;9463:6;9422:21;:48::i;:::-;9486:7;9481:25;;9495:11;:9;:11::i;:::-;9481:25;9234:280;;;;:::o;14513:164::-;14555:7;14576:15;14593;14612:19;:17;:19::i;:::-;14575:56;;;;14649:20;14661:7;14649;:11;;:20;;;;:::i;:::-;14642:27;;;;14513:164;:::o;4052:132::-;4110:7;4137:39;4141:1;4144;4137:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4130:46;;4052:132;;;;:::o;7396:135::-;7452:1;7441:7;;:12;7437:25;7455:7;7437:25;7492:7;;7474:15;:25;;;;7522:1;7512:7;:11;;;;7396:135;:::o;12034:543::-;12185:15;12215:23;12253;12291:13;12318:22;12332:7;12318:13;:22::i;:::-;12170:170;;;;;;;;12371:30;12393:7;12371:9;:17;12381:6;12371:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;12351:9;:17;12361:6;12351:17;;;;;;;;;;;;;;;:50;;;;12435:41;12460:15;12435:9;:20;12445:9;12435:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;12412:9;:20;12422:9;12412:20;;;;;;;;;;;;;;;:64;;;;12487:22;12503:5;12487:15;:22::i;:::-;12542:9;12525:44;;12534:6;12525:44;;;12553:15;12525:44;;;;;;:::i;:::-;;;;;;;;12159:418;;;;12034:543;;;:::o;7539:73::-;7589:15;;7579:7;:25;;;;7539:73::o;14685:121::-;14736:7;14745;14773:15;;5586:21;14765:33;;;;14685:121;;:::o;4192:223::-;4312:7;4344:1;4340;:5;4347:12;4332:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4371:9;4387:1;4383;:5;;;;:::i;:::-;4371:17;;4406:1;4399:8;;;4192:223;;;;;:::o;13927:578::-;14030:7;14052;14074;14096;14132:23;14157:13;14174:66;14200:7;14222;;14174:11;:66::i;:::-;14131:109;;;;14251:19;14273:10;:8;:10::i;:::-;14251:32;;14295:15;14312:23;14339:90;14365:7;14387:5;14407:11;14339;:90::i;:::-;14294:135;;;;14448:7;14457:15;14474;14491:5;14440:57;;;;;;;;;;;;;13927:578;;;;;:::o;3422:136::-;3480:7;3507:43;3511:1;3514;3507:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3500:50;;3422:136;;;;:::o;3235:179::-;3293:7;3313:9;3329:1;3325;:5;;;;:::i;:::-;3313:17;;3354:1;3349;:6;;3341:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3405:1;3398:8;;;3235:179;;;;:::o;13698:221::-;13757:19;13779:10;:8;:10::i;:::-;13757:32;;13800:13;13816:22;13826:11;13816:5;:9;;:22;;;;:::i;:::-;13800:38;;13876:35;13905:5;13876:9;:24;13894:4;13876:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;13849:9;:24;13867:4;13849:24;;;;;;;;;;;;;;;:62;;;;13746:173;;13698:221;:::o;13076:286::-;13179:7;13188;13213:13;13229:28;13253:3;13229:19;13241:6;13229:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13213:44;;13268:23;13294:18;13306:5;13294:7;:11;;:18;;;;:::i;:::-;13268:44;;13331:15;13348:5;13323:31;;;;;;13076:286;;;;;:::o;15390:357::-;15520:7;15529;15549:15;15567:24;15579:11;15567:7;:11;;:24;;;;:::i;:::-;15549:42;;15602:13;15618:22;15628:11;15618:5;:9;;:22;;;;:::i;:::-;15602:38;;15651:23;15677:18;15689:5;15677:7;:11;;:18;;;;:::i;:::-;15651:44;;15714:7;15723:15;15706:33;;;;;;;15390:357;;;;;;:::o;3798:246::-;3856:7;3885:1;3880;:6;3876:47;;3910:1;3903:8;;;;3876:47;3933:9;3949:1;3945;:5;;;;:::i;:::-;3933:17;;3978:1;3973;3969;:5;;;;:::i;:::-;:10;3961:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4035:1;4028:8;;;3798: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:619::-;4843:6;4851;4859;4908:2;4896:9;4887:7;4883:23;4879:32;4876:119;;;4914:79;;:::i;:::-;4876:119;5034:1;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5005:117;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;5289:2;5315:53;5360:7;5351:6;5340:9;5336:22;5315:53;:::i;:::-;5305:63;;5260:118;4766:619;;;;;:::o;5391:116::-;5461:21;5476:5;5461:21;:::i;:::-;5454:5;5451:32;5441:60;;5497:1;5494;5487:12;5441:60;5391:116;:::o;5513:133::-;5556:5;5594:6;5581:20;5572:29;;5610:30;5634:5;5610:30;:::i;:::-;5513:133;;;;:::o;5652:323::-;5708:6;5757:2;5745:9;5736:7;5732:23;5728:32;5725:119;;;5763:79;;:::i;:::-;5725:119;5883:1;5908:50;5950:7;5941:6;5930:9;5926:22;5908:50;:::i;:::-;5898:60;;5854:114;5652:323;;;;:::o;5981:86::-;6016:7;6056:4;6049:5;6045:16;6034:27;;5981:86;;;:::o;6073:112::-;6156:22;6172:5;6156:22;:::i;:::-;6151:3;6144:35;6073:112;;:::o;6191:214::-;6280:4;6318:2;6307:9;6303:18;6295:26;;6331:67;6395:1;6384:9;6380:17;6371:6;6331:67;:::i;:::-;6191:214;;;;:::o;6411:118::-;6498:24;6516:5;6498:24;:::i;:::-;6493:3;6486:37;6411:118;;:::o;6535:222::-;6628:4;6666:2;6655:9;6651:18;6643:26;;6679:71;6747:1;6736:9;6732:17;6723:6;6679:71;:::i;:::-;6535:222;;;;:::o;6763:474::-;6831:6;6839;6888:2;6876:9;6867:7;6863:23;6859:32;6856:119;;;6894:79;;:::i;:::-;6856:119;7014:1;7039:53;7084:7;7075:6;7064:9;7060:22;7039:53;:::i;:::-;7029:63;;6985:117;7141:2;7167:53;7212:7;7203:6;7192:9;7188:22;7167:53;:::i;:::-;7157:63;;7112:118;6763:474;;;;;:::o;7243:329::-;7302:6;7351:2;7339:9;7330:7;7326:23;7322:32;7319:119;;;7357:79;;:::i;:::-;7319:119;7477:1;7502:53;7547:7;7538:6;7527:9;7523:22;7502:53;:::i;:::-;7492:63;;7448:117;7243:329;;;;:::o;7578:::-;7637:6;7686:2;7674:9;7665:7;7661:23;7657:32;7654:119;;;7692:79;;:::i;:::-;7654:119;7812:1;7837:53;7882:7;7873:6;7862:9;7858:22;7837:53;:::i;:::-;7827:63;;7783:117;7578:329;;;;:::o;7913:117::-;8022:1;8019;8012:12;8036:117;8145:1;8142;8135:12;8159:117;8268:1;8265;8258:12;8299:568;8372:8;8382:6;8432:3;8425:4;8417:6;8413:17;8409:27;8399:122;;8440:79;;:::i;:::-;8399:122;8553:6;8540:20;8530:30;;8583:18;8575:6;8572:30;8569:117;;;8605:79;;:::i;:::-;8569:117;8719:4;8711:6;8707:17;8695:29;;8773:3;8765:4;8757:6;8753:17;8743:8;8739:32;8736:41;8733:128;;;8780:79;;:::i;:::-;8733:128;8299:568;;;;;:::o;8873:698::-;8965:6;8973;8981;9030:2;9018:9;9009:7;9005:23;9001:32;8998:119;;;9036:79;;:::i;:::-;8998:119;9184:1;9173:9;9169:17;9156:31;9214:18;9206:6;9203:30;9200:117;;;9236:79;;:::i;:::-;9200:117;9349:80;9421:7;9412:6;9401:9;9397:22;9349:80;:::i;:::-;9331:98;;;;9127:312;9478:2;9504:50;9546:7;9537:6;9526:9;9522:22;9504:50;:::i;:::-;9494:60;;9449:115;8873:698;;;;;:::o;9577:474::-;9645:6;9653;9702:2;9690:9;9681:7;9677:23;9673:32;9670:119;;;9708:79;;:::i;:::-;9670:119;9828:1;9853:53;9898:7;9889:6;9878:9;9874:22;9853:53;:::i;:::-;9843:63;;9799:117;9955:2;9981:53;10026:7;10017:6;10006:9;10002:22;9981:53;:::i;:::-;9971:63;;9926:118;9577:474;;;;;:::o;10057:182::-;10197:34;10193:1;10185:6;10181:14;10174:58;10057:182;:::o;10245:366::-;10387:3;10408:67;10472:2;10467:3;10408:67;:::i;:::-;10401:74;;10484:93;10573:3;10484:93;:::i;:::-;10602:2;10597:3;10593:12;10586:19;;10245:366;;;:::o;10617:419::-;10783:4;10821:2;10810:9;10806:18;10798:26;;10870:9;10864:4;10860:20;10856:1;10845:9;10841:17;10834:47;10898:131;11024:4;10898:131;:::i;:::-;10890:139;;10617:419;;;:::o;11042:180::-;11090:77;11087:1;11080:88;11187:4;11184:1;11177:15;11211:4;11208:1;11201:15;11228:180;11276:77;11273:1;11266:88;11373:4;11370:1;11363:15;11397:4;11394:1;11387:15;11414:233;11453:3;11476:24;11494:5;11476:24;:::i;:::-;11467:33;;11522:66;11515:5;11512:77;11509:103;;11592:18;;:::i;:::-;11509:103;11639:1;11632:5;11628:13;11621:20;;11414:233;;;:::o;11653:225::-;11793:34;11789:1;11781:6;11777:14;11770:58;11862:8;11857:2;11849:6;11845:15;11838:33;11653:225;:::o;11884:366::-;12026:3;12047:67;12111:2;12106:3;12047:67;:::i;:::-;12040:74;;12123:93;12212:3;12123:93;:::i;:::-;12241:2;12236:3;12232:12;12225:19;;11884:366;;;:::o;12256:419::-;12422:4;12460:2;12449:9;12445:18;12437:26;;12509:9;12503:4;12499:20;12495:1;12484:9;12480:17;12473:47;12537:131;12663:4;12537:131;:::i;:::-;12529:139;;12256:419;;;:::o;12681:181::-;12821:33;12817:1;12809:6;12805:14;12798:57;12681:181;:::o;12868:366::-;13010:3;13031:67;13095:2;13090:3;13031:67;:::i;:::-;13024:74;;13107:93;13196:3;13107:93;:::i;:::-;13225:2;13220:3;13216:12;13209:19;;12868:366;;;:::o;13240:419::-;13406:4;13444:2;13433:9;13429:18;13421:26;;13493:9;13487:4;13483:20;13479:1;13468:9;13464:17;13457:47;13521:131;13647:4;13521:131;:::i;:::-;13513:139;;13240:419;;;:::o;13665:179::-;13805:31;13801:1;13793:6;13789:14;13782:55;13665:179;:::o;13850:366::-;13992:3;14013:67;14077:2;14072:3;14013:67;:::i;:::-;14006:74;;14089:93;14178:3;14089:93;:::i;:::-;14207:2;14202:3;14198:12;14191:19;;13850:366;;;:::o;14222:419::-;14388:4;14426:2;14415:9;14411:18;14403:26;;14475:9;14469:4;14465:20;14461:1;14450:9;14446:17;14439:47;14503:131;14629:4;14503:131;:::i;:::-;14495:139;;14222:419;;;:::o;14647:181::-;14787:33;14783:1;14775:6;14771:14;14764:57;14647:181;:::o;14834:366::-;14976:3;14997:67;15061:2;15056:3;14997:67;:::i;:::-;14990:74;;15073:93;15162:3;15073:93;:::i;:::-;15191:2;15186:3;15182:12;15175:19;;14834:366;;;:::o;15206:419::-;15372:4;15410:2;15399:9;15395:18;15387:26;;15459:9;15453:4;15449:20;15445:1;15434:9;15430:17;15423:47;15487:131;15613:4;15487:131;:::i;:::-;15479:139;;15206:419;;;:::o;15631:179::-;15771:31;15767:1;15759:6;15755:14;15748:55;15631:179;:::o;15816:366::-;15958:3;15979:67;16043:2;16038:3;15979:67;:::i;:::-;15972:74;;16055:93;16144:3;16055:93;:::i;:::-;16173:2;16168:3;16164:12;16157:19;;15816:366;;;:::o;16188:419::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16441:9;16435:4;16431:20;16427:1;16416:9;16412:17;16405:47;16469:131;16595:4;16469:131;:::i;:::-;16461:139;;16188:419;;;:::o;16613:177::-;16753:29;16749:1;16741:6;16737:14;16730:53;16613:177;:::o;16796:366::-;16938:3;16959:67;17023:2;17018:3;16959:67;:::i;:::-;16952:74;;17035:93;17124:3;17035:93;:::i;:::-;17153:2;17148:3;17144:12;17137:19;;16796:366;;;:::o;17168:419::-;17334:4;17372:2;17361:9;17357:18;17349:26;;17421:9;17415:4;17411:20;17407:1;17396:9;17392:17;17385:47;17449:131;17575:4;17449:131;:::i;:::-;17441:139;;17168:419;;;:::o;17593:233::-;17733:34;17729:1;17721:6;17717:14;17710:58;17802:16;17797:2;17789:6;17785:15;17778:41;17593:233;:::o;17832:366::-;17974:3;17995:67;18059:2;18054:3;17995:67;:::i;:::-;17988:74;;18071:93;18160:3;18071:93;:::i;:::-;18189:2;18184:3;18180:12;18173:19;;17832:366;;;:::o;18204:419::-;18370:4;18408:2;18397:9;18393:18;18385:26;;18457:9;18451:4;18447:20;18443:1;18432:9;18428:17;18421:47;18485:131;18611:4;18485:131;:::i;:::-;18477:139;;18204:419;;;:::o;18629:194::-;18669:4;18689:20;18707:1;18689:20;:::i;:::-;18684:25;;18723:20;18741:1;18723:20;:::i;:::-;18718:25;;18767:1;18764;18760:9;18752:17;;18791:1;18785:4;18782:11;18779:37;;;18796:18;;:::i;:::-;18779:37;18629:194;;;;:::o;18829:231::-;18969:34;18965:1;18957:6;18953:14;18946:58;19038:14;19033:2;19025:6;19021:15;19014:39;18829:231;:::o;19066:366::-;19208:3;19229:67;19293:2;19288:3;19229:67;:::i;:::-;19222:74;;19305:93;19394:3;19305:93;:::i;:::-;19423:2;19418:3;19414:12;19407:19;;19066:366;;;:::o;19438:419::-;19604:4;19642:2;19631:9;19627:18;19619:26;;19691:9;19685:4;19681:20;19677:1;19666:9;19662:17;19655:47;19719:131;19845:4;19719:131;:::i;:::-;19711:139;;19438:419;;;:::o;19863:180::-;19911:77;19908:1;19901:88;20008:4;20005:1;19998:15;20032:4;20029:1;20022:15;20049:143;20106:5;20137:6;20131:13;20122:22;;20153:33;20180:5;20153:33;:::i;:::-;20049:143;;;;:::o;20198:351::-;20268:6;20317:2;20305:9;20296:7;20292:23;20288:32;20285:119;;;20323:79;;:::i;:::-;20285:119;20443:1;20468:64;20524:7;20515:6;20504:9;20500:22;20468:64;:::i;:::-;20458:74;;20414:128;20198:351;;;;:::o;20555:85::-;20600:7;20629:5;20618:16;;20555:85;;;:::o;20646:158::-;20704:9;20737:61;20755:42;20764:32;20790:5;20764:32;:::i;:::-;20755:42;:::i;:::-;20737:61;:::i;:::-;20724:74;;20646:158;;;:::o;20810:147::-;20905:45;20944:5;20905:45;:::i;:::-;20900:3;20893:58;20810:147;;:::o;20963:114::-;21030:6;21064:5;21058:12;21048:22;;20963:114;;;:::o;21083:184::-;21182:11;21216:6;21211:3;21204:19;21256:4;21251:3;21247:14;21232:29;;21083:184;;;;:::o;21273:132::-;21340:4;21363:3;21355:11;;21393:4;21388:3;21384:14;21376:22;;21273:132;;;:::o;21411:108::-;21488:24;21506:5;21488:24;:::i;:::-;21483:3;21476:37;21411:108;;:::o;21525:179::-;21594:10;21615:46;21657:3;21649:6;21615:46;:::i;:::-;21693:4;21688:3;21684:14;21670:28;;21525:179;;;;:::o;21710:113::-;21780:4;21812;21807:3;21803:14;21795:22;;21710:113;;;:::o;21859:732::-;21978:3;22007:54;22055:5;22007:54;:::i;:::-;22077:86;22156:6;22151:3;22077:86;:::i;:::-;22070:93;;22187:56;22237:5;22187:56;:::i;:::-;22266:7;22297:1;22282:284;22307:6;22304:1;22301:13;22282:284;;;22383:6;22377:13;22410:63;22469:3;22454:13;22410:63;:::i;:::-;22403:70;;22496:60;22549:6;22496:60;:::i;:::-;22486:70;;22342:224;22329:1;22326;22322:9;22317:14;;22282:284;;;22286:14;22582:3;22575:10;;21983:608;;;21859:732;;;;:::o;22597:831::-;22860:4;22898:3;22887:9;22883:19;22875:27;;22912:71;22980:1;22969:9;22965:17;22956:6;22912:71;:::i;:::-;22993:80;23069:2;23058:9;23054:18;23045:6;22993:80;:::i;:::-;23120:9;23114:4;23110:20;23105:2;23094:9;23090:18;23083:48;23148:108;23251:4;23242:6;23148:108;:::i;:::-;23140:116;;23266:72;23334:2;23323:9;23319:18;23310:6;23266:72;:::i;:::-;23348:73;23416:3;23405:9;23401:19;23392:6;23348:73;:::i;:::-;22597:831;;;;;;;;:::o;23434:180::-;23482:77;23479:1;23472:88;23579:4;23576:1;23569:15;23603:4;23600:1;23593:15;23620:185;23660:1;23677:20;23695:1;23677:20;:::i;:::-;23672:25;;23711:20;23729:1;23711:20;:::i;:::-;23706:25;;23750:1;23740:35;;23755:18;;:::i;:::-;23740:35;23797:1;23794;23790:9;23785:14;;23620:185;;;;:::o;23811:191::-;23851:3;23870:20;23888:1;23870:20;:::i;:::-;23865:25;;23904:20;23922:1;23904:20;:::i;:::-;23899:25;;23947:1;23944;23940:9;23933:16;;23968:3;23965:1;23962:10;23959:36;;;23975:18;;:::i;:::-;23959:36;23811:191;;;;:::o;24008:177::-;24148:29;24144:1;24136:6;24132:14;24125:53;24008:177;:::o;24191:366::-;24333:3;24354:67;24418:2;24413:3;24354:67;:::i;:::-;24347:74;;24430:93;24519:3;24430:93;:::i;:::-;24548:2;24543:3;24539:12;24532:19;;24191:366;;;:::o;24563:419::-;24729:4;24767:2;24756:9;24752:18;24744:26;;24816:9;24810:4;24806:20;24802:1;24791:9;24787:17;24780:47;24844:131;24970:4;24844:131;:::i;:::-;24836:139;;24563:419;;;:::o;24988:410::-;25028:7;25051:20;25069:1;25051:20;:::i;:::-;25046:25;;25085:20;25103:1;25085:20;:::i;:::-;25080:25;;25140:1;25137;25133:9;25162:30;25180:11;25162:30;:::i;:::-;25151:41;;25341:1;25332:7;25328:15;25325:1;25322:22;25302:1;25295:9;25275:83;25252:139;;25371:18;;:::i;:::-;25252:139;25036:362;24988:410;;;;:::o;25404:220::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:3;25608:2;25600:6;25596:15;25589:28;25404:220;:::o;25630:366::-;25772:3;25793:67;25857:2;25852:3;25793:67;:::i;:::-;25786:74;;25869:93;25958:3;25869:93;:::i;:::-;25987:2;25982:3;25978:12;25971:19;;25630:366;;;:::o;26002:419::-;26168:4;26206:2;26195:9;26191:18;26183:26;;26255:9;26249:4;26245:20;26241:1;26230:9;26226:17;26219:47;26283:131;26409:4;26283:131;:::i;:::-;26275:139;;26002:419;;;:::o
Swarm Source
ipfs://b827b65386b504a85e139bafd8ebbd3807c2f0013a878a62c875f564ea46b36d
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.