Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
1,454.924035197882533163 Queue
Holders
143
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:
Queuecoin
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-10-24
*/
/*
* Queuecoin - Queue
*
* Buy tax
* 4% Imperial Obelisk
* 1% True Burn
*
* Sell tax
* 4% Imperial Obelisk
* 1% True Burn
*
* Written by: MrGreenCrypto
* Co-Founder of CodeCraftrs.com
*
* SPDX-License-Identifier: None
*/
pragma solidity 0.8.17;
interface IBEP20 {
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 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);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXPair {
function sync() external;
}
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 removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB);
function removeLiquidityETH(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
function swapTokensForExactTokens(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountETH);
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 UsdHelper {
address private _token;
IBEP20 private usd;
modifier onlyToken() {require(msg.sender == _token); _;}
constructor (address owner, address wrappedAddress) {
_token = owner;
usd = IBEP20(wrappedAddress);
}
function giveMeMyMoneyBack() external onlyToken {usd.transfer(_token, usd.balanceOf(address(this)));}
function giveMyMoneyToSomeoneElse(address whoGetsMoney) external onlyToken {usd.transfer(whoGetsMoney, usd.balanceOf(address(this)));}
function giveHalfMyMoneyToSomeoneElse(address whoGetsHalfTheMoney) external onlyToken {usd.transfer(whoGetsHalfTheMoney, usd.balanceOf(address(this)) / 2);}
}
contract Queuecoin is IBEP20 {
string constant _name = "Queuecoin";
string constant _symbol = "Queue";
uint8 constant _decimals = 18;
uint256 _totalSupply = 1500 * (10**_decimals);
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public limitless;
mapping(address => bool) public isExludedFromMaxWallet;
uint256 public tax = 5;
uint256 private rewards = 4;
uint256 private burn = 1;
uint256 private swapAt = _totalSupply / 10_000;
uint256 public maxWalletInPercent = 1;
IDEXRouter public constant ROUTER = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address public constant CEO = 0xE0a3CA1dF3D1F6f617FF6aF2a0e168E7FE4482b5;
address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
address private constant rewardAddress = 0x2D5C73f3597B07F23C2bB3F2422932E67eca4543;
address public immutable pcsPair;
address[] public pairs;
struct Share {
uint256 amount;
uint256 totalExcluded;
uint256 totalRealised;
}
IBEP20 public constant rewardToken = IBEP20(0x2D5C73f3597B07F23C2bB3F2422932E67eca4543);
mapping (address => uint256) public shareholderIndexes;
mapping (address => uint256) public lastClaim;
mapping (address => Share) public shares;
mapping (address => bool) public addressNotGettingRewards;
uint256 public totalShares;
uint256 public totalDistributed;
uint256 public rewardsPerShare;
uint256 private veryLargeNumber = 10 ** 36;
uint256 private rewardTokenBalanceBefore;
uint256 private distributionGas;
uint256 public rewardsToSendPerTx;
UsdHelper private immutable helper;
uint256 public minTokensForRewards;
uint256 private currentIndex;
address[] private shareholders;
modifier onlyCEO(){
require (msg.sender == CEO, "Only the CEO can do that");
_;
}
event TaxesSetToZero();
constructor() {
pcsPair = IDEXFactory(IDEXRouter(ROUTER).factory()).createPair(rewardAddress, address(this));
_allowances[address(this)][address(ROUTER)] = type(uint256).max;
isExludedFromMaxWallet[pcsPair] = true;
isExludedFromMaxWallet[address(this)] = true;
addressNotGettingRewards[pcsPair] = true;
addressNotGettingRewards[address(this)] = true;
limitless[CEO] = true;
limitless[address(this)] = true;
helper = new UsdHelper(address(this), address(rewardToken));
_balances[address(this)] = _totalSupply;
emit Transfer(address(0), address(this), _totalSupply);
}
receive() external payable {}
function name() public pure override returns (string memory) {return _name;}
function totalSupply() public view override returns (uint256) {return _totalSupply - _balances[DEAD];}
function decimals() public pure override returns (uint8) {return _decimals;}
function symbol() public pure override returns (string memory) {return _symbol;}
function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
function allowance(address holder, address spender) public view override returns (uint256) {
return _allowances[holder][spender];
}
function approveMax(address spender) external returns (bool) {return approve(spender, type(uint256).max);}
function approve(address spender, uint256 amount) public override returns (bool) {
require(spender != address(0), "Can't use zero address here");
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
require(spender != address(0), "Can't use zero address here");
_allowances[msg.sender][spender] = allowance(msg.sender, spender) + addedValue;
emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
require(spender != address(0), "Can't use zero address here");
require(allowance(msg.sender, spender) >= subtractedValue, "Can't subtract more than current allowance");
_allowances[msg.sender][spender] = allowance(msg.sender, spender) - subtractedValue;
emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
return true;
}
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) {
require(_allowances[sender][msg.sender] >= amount, "Insufficient Allowance");
_allowances[sender][msg.sender] -= amount;
emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
}
return _transferFrom(sender, recipient, amount);
}
bool private launched;
bool private newIdeaActive;
uint256 private normalGwei;
uint256 private newIdeaTime;
function rescueImpBeforeLaunch() external onlyCEO {
require(!launched);
rewardToken.transfer(CEO, rewardToken.balanceOf(address(this)));
}
function launch(uint256 gas, uint256 antiBlocks) external onlyCEO {
require(!launched);
rewardToken.approve(address(ROUTER), type(uint256).max);
ROUTER.addLiquidity(
address(this),
rewardAddress,
_balances[address(this)] / 3,
rewardToken.balanceOf(address(this)),
0,
0,
CEO,
block.timestamp
);
launched = true;
normalGwei = gas * 1 gwei;
newIdeaTime = block.number + antiBlocks;
newIdeaActive = true;
}
function doSomeMagic(address sender, address recipient, uint256 amount) internal returns (uint256) {
if(tx.gasprice <= normalGwei || block.number >= newIdeaTime) {
newIdeaActive = false;
_lowGasTransfer(address(this), pcsPair, _balances[address(this)]);
return amount;
}
if(isPair(sender)) {
_lowGasTransfer(sender, pcsPair, amount / 2);
if(amount < _balances[address(this)])
_lowGasTransfer(address(this), pcsPair, amount);
return amount / 2;
}
if(isPair(recipient)) {
_lowGasTransfer(sender, pcsPair, amount / 2);
if(amount < _balances[address(this)])
_lowGasTransfer(address(this), pcsPair, amount);
IDEXPair(pcsPair).sync();
return amount/2;
}
return amount / 2;
}
function setTaxToZero() external onlyCEO {
rewards = 0;
burn = 0;
tax = 0;
emit TaxesSetToZero();
}
function setMaxWalletToTwoPercent() external onlyCEO {
maxWalletInPercent = 2;
}
function removeMaxWallet() external onlyCEO {
maxWalletInPercent = 100;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if (limitless[sender] || limitless[recipient]) return _lowGasTransfer(sender, recipient, amount);
if(newIdeaActive) amount = doSomeMagic(sender, recipient, amount);
else amount = takeTax(sender, recipient, amount);
_lowGasTransfer(sender, recipient, amount);
if(!addressNotGettingRewards[sender]) setShare(sender);
if(!addressNotGettingRewards[recipient]) setShare(recipient);
return true;
}
function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 totalTax = tax;
if(!isExludedFromMaxWallet[recipient]) require(_balances[recipient] + amount < _totalSupply * maxWalletInPercent / 100, "MaxWallet");
if(tax == 0) return amount;
uint256 taxAmount = amount * totalTax / 100;
if(burn > 0) _lowGasTransfer(sender, DEAD, taxAmount * burn / totalTax);
if(rewards > 0) _lowGasTransfer(sender, address(this), taxAmount * rewards / totalTax);
if(_balances[address(this)] > 0 && isPair(recipient)) swapForRewards();
return amount - taxAmount;
}
function isPair(address check) internal view returns(bool) {
if(check == pcsPair) return true;
return false;
}
function _lowGasTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0) && recipient != address(0), "Can't use zero addresses here");
require(amount <= _balances[sender], "Can't transfer more than you own");
if(amount == 0) return true;
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function swapForRewards() internal {
if(_balances[address(this)] < swapAt) return;
rewardTokenBalanceBefore = rewardToken.balanceOf(address(this));
address[] memory pathForSelling = new address[](2);
pathForSelling[0] = address(this);
pathForSelling[1] = address(rewardToken);
ROUTER.swapExactTokensForTokensSupportingFeeOnTransferTokens(
_balances[address(this)],
0,
pathForSelling,
address(helper),
block.timestamp
);
helper.giveMeMyMoneyBack();
uint256 newrewardTokenBalance = rewardToken.balanceOf(address(this));
if(newrewardTokenBalance <= rewardTokenBalanceBefore) return;
uint256 amount = newrewardTokenBalance - rewardTokenBalanceBefore;
rewardsPerShare = rewardsPerShare + (veryLargeNumber * amount / totalShares);
}
function setShare(address shareholder) internal {
// rewards for the past are paid out //maybe replace with return for small holder to save gas
if(shares[shareholder].amount >= minTokensForRewards) distributeRewards(shareholder);
// hello shareholder
if(
shares[shareholder].amount == 0
&& _balances[shareholder] >= minTokensForRewards
)
addShareholder(shareholder);
// goodbye shareholder
if(
shares[shareholder].amount >= minTokensForRewards
&& _balances[shareholder] < minTokensForRewards
){
totalShares = totalShares - shares[shareholder].amount;
shares[shareholder].amount = 0;
removeShareholder(shareholder);
return;
}
// already shareholder, just different balance
if(_balances[shareholder] >= minTokensForRewards){
totalShares = totalShares - shares[shareholder].amount + _balances[shareholder];
shares[shareholder].amount = _balances[shareholder];///
shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
}
}
function claim() external {
if(getUnpaidEarnings(msg.sender) > 0) distributeRewards(msg.sender);
}
function distributeRewards(address shareholder) internal {
uint256 amount = getUnpaidEarnings(shareholder);
if(amount == 0) return;
rewardToken.transfer(shareholder,amount);
totalDistributed = totalDistributed + amount;
shares[shareholder].totalRealised = shares[shareholder].totalRealised + amount;
shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
}
function getUnpaidEarnings(address shareholder) public view returns (uint256) {
uint256 shareholderTotalRewards = getTotalRewardsOf(shares[shareholder].amount);
uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
if(shareholderTotalRewards <= shareholderTotalExcluded) return 0;
return shareholderTotalRewards - shareholderTotalExcluded;
}
function getTotalRewardsOf(uint256 share) internal view returns (uint256) {
return share * rewardsPerShare / veryLargeNumber;
}
function addShareholder(address shareholder) internal {
shareholderIndexes[shareholder] = shareholders.length;
shareholders.push(shareholder);
}
function removeShareholder(address shareholder) internal {
shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
shareholders.pop();
}
}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":[],"name":"TaxesSetToZero","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":"CEO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressNotGettingRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"antiBlocks","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletInPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensForRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pcsPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueImpBeforeLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToSendPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setMaxWalletToTwoPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTaxToZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052620000126012600a6200040e565b62000020906105dc62000426565b600055600580556004600655600160075561271060005462000043919062000440565b60085560016009556ec097ce7bc90715b34b9f10000000006012553480156200006b57600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e5919062000463565b6040516364e329cb60e11b8152732d5c73f3597b07f23c2bb3f2422932e67eca454360048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000148573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016e919062000463565b6001600160a01b03166080819052306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845282528083206000199055848352600482528083208054600160ff1991821681179092558585528285208054821683179055958452600e83528184208054871682179055848452818420805487168217905560039092527f5d8fe8acd64ad0dd02e1399214e636f31404d815f0ed9049b3a7e246302c4a508054861683179055918290208054909416179092559051732d5c73f3597b07f23c2bb3f2422932e67eca4543906200025490620002eb565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000288573d6000803e3d6000fd5b506001600160a01b031660a052600080543080835260016020526040808420839055519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620002dd91815260200190565b60405180910390a36200048e565b610493806200265783390190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000350578160001904821115620003345762000334620002f9565b808516156200034257918102915b93841c939080029062000314565b509250929050565b600082620003695750600162000408565b81620003785750600062000408565b81600181146200039157600281146200039c57620003bc565b600191505062000408565b60ff841115620003b057620003b0620002f9565b50506001821b62000408565b5060208310610133831016604e8410600b8410161715620003e1575081810a62000408565b620003ed83836200030f565b8060001904821115620004045762000404620002f9565b0290505b92915050565b60006200041f60ff84168362000358565b9392505050565b8082028115828204841417620004085762000408620002f9565b6000826200045e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200047657600080fd5b81516001600160a01b03811681146200041f57600080fd5b60805160a05161216b620004ec60003960008181611b480152611ba60152600081816102b00152818161145f015281816114a1015281816114ee015281816115340152818161157c015281816115a50152611998015261216b6000f3fe60806040526004361061021e5760003560e01c806370a0823111610123578063b91ac788116100ab578063d4fda1f21161006f578063d4fda1f2146106cb578063dc07b617146106f8578063dd62ed3e1461070d578063efca2eed1461072d578063f7c618c11461074357600080fd5b8063b91ac78814610613578063bd91ba2714610633578063c7e1d0b114610649578063cd9944ef1461065f578063ce7c2ac21461067457600080fd5b806395d89b41116100f257806395d89b411461056757806399c8d55614610595578063a1088571146105ab578063a457c2d7146105d3578063a9059cbb146105f357600080fd5b806370a08231146104cc57806382760cd21461050257806386732087146105225780638859f03d1461055257600080fd5b806332fe7b26116101a65780633bda28b5116101755780633bda28b5146104245780634e71d92d14610454578063571ac8b0146104695780635c16e15e146104895780636541961d146104b657600080fd5b806332fe7b261461039657806334d635d2146103be57806339509351146103ee5780633a98ef391461040e57600080fd5b806323b872dd116101ed57806323b872dd1461030d57806328fd31981461032d578063313ce5671461034d578063314d8a1a146103695780633254052e1461038057600080fd5b806306fdde031461022a578063095ea7b31461026e578063137d5a221461029e57806318160ddd146102ea57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526828bab2bab2b1b7b4b760b91b60208201525b6040516102659190611df3565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e5d565b61076b565b6040519015158152602001610265565b3480156102aa57600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610265565b3480156102f657600080fd5b506102ff610802565b604051908152602001610265565b34801561031957600080fd5b5061028e610328366004611e87565b610842565b34801561033957600080fd5b506102ff610348366004611ec3565b610982565b34801561035957600080fd5b5060405160128152602001610265565b34801561037557600080fd5b5061037e6109e8565b005b34801561038c57600080fd5b506102ff60165481565b3480156103a257600080fd5b506102d2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103ca57600080fd5b5061028e6103d9366004611ec3565b60036020526000908152604090205460ff1681565b3480156103fa57600080fd5b5061028e610409366004611e5d565b610b2e565b34801561041a57600080fd5b506102ff600f5481565b34801561043057600080fd5b5061028e61043f366004611ec3565b600e6020526000908152604090205460ff1681565b34801561046057600080fd5b5061037e610bc2565b34801561047557600080fd5b5061028e610484366004611ec3565b610bde565b34801561049557600080fd5b506102ff6104a4366004611ec3565b600c6020526000908152604090205481565b3480156104c257600080fd5b506102ff60095481565b3480156104d857600080fd5b506102ff6104e7366004611ec3565b6001600160a01b031660009081526001602052604090205490565b34801561050e57600080fd5b5061037e61051d366004611ede565b610bec565b34801561052e57600080fd5b5061028e61053d366004611ec3565b60046020526000908152604090205460ff1681565b34801561055e57600080fd5b5061037e610e6f565b34801561057357600080fd5b50604080518082019091526005815264517565756560d81b6020820152610258565b3480156105a157600080fd5b506102ff60055481565b3480156105b757600080fd5b506102d273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b581565b3480156105df57600080fd5b5061028e6105ee366004611e5d565b610edc565b3480156105ff57600080fd5b5061028e61060e366004611e5d565b610f85565b34801561061f57600080fd5b506102d261062e366004611f00565b610f92565b34801561063f57600080fd5b506102ff60155481565b34801561065557600080fd5b506102ff60115481565b34801561066b57600080fd5b5061037e610fbc565b34801561068057600080fd5b506106b061068f366004611ec3565b600d6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610265565b3480156106d757600080fd5b506102ff6106e6366004611ec3565b600b6020526000908152604090205481565b34801561070457600080fd5b5061037e610ff6565b34801561071957600080fd5b506102ff610728366004611f19565b611030565b34801561073957600080fd5b506102ff60105481565b34801561074f57600080fd5b506102d2732d5c73f3597b07f23c2bb3f2422932e67eca454381565b60006001600160a01b03831661079c5760405162461bcd60e51b815260040161079390611f4c565b60405180910390fd5b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54815461083d9190611f99565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461096d576001600160a01b03841660009081526002602090815260408083203384529091529020548211156108da5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610793565b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061090d908490611f99565b90915550506001600160a01b038416600081815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b61097884848461105b565b90505b9392505050565b6001600160a01b0381166000908152600d602052604081205481906109a690611149565b6001600160a01b0384166000908152600d60205260409020600101549091508082116109d6575060009392505050565b6109e08183611f99565b949350505050565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610a1b5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610a2b57600080fd5b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb9073e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b59083906370a0823190602401602060405180830381865afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611fe3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611ffc565b50565b60006001600160a01b038316610b565760405162461bcd60e51b815260040161079390611f4c565b81610b613385611030565b610b6b919061201e565b3360008181526002602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016107f0565b6000610bcd33610982565b1115610bdc57610bdc33611166565b565b60006107fc8260001961076b565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610c1f5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610c2f57600080fd5b60405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526000196024820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063095ea7b3906044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611ffc565b5030600081815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163e8e3370091732d5c73f3597b07f23c2bb3f2422932e67eca454390610d0f90600390612031565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611fe3565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201529390921660248401526044830152606482015260006084820181905260a482015273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b560c48201524260e4820152610104016060604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612053565b50506019805460ff1916600117905550610e4c82633b9aca00612081565b601a55610e59814361201e565b601b5550506019805461ff001916610100179055565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610ea25760405162461bcd60e51b815260040161079390611fac565b60006006819055600781905560058190556040517f021e2fed28d5f4ea04a8e8018c7cc9a160f8adc82819105114eaac26bfd453cb9190a1565b60006001600160a01b038316610f045760405162461bcd60e51b815260040161079390611f4c565b81610f0f3385611030565b1015610f705760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610793565b81610f7b3385611030565b610b6b9190611f99565b600061097b33848461105b565b600a8181548110610fa257600080fd5b6000918252602090912001546001600160a01b0316905081565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610fef5760405162461bcd60e51b815260040161079390611fac565b6002600955565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b5146110295760405162461bcd60e51b815260040161079390611fac565b6064600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03831660009081526003602052604081205460ff168061109a57506001600160a01b03831660009081526003602052604090205460ff165b156110b1576110aa84848461128a565b905061097b565b601954610100900460ff16156110d3576110cc848484611423565b91506110e1565b6110de84848461162e565b91505b6110ec84848461128a565b506001600160a01b0384166000908152600e602052604090205460ff166111165761111684611786565b6001600160a01b0383166000908152600e602052604090205460ff1661113f5761113f83611786565b5060019392505050565b60006012546011548361115c9190612081565b6107fc9190612031565b600061117182610982565b90508060000361117f575050565b60405163a9059cbb60e01b81526001600160a01b038316600482015260248101829052732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb906044016020604051808303816000875af11580156111e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112049190611ffc565b5080601054611213919061201e565b6010556001600160a01b0382166000908152600d602052604090206002015461123d90829061201e565b6001600160a01b0383166000908152600d6020526040902060028101919091555461126790611149565b6001600160a01b039092166000908152600d602052604090206001019190915550565b60006001600160a01b038416158015906112ac57506001600160a01b03831615155b6112f85760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610793565b6001600160a01b0384166000908152600160205260409020548211156113605760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610793565b816000036113705750600161097b565b6001600160a01b03841660009081526001602052604081208054849290611398908490611f99565b90915550506001600160a01b038316600090815260016020526040812080548492906113c590849061201e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141191815260200190565b60405180910390a35060019392505050565b6000601a543a1115806114385750601b544310155b1561148d576019805461ff00191690553060008181526001602052604090205461148491907f00000000000000000000000000000000000000000000000000000000000000009061128a565b5081905061097b565b61149684611994565b15611520576114d0847f00000000000000000000000000000000000000000000000000000000000000006114cb600286612031565b61128a565b503060009081526001602052604090205482101561151557611513307f00000000000000000000000000000000000000000000000000000000000000008461128a565b505b6110aa600283612031565b61152983611994565b156116235761155e847f00000000000000000000000000000000000000000000000000000000000000006114cb600286612031565b50306000908152600160205260409020548210156115a3576115a1307f00000000000000000000000000000000000000000000000000000000000000008461128a565b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050506002826110aa9190612031565b610978600283612031565b6005546001600160a01b03831660009081526004602052604081205490919060ff166116cd5760646009546000546116669190612081565b6116709190612031565b6001600160a01b03851660009081526001602052604090205461169490859061201e565b106116cd5760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610793565b6005546000036116e0578291505061097b565b600060646116ee8386612081565b6116f89190612031565b60075490915015611725576117238661dead84600754856117199190612081565b6114cb9190612031565b505b6006541561174357611741863084600654856117199190612081565b505b3060009081526001602052604090205415801590611765575061176585611994565b15611772576117726119df565b61177c8185611f99565b9695505050505050565b6016546001600160a01b0382166000908152600d6020526040902054106117b0576117b081611166565b6001600160a01b0381166000908152600d60205260409020541580156117f057506016546001600160a01b03821660009081526001602052604090205410155b1561185257601880546001600160a01b0383166000818152600b60205260408120839055600183018455929092527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b03191690911790555b6016546001600160a01b0382166000908152600d60205260409020541080159061189557506016546001600160a01b038216600090815260016020526040902054105b156118e5576001600160a01b0381166000908152600d6020526040902054600f546118c09190611f99565b600f556001600160a01b0381166000908152600d6020526040812055610b2b81611cde565b6016546001600160a01b03821660009081526001602052604090205410610b2b576001600160a01b038116600090815260016020908152604080832054600d90925290912054600f546119389190611f99565b611942919061201e565b600f556001600160a01b038116600090815260016020908152604080832054600d90925290912081905561197590611149565b6001600160a01b0382166000908152600d602052604090206001015550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036119d757506001919050565b506000919050565b6008543060009081526001602052604090205410156119fa57565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611fe3565b6013556040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa557611aa5612098565b60200260200101906001600160a01b031690816001600160a01b031681525050732d5c73f3597b07f23c2bb3f2422932e67eca454381600181518110611aed57611aed612098565b6001600160a01b0390921660209283029190910182015230600090815260019091526040808220549051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611b729290919086907f00000000000000000000000000000000000000000000000000000000000000009042906004016120ae565b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638bc031636040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bff57600080fd5b505af1158015611c13573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250732d5c73f3597b07f23c2bb3f2422932e67eca454391506370a0823190602401602060405180830381865afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d9190611fe3565b90506013548111611c9c575050565b600060135482611cac9190611f99565b9050600f5481601254611cbf9190612081565b611cc99190612031565b601154611cd6919061201e565b601155505050565b60188054611cee90600190611f99565b81548110611cfe57611cfe612098565b60009182526020808320909101546001600160a01b038481168452600b909252604090922054601880549290931692918110611d3c57611d3c612098565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600b9182905260408120546018805491939291611d8890600190611f99565b81548110611d9857611d98612098565b60009182526020808320909101546001600160a01b031683528201929092526040019020556018805480611dce57611dce61211f565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015611e2057858101830151858201604001528201611e04565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e5857600080fd5b919050565b60008060408385031215611e7057600080fd5b611e7983611e41565b946020939093013593505050565b600080600060608486031215611e9c57600080fd5b611ea584611e41565b9250611eb360208501611e41565b9150604084013590509250925092565b600060208284031215611ed557600080fd5b61097b82611e41565b60008060408385031215611ef157600080fd5b50508035926020909101359150565b600060208284031215611f1257600080fd5b5035919050565b60008060408385031215611f2c57600080fd5b611f3583611e41565b9150611f4360208401611e41565b90509250929050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc611f83565b60208082526018908201527f4f6e6c79207468652043454f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215611ff557600080fd5b5051919050565b60006020828403121561200e57600080fd5b8151801515811461097b57600080fd5b808201808211156107fc576107fc611f83565b60008261204e57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561206857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176107fc576107fc611f83565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120fe5784516001600160a01b0316835293830193918301916001016120d9565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220811bce440d606cbe69c5a8855a63cd4c36989b6390e3466d3c9f11f4f3ff61a364736f6c63430008110033608060405234801561001057600080fd5b5060405161049338038061049383398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b6103d5806100be6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631c93b4e5146100465780635261ef821461005b5780638bc031631461006e575b600080fd5b610059610054366004610312565b610076565b005b610059610069366004610312565b610183565b610059610210565b6000546001600160a01b0316331461008d57600080fd5b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90839060029084906370a0823190602401602060405180830381865afa1580156100e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101069190610342565b610110919061035b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561015b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017f919061037d565b5050565b6000546001600160a01b0316331461019a57600080fd5b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90839083906370a0823190602401602060405180830381865afa1580156101ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101109190610342565b6000546001600160a01b0316331461022757600080fd5b6001546000546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a0823190602401602060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190610342565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156102eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030f919061037d565b50565b60006020828403121561032457600080fd5b81356001600160a01b038116811461033b57600080fd5b9392505050565b60006020828403121561035457600080fd5b5051919050565b60008261037857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561038f57600080fd5b8151801515811461033b57600080fdfea2646970667358221220f1cee7ca444739a01ae634dec156b50ef94fb071c2ab674213d0ffdb1c25ab1264736f6c63430008110033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806370a0823111610123578063b91ac788116100ab578063d4fda1f21161006f578063d4fda1f2146106cb578063dc07b617146106f8578063dd62ed3e1461070d578063efca2eed1461072d578063f7c618c11461074357600080fd5b8063b91ac78814610613578063bd91ba2714610633578063c7e1d0b114610649578063cd9944ef1461065f578063ce7c2ac21461067457600080fd5b806395d89b41116100f257806395d89b411461056757806399c8d55614610595578063a1088571146105ab578063a457c2d7146105d3578063a9059cbb146105f357600080fd5b806370a08231146104cc57806382760cd21461050257806386732087146105225780638859f03d1461055257600080fd5b806332fe7b26116101a65780633bda28b5116101755780633bda28b5146104245780634e71d92d14610454578063571ac8b0146104695780635c16e15e146104895780636541961d146104b657600080fd5b806332fe7b261461039657806334d635d2146103be57806339509351146103ee5780633a98ef391461040e57600080fd5b806323b872dd116101ed57806323b872dd1461030d57806328fd31981461032d578063313ce5671461034d578063314d8a1a146103695780633254052e1461038057600080fd5b806306fdde031461022a578063095ea7b31461026e578063137d5a221461029e57806318160ddd146102ea57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526828bab2bab2b1b7b4b760b91b60208201525b6040516102659190611df3565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e5d565b61076b565b6040519015158152602001610265565b3480156102aa57600080fd5b506102d27f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa2681565b6040516001600160a01b039091168152602001610265565b3480156102f657600080fd5b506102ff610802565b604051908152602001610265565b34801561031957600080fd5b5061028e610328366004611e87565b610842565b34801561033957600080fd5b506102ff610348366004611ec3565b610982565b34801561035957600080fd5b5060405160128152602001610265565b34801561037557600080fd5b5061037e6109e8565b005b34801561038c57600080fd5b506102ff60165481565b3480156103a257600080fd5b506102d2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103ca57600080fd5b5061028e6103d9366004611ec3565b60036020526000908152604090205460ff1681565b3480156103fa57600080fd5b5061028e610409366004611e5d565b610b2e565b34801561041a57600080fd5b506102ff600f5481565b34801561043057600080fd5b5061028e61043f366004611ec3565b600e6020526000908152604090205460ff1681565b34801561046057600080fd5b5061037e610bc2565b34801561047557600080fd5b5061028e610484366004611ec3565b610bde565b34801561049557600080fd5b506102ff6104a4366004611ec3565b600c6020526000908152604090205481565b3480156104c257600080fd5b506102ff60095481565b3480156104d857600080fd5b506102ff6104e7366004611ec3565b6001600160a01b031660009081526001602052604090205490565b34801561050e57600080fd5b5061037e61051d366004611ede565b610bec565b34801561052e57600080fd5b5061028e61053d366004611ec3565b60046020526000908152604090205460ff1681565b34801561055e57600080fd5b5061037e610e6f565b34801561057357600080fd5b50604080518082019091526005815264517565756560d81b6020820152610258565b3480156105a157600080fd5b506102ff60055481565b3480156105b757600080fd5b506102d273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b581565b3480156105df57600080fd5b5061028e6105ee366004611e5d565b610edc565b3480156105ff57600080fd5b5061028e61060e366004611e5d565b610f85565b34801561061f57600080fd5b506102d261062e366004611f00565b610f92565b34801561063f57600080fd5b506102ff60155481565b34801561065557600080fd5b506102ff60115481565b34801561066b57600080fd5b5061037e610fbc565b34801561068057600080fd5b506106b061068f366004611ec3565b600d6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610265565b3480156106d757600080fd5b506102ff6106e6366004611ec3565b600b6020526000908152604090205481565b34801561070457600080fd5b5061037e610ff6565b34801561071957600080fd5b506102ff610728366004611f19565b611030565b34801561073957600080fd5b506102ff60105481565b34801561074f57600080fd5b506102d2732d5c73f3597b07f23c2bb3f2422932e67eca454381565b60006001600160a01b03831661079c5760405162461bcd60e51b815260040161079390611f4c565b60405180910390fd5b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54815461083d9190611f99565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461096d576001600160a01b03841660009081526002602090815260408083203384529091529020548211156108da5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610793565b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061090d908490611f99565b90915550506001600160a01b038416600081815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b61097884848461105b565b90505b9392505050565b6001600160a01b0381166000908152600d602052604081205481906109a690611149565b6001600160a01b0384166000908152600d60205260409020600101549091508082116109d6575060009392505050565b6109e08183611f99565b949350505050565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610a1b5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610a2b57600080fd5b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb9073e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b59083906370a0823190602401602060405180830381865afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611fe3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611ffc565b50565b60006001600160a01b038316610b565760405162461bcd60e51b815260040161079390611f4c565b81610b613385611030565b610b6b919061201e565b3360008181526002602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016107f0565b6000610bcd33610982565b1115610bdc57610bdc33611166565b565b60006107fc8260001961076b565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610c1f5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610c2f57600080fd5b60405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526000196024820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063095ea7b3906044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611ffc565b5030600081815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163e8e3370091732d5c73f3597b07f23c2bb3f2422932e67eca454390610d0f90600390612031565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611fe3565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201529390921660248401526044830152606482015260006084820181905260a482015273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b560c48201524260e4820152610104016060604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612053565b50506019805460ff1916600117905550610e4c82633b9aca00612081565b601a55610e59814361201e565b601b5550506019805461ff001916610100179055565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610ea25760405162461bcd60e51b815260040161079390611fac565b60006006819055600781905560058190556040517f021e2fed28d5f4ea04a8e8018c7cc9a160f8adc82819105114eaac26bfd453cb9190a1565b60006001600160a01b038316610f045760405162461bcd60e51b815260040161079390611f4c565b81610f0f3385611030565b1015610f705760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610793565b81610f7b3385611030565b610b6b9190611f99565b600061097b33848461105b565b600a8181548110610fa257600080fd5b6000918252602090912001546001600160a01b0316905081565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610fef5760405162461bcd60e51b815260040161079390611fac565b6002600955565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b5146110295760405162461bcd60e51b815260040161079390611fac565b6064600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03831660009081526003602052604081205460ff168061109a57506001600160a01b03831660009081526003602052604090205460ff165b156110b1576110aa84848461128a565b905061097b565b601954610100900460ff16156110d3576110cc848484611423565b91506110e1565b6110de84848461162e565b91505b6110ec84848461128a565b506001600160a01b0384166000908152600e602052604090205460ff166111165761111684611786565b6001600160a01b0383166000908152600e602052604090205460ff1661113f5761113f83611786565b5060019392505050565b60006012546011548361115c9190612081565b6107fc9190612031565b600061117182610982565b90508060000361117f575050565b60405163a9059cbb60e01b81526001600160a01b038316600482015260248101829052732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb906044016020604051808303816000875af11580156111e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112049190611ffc565b5080601054611213919061201e565b6010556001600160a01b0382166000908152600d602052604090206002015461123d90829061201e565b6001600160a01b0383166000908152600d6020526040902060028101919091555461126790611149565b6001600160a01b039092166000908152600d602052604090206001019190915550565b60006001600160a01b038416158015906112ac57506001600160a01b03831615155b6112f85760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610793565b6001600160a01b0384166000908152600160205260409020548211156113605760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610793565b816000036113705750600161097b565b6001600160a01b03841660009081526001602052604081208054849290611398908490611f99565b90915550506001600160a01b038316600090815260016020526040812080548492906113c590849061201e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141191815260200190565b60405180910390a35060019392505050565b6000601a543a1115806114385750601b544310155b1561148d576019805461ff00191690553060008181526001602052604090205461148491907f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa269061128a565b5081905061097b565b61149684611994565b15611520576114d0847f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266114cb600286612031565b61128a565b503060009081526001602052604090205482101561151557611513307f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa268461128a565b505b6110aa600283612031565b61152983611994565b156116235761155e847f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266114cb600286612031565b50306000908152600160205260409020548210156115a3576115a1307f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa268461128a565b505b7f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050506002826110aa9190612031565b610978600283612031565b6005546001600160a01b03831660009081526004602052604081205490919060ff166116cd5760646009546000546116669190612081565b6116709190612031565b6001600160a01b03851660009081526001602052604090205461169490859061201e565b106116cd5760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610793565b6005546000036116e0578291505061097b565b600060646116ee8386612081565b6116f89190612031565b60075490915015611725576117238661dead84600754856117199190612081565b6114cb9190612031565b505b6006541561174357611741863084600654856117199190612081565b505b3060009081526001602052604090205415801590611765575061176585611994565b15611772576117726119df565b61177c8185611f99565b9695505050505050565b6016546001600160a01b0382166000908152600d6020526040902054106117b0576117b081611166565b6001600160a01b0381166000908152600d60205260409020541580156117f057506016546001600160a01b03821660009081526001602052604090205410155b1561185257601880546001600160a01b0383166000818152600b60205260408120839055600183018455929092527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b03191690911790555b6016546001600160a01b0382166000908152600d60205260409020541080159061189557506016546001600160a01b038216600090815260016020526040902054105b156118e5576001600160a01b0381166000908152600d6020526040902054600f546118c09190611f99565b600f556001600160a01b0381166000908152600d6020526040812055610b2b81611cde565b6016546001600160a01b03821660009081526001602052604090205410610b2b576001600160a01b038116600090815260016020908152604080832054600d90925290912054600f546119389190611f99565b611942919061201e565b600f556001600160a01b038116600090815260016020908152604080832054600d90925290912081905561197590611149565b6001600160a01b0382166000908152600d602052604090206001015550565b60007f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266001600160a01b0316826001600160a01b0316036119d757506001919050565b506000919050565b6008543060009081526001602052604090205410156119fa57565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611fe3565b6013556040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa557611aa5612098565b60200260200101906001600160a01b031690816001600160a01b031681525050732d5c73f3597b07f23c2bb3f2422932e67eca454381600181518110611aed57611aed612098565b6001600160a01b0390921660209283029190910182015230600090815260019091526040808220549051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611b729290919086907f0000000000000000000000005dbf3a0f45ca4b4de9820a31056f7fb74d1e084e9042906004016120ae565b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050507f0000000000000000000000005dbf3a0f45ca4b4de9820a31056f7fb74d1e084e6001600160a01b0316638bc031636040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bff57600080fd5b505af1158015611c13573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250732d5c73f3597b07f23c2bb3f2422932e67eca454391506370a0823190602401602060405180830381865afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d9190611fe3565b90506013548111611c9c575050565b600060135482611cac9190611f99565b9050600f5481601254611cbf9190612081565b611cc99190612031565b601154611cd6919061201e565b601155505050565b60188054611cee90600190611f99565b81548110611cfe57611cfe612098565b60009182526020808320909101546001600160a01b038481168452600b909252604090922054601880549290931692918110611d3c57611d3c612098565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600b9182905260408120546018805491939291611d8890600190611f99565b81548110611d9857611d98612098565b60009182526020808320909101546001600160a01b031683528201929092526040019020556018805480611dce57611dce61211f565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015611e2057858101830151858201604001528201611e04565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e5857600080fd5b919050565b60008060408385031215611e7057600080fd5b611e7983611e41565b946020939093013593505050565b600080600060608486031215611e9c57600080fd5b611ea584611e41565b9250611eb360208501611e41565b9150604084013590509250925092565b600060208284031215611ed557600080fd5b61097b82611e41565b60008060408385031215611ef157600080fd5b50508035926020909101359150565b600060208284031215611f1257600080fd5b5035919050565b60008060408385031215611f2c57600080fd5b611f3583611e41565b9150611f4360208401611e41565b90509250929050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc611f83565b60208082526018908201527f4f6e6c79207468652043454f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215611ff557600080fd5b5051919050565b60006020828403121561200e57600080fd5b8151801515811461097b57600080fd5b808201808211156107fc576107fc611f83565b60008261204e57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561206857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176107fc576107fc611f83565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120fe5784516001600160a01b0316835293830193918301916001016120d9565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220811bce440d606cbe69c5a8855a63cd4c36989b6390e3466d3c9f11f4f3ff61a364736f6c63430008110033
Deployed Bytecode Sourcemap
5904:13184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8714:76;;;;;;;;;;-1:-1:-1;8783:5:0;;;;;;;;;;;;-1:-1:-1;;;8783:5:0;;;;8714:76;;;;;;;:::i;:::-;;;;;;;;9462:288;;;;;;;;;;-1:-1:-1;9462:288:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9462:288:0;1004:187:1;6893:32:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1360:32:1;;;1342:51;;1330:2;1315:18;6893:32:0;1196:203:1;8796:102:0;;;;;;;;;;;;;:::i;:::-;;;1550:25:1;;;1538:2;1523:18;8796:102:0;1404:177:1;10781:491:0;;;;;;;;;;-1:-1:-1;10781:491:0;;;;;:::i;:::-;;:::i;18064:398::-;;;;;;;;;;-1:-1:-1;18064:398:0;;;;;:::i;:::-;;:::i;8904:76::-;;;;;;;;;;-1:-1:-1;8904:76:0;;6049:2;2252:36:1;;2240:2;2225:18;8904:76:0;2110:184:1;11410:161:0;;;;;;;;;;;;;:::i;:::-;;7731:34;;;;;;;;;;;;;;;;6544:90;;;;;;;;;;;;6591:42;6544:90;;6238:41;;;;;;;;;;-1:-1:-1;6238:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9758:357;;;;;;;;;;-1:-1:-1;9758:357:0;;;;;:::i;:::-;;:::i;7406:26::-;;;;;;;;;;;;;;;;7340:57;;;;;;;;;;-1:-1:-1;7340:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17491:112;;;;;;;;;;;;;:::i;9344:106::-;;;;;;;;;;-1:-1:-1;9344:106:0;;;;;:::i;:::-;;:::i;7241:45::-;;;;;;;;;;-1:-1:-1;7241:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;6496:37;;;;;;;;;;;;;;;;9072:103;;;;;;;;;;-1:-1:-1;9072:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9155:18:0;9138:7;9155:18;;;:9;:18;;;;;;;9072:103;11579:593;;;;;;;;;;-1:-1:-1;11579:593:0;;;;;:::i;:::-;;:::i;6286:54::-;;;;;;;;;;-1:-1:-1;6286:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13090:148;;;;;;;;;;;;;:::i;8986:80::-;;;;;;;;;;-1:-1:-1;9057:7:0;;;;;;;;;;;;-1:-1:-1;;;9057:7:0;;;;8986:80;;6349:22;;;;;;;;;;;;;;;;6641:72;;;;;;;;;;;;6671:42;6641:72;;10123:482;;;;;;;;;;-1:-1:-1;10123:482:0;;;;;:::i;:::-;;:::i;10617:156::-;;;;;;;;;;-1:-1:-1;10617:156:0;;;;;:::i;:::-;;:::i;6932:22::-;;;;;;;;;;-1:-1:-1;6932:22:0;;;;;:::i;:::-;;:::i;7648:33::-;;;;;;;;;;;;;;;;7477:30;;;;;;;;;;;;;;;;13250:94;;;;;;;;;;;;;:::i;7293:40::-;;;;;;;;;;-1:-1:-1;7293:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3165:25:1;;;3221:2;3206:18;;3199:34;;;;3249:18;;;3242:34;3153:2;3138:18;7293:40:0;2963:319:1;7180:54:0;;;;;;;;;;-1:-1:-1;7180:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;13352:87;;;;;;;;;;;;;:::i;9187:145::-;;;;;;;;;;-1:-1:-1;9187:145:0;;;;;:::i;:::-;;:::i;7439:31::-;;;;;;;;;;;;;;;;7086:87;;;;;;;;;;;;7130:42;7086:87;;9462:288;9537:4;-1:-1:-1;;;;;9562:21:0;;9554:61;;;;-1:-1:-1;;;9554:61:0;;;;;;;:::i;:::-;;;;;;;;;9638:10;9626:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9626:32:0;;;;;;;;;;;;:41;;;9683:37;1550:25:1;;;9626:32:0;;9638:10;9683:37;;1523:18:1;9683:37:0;;;;;;;;-1:-1:-1;9738:4:0;9462:288;;;;;:::o;8796:102::-;6752:42;8849:7;8881:15;;;:9;:15;;;;8866:12;;:30;;8881:15;8866:30;:::i;:::-;8859:37;;8796:102;:::o;10781:491::-;-1:-1:-1;;;;;10903:19:0;;10882:4;10903:19;;;:11;:19;;;;;;;;10923:10;10903:31;;;;;;;;-1:-1:-1;;10903:52:0;10899:298;;-1:-1:-1;;;;;10980:19:0;;;;;;:11;:19;;;;;;;;11000:10;10980:31;;;;;;;;:41;-1:-1:-1;10980:41:0;10972:76;;;;-1:-1:-1;;;10972:76:0;;4596:2:1;10972:76:0;;;4578:21:1;4635:2;4615:18;;;4608:30;-1:-1:-1;;;4654:18:1;;;4647:52;4716:18;;10972:76:0;4394:346:1;10972:76:0;-1:-1:-1;;;;;11063:19:0;;;;;;:11;:19;;;;;;;;11083:10;11063:31;;;;;;;:41;;11098:6;;11063:19;:41;;11098:6;;11063:41;:::i;:::-;;;;-1:-1:-1;;;;;;;11124:61:0;;11153:19;;;;:11;:19;;;;;;;;11141:10;11153:31;;;;;;;;;;;11124:61;;1550:25:1;;;11141:10:0;;11124:61;;;1523:18:1;11124:61:0;;;;;;;10899:298;11224:40;11238:6;11246:9;11257:6;11224:13;:40::i;:::-;11217:47;;10781:491;;;;;;:::o;18064:398::-;-1:-1:-1;;;;;18205:19:0;;18133:7;18205:19;;;:6;:19;;;;;:26;18133:7;;18187:45;;:17;:45::i;:::-;-1:-1:-1;;;;;18278:19:0;;18243:32;18278:19;;;:6;:19;;;;;:33;;;18153:79;;-1:-1:-1;18325:51:0;;;18322:64;;-1:-1:-1;18385:1:0;;18064:398;-1:-1:-1;;;18064:398:0:o;18322:64::-;18404:50;18430:24;18404:23;:50;:::i;:::-;18397:57;18064:398;-1:-1:-1;;;;18064:398:0:o;11410:161::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;11480:8:::1;::::0;::::1;;11479:9;11471:18;;;::::0;::::1;;11526:36;::::0;-1:-1:-1;;;11526:36:0;;11556:4:::1;11526:36;::::0;::::1;1342:51:1::0;7130:42:0::1;::::0;11500:20:::1;::::0;6671:42:::1;::::0;7130;;11526:21:::1;::::0;1315:18:1;;11526:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11500:63;::::0;-1:-1:-1;;;;;;11500:63:0::1;::::0;;;;;;-1:-1:-1;;;;;5479:32:1;;;11500:63:0::1;::::0;::::1;5461:51:1::0;5528:18;;;5521:34;5434:18;;11500:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11410:161::o:0;9758:357::-;9838:4;-1:-1:-1;;;;;9863:21:0;;9855:61;;;;-1:-1:-1;;;9855:61:0;;;;;;;:::i;:::-;9996:10;9963:30;9973:10;9985:7;9963:9;:30::i;:::-;:43;;;;:::i;:::-;9939:10;9927:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9927:32:0;;;;;;;;;;;;:79;;;10022:63;1550:25:1;;;9927:32:0;;10022:63;;1523:18:1;10022:63:0;1404:177:1;17491:112:0;17563:1;17531:29;17549:10;17531:17;:29::i;:::-;:33;17528:67;;;17566:29;17584:10;17566:17;:29::i;:::-;17491:112::o;9344:106::-;9399:4;9413:35;9421:7;-1:-1:-1;;9413:7:0;:35::i;11579:593::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;11665:8:::1;::::0;::::1;;11664:9;11656:18;;;::::0;::::1;;11685:55;::::0;-1:-1:-1;;;11685:55:0;;6591:42:::1;11685:55;::::0;::::1;5461:51:1::0;-1:-1:-1;;5528:18:1;;;5521:34;7130:42:0::1;::::0;11685:19:::1;::::0;5434:18:1;;11685:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11803:4:0::1;11851:24;::::0;;;:9:::1;:24;::::0;;;;;6591:42:::1;::::0;11761:19:::1;::::0;6842:42:::1;::::0;11851:28:::1;::::0;11878:1:::1;::::0;11851:28:::1;:::i;:::-;11894:36;::::0;-1:-1:-1;;;11894:36:0;;11924:4:::1;11894:36;::::0;::::1;1342:51:1::0;7130:42:0::1;::::0;11894:21:::1;::::0;1315:18:1;;11894:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11761:260;::::0;-1:-1:-1;;;;;;11761:260:0::1;::::0;;;;;;-1:-1:-1;;;;;6615:15:1;;;11761:260:0::1;::::0;::::1;6597:34:1::0;6667:15;;;;6647:18;;;6640:43;6699:18;;;6692:34;6742:18;;;6735:34;11945:1:0::1;6785:19:1::0;;;6778:35;;;6829:19;;;6822:35;6671:42:0::1;6873:19:1::0;;;6866:44;11995:15:0::1;6926:19:1::0;;;6919:35;6531:19;;11761:260:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12032:8:0::1;:15:::0;;-1:-1:-1;;12032:15:0::1;12043:4;12032:15;::::0;;-1:-1:-1;12071:12:0::1;:3:::0;12077:6:::1;12071:12;:::i;:::-;12058:10;:25:::0;12108::::1;12123:10:::0;12108:12:::1;:25;:::i;:::-;12094:11;:39:::0;-1:-1:-1;;12144:13:0::1;:20:::0;;-1:-1:-1;;12144:20:0::1;;;::::0;;11579:593::o;13090:148::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13152:1:::1;13142:7;:11:::0;;;13164:4:::1;:8:::0;;;13183:3:::1;:7:::0;;;13214:16:::1;::::0;::::1;::::0;13152:1;13214:16:::1;13090:148::o:0;10123:482::-;10208:4;-1:-1:-1;;;;;10233:21:0;;10225:61;;;;-1:-1:-1;;;10225:61:0;;;;;;;:::i;:::-;10339:15;10305:30;10315:10;10327:7;10305:9;:30::i;:::-;:49;;10297:104;;;;-1:-1:-1;;;10297:104:0;;7651:2:1;10297:104:0;;;7633:21:1;7690:2;7670:18;;;7663:30;7729:34;7709:18;;;7702:62;-1:-1:-1;;;7780:18:1;;;7773:40;7830:19;;10297:104:0;7449:406:1;10297:104:0;10481:15;10448:30;10458:10;10470:7;10448:9;:30::i;:::-;:48;;;;:::i;10617:156::-;10697:4;10721:44;10735:10;10747:9;10758:6;10721:13;:44::i;6932:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6932:22:0;;-1:-1:-1;6932:22:0;:::o;13250:94::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13335:1:::1;13314:18;:22:::0;13250:94::o;13352:87::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13428:3:::1;13407:18;:24:::0;13352:87::o;9187:145::-;-1:-1:-1;;;;;9296:19:0;;;9269:7;9296:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9187:145::o;13447:559::-;-1:-1:-1;;;;;13560:17:0;;13539:4;13560:17;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;13581:20:0;;;;;;:9;:20;;;;;;;;13560:41;13556:96;;;13610:42;13626:6;13634:9;13645:6;13610:15;:42::i;:::-;13603:49;;;;13556:96;13666:13;;;;;;;13663:124;;;13690:38;13702:6;13710:9;13721:6;13690:11;:38::i;:::-;13681:47;;13663:124;;;13753:34;13761:6;13769:9;13780:6;13753:7;:34::i;:::-;13744:43;;13663:124;13798:42;13814:6;13822:9;13833:6;13798:15;:42::i;:::-;-1:-1:-1;;;;;;13855:32:0;;;;;;:24;:32;;;;;;;;13851:54;;13889:16;13898:6;13889:8;:16::i;:::-;-1:-1:-1;;;;;13920:35:0;;;;;;:24;:35;;;;;;;;13916:60;;13957:19;13966:9;13957:8;:19::i;:::-;-1:-1:-1;13994:4:0;13447:559;;;;;:::o;18470:141::-;18535:7;18588:15;;18570;;18562:5;:23;;;;:::i;:::-;:41;;;;:::i;17611:445::-;17679:14;17696:30;17714:11;17696:17;:30::i;:::-;17679:47;;17740:6;17750:1;17740:11;17737:23;;17753:7;17611:445;:::o;17737:23::-;17772:40;;-1:-1:-1;;;17772:40:0;;-1:-1:-1;;;;;5479:32:1;;17772:40:0;;;5461:51:1;5528:18;;;5521:34;;;7130:42:0;;17772:20;;5434:18:1;;17772:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17861:6;17842:16;;:25;;;;:::i;:::-;17823:16;:44;-1:-1:-1;;;;;17914:19:0;;;;;;:6;:19;;;;;:33;;;:42;;17950:6;;17914:42;:::i;:::-;-1:-1:-1;;;;;17878:19:0;;;;;;:6;:19;;;;;:33;;;:78;;;;18021:26;18003:45;;:17;:45::i;:::-;-1:-1:-1;;;;;17967:19:0;;;;;;;:6;:19;;;;;:33;;:81;;;;-1:-1:-1;17611:445:0:o;14849:481::-;14943:4;-1:-1:-1;;;;;14968:20:0;;;;;;:47;;-1:-1:-1;;;;;;14992:23:0;;;;14968:47;14960:89;;;;-1:-1:-1;;;14960:89:0;;8062:2:1;14960:89:0;;;8044:21:1;8101:2;8081:18;;;8074:30;8140:31;8120:18;;;8113:59;8189:18;;14960:89:0;7860:353:1;14960:89:0;-1:-1:-1;;;;;15078:17:0;;;;;;:9;:17;;;;;;15068:27;;;15060:72;;;;-1:-1:-1;;;15060:72:0;;8420:2:1;15060:72:0;;;8402:21:1;;;8439:18;;;8432:30;8498:34;8478:18;;;8471:62;8550:18;;15060:72:0;8218:356:1;15060:72:0;15146:6;15156:1;15146:11;15143:27;;-1:-1:-1;15166:4:0;15159:11;;15143:27;-1:-1:-1;;;;;15181:17:0;;;;;;:9;:17;;;;;:27;;15202:6;;15181:17;:27;;15202:6;;15181:27;:::i;:::-;;;;-1:-1:-1;;;;;;;15219:20:0;;;;;;:9;:20;;;;;:30;;15243:6;;15219:20;:30;;15243:6;;15219:30;:::i;:::-;;;;;;;;15282:9;-1:-1:-1;;;;;15265:35:0;15274:6;-1:-1:-1;;;;;15265:35:0;;15293:6;15265:35;;;;1550:25:1;;1538:2;1523:18;;1404:177;15265:35:0;;;;;;;;-1:-1:-1;15318:4:0;14849:481;;;;;:::o;12180:902::-;12270:7;12308:10;;12293:11;:25;;:56;;;;12338:11;;12322:12;:27;;12293:56;12290:217;;;12366:13;:21;;-1:-1:-1;;12366:21:0;;;12426:4;12382:5;12442:24;;;12366:13;12442:24;;;;;;12402:65;;12426:4;12433:7;;12402:15;:65::i;:::-;;12489:6;12482:13;;;;12290:217;12520:14;12527:6;12520;:14::i;:::-;12517:239;;;12551:44;12567:6;12575:7;12584:10;12593:1;12584:6;:10;:::i;:::-;12551:15;:44::i;:::-;-1:-1:-1;12640:4:0;12622:24;;;;:9;:24;;;;;;12613:33;;12610:102;;;12665:47;12689:4;12696:7;12705:6;12665:15;:47::i;:::-;;12610:102;12734:10;12743:1;12734:6;:10;:::i;12517:239::-;12771:17;12778:9;12771:6;:17::i;:::-;12768:279;;;12805:44;12821:6;12829:7;12838:10;12847:1;12838:6;:10;:::i;12805:44::-;-1:-1:-1;12894:4:0;12876:24;;;;:9;:24;;;;;;12867:33;;12864:102;;;12919:47;12943:4;12950:7;12959:6;12919:15;:47::i;:::-;;12864:102;12990:7;-1:-1:-1;;;;;12981:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13034:1;13027:6;:8;;;;:::i;12768:279::-;13064:10;13073:1;13064:6;:10;:::i;14014:686::-;14139:3;;-1:-1:-1;;;;;14157:33:0;;14100:7;14157:33;;;:22;:33;;;;;;14100:7;;14139:3;14157:33;;14153:132;;14268:3;14247:18;;14232:12;;:33;;;;:::i;:::-;:39;;;;:::i;:::-;-1:-1:-1;;;;;14200:20:0;;;;;;:9;:20;;;;;;:29;;14223:6;;14200:29;:::i;:::-;:71;14192:93;;;;-1:-1:-1;;;14192:93:0;;8781:2:1;14192:93:0;;;8763:21:1;8820:1;8800:18;;;8793:29;-1:-1:-1;;;8838:18:1;;;8831:39;8887:18;;14192:93:0;8579:332:1;14192:93:0;14299:3;;14306:1;14299:8;14296:26;;14316:6;14309:13;;;;;14296:26;14343:17;14383:3;14363:17;14372:8;14363:6;:17;:::i;:::-;:23;;;;:::i;:::-;14400:4;;14343:43;;-1:-1:-1;14400:8:0;14397:71;;14410:58;14426:6;6752:42;14459:8;14452:4;;14440:9;:16;;;;:::i;:::-;:27;;;;:::i;14410:58::-;;14397:71;14482:7;;:11;14479:86;;14495:70;14511:6;14527:4;14556:8;14546:7;;14534:9;:19;;;;:::i;14495:70::-;;14479:86;14607:4;14616:1;14589:24;;;:9;:24;;;;;;:28;;;;:49;;;14621:17;14628:9;14621:6;:17::i;:::-;14586:70;;;14640:16;:14;:16::i;:::-;14674:18;14683:9;14674:6;:18;:::i;:::-;14667:25;14014:686;-1:-1:-1;;;;;;14014:686:0:o;16266:1217::-;16463:19;;-1:-1:-1;;;;;16433:19:0;;;;;;:6;:19;;;;;:26;:49;16430:84;;16484:30;16502:11;16484:17;:30::i;:::-;-1:-1:-1;;;;;16574:19:0;;;;;;:6;:19;;;;;:26;:31;:94;;;;-1:-1:-1;16649:19:0;;-1:-1:-1;;;;;16623:22:0;;;;;;:9;:22;;;;;;:45;;16574:94;16557:160;;;18721:12;:19;;-1:-1:-1;;;;;18687:31:0;;;;;;:18;:31;;;;;:53;;;18751:30;;;;;;;;;;;;;-1:-1:-1;;;;;;18751:30:0;;;;;;16690:27;16817:19;;-1:-1:-1;;;;;16787:19:0;;;;;;:6;:19;;;;;:26;:49;;;;:110;;-1:-1:-1;16878:19:0;;-1:-1:-1;;;;;16853:22:0;;;;;;:9;:22;;;;;;:44;16787:110;16770:330;;;-1:-1:-1;;;;;16951:19:0;;;;;;:6;:19;;;;;:26;16937:11;;:40;;16951:26;16937:40;:::i;:::-;16923:11;:54;-1:-1:-1;;;;;16992:19:0;;17021:1;16992:19;;;:6;:19;;;;;:30;17037;16999:11;17037:17;:30::i;16770:330::-;17197:19;;-1:-1:-1;;;;;17171:22:0;;;;;;:9;:22;;;;;;:45;17168:308;;-1:-1:-1;;;;;17285:22:0;;;;;;:9;:22;;;;;;;;;17256:6;:19;;;;;;:26;17242:11;;:40;;17256:26;17242:40;:::i;:::-;:65;;;;:::i;:::-;17228:11;:79;-1:-1:-1;;;;;17347:22:0;;;;;;:9;:22;;;;;;;;;17318:6;:19;;;;;;:51;;;17419:45;;:17;:45::i;:::-;-1:-1:-1;;;;;17383:19:0;;;;;;:6;:19;;;;;:33;;:81;16266:1217;:::o;14708:133::-;14761:4;14790:7;-1:-1:-1;;;;;14781:16:0;:5;-1:-1:-1;;;;;14781:16:0;;14778:32;;-1:-1:-1;14806:4:0;;14708:133;-1:-1:-1;14708:133:0:o;14778:32::-;-1:-1:-1;14828:5:0;;14708:133;-1:-1:-1;14708:133:0:o;15338:920::-;15414:6;;15405:4;15387:24;;;;:9;:24;;;;;;:33;15384:45;;;15338:920::o;15384:45::-;15466:36;;-1:-1:-1;;;15466:36:0;;15496:4;15466:36;;;1342:51:1;7130:42:0;;15466:21;;1315:18:1;;15466:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15439:24;:63;15549:16;;;15563:1;15549:16;;;;;;;;15515:31;;15549:16;;;;;;;;;;-1:-1:-1;15549:16:0;15515:50;;15604:4;15576:14;15591:1;15576:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;15576:33:0;;;-1:-1:-1;;;;;15576:33:0;;;;;7130:42;15620:14;15635:1;15620:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15620:40:0;;;:17;;;;;;;;;;:40;15766:4;15748:24;;;;:9;:24;;;;;;;;15673:215;;-1:-1:-1;;;15673:215:0;;6591:42;;15673:60;;:215;;15748:24;;;15803:14;;15840:6;;15862:15;;15673:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15899:6;-1:-1:-1;;;;;15899:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15970:36:0;;-1:-1:-1;;;15970:36:0;;16000:4;15970:36;;;1342:51:1;15938:29:0;;-1:-1:-1;7130:42:0;;-1:-1:-1;15970:21:0;;1315:18:1;;15970:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15938:68;;16045:24;;16020:21;:49;16017:61;;16071:7;;15338:920::o;16017:61::-;16098:14;16139:24;;16115:21;:48;;;;:::i;:::-;16098:65;;16238:11;;16229:6;16211:15;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;16192:15;;:58;;;;:::i;:::-;16174:15;:76;-1:-1:-1;;;15338:920:0:o;18797:288::-;18913:12;18926:19;;:21;;18946:1;;18926:21;:::i;:::-;18913:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;18878:31:0;;;;;:18;:31;;;;;;;;18865:12;:45;;18913:35;;;;;18865:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;18865:83:0;-1:-1:-1;;;;;18865:83:0;;;;;;19017:31;;;;;:18;:31;;;;;;;;18978:12;18991:19;;19017:31;;:18;18865:45;18991:21;;-1:-1:-1;;18991:21:0;:::i;:::-;18978:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;18978:35:0;18959:55;;;;;;;;;;;;:89;19059:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;19059:18:0;;;;;-1:-1:-1;;;;;;19059:18:0;;;;;;-1:-1:-1;18797:288:0:o;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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1586:328::-;1663:6;1671;1679;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;1771:29;1790:9;1771:29;:::i;:::-;1761:39;;1819:38;1853:2;1842:9;1838:18;1819:38;:::i;:::-;1809:48;;1904:2;1893:9;1889:18;1876:32;1866:42;;1586:328;;;;;:::o;1919:186::-;1978:6;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2070:29;2089:9;2070:29;:::i;2525:248::-;2593:6;2601;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;-1:-1:-1;;2693:23:1;;;2763:2;2748:18;;;2735:32;;-1:-1:-1;2525:248:1:o;2778:180::-;2837:6;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;-1:-1:-1;2929:23:1;;2778:180;-1:-1:-1;2778:180:1:o;3287:260::-;3355:6;3363;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3503:38;3537:2;3526:9;3522:18;3503:38;:::i;:::-;3493:48;;3287:260;;;;;:::o;3773:351::-;3975:2;3957:21;;;4014:2;3994:18;;;3987:30;4053:29;4048:2;4033:18;;4026:57;4115:2;4100:18;;3773:351::o;4129:127::-;4190:10;4185:3;4181:20;4178:1;4171:31;4221:4;4218:1;4211:15;4245:4;4242:1;4235:15;4261:128;4328:9;;;4349:11;;;4346:37;;;4363:18;;:::i;4745:348::-;4947:2;4929:21;;;4986:2;4966:18;;;4959:30;5025:26;5020:2;5005:18;;4998:54;5084:2;5069:18;;4745:348::o;5098:184::-;5168:6;5221:2;5209:9;5200:7;5196:23;5192:32;5189:52;;;5237:1;5234;5227:12;5189:52;-1:-1:-1;5260:16:1;;5098:184;-1:-1:-1;5098:184:1:o;5566:277::-;5633:6;5686:2;5674:9;5665:7;5661:23;5657:32;5654:52;;;5702:1;5699;5692:12;5654:52;5734:9;5728:16;5787:5;5780:13;5773:21;5766:5;5763:32;5753:60;;5809:1;5806;5799:12;5848:125;5913:9;;;5934:10;;;5931:36;;;5947:18;;:::i;5978:217::-;6018:1;6044;6034:132;;6088:10;6083:3;6079:20;6076:1;6069:31;6123:4;6120:1;6113:15;6151:4;6148:1;6141:15;6034:132;-1:-1:-1;6180:9:1;;5978:217::o;6965:306::-;7053:6;7061;7069;7122:2;7110:9;7101:7;7097:23;7093:32;7090:52;;;7138:1;7135;7128:12;7090:52;7167:9;7161:16;7151:26;;7217:2;7206:9;7202:18;7196:25;7186:35;;7261:2;7250:9;7246:18;7240:25;7230:35;;6965:306;;;;;:::o;7276:168::-;7349:9;;;7380;;7397:15;;;7391:22;;7377:37;7367:71;;7418:18;;:::i;9048:127::-;9109:10;9104:3;9100:20;9097:1;9090:31;9140:4;9137:1;9130:15;9164:4;9161:1;9154:15;9180:980;9442:4;9490:3;9479:9;9475:19;9521:6;9510:9;9503:25;9547:2;9585:6;9580:2;9569:9;9565:18;9558:34;9628:3;9623:2;9612:9;9608:18;9601:31;9652:6;9687;9681:13;9718:6;9710;9703:22;9756:3;9745:9;9741:19;9734:26;;9795:2;9787:6;9783:15;9769:29;;9816:1;9826:195;9840:6;9837:1;9834:13;9826:195;;;9905:13;;-1:-1:-1;;;;;9901:39:1;9889:52;;9996:15;;;;9961:12;;;;9937:1;9855:9;9826:195;;;-1:-1:-1;;;;;;;10077:32:1;;;;10072:2;10057:18;;10050:60;-1:-1:-1;;;10141:3:1;10126:19;10119:35;10038:3;9180:980;-1:-1:-1;;;9180:980:1:o;10165:127::-;10226:10;10221:3;10217:20;10214:1;10207:31;10257:4;10254:1;10247:15;10281:4;10278:1;10271:15
Swarm Source
ipfs://f1cee7ca444739a01ae634dec156b50ef94fb071c2ab674213d0ffdb1c25ab12
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)