ERC-20
Source Code
Overview
Max Total Supply
100,000,000,000,000 PEPEM
Holders
5
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
PEPEMarvinToken
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-05-14
*/
// SPDX-License-Identifier: MIT
/*
Step into the future with Pepe Marvin, the revolutionary crypto named after the iconic meme and Elon Musk's furry companion. Experience lightning-fast transactions and unprecedented security. Don't miss out on this game-changing opportunity!
Portal : https://t.me/PepeMarvinPortal
Twitter : https://twitter.com/PepeMarvinERC
*/
pragma solidity 0.8.16;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
interface ERC20 {
function getOwner() external view returns (address);
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);
}
abstract contract Auth {
address internal owner;
mapping (address => bool) internal authorizations;
constructor(address _owner) {
owner = _owner;
authorizations[_owner] = true;
}
modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER"); _;
}
modifier authorized() {
require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
}
function authorize(address adr) public onlyOwner {
authorizations[adr] = true;
}
function unauthorize(address adr) external onlyOwner {
require(adr != owner, "OWNER cant be unauthorized");
authorizations[adr] = false;
}
function isOwner(address account) public view returns (bool) {
return account == owner;
}
function isAuthorized(address adr) public view returns (bool) {
return authorizations[adr];
}
function renounceOwnership() external onlyOwner {
authorizations[owner] = false;
owner = address(0);
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract PEPEMarvinToken is ERC20, Auth {
using SafeMath for uint256;
address immutable WETH;
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
address constant ZERO = 0x0000000000000000000000000000000000000000;
string public constant name = "PepeMarvin";
string public constant symbol = "PEPEM";
uint8 public constant decimals = 18;
uint256 public constant totalSupply = 100 * 10**12 * 10**decimals;
uint256 public _maxTxAmount = totalSupply / 100;
uint256 public _maxWalletToken = totalSupply / 100;
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isWalletLimitExempt;
uint256 public totalFee = 10;
uint256 public constant feeDenominator = 100;
uint256 buyMultiplier = 250;
uint256 sellMultiplier = 600;
uint256 transferMultiplier = 0;
address marketingFeeReceiver;
address operationsFeeReceiver;
IDEXRouter public router;
address public immutable pair;
bool swapEnabled = true;
uint256 swapThreshold = totalSupply / 200;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () Auth(msg.sender) {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
marketingFeeReceiver = msg.sender;
operationsFeeReceiver = msg.sender;
isFeeExempt[msg.sender] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[DEAD] = true;
isTxLimitExempt[ZERO] = true;
isWalletLimitExempt[msg.sender] = true;
isWalletLimitExempt[address(this)] = true;
isWalletLimitExempt[DEAD] = true;
balanceOf[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
}
receive() external payable { }
function getOwner() external view override returns (address) { return owner; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
_maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
}
function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
require(maxTXPercentage_base1000 >= 10,"Cannot set max transaction less than 1%");
_maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
}
require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");
if(shouldSwapBack()){ swapBack(); }
balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
balanceOf[recipient] = balanceOf[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
balanceOf[recipient] = balanceOf[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
if(amount == 0 || totalFee == 0){
return amount;
}
uint256 multiplier = transferMultiplier;
if(recipient == pair) {
multiplier = sellMultiplier;
} else if(sender == pair) {
multiplier = buyMultiplier;
}
uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
if(feeAmount > 0){
balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& balanceOf[address(this)] >= swapThreshold;
}
function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
uint256 amountETH = address(this).balance;
uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
payable(msg.sender).transfer(amountToClear);
}
function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
if(tokens == 0){
tokens = ERC20(tokenAddress).balanceOf(address(this));
}
return ERC20(tokenAddress).transfer(msg.sender, tokens);
}
function swapBack() internal swapping {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
swapThreshold,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance;
(bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETH}("");
tmpSuccess = false;
}
function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
sellMultiplier = _sell;
buyMultiplier = _buy;
transferMultiplier = _trans;
}
function setFees_base100(uint256 _marketingFee) external onlyOwner {
totalFee = _marketingFee;
}
function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = totalSupply / _denominator;
}
function getCirculatingSupply() public view returns (uint256) {
return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c06040526064620000146012600a62000525565b6200002690655af3107a40006200053d565b6200003291906200055f565b6002556064620000456012600a62000525565b6200005790655af3107a40006200053d565b6200006391906200055f565b600355600a600981905560fa8155610258600b556000600c55600f805460ff60a01b1916600160a01b17905560c890620000a09060129062000525565b620000b290655af3107a40006200053d565b620000be91906200055f565b601055348015620000ce57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017b919062000582565b6001600160a01b03908116608052600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000582565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026a919062000582565b6001600160a01b0390811660a052306000818152600560209081526040808320600f5490951683529381528382206000199055600d8054336001600160a01b03199182168117909255600e805490911682179055825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003926012600a62000525565b620003a490655af3107a40006200053d565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003e76012600a62000525565b620003f990655af3107a40006200053d565b60405190815260200160405180910390a3620005ad565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004675781600019048211156200044b576200044b62000410565b808516156200045957918102915b93841c93908002906200042b565b509250929050565b60008262000480575060016200051f565b816200048f575060006200051f565b8160018114620004a85760028114620004b357620004d3565b60019150506200051f565b60ff841115620004c757620004c762000410565b50506001821b6200051f565b5060208310610133831016604e8410600b8410161715620004f8575081810a6200051f565b62000504838362000426565b80600019048211156200051b576200051b62000410565b0290505b92915050565b60006200053660ff8416836200046f565b9392505050565b60008160001904831182151516156200055a576200055a62000410565b500290565b6000826200057d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059557600080fd5b81516001600160a01b03811681146200053657600080fd5b60805160a051611b79620005ef6000396000818161053801528181610f0b015281816112940152818161149c01526114d00152600061135e0152611b796000f3fe6080604052600436106101f25760003560e01c806377b54bad1161010d578063b6a5d7de116100a0578063dd62ed3e1161006f578063dd62ed3e1461060a578063df20fd4914610650578063f0b37c0414610670578063f887ea4014610690578063fe9fbb80146106b057600080fd5b8063b6a5d7de1461057a578063bd9ab5371461059a578063c33e9eba146105ba578063c867d60b146105da57600080fd5b80638b42507f116100dc5780638b42507f146104c557806395d89b41146104f5578063a8aa1b3114610526578063a9059cbb1461055a57600080fd5b806377b54bad1461044757806378109e54146104675780637d1db4a51461047d578063893d20e81461049357600080fd5b80632b112e4911610185578063571ac8b011610154578063571ac8b0146103c55780636ce46bc3146103e557806370a0823114610405578063715018a61461043257600080fd5b80632b112e491461032a5780632f54bf6e1461033f578063313ce5671461036e5780633f4218e01461039557600080fd5b806318160ddd116101c157806318160ddd146102bf5780631da1db5e146102d45780631df4ccfc146102f457806323b872dd1461030a57600080fd5b806306fdde03146101fe57806309302dc61461024a578063095ea7b31461026c578063180b0d7e1461029c57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102346040518060400160405280600a8152602001692832b832a6b0b93b34b760b11b81525081565b6040516102419190611764565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117b2565b6106e9565b005b34801561027857600080fd5b5061028c6102873660046117e7565b6107b2565b6040519015158152602001610241565b3480156102a857600080fd5b506102b1606481565b604051908152602001610241565b3480156102cb57600080fd5b506102b161081f565b3480156102e057600080fd5b5061026a6102ef3660046117b2565b61083e565b34801561030057600080fd5b506102b160095481565b34801561031657600080fd5b5061028c610325366004611811565b6108b7565b34801561033657600080fd5b506102b1610979565b34801561034b57600080fd5b5061028c61035a36600461184d565b6000546001600160a01b0391821691161490565b34801561037a57600080fd5b50610383601281565b60405160ff9091168152602001610241565b3480156103a157600080fd5b5061028c6103b036600461184d565b60066020526000908152604090205460ff1681565b3480156103d157600080fd5b5061028c6103e036600461184d565b610a02565b3480156103f157600080fd5b5061026a610400366004611868565b610a10565b34801561041157600080fd5b506102b161042036600461184d565b60046020526000908152604090205481565b34801561043e57600080fd5b5061026a610a6e565b34801561045357600080fd5b5061028c6104623660046117e7565b610ac8565b34801561047357600080fd5b506102b160035481565b34801561048957600080fd5b506102b160025481565b34801561049f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610241565b3480156104d157600080fd5b5061028c6104e036600461184d565b60076020526000908152604090205460ff1681565b34801561050157600080fd5b5061023460405180604001604052806005815260200164504550454d60d81b81525081565b34801561053257600080fd5b506104ad7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056657600080fd5b5061028c6105753660046117e7565b610bd7565b34801561058657600080fd5b5061026a61059536600461184d565b610be4565b3480156105a657600080fd5b5061026a6105b53660046117b2565b610c35565b3480156105c657600080fd5b5061026a6105d53660046117b2565b610cfa565b3480156105e657600080fd5b5061028c6105f536600461184d565b60086020526000908152604090205460ff1681565b34801561061657600080fd5b506102b1610625366004611894565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065c57600080fd5b5061026a61066b3660046118d8565b610d29565b34801561067c57600080fd5b5061026a61068b36600461184d565b610d98565b34801561069c57600080fd5b50600f546104ad906001600160a01b031681565b3480156106bc57600080fd5b5061028c6106cb36600461184d565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b0316331461071c5760405162461bcd60e51b8152600401610713906118f6565b60405180910390fd5b600a8110156107785760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610713565b6103e8816107886012600a611a10565b61079890655af3107a4000611a1f565b6107a29190611a1f565b6107ac9190611a3e565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080d9086815260200190565b60405180910390a35060015b92915050565b61082b6012600a611a10565b61083b90655af3107a4000611a1f565b81565b6000546001600160a01b031633146108685760405162461bcd60e51b8152600401610713906118f6565b47600060646108778484611a1f565b6108819190611a3e565b604051909150339082156108fc029083906000818181858888f193505050501580156108b1573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610964576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260058252838120338252909152919091205461093f918490610e41565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b61096f848484610e7b565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549091906109d96012600a611a10565b6109e990655af3107a4000611a1f565b6109f39190611a60565b6109fd9190611a60565b905090565b6000610819826000196107b2565b3360009081526001602052604090205460ff16610a5d5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610713565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a985760405162461bcd60e51b8152600401610713906118f6565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610af35760405162461bcd60e51b8152600401610713906118f6565b81600003610b66576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b639190611a73565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bb3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190611a8c565b6000610972338484610e7b565b6000546001600160a01b03163314610c0e5760405162461bcd60e51b8152600401610713906118f6565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c5f5760405162461bcd60e51b8152600401610713906118f6565b600a811015610cc05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b6064820152608401610713565b6103e881610cd06012600a611a10565b610ce090655af3107a4000611a1f565b610cea9190611a1f565b610cf49190611a3e565b60025550565b6000546001600160a01b03163314610d245760405162461bcd60e51b8152600401610713906118f6565b600955565b6000546001600160a01b03163314610d535760405162461bcd60e51b8152600401610713906118f6565b600f805460ff60a01b1916600160a01b8415150217905580610d776012600a611a10565b610d8790655af3107a4000611a1f565b610d919190611a3e565b6010555050565b6000546001600160a01b03163314610dc25760405162461bcd60e51b8152600401610713906118f6565b6000546001600160a01b0390811690821603610e205760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610713565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610e655760405162461bcd60e51b81526004016107139190611764565b506000610e728486611a60565b95945050505050565b60115460009060ff1615610e9b57610e948484846111a1565b9050610972565b6001600160a01b03841660009081526001602052604090205460ff16158015610edd57506001600160a01b03841660009081526008602052604090205460ff16155b8015610f0257506001600160a01b03831660009081526008602052604090205460ff16155b8015610f4057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610fba576003546001600160a01b038416600090815260046020526040902054610f6c908490611aa9565b1115610fba5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610713565b60025482111580610fe357506001600160a01b03841660009081526007602052604090205460ff165b8061100657506001600160a01b03831660009081526007602052604090205460ff165b61104a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610713565b611052611287565b1561105f5761105f6112fa565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600490915291909120546110b1918490610e41565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff16806110fe57506001600160a01b03841660009081526006602052604090205460ff165b6111125761110d858486611474565b611114565b825b6001600160a01b03851660009081526004602052604090205490915061113a90826115d1565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061118e9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546111f2918490610e41565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461122190836115d1565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112759086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906112c5575060115460ff16155b80156112da5750600f54600160a01b900460ff165b80156109fd57505060105430600090815260046020526040902054101590565b6011805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133c5761133c611abc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061139057611390611abc565b6001600160a01b039283166020918202929092010152600f5460105460405163791ac94760e01b8152919092169163791ac947916113da9190600090869030904290600401611ad2565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d806000811461145d576040519150601f19603f3d011682016040523d82523d6000602084013e611462565b606091505b50506011805460ff1916905550505050565b60008215806114835750600954155b1561148f575081610972565b600c546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036114ce5750600b5461150c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361150c5750600a545b600061154161151c606480611a1f565b61153b846115356009548a61163090919063ffffffff16565b90611630565b906116b2565b905080156115bd573060009081526004602052604090205461156390826115d1565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b49085815260200190565b60405180910390a35b6115c785826116f4565b9695505050505050565b6000806115de8385611aa9565b9050838110156109725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610713565b60008260000361164257506000610819565b600061164e8385611a1f565b90508261165b8583611a3e565b146109725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610713565b600061097283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611736565b600061097283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e41565b600081836117575760405162461bcd60e51b81526004016107139190611764565b506000610e728486611a3e565b600060208083528351808285015260005b8181101561179157858101830151858201604001528201611775565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156117c457600080fd5b5035919050565b80356001600160a01b03811681146117e257600080fd5b919050565b600080604083850312156117fa57600080fd5b611803836117cb565b946020939093013593505050565b60008060006060848603121561182657600080fd5b61182f846117cb565b925061183d602085016117cb565b9150604084013590509250925092565b60006020828403121561185f57600080fd5b610972826117cb565b60008060006060848603121561187d57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156118a757600080fd5b6118b0836117cb565b91506118be602084016117cb565b90509250929050565b80151581146118d557600080fd5b50565b600080604083850312156118eb57600080fd5b8235611803816118c7565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196757816000190482111561194d5761194d611916565b8085161561195a57918102915b93841c9390800290611931565b509250929050565b60008261197e57506001610819565b8161198b57506000610819565b81600181146119a157600281146119ab576119c7565b6001915050610819565b60ff8411156119bc576119bc611916565b50506001821b610819565b5060208310610133831016604e8410600b84101617156119ea575081810a610819565b6119f4838361192c565b8060001904821115611a0857611a08611916565b029392505050565b600061097260ff84168361196f565b6000816000190483118215151615611a3957611a39611916565b500290565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561081957610819611916565b600060208284031215611a8557600080fd5b5051919050565b600060208284031215611a9e57600080fd5b8151610972816118c7565b8082018082111561081957610819611916565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b225784516001600160a01b031683529383019391830191600101611afd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d16703bddb4cc58b2fc8eac02c794543845c855a4705ba1b5330249760b786e864736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806377b54bad1161010d578063b6a5d7de116100a0578063dd62ed3e1161006f578063dd62ed3e1461060a578063df20fd4914610650578063f0b37c0414610670578063f887ea4014610690578063fe9fbb80146106b057600080fd5b8063b6a5d7de1461057a578063bd9ab5371461059a578063c33e9eba146105ba578063c867d60b146105da57600080fd5b80638b42507f116100dc5780638b42507f146104c557806395d89b41146104f5578063a8aa1b3114610526578063a9059cbb1461055a57600080fd5b806377b54bad1461044757806378109e54146104675780637d1db4a51461047d578063893d20e81461049357600080fd5b80632b112e4911610185578063571ac8b011610154578063571ac8b0146103c55780636ce46bc3146103e557806370a0823114610405578063715018a61461043257600080fd5b80632b112e491461032a5780632f54bf6e1461033f578063313ce5671461036e5780633f4218e01461039557600080fd5b806318160ddd116101c157806318160ddd146102bf5780631da1db5e146102d45780631df4ccfc146102f457806323b872dd1461030a57600080fd5b806306fdde03146101fe57806309302dc61461024a578063095ea7b31461026c578063180b0d7e1461029c57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102346040518060400160405280600a8152602001692832b832a6b0b93b34b760b11b81525081565b6040516102419190611764565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117b2565b6106e9565b005b34801561027857600080fd5b5061028c6102873660046117e7565b6107b2565b6040519015158152602001610241565b3480156102a857600080fd5b506102b1606481565b604051908152602001610241565b3480156102cb57600080fd5b506102b161081f565b3480156102e057600080fd5b5061026a6102ef3660046117b2565b61083e565b34801561030057600080fd5b506102b160095481565b34801561031657600080fd5b5061028c610325366004611811565b6108b7565b34801561033657600080fd5b506102b1610979565b34801561034b57600080fd5b5061028c61035a36600461184d565b6000546001600160a01b0391821691161490565b34801561037a57600080fd5b50610383601281565b60405160ff9091168152602001610241565b3480156103a157600080fd5b5061028c6103b036600461184d565b60066020526000908152604090205460ff1681565b3480156103d157600080fd5b5061028c6103e036600461184d565b610a02565b3480156103f157600080fd5b5061026a610400366004611868565b610a10565b34801561041157600080fd5b506102b161042036600461184d565b60046020526000908152604090205481565b34801561043e57600080fd5b5061026a610a6e565b34801561045357600080fd5b5061028c6104623660046117e7565b610ac8565b34801561047357600080fd5b506102b160035481565b34801561048957600080fd5b506102b160025481565b34801561049f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610241565b3480156104d157600080fd5b5061028c6104e036600461184d565b60076020526000908152604090205460ff1681565b34801561050157600080fd5b5061023460405180604001604052806005815260200164504550454d60d81b81525081565b34801561053257600080fd5b506104ad7f0000000000000000000000000f9b7b4edc3b4fd31482ae83109885721f126cd781565b34801561056657600080fd5b5061028c6105753660046117e7565b610bd7565b34801561058657600080fd5b5061026a61059536600461184d565b610be4565b3480156105a657600080fd5b5061026a6105b53660046117b2565b610c35565b3480156105c657600080fd5b5061026a6105d53660046117b2565b610cfa565b3480156105e657600080fd5b5061028c6105f536600461184d565b60086020526000908152604090205460ff1681565b34801561061657600080fd5b506102b1610625366004611894565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065c57600080fd5b5061026a61066b3660046118d8565b610d29565b34801561067c57600080fd5b5061026a61068b36600461184d565b610d98565b34801561069c57600080fd5b50600f546104ad906001600160a01b031681565b3480156106bc57600080fd5b5061028c6106cb36600461184d565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b0316331461071c5760405162461bcd60e51b8152600401610713906118f6565b60405180910390fd5b600a8110156107785760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610713565b6103e8816107886012600a611a10565b61079890655af3107a4000611a1f565b6107a29190611a1f565b6107ac9190611a3e565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080d9086815260200190565b60405180910390a35060015b92915050565b61082b6012600a611a10565b61083b90655af3107a4000611a1f565b81565b6000546001600160a01b031633146108685760405162461bcd60e51b8152600401610713906118f6565b47600060646108778484611a1f565b6108819190611a3e565b604051909150339082156108fc029083906000818181858888f193505050501580156108b1573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610964576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260058252838120338252909152919091205461093f918490610e41565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b61096f848484610e7b565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549091906109d96012600a611a10565b6109e990655af3107a4000611a1f565b6109f39190611a60565b6109fd9190611a60565b905090565b6000610819826000196107b2565b3360009081526001602052604090205460ff16610a5d5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610713565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a985760405162461bcd60e51b8152600401610713906118f6565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610af35760405162461bcd60e51b8152600401610713906118f6565b81600003610b66576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b639190611a73565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bb3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190611a8c565b6000610972338484610e7b565b6000546001600160a01b03163314610c0e5760405162461bcd60e51b8152600401610713906118f6565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c5f5760405162461bcd60e51b8152600401610713906118f6565b600a811015610cc05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b6064820152608401610713565b6103e881610cd06012600a611a10565b610ce090655af3107a4000611a1f565b610cea9190611a1f565b610cf49190611a3e565b60025550565b6000546001600160a01b03163314610d245760405162461bcd60e51b8152600401610713906118f6565b600955565b6000546001600160a01b03163314610d535760405162461bcd60e51b8152600401610713906118f6565b600f805460ff60a01b1916600160a01b8415150217905580610d776012600a611a10565b610d8790655af3107a4000611a1f565b610d919190611a3e565b6010555050565b6000546001600160a01b03163314610dc25760405162461bcd60e51b8152600401610713906118f6565b6000546001600160a01b0390811690821603610e205760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610713565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610e655760405162461bcd60e51b81526004016107139190611764565b506000610e728486611a60565b95945050505050565b60115460009060ff1615610e9b57610e948484846111a1565b9050610972565b6001600160a01b03841660009081526001602052604090205460ff16158015610edd57506001600160a01b03841660009081526008602052604090205460ff16155b8015610f0257506001600160a01b03831660009081526008602052604090205460ff16155b8015610f4057507f0000000000000000000000000f9b7b4edc3b4fd31482ae83109885721f126cd76001600160a01b0316836001600160a01b031614155b15610fba576003546001600160a01b038416600090815260046020526040902054610f6c908490611aa9565b1115610fba5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610713565b60025482111580610fe357506001600160a01b03841660009081526007602052604090205460ff165b8061100657506001600160a01b03831660009081526007602052604090205460ff165b61104a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610713565b611052611287565b1561105f5761105f6112fa565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600490915291909120546110b1918490610e41565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff16806110fe57506001600160a01b03841660009081526006602052604090205460ff165b6111125761110d858486611474565b611114565b825b6001600160a01b03851660009081526004602052604090205490915061113a90826115d1565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061118e9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546111f2918490610e41565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461122190836115d1565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112759086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000000f9b7b4edc3b4fd31482ae83109885721f126cd716148015906112c5575060115460ff16155b80156112da5750600f54600160a01b900460ff165b80156109fd57505060105430600090815260046020526040902054101590565b6011805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133c5761133c611abc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061139057611390611abc565b6001600160a01b039283166020918202929092010152600f5460105460405163791ac94760e01b8152919092169163791ac947916113da9190600090869030904290600401611ad2565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d806000811461145d576040519150601f19603f3d011682016040523d82523d6000602084013e611462565b606091505b50506011805460ff1916905550505050565b60008215806114835750600954155b1561148f575081610972565b600c546001600160a01b037f0000000000000000000000000f9b7b4edc3b4fd31482ae83109885721f126cd78116908416036114ce5750600b5461150c565b7f0000000000000000000000000f9b7b4edc3b4fd31482ae83109885721f126cd76001600160a01b0316856001600160a01b03160361150c5750600a545b600061154161151c606480611a1f565b61153b846115356009548a61163090919063ffffffff16565b90611630565b906116b2565b905080156115bd573060009081526004602052604090205461156390826115d1565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b49085815260200190565b60405180910390a35b6115c785826116f4565b9695505050505050565b6000806115de8385611aa9565b9050838110156109725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610713565b60008260000361164257506000610819565b600061164e8385611a1f565b90508261165b8583611a3e565b146109725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610713565b600061097283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611736565b600061097283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e41565b600081836117575760405162461bcd60e51b81526004016107139190611764565b506000610e728486611a3e565b600060208083528351808285015260005b8181101561179157858101830151858201604001528201611775565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156117c457600080fd5b5035919050565b80356001600160a01b03811681146117e257600080fd5b919050565b600080604083850312156117fa57600080fd5b611803836117cb565b946020939093013593505050565b60008060006060848603121561182657600080fd5b61182f846117cb565b925061183d602085016117cb565b9150604084013590509250925092565b60006020828403121561185f57600080fd5b610972826117cb565b60008060006060848603121561187d57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156118a757600080fd5b6118b0836117cb565b91506118be602084016117cb565b90509250929050565b80151581146118d557600080fd5b50565b600080604083850312156118eb57600080fd5b8235611803816118c7565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196757816000190482111561194d5761194d611916565b8085161561195a57918102915b93841c9390800290611931565b509250929050565b60008261197e57506001610819565b8161198b57506000610819565b81600181146119a157600281146119ab576119c7565b6001915050610819565b60ff8411156119bc576119bc611916565b50506001821b610819565b5060208310610133831016604e8410600b84101617156119ea575081810a610819565b6119f4838361192c565b8060001904821115611a0857611a08611916565b029392505050565b600061097260ff84168361196f565b6000816000190483118215151615611a3957611a39611916565b500290565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561081957610819611916565b600060208284031215611a8557600080fd5b5051919050565b600060208284031215611a9e57600080fd5b8151610972816118c7565b8082018082111561081957610819611916565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b225784516001600160a01b031683529383019391830191600101611afd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d16703bddb4cc58b2fc8eac02c794543845c855a4705ba1b5330249760b786e864736f6c63430008100033
Deployed Bytecode Sourcemap
3742:7909:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4001:42:0;;;;;;;;;;;;:::i;:::-;;;;;;;;7100:260;;;;;;;;;;-1:-1:-1;7100:260:0;;;;;:::i;:::-;;:::i;:::-;;6204:216;;;;;;;;;;-1:-1:-1;6204:216:0;;;;;:::i;:::-;;:::i;:::-;;;1354:14:1;;1347:22;1329:41;;1317:2;1302:18;6204:216:0;1189:187:1;4651:44:0;;;;;;;;;;;;4692:3;4651:44;;;;;1527:25:1;;;1515:2;1500:18;4651:44:0;1381:177:1;4140:65:0;;;;;;;;;;;;;:::i;9899:259::-;;;;;;;;;;-1:-1:-1;9899:259:0;;;;;:::i;:::-;;:::i;4616:28::-;;;;;;;;;;;;;;;;6722:370;;;;;;;;;;-1:-1:-1;6722:370:0;;;;;:::i;:::-;;:::i;11511:137::-;;;;;;;;;;;;;:::i;2907:103::-;;;;;;;;;;-1:-1:-1;2907:103:0;;;;;:::i;:::-;2962:4;2997:5;-1:-1:-1;;;;;2986:16:0;;;2997:5;;2986:16;;2907:103;4096:35;;;;;;;;;;;;4129:2;4096:35;;;;;2259:4:1;2247:17;;;2229:36;;2217:2;2202:18;4096:35:0;2087:184:1;4449:44:0;;;;;;;;;;-1:-1:-1;4449:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6428:122;;;;;;;;;;-1:-1:-1;6428:122:0;;;;;:::i;:::-;;:::i;10999:199::-;;;;;;;;;;-1:-1:-1;10999:199:0;;;;;:::i;:::-;;:::i;4327:45::-;;;;;;;;;;-1:-1:-1;4327:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3133:125;;;;;;;;;;;;;:::i;10166:284::-;;;;;;;;;;-1:-1:-1;10166:284:0;;;;;:::i;:::-;;:::i;4268:50::-;;;;;;;;;;;;;;;;4214:47;;;;;;;;;;;;;;;;5979:78;;;;;;;;;;-1:-1:-1;6031:7:0;6049:5;-1:-1:-1;;;;;6049:5:0;5979:78;;;-1:-1:-1;;;;;2761:32:1;;;2743:51;;2731:2;2716:18;5979:78:0;2597:203:1;4500:48:0;;;;;;;;;;-1:-1:-1;4500:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4050:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4050:39:0;;;;;4920:29;;;;;;;;;;;;;;;6558:156;;;;;;;;;;-1:-1:-1;6558:156:0;;;;;:::i;:::-;;:::i;2636:94::-;;;;;;;;;;-1:-1:-1;2636:94:0;;;;;:::i;:::-;;:::i;7368:261::-;;;;;;;;;;-1:-1:-1;7368:261:0;;;;;:::i;:::-;;:::i;11206:110::-;;;;;;;;;;-1:-1:-1;11206:110:0;;;;;:::i;:::-;;:::i;4555:52::-;;;;;;;;;;-1:-1:-1;4555:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6063:133;;;;;;;;;;-1:-1:-1;6063:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6165:19:0;;;6147:7;6165:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6063:133;11324:179;;;;;;;;;;-1:-1:-1;11324:179:0;;;;;:::i;:::-;;:::i;2738:161::-;;;;;;;;;;-1:-1:-1;2738:161:0;;;;;:::i;:::-;;:::i;4889:24::-;;;;;;;;;;-1:-1:-1;4889:24:0;;;;-1:-1:-1;;;;;4889:24:0;;;3018:107;;;;;;;;;;-1:-1:-1;3018:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3098:19:0;3074:4;3098:19;;;:14;:19;;;;;;;;;3018:107;7100:260;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;;;;;;;;;7236:2:::1;7209:23;:29;;7201:75;;;::::0;-1:-1:-1;;;7201:75:0;;4269:2:1;7201:75:0::1;::::0;::::1;4251:21:1::0;4308:2;4288:18;;;4281:30;4347:34;4327:18;;;4320:62;-1:-1:-1;;;4398:18:1;;;4391:32;4440:19;;7201:75:0::1;4067:398:1::0;7201:75:0::1;7348:4;7320:23:::0;4193:12:::1;4129:2;4193;:12;:::i;:::-;4178:27;::::0;:12:::1;:27;:::i;:::-;7306:37;;;;:::i;:::-;7305:47;;;;:::i;:::-;7287:15;:65:::0;-1:-1:-1;7100:260:0:o;6204:216::-;6308:10;6279:4;6296:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6296:32:0;;;;;;;;;;:41;;;6353:37;6279:4;;6296:32;;6353:37;;;;6331:6;1527:25:1;;1515:2;1500:18;;1381:177;6353:37:0;;;;;;;;-1:-1:-1;6408:4:0;6204:216;;;;;:::o;4140:65::-;4193:12;4129:2;4193;:12;:::i;:::-;4178:27;;:12;:27;:::i;:::-;4140:65;:::o;9899:259::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;10002:21:::1;9982:17;10093:3;10060:28;10072:16:::0;10002:21;10060:28:::1;:::i;:::-;10058:38;;;;:::i;:::-;10107:43;::::0;10034:62;;-1:-1:-1;10115:10:0::1;::::0;10107:43;::::1;;;::::0;10034:62;;10107:43:::1;::::0;;;10034:62;10115:10;10107:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9971:187;;9899:259:::0;:::o;6722:370::-;-1:-1:-1;;;;;6842:19:0;;6822:4;6842:19;;;:11;:19;;;;;;;;6862:10;6842:31;;;;;;;;-1:-1:-1;;6842:52:0;6839:186;;6944:69;;;;;;;;;;;-1:-1:-1;;;6944:69:0;;;;;;;;-1:-1:-1;;;;;6944:19:0;;-1:-1:-1;6944:19:0;;;:11;:19;;;;;6964:10;6944:31;;;;;;;;;;:69;;6980:6;;6944:35;:69::i;:::-;-1:-1:-1;;;;;6910:19:0;;;;;;:11;:19;;;;;;;;6930:10;6910:31;;;;;;;:103;6839:186;7044:40;7058:6;7066:9;7077:6;7044:13;:40::i;:::-;7037:47;;6722:370;;;;;;:::o;11511:137::-;11624:9;:15;;;;3877:42;11564:7;11606:15;;;;;11564:7;;11624:15;4193:12;4129:2;4193;:12;:::i;:::-;4178:27;;:12;:27;:::i;:::-;11592:29;;;;:::i;:::-;:47;;;;:::i;:::-;11584:56;;11511:137;:::o;6428:122::-;6483:4;6507:35;6515:7;-1:-1:-1;;6507:7:0;:35::i;10999:199::-;2590:10;3074:4;3098:19;;;:14;:19;;;;;;;;2569:48;;;;-1:-1:-1;;;2569:48:0;;6715:2:1;2569:48:0;;;6697:21:1;6754:2;6734:18;;;6727:30;-1:-1:-1;;;6773:18:1;;;6766:41;6824:18;;2569:48:0;6513:335:1;2569:48:0;11099:14:::1;:22:::0;;;;11132:13:::1;:20:::0;;;;11163:18:::1;:27:::0;10999:199::o;3133:125::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;3216:5:::1;3207::::0;;-1:-1:-1;;;;;3207:5:0::1;3192:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;3192:29:0::1;::::0;;3232:18;;-1:-1:-1;;;;;;3232:18:0::1;::::0;;3133:125::o;10166:284::-;10257:12;2997:5;;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;10285:6:::1;10295:1;10285:11:::0;10282:95:::1;;10321:44;::::0;-1:-1:-1;;;10321:44:0;;10359:4:::1;10321:44;::::0;::::1;2743:51:1::0;-1:-1:-1;;;;;10321:29:0;::::1;::::0;::::1;::::0;2716:18:1;;10321:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:53;;10282:95;10394:48;::::0;-1:-1:-1;;;10394:48:0;;10423:10:::1;10394:48;::::0;::::1;7216:51:1::0;7283:18;;;7276:34;;;-1:-1:-1;;;;;10394:28:0;::::1;::::0;::::1;::::0;7189:18:1;;10394:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6558:156::-:0;6638:4;6662:44;6676:10;6688:9;6699:6;6662:13;:44::i;2636:94::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2696:19:0::1;;::::0;;;2718:4:::1;2696:19;::::0;;;;;;;:26;;-1:-1:-1;;2696:26:0::1;::::0;;::::1;::::0;;2636:94::o;7368:261::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;7502:2:::1;7474:24;:30;;7466:81;;;::::0;-1:-1:-1;;;7466:81:0;;7773:2:1;7466:81:0::1;::::0;::::1;7755:21:1::0;7812:2;7792:18;;;7785:30;7851:34;7831:18;;;7824:62;-1:-1:-1;;;7902:18:1;;;7895:37;7949:19;;7466:81:0::1;7571:403:1::0;7466:81:0::1;7617:4;7588:24:::0;4193:12:::1;4129:2;4193;:12;:::i;:::-;4178:27;::::0;:12:::1;:27;:::i;:::-;7574:38;;;;:::i;:::-;7573:48;;;;:::i;:::-;7558:12;:63:::0;-1:-1:-1;7368:261:0:o;11206:110::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;11284:8:::1;:24:::0;11206:110::o;11324:179::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;11420:11:::1;:22:::0;;-1:-1:-1;;;;11420:22:0::1;-1:-1:-1::0;;;11420:22:0;::::1;;;;::::0;;11483:12;4193::::1;4129:2;4193;:12;:::i;:::-;4178:27;::::0;:12:::1;:27;:::i;:::-;11469:26;;;;:::i;:::-;11453:13;:42:::0;-1:-1:-1;;11324:179:0:o;2738:161::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2495:10;2986:16;2479:38;;;;-1:-1:-1;;;2479:38:0;;;;;;;:::i;:::-;2817:5:::1;::::0;-1:-1:-1;;;;;2817:5:0;;::::1;2810:12:::0;;::::1;::::0;2802:51:::1;;;::::0;-1:-1:-1;;;2802:51:0;;8181:2:1;2802:51:0::1;::::0;::::1;8163:21:1::0;8220:2;8200:18;;;8193:30;8259:28;8239:18;;;8232:56;8305:18;;2802:51:0::1;7979:350:1::0;2802:51:0::1;-1:-1:-1::0;;;;;2864:19:0::1;2886:5;2864:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2864:27:0::1;::::0;;2738:161::o;759:192::-;845:7;881:12;873:6;;;;865:29;;;;-1:-1:-1;;;865:29:0;;;;;;;;:::i;:::-;-1:-1:-1;905:9:0;917:5;921:1;917;:5;:::i;:::-;905:17;759:192;-1:-1:-1;;;;;759:192:0:o;7637:976::-;7749:6;;7729:4;;7749:6;;7746:63;;;7765:41;7780:6;7788:9;7799:6;7765:14;:41::i;:::-;7758:48;;;;7746:63;-1:-1:-1;;;;;7826:22:0;;;;;;:14;:22;;;;;;;;7825:23;:55;;;;-1:-1:-1;;;;;;7853:27:0;;;;;;:19;:27;;;;;;;;7852:28;7825:55;:90;;;;-1:-1:-1;;;;;;7885:30:0;;;;;;:19;:30;;;;;;;;7884:31;7825:90;:111;;;;;7932:4;-1:-1:-1;;;;;7919:17:0;:9;-1:-1:-1;;;;;7919:17:0;;;7825:111;7821:230;;;7996:15;;-1:-1:-1;;;;;7962:20:0;;;;;;:9;:20;;;;;;:29;;7985:6;;7962:29;:::i;:::-;7961:50;;7953:86;;;;-1:-1:-1;;;7953:86:0;;8666:2:1;7953:86:0;;;8648:21:1;8705:2;8685:18;;;8678:30;8744:26;8724:18;;;8717:54;8788:18;;7953:86:0;8464:348:1;7953:86:0;8086:12;;8076:6;:22;;8075:51;;;-1:-1:-1;;;;;;8103:23:0;;;;;;:15;:23;;;;;;;;8075:51;:81;;;-1:-1:-1;;;;;;8130:26:0;;;;;;:15;:26;;;;;;;;8075:81;8067:115;;;;-1:-1:-1;;;8067:115:0;;9019:2:1;8067:115:0;;;9001:21:1;9058:2;9038:18;;;9031:30;-1:-1:-1;;;9077:18:1;;;9070:51;9138:18;;8067:115:0;8817:345:1;8067:115:0;8198:16;:14;:16::i;:::-;8195:35;;;8217:10;:8;:10::i;:::-;8262:53;;;;;;;;;;;-1:-1:-1;;;8262:53:0;;;;;;;;-1:-1:-1;;;;;8262:17:0;;-1:-1:-1;8262:17:0;;;:9;:17;;;;;;;;:53;;8284:6;;8262:21;:53::i;:::-;-1:-1:-1;;;;;8242:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8354:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;8377:22:0;;;;;;:11;:22;;;;;;;;8354:45;8353:93;;8412:34;8420:6;8428;8436:9;8412:7;:34::i;:::-;8353:93;;;8403:6;8353:93;-1:-1:-1;;;;;8482:20:0;;;;;;:9;:20;;;;;;8328:118;;-1:-1:-1;8482:40:0;;8328:118;8482:24;:40::i;:::-;-1:-1:-1;;;;;8459:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8540:43;;;;;;;;;;8568:14;1527:25:1;;1515:2;1500:18;;1381:177;8540:43:0;;;;;;;;-1:-1:-1;8601:4:0;;7637:976;-1:-1:-1;;;;7637:976:0:o;8625:330::-;8755:53;;;;;;;;;;;-1:-1:-1;;;8755:53:0;;;;;;;;-1:-1:-1;;;;;8755:17:0;;8718:4;8755:17;;;:9;:17;;;;;;;:53;;8777:6;;8755:21;:53::i;:::-;-1:-1:-1;;;;;8735:17:0;;;;;;;:9;:17;;;;;;:73;;;;8842:20;;;;;;;:32;;8867:6;8842:24;:32::i;:::-;-1:-1:-1;;;;;8819:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8890:35;;;;;;;;;;8918:6;1527:25:1;;1515:2;1500:18;;1381:177;8890:35:0;;;;;;;;-1:-1:-1;8943:4:0;8625:330;;;;;:::o;9694:197::-;9743:4;9767:10;-1:-1:-1;;;;;9781:4:0;9767:18;;;;;:38;;-1:-1:-1;9799:6:0;;;;9798:7;9767:38;:62;;;;-1:-1:-1;9818:11:0;;-1:-1:-1;;;9818:11:0;;;;9767:62;:116;;;;-1:-1:-1;;9870:13:0;;9860:4;9842:24;;;;:9;:24;;;;;;:41;;;9694:197::o;10458:533::-;5076:6;:13;;-1:-1:-1;;5076:13:0;5085:4;5076:13;;;10533:16:::1;::::0;;10547:1:::1;10533:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10533:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10533:16:0::1;10509:40;;10578:4;10560;10565:1;10560:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10560:23:0::1;;;-1:-1:-1::0;;;;;10560:23:0::1;;;::::0;::::1;10604:4;10594;10599:1;10594:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10594:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;10621:6:::1;::::0;10693:13:::1;::::0;10621:189:::1;::::0;-1:-1:-1;;;10621:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;10693:13;10621:6:::1;::::0;10737:4;;10764::::1;::::0;10784:15:::1;::::0;10621:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10906:20:0::1;::::0;10898:56:::1;::::0;10843:21:::1;::::0;-1:-1:-1;10823:17:0::1;::::0;-1:-1:-1;;;;;;10906:20:0;;::::1;::::0;10843:21;;10823:17;10898:56;10823:17;10898:56;10843:21;10906:20;10898:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5094:6:0;:14;;-1:-1:-1;;5094:14:0;;;-1:-1:-1;;;;10458:533:0:o;8963:723::-;9049:7;9072:11;;;:28;;-1:-1:-1;9087:8:0;;:13;9072:28;9069:72;;;-1:-1:-1;9123:6:0;9116:13;;9069:72;9174:18;;-1:-1:-1;;;;;9221:4:0;9208:17;;;;;;9205:154;;-1:-1:-1;9255:14:0;;9205:154;;;9300:4;-1:-1:-1;;;;;9290:14:0;:6;-1:-1:-1;;;;;9290:14:0;;9287:72;;-1:-1:-1;9334:13:0;;9287:72;9371:17;9391:62;9432:20;4692:3;;9432:20;:::i;:::-;9391:36;9416:10;9391:20;9402:8;;9391:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;9371:82;-1:-1:-1;9469:13:0;;9466:172;;9543:4;9525:24;;;;:9;:24;;;;;;:39;;9554:9;9525:28;:39::i;:::-;9516:4;9498:24;;;;:9;:24;;;;;;;:66;;;;9584:42;;-1:-1:-1;;;;;9584:42:0;;;;;;;9616:9;1527:25:1;;1515:2;1500:18;;1381:177;9584:42:0;;;;;;;;9466:172;9657:21;:6;9668:9;9657:10;:21::i;:::-;9650:28;8963:723;-1:-1:-1;;;;;;8963:723:0:o;430:181::-;488:7;;520:5;524:1;520;:5;:::i;:::-;508:17;;549:1;544;:6;;536:46;;;;-1:-1:-1;;;536:46:0;;10828:2:1;536:46:0;;;10810:21:1;10867:2;10847:18;;;10840:30;10906:29;10886:18;;;10879:57;10953:18;;536:46:0;10626:351:1;957:250:0;1015:7;1039:1;1044;1039:6;1035:47;;-1:-1:-1;1069:1:0;1062:8;;1035:47;1094:9;1106:5;1110:1;1106;:5;:::i;:::-;1094:17;-1:-1:-1;1139:1:0;1130:5;1134:1;1094:17;1130:5;:::i;:::-;:10;1122:56;;;;-1:-1:-1;;;1122:56:0;;11184:2:1;1122:56:0;;;11166:21:1;11223:2;11203:18;;;11196:30;11262:34;11242:18;;;11235:62;-1:-1:-1;;;11313:18:1;;;11306:31;11354:19;;1122:56:0;10982:397:1;1213:132:0;1271:7;1298:39;1302:1;1305;1298:39;;;;;;;;;;;;;;;;;:3;:39::i;617:136::-;675:7;702:43;706:1;709;702:43;;;;;;;;;;;;;;;;;:3;:43::i;1351:189::-;1437:7;1472:12;1465:5;1457:28;;;;-1:-1:-1;;;1457:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1496:9:0;1508:5;1512:1;1508;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:173::-;820:20;;-1:-1:-1;;;;;869:31:1;;859:42;;849:70;;915:1;912;905:12;849:70;752:173;;;:::o;930:254::-;998:6;1006;1059:2;1047:9;1038:7;1034:23;1030:32;1027:52;;;1075:1;1072;1065:12;1027:52;1098:29;1117:9;1098:29;:::i;:::-;1088:39;1174:2;1159:18;;;;1146:32;;-1:-1:-1;;;930:254:1:o;1563:328::-;1640:6;1648;1656;1709:2;1697:9;1688:7;1684:23;1680:32;1677:52;;;1725:1;1722;1715:12;1677:52;1748:29;1767:9;1748:29;:::i;:::-;1738:39;;1796:38;1830:2;1819:9;1815:18;1796:38;:::i;:::-;1786:48;;1881:2;1870:9;1866:18;1853:32;1843:42;;1563:328;;;;;:::o;1896:186::-;1955:6;2008:2;1996:9;1987:7;1983:23;1979:32;1976:52;;;2024:1;2021;2014:12;1976:52;2047:29;2066:9;2047:29;:::i;2276:316::-;2353:6;2361;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2461:23:1;;;2531:2;2516:18;;2503:32;;-1:-1:-1;2582:2:1;2567:18;;;2554:32;;2276:316;-1:-1:-1;2276:316:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:118::-;3156:5;3149:13;3142:21;3135:5;3132:32;3122:60;;3178:1;3175;3168:12;3122:60;3070:118;:::o;3193:309::-;3258:6;3266;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;3374:9;3361:23;3393:28;3415:5;3393:28;:::i;3733:329::-;3935:2;3917:21;;;3974:1;3954:18;;;3947:29;-1:-1:-1;;;4007:2:1;3992:18;;3985:36;4053:2;4038:18;;3733:329::o;4470:127::-;4531:10;4526:3;4522:20;4519:1;4512:31;4562:4;4559:1;4552:15;4586:4;4583:1;4576:15;4602:422;4691:1;4734:5;4691:1;4748:270;4769:7;4759:8;4756:21;4748:270;;;4828:4;4824:1;4820:6;4816:17;4810:4;4807:27;4804:53;;;4837:18;;:::i;:::-;4887:7;4877:8;4873:22;4870:55;;;4907:16;;;;4870:55;4986:22;;;;4946:15;;;;4748:270;;;4752:3;4602:422;;;;;:::o;5029:806::-;5078:5;5108:8;5098:80;;-1:-1:-1;5149:1:1;5163:5;;5098:80;5197:4;5187:76;;-1:-1:-1;5234:1:1;5248:5;;5187:76;5279:4;5297:1;5292:59;;;;5365:1;5360:130;;;;5272:218;;5292:59;5322:1;5313:10;;5336:5;;;5360:130;5397:3;5387:8;5384:17;5381:43;;;5404:18;;:::i;:::-;-1:-1:-1;;5460:1:1;5446:16;;5475:5;;5272:218;;5574:2;5564:8;5561:16;5555:3;5549:4;5546:13;5542:36;5536:2;5526:8;5523:16;5518:2;5512:4;5509:12;5505:35;5502:77;5499:159;;;-1:-1:-1;5611:19:1;;;5643:5;;5499:159;5690:34;5715:8;5709:4;5690:34;:::i;:::-;5760:6;5756:1;5752:6;5748:19;5739:7;5736:32;5733:58;;;5771:18;;:::i;:::-;5809:20;;5029:806;-1:-1:-1;;;5029:806:1:o;5840:140::-;5898:5;5927:47;5968:4;5958:8;5954:19;5948:4;5927:47;:::i;5985:168::-;6025:7;6091:1;6087;6083:6;6079:14;6076:1;6073:21;6068:1;6061:9;6054:17;6050:45;6047:71;;;6098:18;;:::i;:::-;-1:-1:-1;6138:9:1;;5985:168::o;6158:217::-;6198:1;6224;6214:132;;6268:10;6263:3;6259:20;6256:1;6249:31;6303:4;6300:1;6293:15;6331:4;6328:1;6321:15;6214:132;-1:-1:-1;6360:9:1;;6158:217::o;6380:128::-;6447:9;;;6468:11;;;6465:37;;;6482:18;;:::i;6853:184::-;6923:6;6976:2;6964:9;6955:7;6951:23;6947:32;6944:52;;;6992:1;6989;6982:12;6944:52;-1:-1:-1;7015:16:1;;6853:184;-1:-1:-1;6853:184:1:o;7321:245::-;7388:6;7441:2;7429:9;7420:7;7416:23;7412:32;7409:52;;;7457:1;7454;7447:12;7409:52;7489:9;7483:16;7508:28;7530:5;7508:28;:::i;8334:125::-;8399:9;;;8420:10;;;8417:36;;;8433:18;;:::i;9299:127::-;9360:10;9355:3;9351:20;9348:1;9341:31;9391:4;9388:1;9381:15;9415:4;9412:1;9405:15;9431:980;9693:4;9741:3;9730:9;9726:19;9772:6;9761:9;9754:25;9798:2;9836:6;9831:2;9820:9;9816:18;9809:34;9879:3;9874:2;9863:9;9859:18;9852:31;9903:6;9938;9932:13;9969:6;9961;9954:22;10007:3;9996:9;9992:19;9985:26;;10046:2;10038:6;10034:15;10020:29;;10067:1;10077:195;10091:6;10088:1;10085:13;10077:195;;;10156:13;;-1:-1:-1;;;;;10152:39:1;10140:52;;10247:15;;;;10212:12;;;;10188:1;10106:9;10077:195;;;-1:-1:-1;;;;;;;10328:32:1;;;;10323:2;10308:18;;10301:60;-1:-1:-1;;;10392:3:1;10377:19;10370:35;10289:3;9431:980;-1:-1:-1;;;9431:980:1:o
Swarm Source
ipfs://d16703bddb4cc58b2fc8eac02c794543845c855a4705ba1b5330249760b786e8
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.
Add Token to MetaMask (Web3)