ERC-20
Source Code
Overview
Max Total Supply
103,900,000 SAW
Holders
78
Transfers
-
0
Market
Onchain Market Cap
-
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:
SAW
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-06-14
*/
// SPDX-License-Identifier: MIT
// _________ __ __
// / _____/____ / \ / \
// \_____ \\__ \\ \/\/ /
// / \/ __ \\ /
// /_______ (____ /\__/\ /
// \/ \/ \/.FINANCE
//
// 00110001 00110000 00110011 00101100 00111001 00110000 00110000 00101100 00110000 00110000 00110000 00100000 00101101 00100000 01000011
// 01100001 01101110 00100000 01111001 01101111 01110101 00100000 01100110 01101001 01100111 01110101 01110010 01100101 00100000 01101111
// 01110101 01110100 00100000 01110100 01101000 01100101 00100000 01100011 01101111 01100100 01100101 00111111 00001010 01010111 01101000
// 01100001 01110100 00100111 01110011 00100000 01100010 01100101 01101000 01101001 01101110 01100100 00100000 01110100 01101000 01101001
// 01110011 00100000 01101110 01110101 01101101 01100010 01100101 01110010 00100000 00111111 00100000 00001010 01001100 01100101 01110100
// 00100000 01110100 01101000 01100101 00100000 01100111 01100001 01101101 01100101 00100000 01100010 01100101 01100111 01101001 01101110 00101110 00100000
//
//
// www.saw.finance
// https://twitter.com/SawToken?t=d325GtdsIxpd4sG-1Ai-2w&s=09
// https://t.me/Saw_Token
//
// The intention with SAW is to provide an environment not only beneficial to the holder but also to all communities.
pragma solidity 0.8.13;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
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 Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
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 addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract SAW is IERC20, Ownable {
address private WETH;
string private constant _name = "SAW";
string private constant _symbol = "SAW";
uint8 private constant _decimals = 9;
uint256 _totalSupply = 103900000 * (10 ** _decimals);
uint256 maxWallet = _totalSupply / 50; // 2%
uint256 maxTransaction = _totalSupply / 50; // 2%
uint256 public swapThreshold = _totalSupply / 1000; // Starting at 0.1%
uint256 public maxBuy = _totalSupply / 50; // 2%
bool public maxBuyEnabled = true;
mapping (address => uint256) private _balances;
mapping (address => mapping(address => uint256)) private _allowances;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isWalletExempt;
mapping (address => bool) public isTxExempt;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
uint[3] taxesCollected = [0, 0, 0];
uint256 public launchedAt;
address public liquidityPool = DEAD;
// All fees are in basis points (100 = 1%)
uint256 private buyMkt = 200;
uint256 private sellMkt = 200;
uint256 private buyLP = 200;
uint256 private sellLP = 200;
uint256 private buyDev = 100;
uint256 private sellDev = 100;
uint256 _baseBuyFee = buyMkt + buyLP + buyDev;
uint256 _baseSellFee = sellMkt + sellLP + sellDev;
IDEXRouter public router;
address public pair;
address public factory;
address public marketingWallet = payable(0x7aB22Cb0299Eab1e488db575D1C8E9b49AE05c87);
address public devWallet = payable(0x7aB22Cb0299Eab1e488db575D1C8E9b49AE05c87);
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public tradingOpen = false;
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor() {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
isFeeExempt[owner()] = true;
isFeeExempt[marketingWallet] = true;
isFeeExempt[address(this)] = true;
isWalletExempt[owner()] = true;
isWalletExempt[marketingWallet] = true;
isWalletExempt[DEAD] = true;
isTxExempt[owner()] = true;
isTxExempt[marketingWallet] = true;
isTxExempt[DEAD] = true;
_balances[owner()] = _totalSupply;
emit Transfer(address(0), owner(), _totalSupply);
}
receive() external payable { }
function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function changeIsWalletExempt(address holder, bool exempt) external onlyOwner {
isWalletExempt[holder] = exempt;
}
function changeIsTxExempt(address holder, bool exempt) external onlyOwner {
isTxExempt[holder] = exempt;
}
function launchSequence(uint hold) external onlyOwner {
require(launchedAt == 0, "Already launched");
launchedAt = block.number + hold;
tradingOpen = true;
}
function toggleTrade(bool _switch) external onlyOwner {
tradingOpen = _switch;
}
function toggleMaxBuy(bool _switch) external onlyOwner {
maxBuyEnabled = _switch;
}
function changeMaxBuyAmount(uint _amt) external onlyOwner {
require(_amt >= (_totalSupply / 200), "Must be at least 0.5%");
maxBuy = _amt;
}
function changeMaxWallet(uint _amt) external onlyOwner {
require(_amt >= (_totalSupply / 50), "Must be at least 2%");
maxWallet = _amt;
}
function changeMaxTransaction(uint _amt) external onlyOwner {
require(_amt >= (_totalSupply / 100), "Must be at least 1%");
maxTransaction = _amt;
}
function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
marketingWallet = payable(newMarketingWallet);
}
function setDevWallet(address payable newDevWallet) external onlyOwner {
devWallet = payable(newDevWallet);
}
function setLiquidityPool(address newLiquidityPool) external onlyOwner {
liquidityPool = newLiquidityPool;
}
function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
swapAndLiquifyEnabled = enableSwapBack;
swapThreshold = newSwapBackLimit;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
}
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return owner(); }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function baseBuyFee() external view returns (uint256) {return _baseBuyFee; }
function baseSellFee() external view returns (uint256) {return _baseSellFee; }
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 addTaxCollected(uint mkt, uint lp, uint dev) internal {
taxesCollected[0] += mkt;
taxesCollected[1] += lp;
taxesCollected[2] += dev;
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transfer(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] - amount;
}
return _transfer(sender, recipient, amount);
}
function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0), "BEP20: transfer from the zero address");
require(recipient != address(0), "BEP20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
require(amount < maxTransaction || isTxExempt[sender], "Exceeds Transaction Limit");
if(recipient != pair) {
uint256 recipientBalance = _balances[recipient];
require(recipientBalance + amount < maxWallet || isWalletExempt[recipient]);
}
if(sender == pair && maxBuyEnabled) { require(amount <= maxBuy || isTxExempt[recipient], "Exceeds Max Buy"); }
if(sender != owner() && recipient != owner()) { require(tradingOpen || isFeeExempt[sender], "Trading not active"); }
if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
if(sender != pair && recipient != pair) { return _basicTransfer(sender, recipient, amount); }
if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
if(sender == pair && block.number < launchedAt) { recipient = DEAD; }
_balances[sender] = _balances[sender] - amount;
uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient] + finalAmount;
emit Transfer(sender, recipient, finalAmount);
return true;
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 mktTaxB = amount * buyMkt / 10000;
uint256 mktTaxS = amount * sellMkt / 10000;
uint256 lpTaxB = amount * buyLP / 10000;
uint256 lpTaxS = amount * sellLP / 10000;
uint256 devB = amount * buyDev / 10000;
uint256 devS = amount * sellDev / 10000;
uint256 taxToGet;
if(sender == pair && recipient != address(pair) && !isFeeExempt[recipient]) {
taxToGet = mktTaxB + lpTaxB + devB;
addTaxCollected(mktTaxB, lpTaxB, devB);
}
if(!inSwapAndLiquify && sender != pair && tradingOpen) {
taxToGet = mktTaxS + lpTaxS + devS;
addTaxCollected(mktTaxS, lpTaxS, devS);
}
_balances[address(this)] = _balances[address(this)] + taxToGet;
emit Transfer(sender, address(this), taxToGet);
return amount - taxToGet;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function updateBuyFees(uint256 newBuyMktFee, uint256 newBuyLpFee, uint256 newBuyDev) public onlyOwner {
require(newBuyMktFee + newBuyLpFee + newBuyDev <= 1000, "Fees Too High");
buyMkt = newBuyMktFee;
buyLP = newBuyLpFee;
buyDev = newBuyDev;
}
function updateSellFees(uint256 newSellMktFee,uint256 newSellLpFee, uint256 newSellDev) public onlyOwner {
require(newSellMktFee + newSellLpFee + newSellDev <= 1000, "Fees Too High");
sellMkt = newSellMktFee;
sellLP = newSellLpFee;
sellDev = newSellDev;
}
function swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
approve(address(this), tokenAmount);
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
router.addLiquidityETH{value: ETHAmount}(
address(this),
tokenAmount,
0,
0,
liquidityPool,
block.timestamp
);
}
function swapBack() internal lockTheSwap {
uint256 tokenBalance = _balances[address(this)];
uint256 _totalCollected = taxesCollected[0] + taxesCollected[1] + taxesCollected[2];
uint256 mktShare = taxesCollected[0];
uint256 lpShare = taxesCollected[1];
uint256 devShare = taxesCollected[2];
uint256 tokensForLiquidity = lpShare / 2;
uint256 amountToSwap = tokenBalance - tokensForLiquidity;
swapTokensForETH(amountToSwap);
uint256 totalETHBalance = address(this).balance;
uint256 ETHForMkt = totalETHBalance * mktShare / _totalCollected;
uint256 ETHForLiquidity = totalETHBalance * lpShare / _totalCollected / 2;
uint256 ETHForDev = totalETHBalance * devShare/ _totalCollected;
if (totalETHBalance > 0) {
payable(marketingWallet).transfer(ETHForMkt);
}
if (tokensForLiquidity > 0) {
addLiquidity(tokensForLiquidity, ETHForLiquidity);
}
if (ETHForDev > 0) {
payable(devWallet).transfer(ETHForDev);
}
delete taxesCollected;
}
function manualSwapBack() external onlyOwner {
swapBack();
}
function clearStuckETH() external onlyOwner {
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
payable(marketingWallet).transfer(contractETHBalance);
}
}
function clearStuckTokens(address contractAddress) external onlyOwner {
IERC20 erc20Token = IERC20(contractAddress);
uint256 balance = erc20Token.balanceOf(address(this));
erc20Token.transfer(marketingWallet, balance);
}
function massDistributeTokens(address[] calldata _airdropAddresses, uint amtPerAddress) external onlyOwner {
for (uint i = 0; i < _airdropAddresses.length; i++) {
IERC20(address(this)).transfer(_airdropAddresses[i], amtPerAddress);
}
}
function distributeTokensByAmount(address[] calldata _airdropAddresses, uint[] calldata _airdropAmounts) external onlyOwner {
for (uint i = 0; i < _airdropAddresses.length; i++) {
IERC20(address(this)).transfer(_airdropAddresses[i], _airdropAmounts[i]);
}
}
}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":"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":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_airdropAmounts","type":"uint256[]"}],"name":"distributeTokensByAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"hold","type":"uint256"}],"name":"launchSequence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256","name":"amtPerAddress","type":"uint256"}],"name":"massDistributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_switch","type":"bool"}],"name":"toggleMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_switch","type":"bool"}],"name":"toggleTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyMktFee","type":"uint256"},{"internalType":"uint256","name":"newBuyLpFee","type":"uint256"},{"internalType":"uint256","name":"newBuyDev","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellMktFee","type":"uint256"},{"internalType":"uint256","name":"newSellLpFee","type":"uint256"},{"internalType":"uint256","name":"newSellDev","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052620000126009600a6200064a565b6200002290630631636062000662565b600255603260025462000036919062000684565b60035560326002546200004a919062000684565b6004556103e86002546200005f919062000684565b600555603260025462000073919062000684565b6006556007805460ff19166001179055600d80546001600160a01b031990811661dead17909155600e805490911690556040805160608101825260008082526020820181905291810191909152620000d090600f906003620004d6565b50600d54601380546001600160a01b0319166001600160a01b0390921691909117905560c8601481905560158190556016819055601781905560646018819055601981905590620001229080620006a7565b6200012e9190620006a7565b601a55601954601754601554620001469190620006a7565b620001529190620006a7565b601b55601f80546001600160a01b031916737ab22cb0299eab1e488db575d1c8e9b49ae05c8717905560208054600162ffff0160a01b0319167501007ab22cb0299eab1e488db575d1c8e9b49ae05c87179055348015620001b257600080fd5b50620001be3362000486565b601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000223573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002499190620006c2565b600180546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce9190620006c2565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000320573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003469190620006c2565b601d80546001600160a01b0319166001600160a01b03928316179055306000818152600960209081526040808320601c548616845282528083206000199055825485168352600a8252808320805460ff199081166001908117909255601f80548816865283862080548316841790559585528285208054821683179055845487168552600b845282852080548216831790558554871685528285208054821683179055600d8054881686528386208054831684179055855488168652600c8552838620805483168417905595548716855282852080548216831790559454861684528184208054909516179093556002548254851683526008825283832081905582549351908152929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82600381019282156200050c579160200282015b828111156200050c578251829060ff16905591602001919060010190620004ea565b506200051a9291506200051e565b5090565b5b808211156200051a57600081556001016200051f565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200058c57816000190482111562000570576200057062000535565b808516156200057e57918102915b93841c939080029062000550565b509250929050565b600082620005a55750600162000644565b81620005b45750600062000644565b8160018114620005cd5760028114620005d857620005f8565b600191505062000644565b60ff841115620005ec57620005ec62000535565b50506001821b62000644565b5060208310610133831016604e8410600b84101617156200061d575081810a62000644565b6200062983836200054b565b806000190482111562000640576200064062000535565b0290505b92915050565b60006200065b60ff84168362000594565b9392505050565b60008160001904831182151516156200067f576200067f62000535565b500290565b600082620006a257634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620006bd57620006bd62000535565b500190565b600060208284031215620006d557600080fd5b81516001600160a01b03811681146200065b57600080fd5b6123ed80620006fd6000396000f3fe6080604052600436106103035760003560e01c806375f0a87411610190578063c17b5b8c116100dc578063d726b22111610095578063f887ea401161006f578063f887ea401461091f578063f88de0c31461093f578063f8ae277d14610954578063ffb54a991461097457600080fd5b8063d726b221146108a4578063dd62ed3e146108b9578063f2fde38b146108ff57600080fd5b8063c17b5b8c146107df578063c45a0155146107ff578063c821fcb81461081f578063cd73ab021461084f578063d073a01f1461086f578063d120c8cb1461088457600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610759578063af06a3f614610779578063bf56b37114610799578063bf8e28b9146107af57600080fd5b806395d89b411461037a578063a3a2e89e14610719578063a8aa1b311461073957600080fd5b806375f0a8741461067b5780638095d5641461069b57806388c5440f146106bb578063893d20e8146106db5780638da5cb5b146106db5780638ea5220f146106f957600080fd5b8063346cc7be1161024f578063571ac8b01161020857806366eb3785116101e257806366eb37851461060557806370a082311461061a57806370db69d614610650578063715018a61461066657600080fd5b8063571ac8b01461058d5780635d098b38146105ad578063665a11ca146105cd57600080fd5b8063346cc7be146104c257806334bfe0df146104e25780633dab5269146105025780633f4218e014610522578063417fd2d6146105525780634a74bb021461056c57600080fd5b80630b006d60116102bc5780631f53ac02116102965780631f53ac021461045157806323b872dd146104715780632b112e4914610491578063313ce567146104a657600080fd5b80630b006d60146103fc57806318160ddd1461041c5780631d5cd5451461043157600080fd5b8063018770201461030f57806302affaf5146103315780630445b6671461035157806306fdde031461037a578063095ea7b3146103ac5780630a37ac95146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004611f38565b610995565b005b34801561033d57600080fd5b5061032f61034c366004611f63565b6109bf565b34801561035d57600080fd5b5061036760055481565b6040519081526020015b60405180910390f35b34801561038657600080fd5b50604080518082018252600381526253415760e81b602082015290516103719190611f9c565b3480156103b857600080fd5b506103cc6103c7366004611ff1565b6109f2565b6040519015158152602001610371565b3480156103e857600080fd5b5061032f6103f7366004611f63565b610a5e565b34801561040857600080fd5b5061032f61041736600461201d565b610a91565b34801561042857600080fd5b50600254610367565b34801561043d57600080fd5b5061032f61044c36600461201d565b610af7565b34801561045d57600080fd5b5061032f61046c366004611f38565b610b5a565b34801561047d57600080fd5b506103cc61048c366004612036565b610b84565b34801561049d57600080fd5b50610367610c19565b3480156104b257600080fd5b5060405160098152602001610371565b3480156104ce57600080fd5b5061032f6104dd366004611f38565b610c6b565b3480156104ee57600080fd5b5061032f6104fd3660046120c3565b610d5f565b34801561050e57600080fd5b5061032f61051d36600461212f565b610e43565b34801561052e57600080fd5b506103cc61053d366004611f38565b600a6020526000908152604090205460ff1681565b34801561055e57600080fd5b506007546103cc9060ff1681565b34801561057857600080fd5b506020546103cc90600160a81b900460ff1681565b34801561059957600080fd5b506103cc6105a8366004611f38565b610e6d565b3480156105b957600080fd5b5061032f6105c8366004611f38565b610e81565b3480156105d957600080fd5b506013546105ed906001600160a01b031681565b6040516001600160a01b039091168152602001610371565b34801561061157600080fd5b5061032f610eab565b34801561062657600080fd5b50610367610635366004611f38565b6001600160a01b031660009081526008602052604090205490565b34801561065c57600080fd5b5061036760065481565b34801561067257600080fd5b5061032f610ebd565b34801561068757600080fd5b50601f546105ed906001600160a01b031681565b3480156106a757600080fd5b5061032f6106b636600461214d565b610ecf565b3480156106c757600080fd5b5061032f6106d6366004612179565b610f3b565b3480156106e757600080fd5b506000546001600160a01b03166105ed565b34801561070557600080fd5b506020546105ed906001600160a01b031681565b34801561072557600080fd5b5061032f610734366004611f63565b610fff565b34801561074557600080fd5b50601d546105ed906001600160a01b031681565b34801561076557600080fd5b506103cc610774366004611ff1565b611032565b34801561078557600080fd5b5061032f6107943660046121c5565b61103f565b3480156107a557600080fd5b5061036760125481565b3480156107bb57600080fd5b506103cc6107ca366004611f38565b600c6020526000908152604090205460ff1681565b3480156107eb57600080fd5b5061032f6107fa36600461214d565b611065565b34801561080b57600080fd5b50601e546105ed906001600160a01b031681565b34801561082b57600080fd5b506103cc61083a366004611f38565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b5061032f61086a36600461201d565b6110d1565b34801561087b57600080fd5b50601b54610367565b34801561089057600080fd5b5061032f61089f36600461201d565b611132565b3480156108b057600080fd5b50601a54610367565b3480156108c557600080fd5b506103676108d43660046121e2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561090b57600080fd5b5061032f61091a366004611f38565b6111a0565b34801561092b57600080fd5b50601c546105ed906001600160a01b031681565b34801561094b57600080fd5b5061032f611219565b34801561096057600080fd5b5061032f61096f3660046121c5565b611266565b34801561098057600080fd5b506020546103cc90600160b01b900460ff1681565b61099d611281565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6109c7611281565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a4d9086815260200190565b60405180910390a350600192915050565b610a66611281565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610a99611281565b6032600254610aa89190612226565b811015610af25760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420322560681b60448201526064015b60405180910390fd5b600355565b610aff611281565b60c8600254610b0e9190612226565b811015610b555760405162461bcd60e51b81526020600482015260156024820152744d757374206265206174206c6561737420302e352560581b6044820152606401610ae9565b600655565b610b62611281565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c04576001600160a01b0384166000908152600960209081526040808320338452909152902054610bdf908390612248565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c0f8484846112db565b90505b9392505050565b600e546001600160a01b0316600090815260086020526040812054600d546001600160a01b0316600090815260086020526040902054600254610c5c9190612248565b610c669190612248565b905090565b610c73611281565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce0919061225f565b601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d599190612278565b50505050565b610d67611281565b60005b83811015610e3c573063a9059cbb868684818110610d8a57610d8a612295565b9050602002016020810190610d9f9190611f38565b858585818110610db157610db1612295565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612278565b5080610e34816122ab565b915050610d6a565b5050505050565b610e4b611281565b60208054921515600160a81b0260ff60a81b1990931692909217909155600555565b6000610e7b826000196109f2565b92915050565b610e89611281565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b610eb3611281565b610ebb61181d565b565b610ec5611281565b610ebb60006119a9565b610ed7611281565b6103e881610ee584866122c4565b610eef91906122c4565b1115610f2d5760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601492909255601655601855565b610f43611281565b60005b82811015610d59573063a9059cbb858584818110610f6657610f66612295565b9050602002016020810190610f7b9190611f38565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190612278565b5080610ff7816122ab565b915050610f46565b611007611281565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c123384846112db565b611047611281565b60208054911515600160b01b0260ff60b01b19909216919091179055565b61106d611281565b6103e88161107b84866122c4565b61108591906122c4565b11156110c35760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601592909255601755601955565b6110d9611281565b60646002546110e89190612226565b81101561112d5760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420312560681b6044820152606401610ae9565b600455565b61113a611281565b6012541561117d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ae9565b61118781436122c4565b601255506020805460ff60b01b1916600160b01b179055565b6111a8611281565b6001600160a01b03811661120d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae9565b611216816119a9565b50565b611221611281565b47801561121657601f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611262573d6000803e3d6000fd5b5050565b61126e611281565b6007805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ae9565b60006001600160a01b0384166113415760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae9565b6001600160a01b0383166113a35760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae9565b600082116114055760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ae9565b60045482108061142d57506001600160a01b0384166000908152600c602052604090205460ff165b6114795760405162461bcd60e51b815260206004820152601960248201527f45786365656473205472616e73616374696f6e204c696d6974000000000000006044820152606401610ae9565b601d546001600160a01b038481169116146114e3576001600160a01b0383166000908152600860205260409020546003546114b484836122c4565b10806114d857506001600160a01b0384166000908152600b602052604090205460ff165b6114e157600080fd5b505b601d546001600160a01b038581169116148015611502575060075460ff165b1561156e576006548211158061153057506001600160a01b0383166000908152600c602052604090205460ff165b61156e5760405162461bcd60e51b815260206004820152600f60248201526e45786365656473204d61782042757960881b6044820152606401610ae9565b6000546001600160a01b0385811691161480159061159a57506000546001600160a01b03848116911614155b1561161057602054600160b01b900460ff16806115cf57506001600160a01b0384166000908152600a602052604090205460ff165b6116105760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610ae9565b602054600160a01b900460ff16156116345761162d8484846119f9565b9050610c12565b601d546001600160a01b038581169116148015906116605750601d546001600160a01b03848116911614155b156116705761162d8484846119f9565b601d546001600160a01b031633148015906116955750602054600160a01b900460ff16155b80156116aa5750602054600160a81b900460ff165b80156116c757506005543060009081526008602052604090205410155b156116d4576116d461181d565b601d546001600160a01b0385811691161480156116f2575060125443105b1561170657600d546001600160a01b031692505b6001600160a01b03841660009081526008602052604090205461172a908390612248565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1615801561177a57506001600160a01b0384166000908152600a602052604090205460ff16155b611784578261178f565b61178f858585611ab3565b6001600160a01b0385166000908152600860205260409020549091506117b69082906122c4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180a9085815260200190565b60405180910390a3506001949350505050565b6020805460ff60a01b1916600160a01b17815530600090815260089091526040812054601154601054600f5492939261185691906122c4565b61186091906122c4565b600f546010546011549293509091600061187b600284612226565b905060006118898288612248565b905061189481611cda565b476000876118a288846122dc565b6118ac9190612226565b905060006002896118bd89866122dc565b6118c79190612226565b6118d19190612226565b90506000896118e088866122dc565b6118ea9190612226565b9050831561192e57601f546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561192c573d6000803e3d6000fd5b505b851561193e5761193e8683611e39565b8015611980576020546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561197e573d6000803e3d6000fd5b505b6000600f819055601081905560115550506020805460ff60a01b19169055505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260086020526040812054611a1d908390612248565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a4d9083906122c4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aa19086815260200190565b60405180910390a35060019392505050565b60008061271060145484611ac791906122dc565b611ad19190612226565b9050600061271060155485611ae691906122dc565b611af09190612226565b9050600061271060165486611b0591906122dc565b611b0f9190612226565b9050600061271060175487611b2491906122dc565b611b2e9190612226565b9050600061271060185488611b4391906122dc565b611b4d9190612226565b9050600061271060195489611b6291906122dc565b611b6c9190612226565b601d549091506000906001600160a01b038c81169116148015611b9d5750601d546001600160a01b038b8116911614155b8015611bc257506001600160a01b038a166000908152600a602052604090205460ff16155b15611be95782611bd286896122c4565b611bdc91906122c4565b9050611be9878685611ece565b602054600160a01b900460ff16158015611c115750601d546001600160a01b038c8116911614155b8015611c265750602054600160b01b900460ff165b15611c4d5781611c3685886122c4565b611c4091906122c4565b9050611c4d868584611ece565b30600090815260086020526040902054611c689082906122c4565b30600081815260086020526040908190209290925590516001600160a01b038d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb818a612248565b9b9a5050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d0f57611d0f612295565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8c91906122fb565b81600181518110611d9f57611d9f612295565b60200260200101906001600160a01b031690816001600160a01b031681525050611dc930836109f2565b50601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e03908590600090869030904290600401612318565b600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b505050505050565b601c5460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3c9190612389565b82600f6000016000828254611ee391906122c4565b90915550829050600f6001016000828254611efe91906122c4565b90915550819050600f6002016000828254611f1991906122c4565b9091555050505050565b6001600160a01b038116811461121657600080fd5b600060208284031215611f4a57600080fd5b8135610c1281611f23565b801515811461121657600080fd5b60008060408385031215611f7657600080fd5b8235611f8181611f23565b91506020830135611f9181611f55565b809150509250929050565b600060208083528351808285015260005b81811015611fc957858101830151858201604001528201611fad565b81811115611fdb576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561200457600080fd5b823561200f81611f23565b946020939093013593505050565b60006020828403121561202f57600080fd5b5035919050565b60008060006060848603121561204b57600080fd5b833561205681611f23565b9250602084013561206681611f23565b929592945050506040919091013590565b60008083601f84011261208957600080fd5b50813567ffffffffffffffff8111156120a157600080fd5b6020830191508360208260051b85010111156120bc57600080fd5b9250929050565b600080600080604085870312156120d957600080fd5b843567ffffffffffffffff808211156120f157600080fd5b6120fd88838901612077565b9096509450602087013591508082111561211657600080fd5b5061212387828801612077565b95989497509550505050565b6000806040838503121561214257600080fd5b823561200f81611f55565b60008060006060848603121561216257600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218e57600080fd5b833567ffffffffffffffff8111156121a557600080fd5b6121b186828701612077565b909790965060209590950135949350505050565b6000602082840312156121d757600080fd5b8135610c1281611f55565b600080604083850312156121f557600080fd5b823561220081611f23565b91506020830135611f9181611f23565b634e487b7160e01b600052601160045260246000fd5b60008261224357634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561225a5761225a612210565b500390565b60006020828403121561227157600080fd5b5051919050565b60006020828403121561228a57600080fd5b8151610c1281611f55565b634e487b7160e01b600052603260045260246000fd5b6000600182016122bd576122bd612210565b5060010190565b600082198211156122d7576122d7612210565b500190565b60008160001904831182151516156122f6576122f6612210565b500290565b60006020828403121561230d57600080fd5b8151610c1281611f23565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f24ffb6ee8b4de64edc67c66281b5951d2f73bd72adc52fa81db87c82ee005e764736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103035760003560e01c806375f0a87411610190578063c17b5b8c116100dc578063d726b22111610095578063f887ea401161006f578063f887ea401461091f578063f88de0c31461093f578063f8ae277d14610954578063ffb54a991461097457600080fd5b8063d726b221146108a4578063dd62ed3e146108b9578063f2fde38b146108ff57600080fd5b8063c17b5b8c146107df578063c45a0155146107ff578063c821fcb81461081f578063cd73ab021461084f578063d073a01f1461086f578063d120c8cb1461088457600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610759578063af06a3f614610779578063bf56b37114610799578063bf8e28b9146107af57600080fd5b806395d89b411461037a578063a3a2e89e14610719578063a8aa1b311461073957600080fd5b806375f0a8741461067b5780638095d5641461069b57806388c5440f146106bb578063893d20e8146106db5780638da5cb5b146106db5780638ea5220f146106f957600080fd5b8063346cc7be1161024f578063571ac8b01161020857806366eb3785116101e257806366eb37851461060557806370a082311461061a57806370db69d614610650578063715018a61461066657600080fd5b8063571ac8b01461058d5780635d098b38146105ad578063665a11ca146105cd57600080fd5b8063346cc7be146104c257806334bfe0df146104e25780633dab5269146105025780633f4218e014610522578063417fd2d6146105525780634a74bb021461056c57600080fd5b80630b006d60116102bc5780631f53ac02116102965780631f53ac021461045157806323b872dd146104715780632b112e4914610491578063313ce567146104a657600080fd5b80630b006d60146103fc57806318160ddd1461041c5780631d5cd5451461043157600080fd5b8063018770201461030f57806302affaf5146103315780630445b6671461035157806306fdde031461037a578063095ea7b3146103ac5780630a37ac95146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004611f38565b610995565b005b34801561033d57600080fd5b5061032f61034c366004611f63565b6109bf565b34801561035d57600080fd5b5061036760055481565b6040519081526020015b60405180910390f35b34801561038657600080fd5b50604080518082018252600381526253415760e81b602082015290516103719190611f9c565b3480156103b857600080fd5b506103cc6103c7366004611ff1565b6109f2565b6040519015158152602001610371565b3480156103e857600080fd5b5061032f6103f7366004611f63565b610a5e565b34801561040857600080fd5b5061032f61041736600461201d565b610a91565b34801561042857600080fd5b50600254610367565b34801561043d57600080fd5b5061032f61044c36600461201d565b610af7565b34801561045d57600080fd5b5061032f61046c366004611f38565b610b5a565b34801561047d57600080fd5b506103cc61048c366004612036565b610b84565b34801561049d57600080fd5b50610367610c19565b3480156104b257600080fd5b5060405160098152602001610371565b3480156104ce57600080fd5b5061032f6104dd366004611f38565b610c6b565b3480156104ee57600080fd5b5061032f6104fd3660046120c3565b610d5f565b34801561050e57600080fd5b5061032f61051d36600461212f565b610e43565b34801561052e57600080fd5b506103cc61053d366004611f38565b600a6020526000908152604090205460ff1681565b34801561055e57600080fd5b506007546103cc9060ff1681565b34801561057857600080fd5b506020546103cc90600160a81b900460ff1681565b34801561059957600080fd5b506103cc6105a8366004611f38565b610e6d565b3480156105b957600080fd5b5061032f6105c8366004611f38565b610e81565b3480156105d957600080fd5b506013546105ed906001600160a01b031681565b6040516001600160a01b039091168152602001610371565b34801561061157600080fd5b5061032f610eab565b34801561062657600080fd5b50610367610635366004611f38565b6001600160a01b031660009081526008602052604090205490565b34801561065c57600080fd5b5061036760065481565b34801561067257600080fd5b5061032f610ebd565b34801561068757600080fd5b50601f546105ed906001600160a01b031681565b3480156106a757600080fd5b5061032f6106b636600461214d565b610ecf565b3480156106c757600080fd5b5061032f6106d6366004612179565b610f3b565b3480156106e757600080fd5b506000546001600160a01b03166105ed565b34801561070557600080fd5b506020546105ed906001600160a01b031681565b34801561072557600080fd5b5061032f610734366004611f63565b610fff565b34801561074557600080fd5b50601d546105ed906001600160a01b031681565b34801561076557600080fd5b506103cc610774366004611ff1565b611032565b34801561078557600080fd5b5061032f6107943660046121c5565b61103f565b3480156107a557600080fd5b5061036760125481565b3480156107bb57600080fd5b506103cc6107ca366004611f38565b600c6020526000908152604090205460ff1681565b3480156107eb57600080fd5b5061032f6107fa36600461214d565b611065565b34801561080b57600080fd5b50601e546105ed906001600160a01b031681565b34801561082b57600080fd5b506103cc61083a366004611f38565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b5061032f61086a36600461201d565b6110d1565b34801561087b57600080fd5b50601b54610367565b34801561089057600080fd5b5061032f61089f36600461201d565b611132565b3480156108b057600080fd5b50601a54610367565b3480156108c557600080fd5b506103676108d43660046121e2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561090b57600080fd5b5061032f61091a366004611f38565b6111a0565b34801561092b57600080fd5b50601c546105ed906001600160a01b031681565b34801561094b57600080fd5b5061032f611219565b34801561096057600080fd5b5061032f61096f3660046121c5565b611266565b34801561098057600080fd5b506020546103cc90600160b01b900460ff1681565b61099d611281565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6109c7611281565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a4d9086815260200190565b60405180910390a350600192915050565b610a66611281565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610a99611281565b6032600254610aa89190612226565b811015610af25760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420322560681b60448201526064015b60405180910390fd5b600355565b610aff611281565b60c8600254610b0e9190612226565b811015610b555760405162461bcd60e51b81526020600482015260156024820152744d757374206265206174206c6561737420302e352560581b6044820152606401610ae9565b600655565b610b62611281565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c04576001600160a01b0384166000908152600960209081526040808320338452909152902054610bdf908390612248565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c0f8484846112db565b90505b9392505050565b600e546001600160a01b0316600090815260086020526040812054600d546001600160a01b0316600090815260086020526040902054600254610c5c9190612248565b610c669190612248565b905090565b610c73611281565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce0919061225f565b601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d599190612278565b50505050565b610d67611281565b60005b83811015610e3c573063a9059cbb868684818110610d8a57610d8a612295565b9050602002016020810190610d9f9190611f38565b858585818110610db157610db1612295565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612278565b5080610e34816122ab565b915050610d6a565b5050505050565b610e4b611281565b60208054921515600160a81b0260ff60a81b1990931692909217909155600555565b6000610e7b826000196109f2565b92915050565b610e89611281565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b610eb3611281565b610ebb61181d565b565b610ec5611281565b610ebb60006119a9565b610ed7611281565b6103e881610ee584866122c4565b610eef91906122c4565b1115610f2d5760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601492909255601655601855565b610f43611281565b60005b82811015610d59573063a9059cbb858584818110610f6657610f66612295565b9050602002016020810190610f7b9190611f38565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190612278565b5080610ff7816122ab565b915050610f46565b611007611281565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c123384846112db565b611047611281565b60208054911515600160b01b0260ff60b01b19909216919091179055565b61106d611281565b6103e88161107b84866122c4565b61108591906122c4565b11156110c35760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601592909255601755601955565b6110d9611281565b60646002546110e89190612226565b81101561112d5760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420312560681b6044820152606401610ae9565b600455565b61113a611281565b6012541561117d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ae9565b61118781436122c4565b601255506020805460ff60b01b1916600160b01b179055565b6111a8611281565b6001600160a01b03811661120d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae9565b611216816119a9565b50565b611221611281565b47801561121657601f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611262573d6000803e3d6000fd5b5050565b61126e611281565b6007805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ae9565b60006001600160a01b0384166113415760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae9565b6001600160a01b0383166113a35760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae9565b600082116114055760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ae9565b60045482108061142d57506001600160a01b0384166000908152600c602052604090205460ff165b6114795760405162461bcd60e51b815260206004820152601960248201527f45786365656473205472616e73616374696f6e204c696d6974000000000000006044820152606401610ae9565b601d546001600160a01b038481169116146114e3576001600160a01b0383166000908152600860205260409020546003546114b484836122c4565b10806114d857506001600160a01b0384166000908152600b602052604090205460ff165b6114e157600080fd5b505b601d546001600160a01b038581169116148015611502575060075460ff165b1561156e576006548211158061153057506001600160a01b0383166000908152600c602052604090205460ff165b61156e5760405162461bcd60e51b815260206004820152600f60248201526e45786365656473204d61782042757960881b6044820152606401610ae9565b6000546001600160a01b0385811691161480159061159a57506000546001600160a01b03848116911614155b1561161057602054600160b01b900460ff16806115cf57506001600160a01b0384166000908152600a602052604090205460ff165b6116105760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610ae9565b602054600160a01b900460ff16156116345761162d8484846119f9565b9050610c12565b601d546001600160a01b038581169116148015906116605750601d546001600160a01b03848116911614155b156116705761162d8484846119f9565b601d546001600160a01b031633148015906116955750602054600160a01b900460ff16155b80156116aa5750602054600160a81b900460ff165b80156116c757506005543060009081526008602052604090205410155b156116d4576116d461181d565b601d546001600160a01b0385811691161480156116f2575060125443105b1561170657600d546001600160a01b031692505b6001600160a01b03841660009081526008602052604090205461172a908390612248565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1615801561177a57506001600160a01b0384166000908152600a602052604090205460ff16155b611784578261178f565b61178f858585611ab3565b6001600160a01b0385166000908152600860205260409020549091506117b69082906122c4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180a9085815260200190565b60405180910390a3506001949350505050565b6020805460ff60a01b1916600160a01b17815530600090815260089091526040812054601154601054600f5492939261185691906122c4565b61186091906122c4565b600f546010546011549293509091600061187b600284612226565b905060006118898288612248565b905061189481611cda565b476000876118a288846122dc565b6118ac9190612226565b905060006002896118bd89866122dc565b6118c79190612226565b6118d19190612226565b90506000896118e088866122dc565b6118ea9190612226565b9050831561192e57601f546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561192c573d6000803e3d6000fd5b505b851561193e5761193e8683611e39565b8015611980576020546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561197e573d6000803e3d6000fd5b505b6000600f819055601081905560115550506020805460ff60a01b19169055505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260086020526040812054611a1d908390612248565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a4d9083906122c4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aa19086815260200190565b60405180910390a35060019392505050565b60008061271060145484611ac791906122dc565b611ad19190612226565b9050600061271060155485611ae691906122dc565b611af09190612226565b9050600061271060165486611b0591906122dc565b611b0f9190612226565b9050600061271060175487611b2491906122dc565b611b2e9190612226565b9050600061271060185488611b4391906122dc565b611b4d9190612226565b9050600061271060195489611b6291906122dc565b611b6c9190612226565b601d549091506000906001600160a01b038c81169116148015611b9d5750601d546001600160a01b038b8116911614155b8015611bc257506001600160a01b038a166000908152600a602052604090205460ff16155b15611be95782611bd286896122c4565b611bdc91906122c4565b9050611be9878685611ece565b602054600160a01b900460ff16158015611c115750601d546001600160a01b038c8116911614155b8015611c265750602054600160b01b900460ff165b15611c4d5781611c3685886122c4565b611c4091906122c4565b9050611c4d868584611ece565b30600090815260086020526040902054611c689082906122c4565b30600081815260086020526040908190209290925590516001600160a01b038d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb818a612248565b9b9a5050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d0f57611d0f612295565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8c91906122fb565b81600181518110611d9f57611d9f612295565b60200260200101906001600160a01b031690816001600160a01b031681525050611dc930836109f2565b50601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e03908590600090869030904290600401612318565b600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b505050505050565b601c5460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3c9190612389565b82600f6000016000828254611ee391906122c4565b90915550829050600f6001016000828254611efe91906122c4565b90915550819050600f6002016000828254611f1991906122c4565b9091555050505050565b6001600160a01b038116811461121657600080fd5b600060208284031215611f4a57600080fd5b8135610c1281611f23565b801515811461121657600080fd5b60008060408385031215611f7657600080fd5b8235611f8181611f23565b91506020830135611f9181611f55565b809150509250929050565b600060208083528351808285015260005b81811015611fc957858101830151858201604001528201611fad565b81811115611fdb576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561200457600080fd5b823561200f81611f23565b946020939093013593505050565b60006020828403121561202f57600080fd5b5035919050565b60008060006060848603121561204b57600080fd5b833561205681611f23565b9250602084013561206681611f23565b929592945050506040919091013590565b60008083601f84011261208957600080fd5b50813567ffffffffffffffff8111156120a157600080fd5b6020830191508360208260051b85010111156120bc57600080fd5b9250929050565b600080600080604085870312156120d957600080fd5b843567ffffffffffffffff808211156120f157600080fd5b6120fd88838901612077565b9096509450602087013591508082111561211657600080fd5b5061212387828801612077565b95989497509550505050565b6000806040838503121561214257600080fd5b823561200f81611f55565b60008060006060848603121561216257600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218e57600080fd5b833567ffffffffffffffff8111156121a557600080fd5b6121b186828701612077565b909790965060209590950135949350505050565b6000602082840312156121d757600080fd5b8135610c1281611f55565b600080604083850312156121f557600080fd5b823561220081611f23565b91506020830135611f9181611f23565b634e487b7160e01b600052601160045260246000fd5b60008261224357634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561225a5761225a612210565b500390565b60006020828403121561227157600080fd5b5051919050565b60006020828403121561228a57600080fd5b8151610c1281611f55565b634e487b7160e01b600052603260045260246000fd5b6000600182016122bd576122bd612210565b5060010190565b600082198211156122d7576122d7612210565b500190565b60008160001904831182151516156122f6576122f6612210565b500290565b60006020828403121561230d57600080fd5b8151610c1281611f23565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f24ffb6ee8b4de64edc67c66281b5951d2f73bd72adc52fa81db87c82ee005e764736f6c634300080d0033
Deployed Bytecode Sourcemap
5089:13280:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9467:122;;;;;;;;;;-1:-1:-1;9467:122:0;;;;;:::i;:::-;;:::i;:::-;;8013:128;;;;;;;;;;-1:-1:-1;8013:128:0;;;;;:::i;:::-;;:::i;5462:50::-;;;;;;;;;;;;;;;;;;;1058:25:1;;;1046:2;1031:18;5462:50:0;;;;;;;;10218:80;;;;;;;;;;-1:-1:-1;10290:5:0;;;;;;;;;;;-1:-1:-1;;;10290:5:0;;;;10218:80;;;;10290:5;10218:80;:::i;10808:216::-;;;;;;;;;;-1:-1:-1;10808:216:0;;;;;:::i;:::-;;:::i;:::-;;;2181:14:1;;2174:22;2156:41;;2144:2;2129:18;10808:216:0;2016:187:1;8149:120:0;;;;;;;;;;-1:-1:-1;8149:120:0;;;;;:::i;:::-;;:::i;8837:160::-;;;;;;;;;;-1:-1:-1;8837:160:0;;;;;:::i;:::-;;:::i;9948:88::-;;;;;;;;;;-1:-1:-1;10021:12:0;;9948:88;;8672:157;;;;;;;;;;-1:-1:-1;8672:157:0;;;;;:::i;:::-;;:::i;9339:120::-;;;;;;;;;;-1:-1:-1;9339:120:0;;;;;:::i;:::-;;:::i;11502:337::-;;;;;;;;;;-1:-1:-1;11502:337:0;;;;;:::i;:::-;;:::i;9804:136::-;;;;;;;;;;;;;:::i;10042:80::-;;;;;;;;;;-1:-1:-1;10042:80:0;;5284:1;3256:36:1;;3244:2;3229:18;10042:80:0;3114:184:1;17546:252:0;;;;;;;;;;-1:-1:-1;17546:252:0;;;;;:::i;:::-;;:::i;18079:287::-;;;;;;;;;;-1:-1:-1;18079:287:0;;;;;:::i;:::-;;:::i;9597:199::-;;;;;;;;;;-1:-1:-1;9597:199:0;;;;;:::i;:::-;;:::i;5764:44::-;;;;;;;;;;-1:-1:-1;5764:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5595:32;;;;;;;;;;-1:-1:-1;5595:32:0;;;;;;;;6833:40;;;;;;;;;;-1:-1:-1;6833:40:0;;;;-1:-1:-1;;;6833:40:0;;;;;;11032:122;;;;;;;;;;-1:-1:-1;11032:122:0;;;;;:::i;:::-;;:::i;9184:147::-;;;;;;;;;;-1:-1:-1;9184:147:0;;;;;:::i;:::-;;:::i;6126:35::-;;;;;;;;;;-1:-1:-1;6126:35:0;;;;-1:-1:-1;;;;;6126:35:0;;;;;;-1:-1:-1;;;;;4931:32:1;;;4913:51;;4901:2;4886:18;6126:35:0;4767:203:1;17228:74:0;;;;;;;;;;;;;:::i;10390:105::-;;;;;;;;;;-1:-1:-1;10390:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10474:18:0;10456:7;10474:18;;;:9;:18;;;;;;;10390:105;5541:41;;;;;;;;;;;;;;;;3090:103;;;;;;;;;;;;;:::i;6627:84::-;;;;;;;;;;-1:-1:-1;6627:84:0;;;;-1:-1:-1;;;;;6627:84:0;;;14758:275;;;;;;;;;;-1:-1:-1;14758:275:0;;;;;:::i;:::-;;:::i;17806:265::-;;;;;;;;;;-1:-1:-1;17806:265:0;;;;;:::i;:::-;;:::i;10304:80::-;;;;;;;;;;-1:-1:-1;10356:7:0;2928:6;-1:-1:-1;;;;;2928:6:0;10304:80;9804:136;6718:78;;;;;;;;;;-1:-1:-1;6718:78:0;;;;-1:-1:-1;;;;;6718:78:0;;;7883:122;;;;;;;;;;-1:-1:-1;7883:122:0;;;;;:::i;:::-;;:::i;6572:19::-;;;;;;;;;;-1:-1:-1;6572:19:0;;;;-1:-1:-1;;;;;6572:19:0;;;11342:152;;;;;;;;;;-1:-1:-1;11342:152:0;;;;;:::i;:::-;;:::i;8471:91::-;;;;;;;;;;-1:-1:-1;8471:91:0;;;;;:::i;:::-;;:::i;6094:25::-;;;;;;;;;;;;;;;;5869:43;;;;;;;;;;-1:-1:-1;5869:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15045:284;;;;;;;;;;-1:-1:-1;15045:284:0;;;;;:::i;:::-;;:::i;6598:22::-;;;;;;;;;;-1:-1:-1;6598:22:0;;;;-1:-1:-1;;;;;6598:22:0;;;5815:47;;;;;;;;;;-1:-1:-1;5815:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9005:171;;;;;;;;;;-1:-1:-1;9005:171:0;;;;;:::i;:::-;;:::i;10722:78::-;;;;;;;;;;-1:-1:-1;10785:12:0;;10722:78;;8277:186;;;;;;;;;;-1:-1:-1;8277:186:0;;;;;:::i;:::-;;:::i;10640:76::-;;;;;;;;;;-1:-1:-1;10702:11:0;;10640:76;;10501:133;;;;;;;;;;-1:-1:-1;10501:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10603:19:0;;;10585:7;10603:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10501:133;3201:201;;;;;;;;;;-1:-1:-1;3201:201:0;;;;;:::i;:::-;;:::i;6541:24::-;;;;;;;;;;-1:-1:-1;6541:24:0;;;;-1:-1:-1;;;;;6541:24:0;;;17310:228;;;;;;;;;;;;;:::i;8570:94::-;;;;;;;;;;-1:-1:-1;8570:94:0;;;;;:::i;:::-;;:::i;6880:31::-;;;;;;;;;;-1:-1:-1;6880:31:0;;;;-1:-1:-1;;;6880:31:0;;;;;;9467:122;2814:13;:11;:13::i;:::-;9549::::1;:32:::0;;-1:-1:-1;;;;;;9549:32:0::1;-1:-1:-1::0;;;;;9549:32:0;;;::::1;::::0;;;::::1;::::0;;9467:122::o;8013:128::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;8102:22:0;;;::::1;;::::0;;;:14:::1;:22;::::0;;;;:31;;-1:-1:-1;;8102:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8013:128::o;10808:216::-;10912:10;10883:4;10900:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10900:32:0;;;;;;;;;;:41;;;10957:37;10883:4;;10900:32;;10957:37;;;;10935:6;1058:25:1;;1046:2;1031:18;;912:177;10957:37:0;;;;;;;;-1:-1:-1;11012:4:0;10808:216;;;;:::o;8149:120::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;8234:18:0;;;::::1;;::::0;;;:10:::1;:18;::::0;;;;:27;;-1:-1:-1;;8234:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8149:120::o;8837:160::-;2814:13;:11;:13::i;:::-;8935:2:::1;8920:12;;:17;;;;:::i;:::-;8911:4;:27;;8903:59;;;::::0;-1:-1:-1;;;8903:59:0;;7227:2:1;8903:59:0::1;::::0;::::1;7209:21:1::0;7266:2;7246:18;;;7239:30;-1:-1:-1;;;7285:18:1;;;7278:49;7344:18;;8903:59:0::1;;;;;;;;;8973:9;:16:::0;8837:160::o;8672:157::-;2814:13;:11;:13::i;:::-;8770:3:::1;8755:12;;:18;;;;:::i;:::-;8746:4;:28;;8738:62;;;::::0;-1:-1:-1;;;8738:62:0;;7575:2:1;8738:62:0::1;::::0;::::1;7557:21:1::0;7614:2;7594:18;;;7587:30;-1:-1:-1;;;7633:18:1;;;7626:51;7694:18;;8738:62:0::1;7373:345:1::0;8738:62:0::1;8808:6;:13:::0;8672:157::o;9339:120::-;2814:13;:11;:13::i;:::-;9418:9:::1;:33:::0;;-1:-1:-1;;;;;;9418:33:0::1;-1:-1:-1::0;;;;;9418:33:0;;;::::1;::::0;;;::::1;::::0;;9339:120::o;11502:337::-;-1:-1:-1;;;;;11622:19:0;;11602:4;11622:19;;;:11;:19;;;;;;;;11642:10;11622:31;;;;;;;;-1:-1:-1;;11622:52:0;11619:157;;-1:-1:-1;;;;;11724:19:0;;;;;;:11;:19;;;;;;;;11744:10;11724:31;;;;;;;;:40;;11758:6;;11724:40;:::i;:::-;-1:-1:-1;;;;;11690:19:0;;;;;;:11;:19;;;;;;;;11710:10;11690:31;;;;;;;:74;11619:157;11795:36;11805:6;11813:9;11824:6;11795:9;:36::i;:::-;11788:43;;11502:337;;;;;;:::o;9804:136::-;9927:4;;-1:-1:-1;;;;;9927:4:0;9857:7;10474:18;;;:9;:18;;;;;;9909:4;;-1:-1:-1;;;;;9909:4:0;10456:7;10474:18;;;:9;:18;;;;;;9884:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;9877:55;;9804:136;:::o;17546:252::-;2814:13;:11;:13::i;:::-;17699:35:::1;::::0;-1:-1:-1;;;17699:35:0;;17728:4:::1;17699:35;::::0;::::1;4913:51:1::0;17654:15:0;;17627:17:::1;::::0;-1:-1:-1;;;;;17699:20:0;::::1;::::0;::::1;::::0;4886:18:1;;17699:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17765:15;::::0;17745:45:::1;::::0;-1:-1:-1;;;17745:45:0;;-1:-1:-1;;;;;17765:15:0;;::::1;17745:45;::::0;::::1;8216:51:1::0;8283:18;;;8276:34;;;17681:53:0;;-1:-1:-1;17745:19:0;::::1;::::0;::::1;::::0;8189:18:1;;17745:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17616:182;;17546:252:::0;:::o;18079:287::-;2814:13;:11;:13::i;:::-;18216:6:::1;18211:148;18228:28:::0;;::::1;18211:148;;;18290:4;18275:30;18306:17:::0;;18324:1;18306:20;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18328:15;;18344:1;18328:18;;;;;;;:::i;:::-;18275:72;::::0;-1:-1:-1;;;;;;18275:72:0::1;::::0;;;;;;-1:-1:-1;;;;;8234:32:1;;;18275:72:0::1;::::0;::::1;8216:51:1::0;18328:18:0::1;;::::0;;;::::1;;8283::1::0;;;8276:34;-1:-1:-1;8189:18:1;;18275:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18258:3:0;::::1;::::0;::::1;:::i;:::-;;;;18211:148;;;;18079:287:::0;;;;:::o;9597:199::-;2814:13;:11;:13::i;:::-;9706:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;9706:39:0::1;-1:-1:-1::0;;;;9706:39:0;;::::1;::::0;;;::::1;::::0;;;9756:13:::1;:32:::0;9597:199::o;11032:122::-;11087:4;11111:35;11119:7;-1:-1:-1;;11111:7:0;:35::i;:::-;11104:42;11032:122;-1:-1:-1;;11032:122:0:o;9184:147::-;2814:13;:11;:13::i;:::-;9278:15:::1;:45:::0;;-1:-1:-1;;;;;;9278:45:0::1;-1:-1:-1::0;;;;;9278:45:0;;;::::1;::::0;;;::::1;::::0;;9184:147::o;17228:74::-;2814:13;:11;:13::i;:::-;17284:10:::1;:8;:10::i;:::-;17228:74::o:0;3090:103::-;2814:13;:11;:13::i;:::-;3155:30:::1;3182:1;3155:18;:30::i;14758:275::-:0;2814:13;:11;:13::i;:::-;14918:4:::1;14905:9:::0;14876:26:::1;14891:11:::0;14876:12;:26:::1;:::i;:::-;:38;;;;:::i;:::-;:46;;14868:72;;;::::0;-1:-1:-1;;;14868:72:0;;9178:2:1;14868:72:0::1;::::0;::::1;9160:21:1::0;9217:2;9197:18;;;9190:30;-1:-1:-1;;;9236:18:1;;;9229:43;9289:18;;14868:72:0::1;8976:337:1::0;14868:72:0::1;14948:6;:21:::0;;;;14977:5:::1;:19:::0;15007:6:::1;:18:::0;14758:275::o;17806:265::-;2814:13;:11;:13::i;:::-;17926:6:::1;17921:143;17938:28:::0;;::::1;17921:143;;;18000:4;17985:30;18016:17:::0;;18034:1;18016:20;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17985:67;::::0;-1:-1:-1;;;;;;17985:67:0::1;::::0;;;;;;-1:-1:-1;;;;;8234:32:1;;;17985:67:0::1;::::0;::::1;8216:51:1::0;8283:18;;;8276:34;;;8189:18;;17985:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;17968:3:0;::::1;::::0;::::1;:::i;:::-;;;;17921:143;;7883:122:::0;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;7969:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;7969:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7883:122::o;11342:152::-;11422:4;11446:40;11456:10;11468:9;11479:6;11446:9;:40::i;8471:91::-;2814:13;:11;:13::i;:::-;8533:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;8533:21:0::1;-1:-1:-1::0;;;;8533:21:0;;::::1;::::0;;;::::1;::::0;;8471:91::o;15045:284::-;2814:13;:11;:13::i;:::-;15211:4:::1;15197:10:::0;15166:28:::1;15182:12:::0;15166:13;:28:::1;:::i;:::-;:41;;;;:::i;:::-;:49;;15158:75;;;::::0;-1:-1:-1;;;15158:75:0;;9178:2:1;15158:75:0::1;::::0;::::1;9160:21:1::0;9217:2;9197:18;;;9190:30;-1:-1:-1;;;9236:18:1;;;9229:43;9289:18;;15158:75:0::1;8976:337:1::0;15158:75:0::1;15241:7;:23:::0;;;;15272:6:::1;:21:::0;15301:7:::1;:20:::0;15045:284::o;9005:171::-;2814:13;:11;:13::i;:::-;9108:3:::1;9093:12;;:18;;;;:::i;:::-;9084:4;:28;;9076:60;;;::::0;-1:-1:-1;;;9076:60:0;;9520:2:1;9076:60:0::1;::::0;::::1;9502:21:1::0;9559:2;9539:18;;;9532:30;-1:-1:-1;;;9578:18:1;;;9571:49;9637:18;;9076:60:0::1;9318:343:1::0;9076:60:0::1;9147:14;:21:::0;9005:171::o;8277:186::-;2814:13;:11;:13::i;:::-;8347:10:::1;::::0;:15;8339:44:::1;;;::::0;-1:-1:-1;;;8339:44:0;;9868:2:1;8339:44:0::1;::::0;::::1;9850:21:1::0;9907:2;9887:18;;;9880:30;-1:-1:-1;;;9926:18:1;;;9919:46;9982:18;;8339:44:0::1;9666:340:1::0;8339:44:0::1;8407:19;8422:4:::0;8407:12:::1;:19;:::i;:::-;8394:10;:32:::0;-1:-1:-1;8437:11:0::1;:18:::0;;-1:-1:-1;;;;8437:18:0::1;-1:-1:-1::0;;;8437:18:0::1;::::0;;8277:186::o;3201:201::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;3290:22:0;::::1;3282:73;;;::::0;-1:-1:-1;;;3282:73:0;;10213:2:1;3282:73:0::1;::::0;::::1;10195:21:1::0;10252:2;10232:18;;;10225:30;10291:34;10271:18;;;10264:62;-1:-1:-1;;;10342:18:1;;;10335:36;10388:19;;3282:73:0::1;10011:402:1::0;3282:73:0::1;3366:28;3385:8;3366:18;:28::i;:::-;3201:201:::0;:::o;17310:228::-;2814:13;:11;:13::i;:::-;17394:21:::1;17429:22:::0;;17426:105:::1;;17477:15;::::0;17469:53:::1;::::0;-1:-1:-1;;;;;17477:15:0;;::::1;::::0;17469:53;::::1;;;::::0;17503:18;;17477:15:::1;17469:53:::0;17477:15;17469:53;17503:18;17477:15;17469:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17354:184;17310:228::o:0;8570:94::-;2814:13;:11;:13::i;:::-;8633::::1;:23:::0;;-1:-1:-1;;8633:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8570:94::o;2950:132::-;2901:7;2928:6;-1:-1:-1;;;;;2928:6:0;2406:10;3014:23;3006:68;;;;-1:-1:-1;;;3006:68:0;;10620:2:1;3006:68:0;;;10602:21:1;;;10639:18;;;10632:30;10698:34;10678:18;;;10671:62;10750:18;;3006:68:0;10418:356:1;11847:1619:0;11935:4;-1:-1:-1;;;;;11960:20:0;;11952:70;;;;-1:-1:-1;;;11952:70:0;;10981:2:1;11952:70:0;;;10963:21:1;11020:2;11000:18;;;10993:30;11059:34;11039:18;;;11032:62;-1:-1:-1;;;11110:18:1;;;11103:35;11155:19;;11952:70:0;10779:401:1;11952:70:0;-1:-1:-1;;;;;12041:23:0;;12033:71;;;;-1:-1:-1;;;12033:71:0;;11387:2:1;12033:71:0;;;11369:21:1;11426:2;11406:18;;;11399:30;11465:34;11445:18;;;11438:62;-1:-1:-1;;;11516:18:1;;;11509:33;11559:19;;12033:71:0;11185:399:1;12033:71:0;12132:1;12123:6;:10;12115:64;;;;-1:-1:-1;;;12115:64:0;;11791:2:1;12115:64:0;;;11773:21:1;11830:2;11810:18;;;11803:30;11869:34;11849:18;;;11842:62;-1:-1:-1;;;11920:18:1;;;11913:39;11969:19;;12115:64:0;11589:405:1;12115:64:0;12207:14;;12198:6;:23;:45;;;-1:-1:-1;;;;;;12225:18:0;;;;;;:10;:18;;;;;;;;12198:45;12190:83;;;;-1:-1:-1;;;12190:83:0;;12201:2:1;12190:83:0;;;12183:21:1;12240:2;12220:18;;;12213:30;12279:27;12259:18;;;12252:55;12324:18;;12190:83:0;11999:349:1;12190:83:0;12302:4;;-1:-1:-1;;;;;12289:17:0;;;12302:4;;12289:17;12286:186;;-1:-1:-1;;;;;12350:20:0;;12323:24;12350:20;;;:9;:20;;;;;;12421:9;;12393:25;12412:6;12350:20;12393:25;:::i;:::-;:37;:66;;;-1:-1:-1;;;;;;12434:25:0;;;;;;:14;:25;;;;;;;;12393:66;12385:75;;;;;;12308:164;12286:186;12494:4;;-1:-1:-1;;;;;12484:14:0;;;12494:4;;12484:14;:31;;;;-1:-1:-1;12502:13:0;;;;12484:31;12481:110;;;12537:6;;12527;:16;;:41;;;-1:-1:-1;;;;;;12547:21:0;;;;;;:10;:21;;;;;;;;12527:41;12519:69;;;;-1:-1:-1;;;12519:69:0;;12555:2:1;12519:69:0;;;12537:21:1;12594:2;12574:18;;;12567:30;-1:-1:-1;;;12613:18:1;;;12606:45;12668:18;;12519:69:0;12353:339:1;12519:69:0;2901:7;2928:6;-1:-1:-1;;;;;12604:17:0;;;2928:6;;12604:17;;;;:41;;-1:-1:-1;2901:7:0;2928:6;-1:-1:-1;;;;;12625:20:0;;;2928:6;;12625:20;;12604:41;12601:116;;;12657:11;;-1:-1:-1;;;12657:11:0;;;;;:34;;-1:-1:-1;;;;;;12672:19:0;;;;;;:11;:19;;;;;;;;12657:34;12649:65;;;;-1:-1:-1;;;12649:65:0;;12899:2:1;12649:65:0;;;12881:21:1;12938:2;12918:18;;;12911:30;-1:-1:-1;;;12957:18:1;;;12950:48;13015:18;;12649:65:0;12697:342:1;12649:65:0;12730:16;;-1:-1:-1;;;12730:16:0;;;;12727:73;;;12756:41;12771:6;12779:9;12790:6;12756:14;:41::i;:::-;12749:48;;;;12727:73;12820:4;;-1:-1:-1;;;;;12810:14:0;;;12820:4;;12810:14;;;;:35;;-1:-1:-1;12841:4:0;;-1:-1:-1;;;;;12828:17:0;;;12841:4;;12828:17;;12810:35;12807:93;;;12856:41;12871:6;12879:9;12890:6;12856:14;:41::i;12807:93::-;12927:4;;-1:-1:-1;;;;;12927:4:0;12913:10;:18;;;;:39;;-1:-1:-1;12936:16:0;;-1:-1:-1;;;12936:16:0;;;;12935:17;12913:39;:64;;;;-1:-1:-1;12956:21:0;;-1:-1:-1;;;12956:21:0;;;;12913:64;:109;;;;-1:-1:-1;13009:13:0;;12999:4;12981:24;;;;:9;:24;;;;;;:41;;12913:109;12910:128;;;13025:10;:8;:10::i;:::-;13058:4;;-1:-1:-1;;;;;13048:14:0;;;13058:4;;13048:14;:43;;;;;13081:10;;13066:12;:25;13048:43;13045:69;;;13107:4;;-1:-1:-1;;;;;13107:4:0;;-1:-1:-1;13045:69:0;-1:-1:-1;;;;;13146:17:0;;;;;;:9;:17;;;;;;:26;;13166:6;;13146:26;:::i;:::-;-1:-1:-1;;;;;13126:17:0;;;;;;:9;:17;;;;;;;;:46;;;;13216:11;:19;;;;;;;;13215:20;:47;;;;-1:-1:-1;;;;;;13240:22:0;;;;;;:11;:22;;;;;;;;13239:23;13215:47;:93;;13302:6;13215:93;;;13265:34;13273:6;13281:9;13292:6;13265:7;:34::i;:::-;-1:-1:-1;;;;;13344:20:0;;;;;;:9;:20;;;;;;13193:115;;-1:-1:-1;13344:34:0;;13193:115;;13344:34;:::i;:::-;-1:-1:-1;;;;;13321:20:0;;;;;;;:9;:20;;;;;;;:57;;;;13396:40;;;;;;;;;;13424:11;1058:25:1;;1046:2;1031:18;;912:177;13396:40:0;;;;;;;;-1:-1:-1;13454:4:0;;11847:1619;-1:-1:-1;;;;11847:1619:0:o;16069:1151::-;6952:16;:23;;-1:-1:-1;;;;6952:23:0;-1:-1:-1;;;6952:23:0;;;16168:4:::1;-1:-1:-1::0;16150:24:0;;;:9:::1;:24:::0;;;;;;;16251:17;;16231;;16251:14:::1;16211:17:::0;16150:24;;-1:-1:-1;16211:37:0::1;::::0;16231:17;16211:37:::1;:::i;:::-;:57;;;;:::i;:::-;16298:14;:17:::0;16344;;16388;;16185:83;;-1:-1:-1;16298:17:0;;16279:16:::1;16445:11;16403:1;16344:17:::0;16445:11:::1;:::i;:::-;16416:40:::0;-1:-1:-1;16469:20:0::1;16492:33;16416:40:::0;16492:12;:33:::1;:::i;:::-;16469:56;;16538:30;16555:12;16538:16;:30::i;:::-;16607:21;16581:23;16688:15:::0;16659:26:::1;16677:8:::0;16607:21;16659:26:::1;:::i;:::-;:44;;;;:::i;:::-;16639:64:::0;-1:-1:-1;16714:23:0::1;16786:1;16768:15:::0;16740:25:::1;16758:7:::0;16740:15;:25:::1;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;16714:73:::0;-1:-1:-1;16795:17:0::1;16843:15:::0;16815:26:::1;16833:8:::0;16815:15;:26:::1;:::i;:::-;:43;;;;:::i;:::-;16795:63:::0;-1:-1:-1;16881:19:0;;16877:96:::1;;16925:15;::::0;16917:44:::1;::::0;-1:-1:-1;;;;;16925:15:0;;::::1;::::0;16917:44;::::1;;;::::0;16951:9;;16925:15:::1;16917:44:::0;16925:15;16917:44;16951:9;16925:15;16917:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16877:96;16991:22:::0;;16987:104:::1;;17030:49;17043:18;17063:15;17030:12;:49::i;:::-;17105:13:::0;;17101:81:::1;;17140:9;::::0;17132:38:::1;::::0;-1:-1:-1;;;;;17140:9:0;;::::1;::::0;17132:38;::::1;;;::::0;17160:9;;17140::::1;17132:38:::0;17140:9;17132:38;17160:9;17140;17132:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17101:81;17198:14;;-1:-1:-1::0;;;;;;;;;;;6998:16:0;:24;;-1:-1:-1;;;;6998:24:0;;;-1:-1:-1;;;;;;;;;16069:1151:0:o;3410:191::-;3484:16;3503:6;;-1:-1:-1;;;;;3520:17:0;;;-1:-1:-1;;;;;;3520:17:0;;;;;;3553:40;;3503:6;;;;;;;3553:40;;3484:16;3553:40;3473:128;3410:191;:::o;14448:300::-;-1:-1:-1;;;;;14578:17:0;;14541:4;14578:17;;;:9;:17;;;;;;:26;;14598:6;;14578:26;:::i;:::-;-1:-1:-1;;;;;14558:17:0;;;;;;;:9;:17;;;;;;:46;;;;14638:20;;;;;;;:29;;14661:6;;14638:29;:::i;:::-;-1:-1:-1;;;;;14615:20:0;;;;;;;:9;:20;;;;;;;:52;;;;14683:35;;;;;;;;;;14711:6;1058:25:1;;1046:2;1031:18;;912:177;14683:35:0;;;;;;;;-1:-1:-1;14736:4:0;14448:300;;;;;:::o;13476:964::-;13562:7;13592:15;13628:5;13619:6;;13610;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13592:41;;13641:15;13678:5;13668:7;;13659:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;13641:42;;13694:14;13728:5;13720;;13711:6;:14;;;;:::i;:::-;:22;;;;:::i;:::-;13694:39;;13741:14;13776:5;13767:6;;13758;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13741:40;;13789:12;13822:5;13813:6;;13804;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13789:38;;13835:12;13869:5;13859:7;;13850:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;13924:4;;13835:39;;-1:-1:-1;13885:16:0;;-1:-1:-1;;;;;13914:14:0;;;13924:4;;13914:14;:44;;;;-1:-1:-1;13953:4:0;;-1:-1:-1;;;;;13932:26:0;;;13953:4;;13932:26;;13914:44;:71;;;;-1:-1:-1;;;;;;13963:22:0;;;;;;:11;:22;;;;;;;;13962:23;13914:71;13911:184;;;14032:4;14013:16;14023:6;14013:7;:16;:::i;:::-;:23;;;;:::i;:::-;14002:34;;14048:38;14064:7;14073:6;14081:4;14048:15;:38::i;:::-;14108:16;;-1:-1:-1;;;14108:16:0;;;;14107:17;:35;;;;-1:-1:-1;14138:4:0;;-1:-1:-1;;;;;14128:14:0;;;14138:4;;14128:14;;14107:35;:50;;;;-1:-1:-1;14146:11:0;;-1:-1:-1;;;14146:11:0;;;;14107:50;14104:160;;;14201:4;14182:16;14192:6;14182:7;:16;:::i;:::-;:23;;;;:::i;:::-;14171:34;;14217:38;14233:7;14242:6;14250:4;14217:15;:38::i;:::-;14321:4;14303:24;;;;:9;:24;;;;;;:35;;14330:8;;14303:35;:::i;:::-;14294:4;14276:24;;;;:9;:24;;;;;;;:62;;;;14354:41;;-1:-1:-1;;;;;14354:41:0;;;;;;;14386:8;1058:25:1;;1046:2;1031:18;;912:177;14354:41:0;;;;;;;;14415:17;14424:8;14415:6;:17;:::i;:::-;14408:24;13476:964;-1:-1:-1;;;;;;;;;;;13476:964:0:o;15337:432::-;15429:16;;;15443:1;15429:16;;;;;;;;15405:21;;15429:16;;;;;;;;;;-1:-1:-1;15429:16:0;15405:40;;15474:4;15456;15461:1;15456:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15456:23:0;;;:7;;;;;;;;;;:23;;;;15500:6;;:13;;;-1:-1:-1;;;15500:13:0;;;;:6;;;;;:11;;:13;;;;;15456:7;;15500:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15490:4;15495:1;15490:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15490:23:0;;;-1:-1:-1;;;;;15490:23:0;;;;;15526:35;15542:4;15549:11;15526:7;:35::i;:::-;-1:-1:-1;15574:6:0;;:187;;-1:-1:-1;;;15574:187:0;;-1:-1:-1;;;;;15574:6:0;;;;:57;;:187;;15646:11;;15574:6;;15688:4;;15715;;15735:15;;15574:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15392:377;15337:432;:::o;15777:284::-;15858:6;;15999:13;;15858:195;;-1:-1:-1;;;15858:195:0;;15921:4;15858:195;;;14931:34:1;14981:18;;;14974:34;;;15858:6:0;15024:18:1;;;15017:34;;;15067:18;;;15060:34;-1:-1:-1;;;;;15999:13:0;;;15110:19:1;;;15103:44;16027:15:0;15163:19:1;;;15156:35;15858:6:0;;;:22;;15888:9;;14865:19:1;;15858:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11162:172::-;11257:3;11236:14;11251:1;11236:17;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;11292:2:0;;-1:-1:-1;11271:14:0;11286:1;11271:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;11323:3:0;;-1:-1:-1;11302:14:0;11317:1;11302:17;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;11162:172:0:o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:118::-;488:5;481:13;474:21;467:5;464:32;454:60;;510:1;507;500:12;525:382;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:30;804:32;845:30;:::i;:::-;894:7;884:17;;;525:382;;;;;:::o;1094:597::-;1206:4;1235:2;1264;1253:9;1246:21;1296:6;1290:13;1339:6;1334:2;1323:9;1319:18;1312:34;1364:1;1374:140;1388:6;1385:1;1382:13;1374:140;;;1483:14;;;1479:23;;1473:30;1449:17;;;1468:2;1445:26;1438:66;1403:10;;1374:140;;;1532:6;1529:1;1526:13;1523:91;;;1602:1;1597:2;1588:6;1577:9;1573:22;1569:31;1562:42;1523:91;-1:-1:-1;1675:2:1;1654:15;-1:-1:-1;;1650:29:1;1635:45;;;;1682:2;1631:54;;1094:597;-1:-1:-1;;;1094:597:1:o;1696:315::-;1764:6;1772;1825:2;1813:9;1804:7;1800:23;1796:32;1793:52;;;1841:1;1838;1831:12;1793:52;1880:9;1867:23;1899:31;1924:5;1899:31;:::i;:::-;1949:5;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1696:315:1:o;2208:180::-;2267:6;2320:2;2308:9;2299:7;2295:23;2291:32;2288:52;;;2336:1;2333;2326:12;2288:52;-1:-1:-1;2359:23:1;;2208:180;-1:-1:-1;2208:180:1:o;2653:456::-;2730:6;2738;2746;2799:2;2787:9;2778:7;2774:23;2770:32;2767:52;;;2815:1;2812;2805:12;2767:52;2854:9;2841:23;2873:31;2898:5;2873:31;:::i;:::-;2923:5;-1:-1:-1;2980:2:1;2965:18;;2952:32;2993:33;2952:32;2993:33;:::i;:::-;2653:456;;3045:7;;-1:-1:-1;;;3099:2:1;3084:18;;;;3071:32;;2653:456::o;3303:367::-;3366:8;3376:6;3430:3;3423:4;3415:6;3411:17;3407:27;3397:55;;3448:1;3445;3438:12;3397:55;-1:-1:-1;3471:20:1;;3514:18;3503:30;;3500:50;;;3546:1;3543;3536:12;3500:50;3583:4;3575:6;3571:17;3559:29;;3643:3;3636:4;3626:6;3623:1;3619:14;3611:6;3607:27;3603:38;3600:47;3597:67;;;3660:1;3657;3650:12;3597:67;3303:367;;;;;:::o;3675:773::-;3797:6;3805;3813;3821;3874:2;3862:9;3853:7;3849:23;3845:32;3842:52;;;3890:1;3887;3880:12;3842:52;3930:9;3917:23;3959:18;4000:2;3992:6;3989:14;3986:34;;;4016:1;4013;4006:12;3986:34;4055:70;4117:7;4108:6;4097:9;4093:22;4055:70;:::i;:::-;4144:8;;-1:-1:-1;4029:96:1;-1:-1:-1;4232:2:1;4217:18;;4204:32;;-1:-1:-1;4248:16:1;;;4245:36;;;4277:1;4274;4267:12;4245:36;;4316:72;4380:7;4369:8;4358:9;4354:24;4316:72;:::i;:::-;3675:773;;;;-1:-1:-1;4407:8:1;-1:-1:-1;;;;3675:773:1:o;4453:309::-;4518:6;4526;4579:2;4567:9;4558:7;4554:23;4550:32;4547:52;;;4595:1;4592;4585:12;4547:52;4634:9;4621:23;4653:28;4675:5;4653:28;:::i;4975:316::-;5052:6;5060;5068;5121:2;5109:9;5100:7;5096:23;5092:32;5089:52;;;5137:1;5134;5127:12;5089:52;-1:-1:-1;;5160:23:1;;;5230:2;5215:18;;5202:32;;-1:-1:-1;5281:2:1;5266:18;;;5253:32;;4975:316;-1:-1:-1;4975:316:1:o;5296:505::-;5391:6;5399;5407;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;5516:9;5503:23;5549:18;5541:6;5538:30;5535:50;;;5581:1;5578;5571:12;5535:50;5620:70;5682:7;5673:6;5662:9;5658:22;5620:70;:::i;:::-;5709:8;;5594:96;;-1:-1:-1;5791:2:1;5776:18;;;;5763:32;;5296:505;-1:-1:-1;;;;5296:505:1:o;5806:241::-;5862:6;5915:2;5903:9;5894:7;5890:23;5886:32;5883:52;;;5931:1;5928;5921:12;5883:52;5970:9;5957:23;5989:28;6011:5;5989:28;:::i;6052:388::-;6120:6;6128;6181:2;6169:9;6160:7;6156:23;6152:32;6149:52;;;6197:1;6194;6187:12;6149:52;6236:9;6223:23;6255:31;6280:5;6255:31;:::i;:::-;6305:5;-1:-1:-1;6362:2:1;6347:18;;6334:32;6375:33;6334:32;6375:33;:::i;6671:127::-;6732:10;6727:3;6723:20;6720:1;6713:31;6763:4;6760:1;6753:15;6787:4;6784:1;6777:15;6803:217;6843:1;6869;6859:132;;6913:10;6908:3;6904:20;6901:1;6894:31;6948:4;6945:1;6938:15;6976:4;6973:1;6966:15;6859:132;-1:-1:-1;7005:9:1;;6803:217::o;7723:125::-;7763:4;7791:1;7788;7785:8;7782:34;;;7796:18;;:::i;:::-;-1:-1:-1;7833:9:1;;7723:125::o;7853:184::-;7923:6;7976:2;7964:9;7955:7;7951:23;7947:32;7944:52;;;7992:1;7989;7982:12;7944:52;-1:-1:-1;8015:16:1;;7853:184;-1:-1:-1;7853:184:1:o;8321:245::-;8388:6;8441:2;8429:9;8420:7;8416:23;8412:32;8409:52;;;8457:1;8454;8447:12;8409:52;8489:9;8483:16;8508:28;8530:5;8508:28;:::i;8571:127::-;8632:10;8627:3;8623:20;8620:1;8613:31;8663:4;8660:1;8653:15;8687:4;8684:1;8677:15;8703:135;8742:3;8763:17;;;8760:43;;8783:18;;:::i;:::-;-1:-1:-1;8830:1:1;8819:13;;8703:135::o;8843:128::-;8883:3;8914:1;8910:6;8907:1;8904:13;8901:39;;;8920:18;;:::i;:::-;-1:-1:-1;8956:9:1;;8843:128::o;13044:168::-;13084:7;13150:1;13146;13142:6;13138:14;13135:1;13132:21;13127:1;13120:9;13113:17;13109:45;13106:71;;;13157:18;;:::i;:::-;-1:-1:-1;13197:9:1;;13044:168::o;13349:251::-;13419:6;13472:2;13460:9;13451:7;13447:23;13443:32;13440:52;;;13488:1;13485;13478:12;13440:52;13520:9;13514:16;13539:31;13564:5;13539:31;:::i;13605:980::-;13867:4;13915:3;13904:9;13900:19;13946:6;13935:9;13928:25;13972:2;14010:6;14005:2;13994:9;13990:18;13983:34;14053:3;14048:2;14037:9;14033:18;14026:31;14077:6;14112;14106:13;14143:6;14135;14128:22;14181:3;14170:9;14166:19;14159:26;;14220:2;14212:6;14208:15;14194:29;;14241:1;14251:195;14265:6;14262:1;14259:13;14251:195;;;14330:13;;-1:-1:-1;;;;;14326:39:1;14314:52;;14421:15;;;;14386:12;;;;14362:1;14280:9;14251:195;;;-1:-1:-1;;;;;;;14502:32:1;;;;14497:2;14482:18;;14475:60;-1:-1:-1;;;14566:3:1;14551:19;14544:35;14463:3;13605:980;-1:-1:-1;;;13605:980:1:o;15202:306::-;15290:6;15298;15306;15359:2;15347:9;15338:7;15334:23;15330:32;15327:52;;;15375:1;15372;15365:12;15327:52;15404:9;15398:16;15388:26;;15454:2;15443:9;15439:18;15433:25;15423:35;;15498:2;15487:9;15483:18;15477:25;15467:35;;15202:306;;;;;:::o
Swarm Source
ipfs://f24ffb6ee8b4de64edc67c66281b5951d2f73bd72adc52fa81db87c82ee005e7
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)