ERC-20
Overview
Max Total Supply
1,000,000,000,000 DONPEPE
Holders
21
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PepeDeMayoERC
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-05 */ //Amidst a sea of Pepes, a new challenger appeared, with a bold and spicy flavor that set him apart // - Don Pepe, the ultimate Cinco de Mayo icon. With his trademark sombrero and a fierce determination, // he blazed a trail through the Pepesphere, inspiring a new wave of followers who craved something different. // With every step he took, Don Pepe proved that he was more than just a mere Pepe - he was a legend in the making. // Telegram: https://t.me/PepeDeMayo // Twitter: https://twitter.com/Pepe_De_Mayo // Website: https://pepedemayo.me/ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract PepeDeMayoERC is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private time; uint256 private _tax; uint256 private constant _tTotal = 1 * 10**12 * 10**9; uint256 private fee1=30; uint256 private fee2=30; uint256 private feeMax=100; string private constant _name = "Pepe De Mayo"; string private constant _symbol = "DONPEPE"; uint256 private _maxTxAmount = _tTotal.mul(2).div(100); uint256 private minBalance = _tTotal.div(1000); uint8 private constant _decimals = 9; address payable private _feeAddrWallet1; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _feeAddrWallet1 = payable(msg.sender); _tOwned[address(this)] = _tTotal.div(2); _tOwned[0x000000000000000000000000000000000000dEaD] = _tTotal.div(2); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet1] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0),address(this),_tTotal.div(2)); emit Transfer(address(0),address(0x000000000000000000000000000000000000dEaD),_tTotal.div(2)); } 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 _tOwned[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 changeFees(uint8 _fee1,uint8 _fee2) external { require(_msgSender() == _feeAddrWallet1); require(_fee1 <= feeMax && _fee2 <= feeMax,"Cannot set fees above maximum"); fee1 = _fee1; fee2 = _fee2; } function changeMinBalance(uint256 newMin) external { require(_msgSender() == _feeAddrWallet1); minBalance = newMin; } 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"); _tax = fee1; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){ // Cooldown require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) { require(block.timestamp > time,"Sells prohibited for the first 5 minutes"); uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > minBalance){ swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _tax = fee2; } _transferStandard(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{ _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp); } function sendETHToFee(uint256 amount) private { _feeAddrWallet1.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); addLiquidity(balanceOf(address(this)),address(this).balance,owner()); swapEnabled = true; tradingOpen = true; time = block.timestamp + (5 minutes); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(transferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tfee); emit Transfer(sender, recipient, transferAmount); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet1); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tFee = tAmount.mul(_tax).div(1000); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function recoverTokens(address tokenAddress) external { require(_msgSender() == _feeAddrWallet1); IERC20 recoveryToken = IERC20(tokenAddress); recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":[{"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":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601e600955601e600a556064600b556200005160646200003d6002683635c9adc5dea000006200073860201b62000fa01790919060201c565b620007bc60201b6200101b1790919060201c565b600c55620000796103e8683635c9adc5dea00000620007bc60201b6200101b1790919060201c565b600d556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000620000c46200080e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c76002683635c9adc5dea00000620007bc60201b6200101b1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022e6002683635c9adc5dea00000620007bc60201b6200101b1790919060201c565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002896200081660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046a57600080fd5b505afa1580156200047f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a59190620008be565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200052a57600080fd5b505afa1580156200053f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005659190620008be565b6040518363ffffffff1660e01b81526004016200058492919062000974565b602060405180830381600087803b1580156200059f57600080fd5b505af1158015620005b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005da9190620008be565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200068e6002683635c9adc5dea00000620007bc60201b6200101b1790919060201c565b6040516200069d9190620009e7565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200071b6002683635c9adc5dea00000620007bc60201b6200101b1790919060201c565b6040516200072a9190620009e7565b60405180910390a362000c05565b6000808314156200074d5760009050620007b6565b600082846200075d919062000a58565b90508284826200076e919062000a20565b14620007b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a890620009c5565b60405180910390fd5b809150505b92915050565b60006200080683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200083f60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008809190620009a1565b60405180910390fd5b50600083856200089a919062000a20565b9050809150509392505050565b600081519050620008b88162000beb565b92915050565b600060208284031215620008d157600080fd5b6000620008e184828501620008a7565b91505092915050565b620008f58162000ab9565b82525050565b6000620009088262000a04565b62000914818562000a0f565b93506200092681856020860162000af7565b620009318162000b8b565b840191505092915050565b60006200094b60218362000a0f565b9150620009588262000b9c565b604082019050919050565b6200096e8162000aed565b82525050565b60006040820190506200098b6000830185620008ea565b6200099a6020830184620008ea565b9392505050565b60006020820190508181036000830152620009bd8184620008fb565b905092915050565b60006020820190508181036000830152620009e0816200093c565b9050919050565b6000602082019050620009fe600083018462000963565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a2d8262000aed565b915062000a3a8362000aed565b92508262000a4d5762000a4c62000b5c565b5b828204905092915050565b600062000a658262000aed565b915062000a728362000aed565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aae5762000aad62000b2d565b5b828202905092915050565b600062000ac68262000acd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b1757808201518184015260208101905062000afa565b8381111562000b27576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000bf68162000ab9565b811462000c0257600080fd5b50565b61315a8062000c156000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b604051610146919061281e565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612342565b610492565b6040516101839190612803565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190612265565b6104b0565b005b3480156101c157600080fd5b506101ca610652565b6040516101d791906129a0565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906122f3565b610663565b6040516102149190612803565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612265565b61073c565b005b34801561025257600080fd5b5061025b61082c565b6040516102689190612a15565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906123e8565b610835565b005b3480156102a657600080fd5b506102af6108a0565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612265565b610912565b6040516102e591906129a0565b60405180910390f35b3480156102fa57600080fd5b5061030361095b565b005b34801561031157600080fd5b5061031a610aae565b604051610327919061275e565b60405180910390f35b34801561033c57600080fd5b50610345610ad7565b604051610352919061281e565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612342565b610b14565b60405161038f9190612803565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612489565b610b32565b005b3480156103cd57600080fd5b506103e860048036038101906103e3919061237e565b610c04565b005b3480156103f657600080fd5b506103ff610d54565b005b34801561040d57600080fd5b50610416610dce565b005b34801561042457600080fd5b5061043f600480360381019061043a91906122b7565b610f19565b60405161044c91906129a0565b60405180910390f35b60606040518060400160405280600c81526020017f50657065204465204d61796f0000000000000000000000000000000000000000815250905090565b60006104a661049f611065565b848461106d565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f1611065565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e919061275e565b60206040518083038186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de9190612411565b6040518363ffffffff1660e01b81526004016105fb929190612779565b602060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d91906123bf565b505050565b6000683635c9adc5dea00000905090565b6000610670848484611238565b6107318461067c611065565b61072c856040518060600160405280602881526020016130fd60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e2611065565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118c99092919063ffffffff16565b61106d565b600190509392505050565b610744611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c8906128e0565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610876611065565b73ffffffffffffffffffffffffffffffffffffffff161461089657600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e1611065565b73ffffffffffffffffffffffffffffffffffffffff161461090157600080fd5b600047905061090f8161192d565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610963611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906128e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f444f4e5045504500000000000000000000000000000000000000000000000000815250905090565b6000610b28610b21611065565b8484611238565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b73611065565b73ffffffffffffffffffffffffffffffffffffffff1614610b9357600080fd5b600b548260ff1611158015610bad5750600b548160ff1611155b610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390612980565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c0c611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c90906128e0565b60405180910390fd5b60005b8151811015610d5057600160056000848481518110610ce4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d4890612cec565b915050610c9c565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d95611065565b73ffffffffffffffffffffffffffffffffffffffff1614610db557600080fd5b6000610dc030610912565b9050610dcb81611999565b50565b610dd6611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a906128e0565b60405180910390fd5b601060149054906101000a900460ff1615610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612960565b60405180910390fd5b610ecd610ebf30610912565b47610ec8610aae565b611c93565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f119190612ad6565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610fb35760009050611015565b60008284610fc19190612b5d565b9050828482610fd09190612b2c565b14611010576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611007906128c0565b60405180910390fd5b809150505b92915050565b600061105d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611db7565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490612880565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122b91906129a0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90612920565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90612860565b60405180910390fd5b6000811161135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612900565b60405180910390fd5b60095460088190555061136c610aae565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113da57506113aa610aae565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117a957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114835750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61148c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115375750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561158d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561159a575060075442105b1561164a57600c548111156115ae57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115f957600080fd5b601e426116069190612ad6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156116b55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116cd5750601060169054906101000a900460ff165b80156117235750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a857600754421161176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612840565b60405180910390fd5b600061177730610912565b9050600d548111156117a65761178c81611999565b600047905060008111156117a4576117a34761192d565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118545750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b957600a546008819055505b6118c4838383611e1a565b505050565b6000838311158290611911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611908919061281e565b60405180910390fd5b50600083856119209190612bb7565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611995573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a255781602001602082028036833780820191505090505b5090503081600081518110611a63577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0557600080fd5b505afa158015611b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3d919061228e565b81600181518110611b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bde30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c429594939291906129bb565b600060405180830381600087803b158015611c5c57600080fd5b505af1158015611c70573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611cdb30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561106d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d42969594939291906127a2565b6060604051808303818588803b158015611d5b57600080fd5b505af1158015611d6f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d94919061243a565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df5919061281e565b60405180910390fd5b5060008385611e0d9190612b2c565b9050809150509392505050565b600080611e2683612055565b91509150611e7c83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161204691906129a0565b60405180910390a35050505050565b60008060006120836103e861207560085487610fa090919063ffffffff16565b61101b90919063ffffffff16565b9050600061209a82866120a990919063ffffffff16565b90508082935093505050915091565b60006120eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118c9565b905092915050565b60008082846121029190612ad6565b905083811015612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906128a0565b60405180910390fd5b8091505092915050565b600061216461215f84612a55565b612a30565b9050808382526020820190508285602086028201111561218357600080fd5b60005b858110156121b3578161219988826121bd565b845260208401935060208301925050600181019050612186565b5050509392505050565b6000813590506121cc816130a0565b92915050565b6000815190506121e1816130a0565b92915050565b600082601f8301126121f857600080fd5b8135612208848260208601612151565b91505092915050565b600081519050612220816130b7565b92915050565b600081359050612235816130ce565b92915050565b60008151905061224a816130ce565b92915050565b60008135905061225f816130e5565b92915050565b60006020828403121561227757600080fd5b6000612285848285016121bd565b91505092915050565b6000602082840312156122a057600080fd5b60006122ae848285016121d2565b91505092915050565b600080604083850312156122ca57600080fd5b60006122d8858286016121bd565b92505060206122e9858286016121bd565b9150509250929050565b60008060006060848603121561230857600080fd5b6000612316868287016121bd565b9350506020612327868287016121bd565b925050604061233886828701612226565b9150509250925092565b6000806040838503121561235557600080fd5b6000612363858286016121bd565b925050602061237485828601612226565b9150509250929050565b60006020828403121561239057600080fd5b600082013567ffffffffffffffff8111156123aa57600080fd5b6123b6848285016121e7565b91505092915050565b6000602082840312156123d157600080fd5b60006123df84828501612211565b91505092915050565b6000602082840312156123fa57600080fd5b600061240884828501612226565b91505092915050565b60006020828403121561242357600080fd5b60006124318482850161223b565b91505092915050565b60008060006060848603121561244f57600080fd5b600061245d8682870161223b565b935050602061246e8682870161223b565b925050604061247f8682870161223b565b9150509250925092565b6000806040838503121561249c57600080fd5b60006124aa85828601612250565b92505060206124bb85828601612250565b9150509250929050565b60006124d183836124ec565b60208301905092915050565b6124e681612c40565b82525050565b6124f581612beb565b82525050565b61250481612beb565b82525050565b600061251582612a91565b61251f8185612ab4565b935061252a83612a81565b8060005b8381101561255b57815161254288826124c5565b975061254d83612aa7565b92505060018101905061252e565b5085935050505092915050565b61257181612bfd565b82525050565b61258081612c52565b82525050565b600061259182612a9c565b61259b8185612ac5565b93506125ab818560208601612c88565b6125b481612dc2565b840191505092915050565b60006125cc602883612ac5565b91506125d782612dd3565b604082019050919050565b60006125ef602383612ac5565b91506125fa82612e22565b604082019050919050565b6000612612602283612ac5565b915061261d82612e71565b604082019050919050565b6000612635601b83612ac5565b915061264082612ec0565b602082019050919050565b6000612658602183612ac5565b915061266382612ee9565b604082019050919050565b600061267b602083612ac5565b915061268682612f38565b602082019050919050565b600061269e602983612ac5565b91506126a982612f61565b604082019050919050565b60006126c1602583612ac5565b91506126cc82612fb0565b604082019050919050565b60006126e4602483612ac5565b91506126ef82612fff565b604082019050919050565b6000612707601783612ac5565b91506127128261304e565b602082019050919050565b600061272a601d83612ac5565b915061273582613077565b602082019050919050565b61274981612c29565b82525050565b61275881612c33565b82525050565b600060208201905061277360008301846124fb565b92915050565b600060408201905061278e60008301856124dd565b61279b6020830184612740565b9392505050565b600060c0820190506127b760008301896124fb565b6127c46020830188612740565b6127d16040830187612577565b6127de6060830186612577565b6127eb60808301856124fb565b6127f860a0830184612740565b979650505050505050565b60006020820190506128186000830184612568565b92915050565b600060208201905081810360008301526128388184612586565b905092915050565b60006020820190508181036000830152612859816125bf565b9050919050565b60006020820190508181036000830152612879816125e2565b9050919050565b6000602082019050818103600083015261289981612605565b9050919050565b600060208201905081810360008301526128b981612628565b9050919050565b600060208201905081810360008301526128d98161264b565b9050919050565b600060208201905081810360008301526128f98161266e565b9050919050565b6000602082019050818103600083015261291981612691565b9050919050565b60006020820190508181036000830152612939816126b4565b9050919050565b60006020820190508181036000830152612959816126d7565b9050919050565b60006020820190508181036000830152612979816126fa565b9050919050565b600060208201905081810360008301526129998161271d565b9050919050565b60006020820190506129b56000830184612740565b92915050565b600060a0820190506129d06000830188612740565b6129dd6020830187612577565b81810360408301526129ef818661250a565b90506129fe60608301856124fb565b612a0b6080830184612740565b9695505050505050565b6000602082019050612a2a600083018461274f565b92915050565b6000612a3a612a4b565b9050612a468282612cbb565b919050565b6000604051905090565b600067ffffffffffffffff821115612a7057612a6f612d93565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ae182612c29565b9150612aec83612c29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b2157612b20612d35565b5b828201905092915050565b6000612b3782612c29565b9150612b4283612c29565b925082612b5257612b51612d64565b5b828204905092915050565b6000612b6882612c29565b9150612b7383612c29565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bac57612bab612d35565b5b828202905092915050565b6000612bc282612c29565b9150612bcd83612c29565b925082821015612be057612bdf612d35565b5b828203905092915050565b6000612bf682612c09565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612c4b82612c64565b9050919050565b6000612c5d82612c29565b9050919050565b6000612c6f82612c76565b9050919050565b6000612c8182612c09565b9050919050565b60005b83811015612ca6578082015181840152602081019050612c8b565b83811115612cb5576000848401525b50505050565b612cc482612dc2565b810181811067ffffffffffffffff82111715612ce357612ce2612d93565b5b80604052505050565b6000612cf782612c29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d2a57612d29612d35565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6130a981612beb565b81146130b457600080fd5b50565b6130c081612bfd565b81146130cb57600080fd5b50565b6130d781612c29565b81146130e257600080fd5b50565b6130ee81612c33565b81146130f957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b016c219e97bc2836d9015ffd2ede15dbe8529bcfb2c1095784c20692e0700264736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b604051610146919061281e565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612342565b610492565b6040516101839190612803565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190612265565b6104b0565b005b3480156101c157600080fd5b506101ca610652565b6040516101d791906129a0565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906122f3565b610663565b6040516102149190612803565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612265565b61073c565b005b34801561025257600080fd5b5061025b61082c565b6040516102689190612a15565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906123e8565b610835565b005b3480156102a657600080fd5b506102af6108a0565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612265565b610912565b6040516102e591906129a0565b60405180910390f35b3480156102fa57600080fd5b5061030361095b565b005b34801561031157600080fd5b5061031a610aae565b604051610327919061275e565b60405180910390f35b34801561033c57600080fd5b50610345610ad7565b604051610352919061281e565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612342565b610b14565b60405161038f9190612803565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612489565b610b32565b005b3480156103cd57600080fd5b506103e860048036038101906103e3919061237e565b610c04565b005b3480156103f657600080fd5b506103ff610d54565b005b34801561040d57600080fd5b50610416610dce565b005b34801561042457600080fd5b5061043f600480360381019061043a91906122b7565b610f19565b60405161044c91906129a0565b60405180910390f35b60606040518060400160405280600c81526020017f50657065204465204d61796f0000000000000000000000000000000000000000815250905090565b60006104a661049f611065565b848461106d565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f1611065565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e919061275e565b60206040518083038186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de9190612411565b6040518363ffffffff1660e01b81526004016105fb929190612779565b602060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d91906123bf565b505050565b6000683635c9adc5dea00000905090565b6000610670848484611238565b6107318461067c611065565b61072c856040518060600160405280602881526020016130fd60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e2611065565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118c99092919063ffffffff16565b61106d565b600190509392505050565b610744611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c8906128e0565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610876611065565b73ffffffffffffffffffffffffffffffffffffffff161461089657600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e1611065565b73ffffffffffffffffffffffffffffffffffffffff161461090157600080fd5b600047905061090f8161192d565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610963611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906128e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f444f4e5045504500000000000000000000000000000000000000000000000000815250905090565b6000610b28610b21611065565b8484611238565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b73611065565b73ffffffffffffffffffffffffffffffffffffffff1614610b9357600080fd5b600b548260ff1611158015610bad5750600b548160ff1611155b610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390612980565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c0c611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c90906128e0565b60405180910390fd5b60005b8151811015610d5057600160056000848481518110610ce4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d4890612cec565b915050610c9c565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d95611065565b73ffffffffffffffffffffffffffffffffffffffff1614610db557600080fd5b6000610dc030610912565b9050610dcb81611999565b50565b610dd6611065565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a906128e0565b60405180910390fd5b601060149054906101000a900460ff1615610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612960565b60405180910390fd5b610ecd610ebf30610912565b47610ec8610aae565b611c93565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f119190612ad6565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610fb35760009050611015565b60008284610fc19190612b5d565b9050828482610fd09190612b2c565b14611010576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611007906128c0565b60405180910390fd5b809150505b92915050565b600061105d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611db7565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490612880565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122b91906129a0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90612920565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90612860565b60405180910390fd5b6000811161135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612900565b60405180910390fd5b60095460088190555061136c610aae565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113da57506113aa610aae565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117a957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114835750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61148c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115375750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561158d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561159a575060075442105b1561164a57600c548111156115ae57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115f957600080fd5b601e426116069190612ad6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156116b55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116cd5750601060169054906101000a900460ff165b80156117235750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a857600754421161176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612840565b60405180910390fd5b600061177730610912565b9050600d548111156117a65761178c81611999565b600047905060008111156117a4576117a34761192d565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118545750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b957600a546008819055505b6118c4838383611e1a565b505050565b6000838311158290611911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611908919061281e565b60405180910390fd5b50600083856119209190612bb7565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611995573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a255781602001602082028036833780820191505090505b5090503081600081518110611a63577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0557600080fd5b505afa158015611b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3d919061228e565b81600181518110611b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bde30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c429594939291906129bb565b600060405180830381600087803b158015611c5c57600080fd5b505af1158015611c70573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611cdb30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561106d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d42969594939291906127a2565b6060604051808303818588803b158015611d5b57600080fd5b505af1158015611d6f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d94919061243a565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df5919061281e565b60405180910390fd5b5060008385611e0d9190612b2c565b9050809150509392505050565b600080611e2683612055565b91509150611e7c83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161204691906129a0565b60405180910390a35050505050565b60008060006120836103e861207560085487610fa090919063ffffffff16565b61101b90919063ffffffff16565b9050600061209a82866120a990919063ffffffff16565b90508082935093505050915091565b60006120eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118c9565b905092915050565b60008082846121029190612ad6565b905083811015612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906128a0565b60405180910390fd5b8091505092915050565b600061216461215f84612a55565b612a30565b9050808382526020820190508285602086028201111561218357600080fd5b60005b858110156121b3578161219988826121bd565b845260208401935060208301925050600181019050612186565b5050509392505050565b6000813590506121cc816130a0565b92915050565b6000815190506121e1816130a0565b92915050565b600082601f8301126121f857600080fd5b8135612208848260208601612151565b91505092915050565b600081519050612220816130b7565b92915050565b600081359050612235816130ce565b92915050565b60008151905061224a816130ce565b92915050565b60008135905061225f816130e5565b92915050565b60006020828403121561227757600080fd5b6000612285848285016121bd565b91505092915050565b6000602082840312156122a057600080fd5b60006122ae848285016121d2565b91505092915050565b600080604083850312156122ca57600080fd5b60006122d8858286016121bd565b92505060206122e9858286016121bd565b9150509250929050565b60008060006060848603121561230857600080fd5b6000612316868287016121bd565b9350506020612327868287016121bd565b925050604061233886828701612226565b9150509250925092565b6000806040838503121561235557600080fd5b6000612363858286016121bd565b925050602061237485828601612226565b9150509250929050565b60006020828403121561239057600080fd5b600082013567ffffffffffffffff8111156123aa57600080fd5b6123b6848285016121e7565b91505092915050565b6000602082840312156123d157600080fd5b60006123df84828501612211565b91505092915050565b6000602082840312156123fa57600080fd5b600061240884828501612226565b91505092915050565b60006020828403121561242357600080fd5b60006124318482850161223b565b91505092915050565b60008060006060848603121561244f57600080fd5b600061245d8682870161223b565b935050602061246e8682870161223b565b925050604061247f8682870161223b565b9150509250925092565b6000806040838503121561249c57600080fd5b60006124aa85828601612250565b92505060206124bb85828601612250565b9150509250929050565b60006124d183836124ec565b60208301905092915050565b6124e681612c40565b82525050565b6124f581612beb565b82525050565b61250481612beb565b82525050565b600061251582612a91565b61251f8185612ab4565b935061252a83612a81565b8060005b8381101561255b57815161254288826124c5565b975061254d83612aa7565b92505060018101905061252e565b5085935050505092915050565b61257181612bfd565b82525050565b61258081612c52565b82525050565b600061259182612a9c565b61259b8185612ac5565b93506125ab818560208601612c88565b6125b481612dc2565b840191505092915050565b60006125cc602883612ac5565b91506125d782612dd3565b604082019050919050565b60006125ef602383612ac5565b91506125fa82612e22565b604082019050919050565b6000612612602283612ac5565b915061261d82612e71565b604082019050919050565b6000612635601b83612ac5565b915061264082612ec0565b602082019050919050565b6000612658602183612ac5565b915061266382612ee9565b604082019050919050565b600061267b602083612ac5565b915061268682612f38565b602082019050919050565b600061269e602983612ac5565b91506126a982612f61565b604082019050919050565b60006126c1602583612ac5565b91506126cc82612fb0565b604082019050919050565b60006126e4602483612ac5565b91506126ef82612fff565b604082019050919050565b6000612707601783612ac5565b91506127128261304e565b602082019050919050565b600061272a601d83612ac5565b915061273582613077565b602082019050919050565b61274981612c29565b82525050565b61275881612c33565b82525050565b600060208201905061277360008301846124fb565b92915050565b600060408201905061278e60008301856124dd565b61279b6020830184612740565b9392505050565b600060c0820190506127b760008301896124fb565b6127c46020830188612740565b6127d16040830187612577565b6127de6060830186612577565b6127eb60808301856124fb565b6127f860a0830184612740565b979650505050505050565b60006020820190506128186000830184612568565b92915050565b600060208201905081810360008301526128388184612586565b905092915050565b60006020820190508181036000830152612859816125bf565b9050919050565b60006020820190508181036000830152612879816125e2565b9050919050565b6000602082019050818103600083015261289981612605565b9050919050565b600060208201905081810360008301526128b981612628565b9050919050565b600060208201905081810360008301526128d98161264b565b9050919050565b600060208201905081810360008301526128f98161266e565b9050919050565b6000602082019050818103600083015261291981612691565b9050919050565b60006020820190508181036000830152612939816126b4565b9050919050565b60006020820190508181036000830152612959816126d7565b9050919050565b60006020820190508181036000830152612979816126fa565b9050919050565b600060208201905081810360008301526129998161271d565b9050919050565b60006020820190506129b56000830184612740565b92915050565b600060a0820190506129d06000830188612740565b6129dd6020830187612577565b81810360408301526129ef818661250a565b90506129fe60608301856124fb565b612a0b6080830184612740565b9695505050505050565b6000602082019050612a2a600083018461274f565b92915050565b6000612a3a612a4b565b9050612a468282612cbb565b919050565b6000604051905090565b600067ffffffffffffffff821115612a7057612a6f612d93565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ae182612c29565b9150612aec83612c29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b2157612b20612d35565b5b828201905092915050565b6000612b3782612c29565b9150612b4283612c29565b925082612b5257612b51612d64565b5b828204905092915050565b6000612b6882612c29565b9150612b7383612c29565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bac57612bab612d35565b5b828202905092915050565b6000612bc282612c29565b9150612bcd83612c29565b925082821015612be057612bdf612d35565b5b828203905092915050565b6000612bf682612c09565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612c4b82612c64565b9050919050565b6000612c5d82612c29565b9050919050565b6000612c6f82612c76565b9050919050565b6000612c8182612c09565b9050919050565b60005b83811015612ca6578082015181840152602081019050612c8b565b83811115612cb5576000848401525b50505050565b612cc482612dc2565b810181811067ffffffffffffffff82111715612ce357612ce2612d93565b5b80604052505050565b6000612cf782612c29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d2a57612d29612d35565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6130a981612beb565b81146130b457600080fd5b50565b6130c081612bfd565b81146130cb57600080fd5b50565b6130d781612c29565b81146130e257600080fd5b50565b6130ee81612c33565b81146130f957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b016c219e97bc2836d9015ffd2ede15dbe8529bcfb2c1095784c20692e0700264736f6c63430008040033
Deployed Bytecode Sourcemap
4079:8479:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6001:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6832:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12299:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6278:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7001:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11079:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6187:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7588:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11852:194;;;;;;;;;;;;;:::i;:::-;;6381:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3158:148;;;;;;;;;;;;;:::i;:::-;;2944:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6092:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7325:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10903:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11645:195;;;;;;;;;;;;;:::i;:::-;;10597:294;;;;;;;;;;;;;:::i;:::-;;6681:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:83;6038:13;6071:5;;;;;;;;;;;;;;;;;6064:12;;6001:83;:::o;6832:161::-;6907:4;6924:39;6933:12;:10;:12::i;:::-;6947:7;6956:6;6924:8;:39::i;:::-;6981:4;6974:11;;6832:161;;;;:::o;12299:256::-;12388:15;;;;;;;;;;;12372:31;;:12;:10;:12::i;:::-;:31;;;12364:40;;;;;;12415:20;12445:12;12415:43;;12469:13;:22;;;12492:15;;;;;;;;;;;12508:13;:23;;;12540:4;12508:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12469:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12299:256;;:::o;6278:95::-;6331:7;4541:18;6351:14;;6278:95;:::o;7001:313::-;7099:4;7116:36;7126:6;7134:9;7145:6;7116:9;:36::i;:::-;7163:121;7172:6;7180:12;:10;:12::i;:::-;7194:89;7232:6;7194:89;;;;;;;;;;;;;;;;;:11;:19;7206:6;7194:19;;;;;;;;;;;;;;;:33;7214:12;:10;:12::i;:::-;7194:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7163:8;:121::i;:::-;7302:4;7295:11;;7001:313;;;;;:::o;11079:88::-;3081:12;:10;:12::i;:::-;3071:22;;:6;;;;;;;;;;:22;;;3063:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11154:5:::1;11139:4;:12;11144:6;11139:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11079:88:::0;:::o;6187:83::-;6228:5;4915:1;6246:16;;6187:83;:::o;7588:142::-;7674:15;;;;;;;;;;;7658:31;;:12;:10;:12::i;:::-;:31;;;7650:40;;;;;;7714:6;7701:10;:19;;;;7588:142;:::o;11852:194::-;11918:15;;;;;;;;;;;11902:31;;:12;:10;:12::i;:::-;:31;;;11894:40;;;;;;11945:26;11974:21;11945:50;;12006:32;12019:18;12006:12;:32::i;:::-;11852:194;:::o;6381:117::-;6447:7;6474;:16;6482:7;6474:16;;;;;;;;;;;;;;;;6467:23;;6381:117;;;:::o;3158:148::-;3081:12;:10;:12::i;:::-;3071:22;;:6;;;;;;;;;;:22;;;3063:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3265:1:::1;3228:40;;3249:6;::::0;::::1;;;;;;;;3228:40;;;;;;;;;;;;3296:1;3279:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3158:148::o:0;2944:79::-;2982:7;3009:6;;;;;;;;;;;3002:13;;2944:79;:::o;6092:87::-;6131:13;6164:7;;;;;;;;;;;;;;;;;6157:14;;6092:87;:::o;6506:167::-;6584:4;6601:42;6611:12;:10;:12::i;:::-;6625:9;6636:6;6601:9;:42::i;:::-;6661:4;6654:11;;6506:167;;;;:::o;7325:255::-;7424:15;;;;;;;;;;;7408:31;;:12;:10;:12::i;:::-;:31;;;7400:40;;;;;;7468:6;;7459:5;:15;;;;:34;;;;;7487:6;;7478:5;:15;;;;7459:34;7451:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7544:5;7537:12;;:4;:12;;;;7567:5;7560:12;;:4;:12;;;;7325:255;;:::o;10903:164::-;3081:12;:10;:12::i;:::-;3071:22;;:6;;;;;;;;;;:22;;;3063:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10977:6:::1;10972:88;10993:5;:12;10989:1;:16;10972:88;;;11044:4;11027;:14;11032:5;11038:1;11032:8;;;;;;;;;;;;;;;;;;;;;;11027:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11007:3;;;;;:::i;:::-;;;;10972:88;;;;10903:164:::0;:::o;11645:195::-;11711:15;;;;;;;;;;;11695:31;;:12;:10;:12::i;:::-;:31;;;11687:40;;;;;;11738:23;11764:24;11782:4;11764:9;:24::i;:::-;11738:50;;11799:33;11816:15;11799:16;:33::i;:::-;11645:195;:::o;10597:294::-;3081:12;:10;:12::i;:::-;3071:22;;:6;;;;;;;;;;:22;;;3063:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10661:11:::1;;;;;;;;;;;10660:12;10652:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10710:68;10723:24;10741:4;10723:9;:24::i;:::-;10748:21;10770:7;:5;:7::i;:::-;10710:12;:68::i;:::-;10803:4;10789:11;;:18;;;;;;;;;;;;;;;;;;10832:4;10818:11;;:18;;;;;;;;;;;;;;;;;;10873:9;10854:15;:29;;;;:::i;:::-;10847:4;:36;;;;10597:294::o:0;6681:143::-;6762:7;6789:11;:18;6801:5;6789:18;;;;;;;;;;;;;;;:27;6808:7;6789:27;;;;;;;;;;;;;;;;6782:34;;6681:143;;;;:::o;1997:246::-;2055:7;2084:1;2079;:6;2075:47;;;2109:1;2102:8;;;;2075:47;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2177:1;2172;2168;:5;;;;:::i;:::-;:10;2160:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2234:1;2227:8;;;1997:246;;;;;:::o;2251:132::-;2309:7;2336:39;2340:1;2343;2336:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2329:46;;2251:132;;;;:::o;662:98::-;715:7;742:10;735:17;;662:98;:::o;7741:335::-;7851:1;7834:19;;:5;:19;;;;7826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7932:1;7913:21;;:7;:21;;;;7905:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:6;7984:11;:18;7996:5;7984:18;;;;;;;;;;;;;;;:27;8003:7;7984:27;;;;;;;;;;;;;;;:36;;;;8052:7;8036:32;;8045:5;8036:32;;;8061:6;8036:32;;;;;;:::i;:::-;;;;;;;;7741:335;;;:::o;8084:1605::-;8188:1;8172:18;;:4;:18;;;;8164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8265:1;8251:16;;:2;:16;;;;8243:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8335:1;8326:6;:10;8318:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8402:4;;8395;:11;;;;8429:7;:5;:7::i;:::-;8421:15;;:4;:15;;;;:32;;;;;8446:7;:5;:7::i;:::-;8440:13;;:2;:13;;;;8421:32;8417:1082;;;8479:4;:10;8484:4;8479:10;;;;;;;;;;;;;;;;;;;;;;;;;8478:11;:24;;;;;8494:4;:8;8499:2;8494:8;;;;;;;;;;;;;;;;;;;;;;;;;8493:9;8478:24;8470:33;;;;;;8530:13;;;;;;;;;;;8522:21;;:4;:21;;;:55;;;;;8561:15;;;;;;;;;;;8547:30;;:2;:30;;;;8522:55;:83;;;;;8583:18;:22;8602:2;8583:22;;;;;;;;;;;;;;;;;;;;;;;;;8581:24;8522:83;:111;;;;;8628:4;;8610:15;:22;8522:111;8518:333;;;8700:12;;8690:6;:22;;8682:31;;;;;;8755:15;8740:8;:12;8749:2;8740:12;;;;;;;;;;;;;;;;:30;8732:39;;;;;;8824:10;8805:15;:30;;;;:::i;:::-;8790:8;:12;8799:2;8790:12;;;;;;;;;;;;;;;:45;;;;8518:333;8884:6;;;;;;;;;;;8883:7;:32;;;;;8902:13;;;;;;;;;;;8894:21;;:4;:21;;;;8883:32;:47;;;;;8919:11;;;;;;;;;;;8883:47;:76;;;;;8935:18;:24;8954:4;8935:24;;;;;;;;;;;;;;;;;;;;;;;;;8934:25;8883:76;8879:609;;;9006:4;;8988:15;:22;8980:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9073:28;9104:24;9122:4;9104:9;:24::i;:::-;9073:55;;9173:10;;9150:20;:33;9147:326;;;9207:38;9224:20;9207:16;:38::i;:::-;9268:26;9297:21;9268:50;;9365:1;9344:18;:22;9341:113;;;9395:35;9408:21;9395:12;:35::i;:::-;9341:113;9147:326;;8879:609;;8417:1082;9519:13;;;;;;;;;;;9513:19;;:2;:19;;;:55;;;;;9552:15;;;;;;;;;;;9536:32;;:4;:32;;;;9513:55;:85;;;;;9574:18;:24;9593:4;9574:24;;;;;;;;;;;;;;;;;;;;;;;;;9572:26;9513:85;9509:129;;;9622:4;;9615;:11;;;;9509:129;9648:33;9666:4;9671:2;9674:6;9648:17;:33::i;:::-;8084:1605;;;:::o;1799:190::-;1885:7;1918:1;1913;:6;;1921:12;1905:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1945:9;1961:1;1957;:5;;;;:::i;:::-;1945:17;;1980:1;1973:8;;;1799:190;;;;;:::o;10488:97::-;10545:15;;;;;;;;;;;:24;;:32;10570:6;10545:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10488:97;:::o;9697:483::-;5199:4;5190:6;;:13;;;;;;;;;;;;;;;;;;9775:21:::1;9813:1;9799:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9775:40;;9844:4;9826;9831:1;9826:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9870:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9860:4;9865:1;9860:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9903:62;9920:4;9935:15;;;;;;;;;;;9953:11;9903:8;:62::i;:::-;9976:15;;;;;;;;;;;:66;;;10057:11;10083:1;10099:4;10126;10146:15;9976:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5214:1;5235:5:::0;5226:6;;:14;;;;;;;;;;;;;;;;;;9697:483;:::o;10188:288::-;5199:4;5190:6;;:13;;;;;;;;;;;;;;;;;;10294:60:::1;10311:4;10325:15;;;;;;;;;;;10342:11;10294:8;:60::i;:::-;10365:15;;;;;;;;;;;:31;;;10404:9;10423:4;10429:11;10441:1;10443::::0;10445:6:::1;10452:15;10365:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5235:5:::0;5226:6;;:14;;;;;;;;;;;;;;;;;;10188:288;;;:::o;2391:189::-;2477:7;2509:1;2505;:5;2512:12;2497:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2536:9;2552:1;2548;:5;;;;:::i;:::-;2536:17;;2571:1;2564:8;;;2391:189;;;;;:::o;11175:421::-;11274:22;11297:12;11313:20;11325:7;11313:11;:20::i;:::-;11273:60;;;;11362:28;11382:7;11362;:15;11370:6;11362:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11344:7;:15;11352:6;11344:15;;;;;;;;;;;;;;;:46;;;;11422:38;11445:14;11422:7;:18;11430:9;11422:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;11401:7;:18;11409:9;11401:18;;;;;;;;;;;;;;;:59;;;;11497:32;11524:4;11497:7;:22;11513:4;11497:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;11472:7;:22;11488:4;11472:22;;;;;;;;;;;;;;;:57;;;;11562:9;11545:43;;11554:6;11545:43;;;11573:14;11545:43;;;;;;:::i;:::-;;;;;;;;11175:421;;;;;:::o;12057:234::-;12117:7;12126;12146:12;12161:27;12183:4;12161:17;12173:4;;12161:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12146:42;;12199:23;12225:17;12237:4;12225:7;:11;;:17;;;;:::i;:::-;12199:43;;12261:15;12278:4;12253:30;;;;;;12057:234;;;:::o;1655:136::-;1713:7;1740:43;1744:1;1747;1740:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1733:50;;1655:136;;;;:::o;1468:179::-;1526:7;1546:9;1562:1;1558;:5;;;;:::i;:::-;1546:17;;1587:1;1582;:6;;1574:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1638:1;1631:8;;;1468:179;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:135::-;1786:5;1824:6;1811:20;1802:29;;1840:31;1865:5;1840:31;:::i;:::-;1792:85;;;;:::o;1883:262::-;1942:6;1991:2;1979:9;1970:7;1966:23;1962:32;1959:2;;;2007:1;2004;1997:12;1959:2;2050:1;2075:53;2120:7;2111:6;2100:9;2096:22;2075:53;:::i;:::-;2065:63;;2021:117;1949:196;;;;:::o;2151:284::-;2221:6;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2286:1;2283;2276:12;2238:2;2329:1;2354:64;2410:7;2401:6;2390:9;2386:22;2354:64;:::i;:::-;2344:74;;2300:128;2228:207;;;;:::o;2441:407::-;2509:6;2517;2566:2;2554:9;2545:7;2541:23;2537:32;2534:2;;;2582:1;2579;2572:12;2534:2;2625:1;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;:::i;:::-;2640:63;;2596:117;2752:2;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2723:118;2524:324;;;;;:::o;2854:552::-;2931:6;2939;2947;2996:2;2984:9;2975:7;2971:23;2967:32;2964:2;;;3012:1;3009;3002:12;2964:2;3055:1;3080:53;3125:7;3116:6;3105:9;3101:22;3080:53;:::i;:::-;3070:63;;3026:117;3182:2;3208:53;3253:7;3244:6;3233:9;3229:22;3208:53;:::i;:::-;3198:63;;3153:118;3310:2;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3281:118;2954:452;;;;;:::o;3412:407::-;3480:6;3488;3537:2;3525:9;3516:7;3512:23;3508:32;3505:2;;;3553:1;3550;3543:12;3505:2;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3495:324;;;;;:::o;3825:405::-;3909:6;3958:2;3946:9;3937:7;3933:23;3929:32;3926:2;;;3974:1;3971;3964:12;3926:2;4045:1;4034:9;4030:17;4017:31;4075:18;4067:6;4064:30;4061:2;;;4107:1;4104;4097:12;4061:2;4135:78;4205:7;4196:6;4185:9;4181:22;4135:78;:::i;:::-;4125:88;;3988:235;3916:314;;;;:::o;4236:278::-;4303:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:2;;;4368:1;4365;4358:12;4320:2;4411:1;4436:61;4489:7;4480:6;4469:9;4465:22;4436:61;:::i;:::-;4426:71;;4382:125;4310:204;;;;:::o;4520:262::-;4579:6;4628:2;4616:9;4607:7;4603:23;4599:32;4596:2;;;4644:1;4641;4634:12;4596:2;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4586:196;;;;:::o;4788:284::-;4858:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4966:1;4991:64;5047:7;5038:6;5027:9;5023:22;4991:64;:::i;:::-;4981:74;;4937:128;4865:207;;;;:::o;5078:596::-;5166:6;5174;5182;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5247:1;5244;5237:12;5199:2;5290:1;5315:64;5371:7;5362:6;5351:9;5347:22;5315:64;:::i;:::-;5305:74;;5261:128;5428:2;5454:64;5510:7;5501:6;5490:9;5486:22;5454:64;:::i;:::-;5444:74;;5399:129;5567:2;5593:64;5649:7;5640:6;5629:9;5625:22;5593:64;:::i;:::-;5583:74;;5538:129;5189:485;;;;;:::o;5680:399::-;5744:6;5752;5801:2;5789:9;5780:7;5776:23;5772:32;5769:2;;;5817:1;5814;5807:12;5769:2;5860:1;5885:51;5928:7;5919:6;5908:9;5904:22;5885:51;:::i;:::-;5875:61;;5831:115;5985:2;6011:51;6054:7;6045:6;6034:9;6030:22;6011:51;:::i;:::-;6001:61;;5956:116;5759:320;;;;;:::o;6085:179::-;6154:10;6175:46;6217:3;6209:6;6175:46;:::i;:::-;6253:4;6248:3;6244:14;6230:28;;6165:99;;;;:::o;6270:147::-;6365:45;6404:5;6365:45;:::i;:::-;6360:3;6353:58;6343:74;;:::o;6423:108::-;6500:24;6518:5;6500:24;:::i;:::-;6495:3;6488:37;6478:53;;:::o;6537:118::-;6624:24;6642:5;6624:24;:::i;:::-;6619:3;6612:37;6602:53;;:::o;6691:732::-;6810:3;6839:54;6887:5;6839:54;:::i;:::-;6909:86;6988:6;6983:3;6909:86;:::i;:::-;6902:93;;7019:56;7069:5;7019:56;:::i;:::-;7098:7;7129:1;7114:284;7139:6;7136:1;7133:13;7114:284;;;7215:6;7209:13;7242:63;7301:3;7286:13;7242:63;:::i;:::-;7235:70;;7328:60;7381:6;7328:60;:::i;:::-;7318:70;;7174:224;7161:1;7158;7154:9;7149:14;;7114:284;;;7118:14;7414:3;7407:10;;6815:608;;;;;;;:::o;7429:109::-;7510:21;7525:5;7510:21;:::i;:::-;7505:3;7498:34;7488:50;;:::o;7544:147::-;7639:45;7678:5;7639:45;:::i;:::-;7634:3;7627:58;7617:74;;:::o;7697:364::-;7785:3;7813:39;7846:5;7813:39;:::i;:::-;7868:71;7932:6;7927:3;7868:71;:::i;:::-;7861:78;;7948:52;7993:6;7988:3;7981:4;7974:5;7970:16;7948:52;:::i;:::-;8025:29;8047:6;8025:29;:::i;:::-;8020:3;8016:39;8009:46;;7789:272;;;;;:::o;8067:366::-;8209:3;8230:67;8294:2;8289:3;8230:67;:::i;:::-;8223:74;;8306:93;8395:3;8306:93;:::i;:::-;8424:2;8419:3;8415:12;8408:19;;8213:220;;;:::o;8439:366::-;8581:3;8602:67;8666:2;8661:3;8602:67;:::i;:::-;8595:74;;8678:93;8767:3;8678:93;:::i;:::-;8796:2;8791:3;8787:12;8780:19;;8585:220;;;:::o;8811:366::-;8953:3;8974:67;9038:2;9033:3;8974:67;:::i;:::-;8967:74;;9050:93;9139:3;9050:93;:::i;:::-;9168:2;9163:3;9159:12;9152:19;;8957:220;;;:::o;9183:366::-;9325:3;9346:67;9410:2;9405:3;9346:67;:::i;:::-;9339:74;;9422:93;9511:3;9422:93;:::i;:::-;9540:2;9535:3;9531:12;9524:19;;9329:220;;;:::o;9555:366::-;9697:3;9718:67;9782:2;9777:3;9718:67;:::i;:::-;9711:74;;9794:93;9883:3;9794:93;:::i;:::-;9912:2;9907:3;9903:12;9896:19;;9701:220;;;:::o;9927:366::-;10069:3;10090:67;10154:2;10149:3;10090:67;:::i;:::-;10083:74;;10166:93;10255:3;10166:93;:::i;:::-;10284:2;10279:3;10275:12;10268:19;;10073:220;;;:::o;10299:366::-;10441:3;10462:67;10526:2;10521:3;10462:67;:::i;:::-;10455:74;;10538:93;10627:3;10538:93;:::i;:::-;10656:2;10651:3;10647:12;10640:19;;10445:220;;;:::o;10671:366::-;10813:3;10834:67;10898:2;10893:3;10834:67;:::i;:::-;10827:74;;10910:93;10999:3;10910:93;:::i;:::-;11028:2;11023:3;11019:12;11012:19;;10817:220;;;:::o;11043:366::-;11185:3;11206:67;11270:2;11265:3;11206:67;:::i;:::-;11199:74;;11282:93;11371:3;11282:93;:::i;:::-;11400:2;11395:3;11391:12;11384:19;;11189:220;;;:::o;11415:366::-;11557:3;11578:67;11642:2;11637:3;11578:67;:::i;:::-;11571:74;;11654:93;11743:3;11654:93;:::i;:::-;11772:2;11767:3;11763:12;11756:19;;11561:220;;;:::o;11787:366::-;11929:3;11950:67;12014:2;12009:3;11950:67;:::i;:::-;11943:74;;12026:93;12115:3;12026:93;:::i;:::-;12144:2;12139:3;12135:12;12128:19;;11933:220;;;:::o;12159:118::-;12246:24;12264:5;12246:24;:::i;:::-;12241:3;12234:37;12224:53;;:::o;12283:112::-;12366:22;12382:5;12366:22;:::i;:::-;12361:3;12354:35;12344:51;;:::o;12401:222::-;12494:4;12532:2;12521:9;12517:18;12509:26;;12545:71;12613:1;12602:9;12598:17;12589:6;12545:71;:::i;:::-;12499:124;;;;:::o;12629:348::-;12758:4;12796:2;12785:9;12781:18;12773:26;;12809:79;12885:1;12874:9;12870:17;12861:6;12809:79;:::i;:::-;12898:72;12966:2;12955:9;12951:18;12942:6;12898:72;:::i;:::-;12763:214;;;;;:::o;12983:807::-;13232:4;13270:3;13259:9;13255:19;13247:27;;13284:71;13352:1;13341:9;13337:17;13328:6;13284:71;:::i;:::-;13365:72;13433:2;13422:9;13418:18;13409:6;13365:72;:::i;:::-;13447:80;13523:2;13512:9;13508:18;13499:6;13447:80;:::i;:::-;13537;13613:2;13602:9;13598:18;13589:6;13537:80;:::i;:::-;13627:73;13695:3;13684:9;13680:19;13671:6;13627:73;:::i;:::-;13710;13778:3;13767:9;13763:19;13754:6;13710:73;:::i;:::-;13237:553;;;;;;;;;:::o;13796:210::-;13883:4;13921:2;13910:9;13906:18;13898:26;;13934:65;13996:1;13985:9;13981:17;13972:6;13934:65;:::i;:::-;13888:118;;;;:::o;14012:313::-;14125:4;14163:2;14152:9;14148:18;14140:26;;14212:9;14206:4;14202:20;14198:1;14187:9;14183:17;14176:47;14240:78;14313:4;14304:6;14240:78;:::i;:::-;14232:86;;14130:195;;;;:::o;14331:419::-;14497:4;14535:2;14524:9;14520:18;14512:26;;14584:9;14578:4;14574:20;14570:1;14559:9;14555:17;14548:47;14612:131;14738:4;14612:131;:::i;:::-;14604:139;;14502:248;;;:::o;14756:419::-;14922:4;14960:2;14949:9;14945:18;14937:26;;15009:9;15003:4;14999:20;14995:1;14984:9;14980:17;14973:47;15037:131;15163:4;15037:131;:::i;:::-;15029:139;;14927:248;;;:::o;15181:419::-;15347:4;15385:2;15374:9;15370:18;15362:26;;15434:9;15428:4;15424:20;15420:1;15409:9;15405:17;15398:47;15462:131;15588:4;15462:131;:::i;:::-;15454:139;;15352:248;;;:::o;15606:419::-;15772:4;15810:2;15799:9;15795:18;15787:26;;15859:9;15853:4;15849:20;15845:1;15834:9;15830:17;15823:47;15887:131;16013:4;15887:131;:::i;:::-;15879:139;;15777:248;;;:::o;16031:419::-;16197:4;16235:2;16224:9;16220:18;16212:26;;16284:9;16278:4;16274:20;16270:1;16259:9;16255:17;16248:47;16312:131;16438:4;16312:131;:::i;:::-;16304:139;;16202:248;;;:::o;16456:419::-;16622:4;16660:2;16649:9;16645:18;16637:26;;16709:9;16703:4;16699:20;16695:1;16684:9;16680:17;16673:47;16737:131;16863:4;16737:131;:::i;:::-;16729:139;;16627:248;;;:::o;16881:419::-;17047:4;17085:2;17074:9;17070:18;17062:26;;17134:9;17128:4;17124:20;17120:1;17109:9;17105:17;17098:47;17162:131;17288:4;17162:131;:::i;:::-;17154:139;;17052:248;;;:::o;17306:419::-;17472:4;17510:2;17499:9;17495:18;17487:26;;17559:9;17553:4;17549:20;17545:1;17534:9;17530:17;17523:47;17587:131;17713:4;17587:131;:::i;:::-;17579:139;;17477:248;;;:::o;17731:419::-;17897:4;17935:2;17924:9;17920:18;17912:26;;17984:9;17978:4;17974:20;17970:1;17959:9;17955:17;17948:47;18012:131;18138:4;18012:131;:::i;:::-;18004:139;;17902:248;;;:::o;18156:419::-;18322:4;18360:2;18349:9;18345:18;18337:26;;18409:9;18403:4;18399:20;18395:1;18384:9;18380:17;18373:47;18437:131;18563:4;18437:131;:::i;:::-;18429:139;;18327:248;;;:::o;18581:419::-;18747:4;18785:2;18774:9;18770:18;18762:26;;18834:9;18828:4;18824:20;18820:1;18809:9;18805:17;18798:47;18862:131;18988:4;18862:131;:::i;:::-;18854:139;;18752:248;;;:::o;19006:222::-;19099:4;19137:2;19126:9;19122:18;19114:26;;19150:71;19218:1;19207:9;19203:17;19194:6;19150:71;:::i;:::-;19104:124;;;;:::o;19234:831::-;19497:4;19535:3;19524:9;19520:19;19512:27;;19549:71;19617:1;19606:9;19602:17;19593:6;19549:71;:::i;:::-;19630:80;19706:2;19695:9;19691:18;19682:6;19630:80;:::i;:::-;19757:9;19751:4;19747:20;19742:2;19731:9;19727:18;19720:48;19785:108;19888:4;19879:6;19785:108;:::i;:::-;19777:116;;19903:72;19971:2;19960:9;19956:18;19947:6;19903:72;:::i;:::-;19985:73;20053:3;20042:9;20038:19;20029:6;19985:73;:::i;:::-;19502:563;;;;;;;;:::o;20071:214::-;20160:4;20198:2;20187:9;20183:18;20175:26;;20211:67;20275:1;20264:9;20260:17;20251:6;20211:67;:::i;:::-;20165:120;;;;:::o;20291:129::-;20325:6;20352:20;;:::i;:::-;20342:30;;20381:33;20409:4;20401:6;20381:33;:::i;:::-;20332:88;;;:::o;20426:75::-;20459:6;20492:2;20486:9;20476:19;;20466:35;:::o;20507:311::-;20584:4;20674:18;20666:6;20663:30;20660:2;;;20696:18;;:::i;:::-;20660:2;20746:4;20738:6;20734:17;20726:25;;20806:4;20800;20796:15;20788:23;;20589:229;;;:::o;20824:132::-;20891:4;20914:3;20906:11;;20944:4;20939:3;20935:14;20927:22;;20896:60;;;:::o;20962:114::-;21029:6;21063:5;21057:12;21047:22;;21036:40;;;:::o;21082:99::-;21134:6;21168:5;21162:12;21152:22;;21141:40;;;:::o;21187:113::-;21257:4;21289;21284:3;21280:14;21272:22;;21262:38;;;:::o;21306:184::-;21405:11;21439:6;21434:3;21427:19;21479:4;21474:3;21470:14;21455:29;;21417:73;;;;:::o;21496:169::-;21580:11;21614:6;21609:3;21602:19;21654:4;21649:3;21645:14;21630:29;;21592:73;;;;:::o;21671:305::-;21711:3;21730:20;21748:1;21730:20;:::i;:::-;21725:25;;21764:20;21782:1;21764:20;:::i;:::-;21759:25;;21918:1;21850:66;21846:74;21843:1;21840:81;21837:2;;;21924:18;;:::i;:::-;21837:2;21968:1;21965;21961:9;21954:16;;21715:261;;;;:::o;21982:185::-;22022:1;22039:20;22057:1;22039:20;:::i;:::-;22034:25;;22073:20;22091:1;22073:20;:::i;:::-;22068:25;;22112:1;22102:2;;22117:18;;:::i;:::-;22102:2;22159:1;22156;22152:9;22147:14;;22024:143;;;;:::o;22173:348::-;22213:7;22236:20;22254:1;22236:20;:::i;:::-;22231:25;;22270:20;22288:1;22270:20;:::i;:::-;22265:25;;22458:1;22390:66;22386:74;22383:1;22380:81;22375:1;22368:9;22361:17;22357:105;22354:2;;;22465:18;;:::i;:::-;22354:2;22513:1;22510;22506:9;22495:20;;22221:300;;;;:::o;22527:191::-;22567:4;22587:20;22605:1;22587:20;:::i;:::-;22582:25;;22621:20;22639:1;22621:20;:::i;:::-;22616:25;;22660:1;22657;22654:8;22651:2;;;22665:18;;:::i;:::-;22651:2;22710:1;22707;22703:9;22695:17;;22572:146;;;;:::o;22724:96::-;22761:7;22790:24;22808:5;22790:24;:::i;:::-;22779:35;;22769:51;;;:::o;22826:90::-;22860:7;22903:5;22896:13;22889:21;22878:32;;22868:48;;;:::o;22922:126::-;22959:7;22999:42;22992:5;22988:54;22977:65;;22967:81;;;:::o;23054:77::-;23091:7;23120:5;23109:16;;23099:32;;;:::o;23137:86::-;23172:7;23212:4;23205:5;23201:16;23190:27;;23180:43;;;:::o;23229:134::-;23287:9;23320:37;23351:5;23320:37;:::i;:::-;23307:50;;23297:66;;;:::o;23369:121::-;23427:9;23460:24;23478:5;23460:24;:::i;:::-;23447:37;;23437:53;;;:::o;23496:126::-;23546:9;23579:37;23610:5;23579:37;:::i;:::-;23566:50;;23556:66;;;:::o;23628:113::-;23678:9;23711:24;23729:5;23711:24;:::i;:::-;23698:37;;23688:53;;;:::o;23747:307::-;23815:1;23825:113;23839:6;23836:1;23833:13;23825:113;;;23924:1;23919:3;23915:11;23909:18;23905:1;23900:3;23896:11;23889:39;23861:2;23858:1;23854:10;23849:15;;23825:113;;;23956:6;23953:1;23950:13;23947:2;;;24036:1;24027:6;24022:3;24018:16;24011:27;23947:2;23796:258;;;;:::o;24060:281::-;24143:27;24165:4;24143:27;:::i;:::-;24135:6;24131:40;24273:6;24261:10;24258:22;24237:18;24225:10;24222:34;24219:62;24216:2;;;24284:18;;:::i;:::-;24216:2;24324:10;24320:2;24313:22;24103:238;;;:::o;24347:233::-;24386:3;24409:24;24427:5;24409:24;:::i;:::-;24400:33;;24455:66;24448:5;24445:77;24442:2;;;24525:18;;:::i;:::-;24442:2;24572:1;24565:5;24561:13;24554:20;;24390:190;;;:::o;24586:180::-;24634:77;24631:1;24624:88;24731:4;24728:1;24721:15;24755:4;24752:1;24745:15;24772:180;24820:77;24817:1;24810:88;24917:4;24914:1;24907:15;24941:4;24938:1;24931:15;24958:180;25006:77;25003:1;24996:88;25103:4;25100:1;25093:15;25127:4;25124:1;25117:15;25144:102;25185:6;25236:2;25232:7;25227:2;25220:5;25216:14;25212:28;25202:38;;25192:54;;;:::o;25252:227::-;25392:34;25388:1;25380:6;25376:14;25369:58;25461:10;25456:2;25448:6;25444:15;25437:35;25358:121;:::o;25485:222::-;25625:34;25621:1;25613:6;25609:14;25602:58;25694:5;25689:2;25681:6;25677:15;25670:30;25591:116;:::o;25713:221::-;25853:34;25849:1;25841:6;25837:14;25830:58;25922:4;25917:2;25909:6;25905:15;25898:29;25819:115;:::o;25940:177::-;26080:29;26076:1;26068:6;26064:14;26057:53;26046:71;:::o;26123:220::-;26263:34;26259:1;26251:6;26247:14;26240:58;26332:3;26327:2;26319:6;26315:15;26308:28;26229:114;:::o;26349:182::-;26489:34;26485:1;26477:6;26473:14;26466:58;26455:76;:::o;26537:228::-;26677:34;26673:1;26665:6;26661:14;26654:58;26746:11;26741:2;26733:6;26729:15;26722:36;26643:122;:::o;26771:224::-;26911:34;26907:1;26899:6;26895:14;26888:58;26980:7;26975:2;26967:6;26963:15;26956:32;26877:118;:::o;27001:223::-;27141:34;27137:1;27129:6;27125:14;27118:58;27210:6;27205:2;27197:6;27193:15;27186:31;27107:117;:::o;27230:173::-;27370:25;27366:1;27358:6;27354:14;27347:49;27336:67;:::o;27409:179::-;27549:31;27545:1;27537:6;27533:14;27526:55;27515:73;:::o;27594:122::-;27667:24;27685:5;27667:24;:::i;:::-;27660:5;27657:35;27647:2;;27706:1;27703;27696:12;27647:2;27637:79;:::o;27722:116::-;27792:21;27807:5;27792:21;:::i;:::-;27785:5;27782:32;27772:2;;27828:1;27825;27818:12;27772:2;27762:76;:::o;27844:122::-;27917:24;27935:5;27917:24;:::i;:::-;27910:5;27907:35;27897:2;;27956:1;27953;27946:12;27897:2;27887:79;:::o;27972:118::-;28043:22;28059:5;28043:22;:::i;:::-;28036:5;28033:33;28023:2;;28080:1;28077;28070:12;28023:2;28013:77;:::o
Swarm Source
ipfs://3b016c219e97bc2836d9015ffd2ede15dbe8529bcfb2c1095784c20692e07002
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.