Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 21 from a total of 21 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 15651462 | 1179 days ago | IN | 0 ETH | 0.00031207 | ||||
| Approve | 15651454 | 1179 days ago | IN | 0 ETH | 0.00017475 | ||||
| Approve | 15651454 | 1179 days ago | IN | 0 ETH | 0.00023627 | ||||
| Approve | 15651450 | 1179 days ago | IN | 0 ETH | 0.00031051 | ||||
| Approve | 15651440 | 1179 days ago | IN | 0 ETH | 0.00029172 | ||||
| Approve | 15651440 | 1179 days ago | IN | 0 ETH | 0.00029172 | ||||
| Approve | 15651438 | 1179 days ago | IN | 0 ETH | 0.00031571 | ||||
| Updatelimit | 15651432 | 1179 days ago | IN | 0 ETH | 0.00018271 | ||||
| Approve | 15651432 | 1179 days ago | IN | 0 ETH | 0.00070882 | ||||
| Declare Sell Tax | 15651426 | 1179 days ago | IN | 0 ETH | 0.0110688 | ||||
| Approve | 15651422 | 1179 days ago | IN | 0 ETH | 0.00030199 | ||||
| Approve | 15651411 | 1179 days ago | IN | 0 ETH | 0.00047876 | ||||
| Approve | 15651405 | 1179 days ago | IN | 0 ETH | 0.00030659 | ||||
| Approve | 15651404 | 1179 days ago | IN | 0 ETH | 0.00026229 | ||||
| Approve | 15651403 | 1179 days ago | IN | 0 ETH | 0.00029259 | ||||
| Approve | 15651401 | 1179 days ago | IN | 0 ETH | 0.00024186 | ||||
| Approve | 15651397 | 1179 days ago | IN | 0 ETH | 0.00038155 | ||||
| Approve | 15651396 | 1179 days ago | IN | 0 ETH | 0.00141765 | ||||
| Approve | 15651396 | 1179 days ago | IN | 0 ETH | 0.00141765 | ||||
| Approve | 15651396 | 1179 days ago | IN | 0 ETH | 0.00141765 | ||||
| Approve | 15651387 | 1179 days ago | IN | 0 ETH | 0.00028492 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
KHANOFMONGOL
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-10-01
*/
/*
KHAN OF MONGOL
Low tax : 3%
What was the biggest empire in history?
Who conquered the most land ever?
Mongol leader : Genghis Khan
Genghis Khan was born Temüjin to a royal clan of the Mongols. When he was nine, his father Yesügei was poisoned and Temüjin was held captive by his former supporters. He later escaped, killed his half-brother, and began gathering supporters and manpower in his teenage years.
Website: TBA
Tg: https://t.me/khanofmongol
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.7;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
uint256 private _lockTime;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
function getOwner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function getTime() public view returns (uint256) {
return block.timestamp;
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
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);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
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 KHANOFMONGOL is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
mapping (address => uint256) _accBalances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isSniper;
mapping (address => bool) public isExcludedFromFee;
mapping (address => bool) public isWalletNoLimit;
mapping (address => bool) public isTXNoLimit;
mapping (address => bool) public isMarketPair;
string private _name = "KHAN OF MONGOL";
string private _symbol = "$KHAN";
uint8 private _decimals = 18;
uint256 private _totalSupply = 100000000 * 10**_decimals;
uint256 private minimumTokensBeforeSwap = 5000000 * 10**_decimals;
uint256 public _totalDistributionShares = 24;
uint256 public _walletMax = 3000000 * 10**_decimals;
uint256 public _maxTxAmount = 3000000 * 10**_decimals;
uint256 public _mratio = 23;
uint256 public _lratio = 1;
address payable public marketingaddress = payable(0xE34D5624B3746A16787934C5B0434584b74ce4FF);
uint256 public _MarketingFeeSell = 3;
uint256 public _LiquidityFeeSell = 0;
uint256 public _MarketingFeeBuy = 3;
uint256 public _LiquidityFeeBuy = 0;
uint256 public _finalBuyTax = 0;
uint256 public _finalSellTax = 0;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapPair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
bool public checkWalletLimit = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(
uint256 amountIn,
address[] path
);
event SwapTokensForETH(
uint256 amountIn,
address[] path
);
modifier swapIsLocked {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
_finalBuyTax = _LiquidityFeeBuy.add(_MarketingFeeBuy);
_finalSellTax = _LiquidityFeeSell.add(_MarketingFeeSell);
_totalDistributionShares = _lratio.add(_mratio);
isWalletNoLimit[owner()] = true;
isWalletNoLimit[address(uniswapPair)] = true;
isWalletNoLimit[address(this)] = true;
isTXNoLimit[owner()] = true;
isTXNoLimit[address(this)] = true;
isMarketPair[address(uniswapPair)] = true;
_accBalances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _accBalances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function minimumTokensBeforeSwapAmount() public view returns (uint256) {
return minimumTokensBeforeSwap;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function setMarketPairStatus(address account, bool newValue) public onlyOwner {
isMarketPair[account] = newValue;
}
function declareSellTax(uint256 newLiquidTax, uint256 newMarketTax) external onlyOwner() {
_LiquidityFeeSell = newLiquidTax;
_MarketingFeeSell = newMarketTax;
_finalSellTax = _LiquidityFeeSell.add(_MarketingFeeSell);
}
function declareBuyTax(uint256 newLiquidTax, uint256 newMarketTax) external onlyOwner() {
_LiquidityFeeBuy = newLiquidTax;
_MarketingFeeBuy = newMarketTax;
_finalBuyTax = _LiquidityFeeBuy.add(_MarketingFeeBuy);
}
function updatelimit(uint256 newbuylimit, uint256 newwalletlimit) external onlyOwner() {
_maxTxAmount = newbuylimit;
_walletMax = newwalletlimit;
}
function establishWalletLimitEx(address holder, bool exempt) external onlyOwner {
isWalletNoLimit[holder] = exempt;
}
function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
minimumTokensBeforeSwap = newLimit;
}
function _setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function transferToAddressETH(address payable recipient, uint256 amount) private {
recipient.transfer(amount);
}
receive() external payable {}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));return true;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!isSniper[sender], "Account is a Sniper");
if(inSwapAndLiquify)
{
return _basicTransfer(sender, recipient, amount);
}
else
{
if(!isTXNoLimit[sender] && !isTXNoLimit[recipient]) {
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
{
if(swapAndLiquifyByLimitOnly)
contractTokenBalance = minimumTokensBeforeSwap;
swapAndLiquify(contractTokenBalance);
}
_accBalances[sender] = _accBalances[sender].sub(amount, "Insufficient Balance");
uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);
if(checkWalletLimit && !isWalletNoLimit[recipient])
require(balanceOf(recipient).add(finalAmount) <= _walletMax);
_accBalances[recipient] = _accBalances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_accBalances[sender] = _accBalances[sender].sub(amount, "Insufficient Balance");
_accBalances[recipient] = _accBalances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private swapIsLocked {
uint256 tokensForLP = tAmount.mul(_lratio).div(_totalDistributionShares).div(2);
uint256 tokensForSwap = tAmount.sub(tokensForLP);
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance;
uint256 totalETHFee = _totalDistributionShares.sub(_lratio.div(2));
uint256 amountETHLiquidity = amountReceived.mul(_lratio).div(totalETHFee).div(2);
uint256 amountETHTeam = amountReceived.mul(_mratio).div(totalETHFee);
uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHTeam);
if(amountETHMarketing > 0)
transferToAddressETH(marketingaddress, amountETHMarketing);
if(amountETHTeam > 0)
transferToAddressETH(marketingaddress, amountETHTeam);
if(amountETHLiquidity > 0 && tokensForLP > 0)
addLiquidity(tokensForLP, amountETHLiquidity);
}
function swapTokensForEth(uint256 tokenAmount) public {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0,
0,
owner(),
block.timestamp
);
}
function setAntiSniper(address _account) external onlyOwner {
if (isSniper[_account]) {
isSniper[_account] = false;
} else {
isSniper[_account] = true;
}
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeAmount = 0;
if(isMarketPair[sender]) {
feeAmount = amount.mul(_finalBuyTax).div(100);
}
else if(isMarketPair[recipient]) {
feeAmount = amount.mul(_finalSellTax).div(100);
}
if(feeAmount > 0) {
_accBalances[address(this)] = _accBalances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
}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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_LiquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_LiquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lratio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mratio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"_setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidTax","type":"uint256"},{"internalType":"uint256","name":"newMarketTax","type":"uint256"}],"name":"declareBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidTax","type":"uint256"},{"internalType":"uint256","name":"newMarketTax","type":"uint256"}],"name":"declareSellTax","outputs":[],"stateMutability":"nonpayable","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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"establishWalletLimitEx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTXNoLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletNoLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingaddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setAntiSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapTokensForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newbuylimit","type":"uint256"},{"internalType":"uint256","name":"newwalletlimit","type":"uint256"}],"name":"updatelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526040518060400160405280600e81526020017f4b48414e204f46204d4f4e474f4c000000000000000000000000000000000000815250600990816200004a919062000d28565b506040518060400160405280600581526020017f244b48414e000000000000000000000000000000000000000000000000000000815250600a908162000091919062000d28565b506012600b60006101000a81548160ff021916908360ff160217905550600b60009054906101000a900460ff16600a620000cc919062000f9f565b6305f5e100620000dd919062000ff0565b600c55600b60009054906101000a900460ff16600a620000fe919062000f9f565b624c4b406200010e919062000ff0565b600d556018600e55600b60009054906101000a900460ff16600a62000134919062000f9f565b622dc6c062000144919062000ff0565b600f55600b60009054906101000a900460ff16600a62000165919062000f9f565b622dc6c062000175919062000ff0565b6010556017601155600160125573e34d5624b3746a16787934c5b0434584b74ce4ff601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003601455600060155560036016556000601755600060185560006019556001601b60156101000a81548160ff0219169083151502179055506000601b60166101000a81548160ff0219169083151502179055506001601b60176101000a81548160ff0219169083151502179055503480156200025357600080fd5b5060006200026662000a1a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000369573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038f9190620010bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041d9190620010bb565b6040518363ffffffff1660e01b81526004016200043c929190620010fe565b6020604051808303816000875af11580156200045c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004829190620010bb565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620005be62000a2260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200068560165460175462000a4b60201b62001d521790919060201c565b601881905550620006a960145460155462000a4b60201b62001d521790919060201c565b601981905550620006cd60115460125462000a4b60201b62001d521790919060201c565b600e81905550600160066000620006e962000a2260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200082262000a2260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c54600260006200095c62000a1a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009aa62000a1a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000a0b91906200113c565b60405180910390a35062001239565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000a5c919062001159565b90508381101562000aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a9b9062001217565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b3057607f821691505b60208210810362000b465762000b4562000ae8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bb07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b71565b62000bbc868362000b71565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c0962000c0362000bfd8462000bd4565b62000bde565b62000bd4565b9050919050565b6000819050919050565b62000c258362000be8565b62000c3d62000c348262000c10565b84845462000b7e565b825550505050565b600090565b62000c5462000c45565b62000c6181848462000c1a565b505050565b5b8181101562000c895762000c7d60008262000c4a565b60018101905062000c67565b5050565b601f82111562000cd85762000ca28162000b4c565b62000cad8462000b61565b8101602085101562000cbd578190505b62000cd562000ccc8562000b61565b83018262000c66565b50505b505050565b600082821c905092915050565b600062000cfd6000198460080262000cdd565b1980831691505092915050565b600062000d18838362000cea565b9150826002028217905092915050565b62000d338262000aae565b67ffffffffffffffff81111562000d4f5762000d4e62000ab9565b5b62000d5b825462000b17565b62000d6882828562000c8d565b600060209050601f83116001811462000da0576000841562000d8b578287015190505b62000d97858262000d0a565b86555062000e07565b601f19841662000db08662000b4c565b60005b8281101562000dda5784890151825560018201915060208501945060208101905062000db3565b8683101562000dfa578489015162000df6601f89168262000cea565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e9d5780860481111562000e755762000e7462000e0f565b5b600185161562000e855780820291505b808102905062000e958562000e3e565b945062000e55565b94509492505050565b60008262000eb8576001905062000f8b565b8162000ec8576000905062000f8b565b816001811462000ee1576002811462000eec5762000f22565b600191505062000f8b565b60ff84111562000f015762000f0062000e0f565b5b8360020a91508482111562000f1b5762000f1a62000e0f565b5b5062000f8b565b5060208310610133831016604e8410600b841016171562000f5c5782820a90508381111562000f565762000f5562000e0f565b5b62000f8b565b62000f6b848484600162000e4b565b9250905081840481111562000f855762000f8462000e0f565b5b81810290505b9392505050565b600060ff82169050919050565b600062000fac8262000bd4565b915062000fb98362000f92565b925062000fe87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ea6565b905092915050565b600062000ffd8262000bd4565b91506200100a8362000bd4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001046576200104562000e0f565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010838262001056565b9050919050565b620010958162001076565b8114620010a157600080fd5b50565b600081519050620010b5816200108a565b92915050565b600060208284031215620010d457620010d362001051565b5b6000620010e484828501620010a4565b91505092915050565b620010f88162001076565b82525050565b6000604082019050620011156000830185620010ed565b620011246020830184620010ed565b9392505050565b620011368162000bd4565b82525050565b60006020820190506200115360008301846200112b565b92915050565b6000620011668262000bd4565b9150620011738362000bd4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620011ab57620011aa62000e0f565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620011ff601b83620011b6565b91506200120c82620011c7565b602082019050919050565b600060208201905081810360008301526200123281620011f0565b9050919050565b613e3680620012496000396000f3fe60806040526004361061028c5760003560e01c8063807c2d9c1161015a578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e14610a33578063e0f07e3a14610a70578063f2fde38b14610a9b578063f5bc9def14610ac4578063f872858a14610aed578063fe458d8914610b1857610293565b8063a9059cbb14610921578063abdccea11461095e578063b28805f414610989578063baeb7a7d146109b2578063c816841b146109dd578063da00097d14610a0857610293565b806394faf34e1161011357806394faf34e1461081157806395d89b411461083a578063a073d37f14610865578063a08e671f14610890578063a457c2d7146108bb578063a6ce3614146108f857610293565b8063807c2d9c146106ff578063825e43c51461072a57806384141be314610767578063844d591c14610792578063893d20e8146107bb5780638da5cb5b146107e657610293565b80633b97084a116101fe5780634f9e0722116101b75780634f9e0722146105db5780635342acb414610604578063557ed1ba1461064157806370a082311461066c57806377908e04146106a95780637d1db4a5146106d457610293565b80633b97084a146104b95780633d180810146104e25780633ecad2711461051f5780633ef947211461055c5780633ff6f002146105875780634a74bb02146105b057610293565b806318160ddd1161025057806318160ddd1461039357806323b872dd146103be57806325acf340146103fb5780632fd49a1414610426578063313ce56714610451578063395093511461047c57610293565b80630540eb521461029857806306fdde03146102c3578063095ea7b3146102ee5780630f3a325f1461032b5780631694505e1461036857610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b41565b6040516102ba9190612efa565b60405180910390f35b3480156102cf57600080fd5b506102d8610b47565b6040516102e59190612fae565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061305f565b610bd9565b60405161032291906130ba565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d91906130d5565b610bf7565b60405161035f91906130ba565b60405180910390f35b34801561037457600080fd5b5061037d610c17565b60405161038a9190613161565b60405180910390f35b34801561039f57600080fd5b506103a8610c3d565b6040516103b59190612efa565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e0919061317c565b610c47565b6040516103f291906130ba565b60405180910390f35b34801561040757600080fd5b50610410610d21565b60405161041d9190612efa565b60405180910390f35b34801561043257600080fd5b5061043b610d27565b6040516104489190612efa565b60405180910390f35b34801561045d57600080fd5b50610466610d2d565b60405161047391906131eb565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e919061305f565b610d44565b6040516104b091906130ba565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613206565b610df7565b005b3480156104ee57600080fd5b50610509600480360381019061050491906130d5565b610e96565b60405161051691906130ba565b60405180910390f35b34801561052b57600080fd5b50610546600480360381019061054191906130d5565b610eb6565b60405161055391906130ba565b60405180910390f35b34801561056857600080fd5b50610571610ed6565b60405161057e9190612efa565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a9919061325f565b610edc565b005b3480156105bc57600080fd5b506105c5610fcc565b6040516105d291906130ba565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd919061329f565b610fdf565b005b34801561061057600080fd5b5061062b600480360381019061062691906130d5565b6110a3565b60405161063891906130ba565b60405180910390f35b34801561064d57600080fd5b506106566110c3565b6040516106639190612efa565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906130d5565b6110cb565b6040516106a09190612efa565b60405180910390f35b3480156106b557600080fd5b506106be611114565b6040516106cb9190612efa565b60405180910390f35b3480156106e057600080fd5b506106e961111a565b6040516106f69190612efa565b60405180910390f35b34801561070b57600080fd5b50610714611120565b6040516107219190612efa565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906130d5565b611126565b60405161075e91906130ba565b60405180910390f35b34801561077357600080fd5b5061077c611146565b6040516107899190612efa565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b4919061325f565b61114c565b005b3480156107c757600080fd5b506107d061123c565b6040516107dd91906132ee565b60405180910390f35b3480156107f257600080fd5b506107fb611265565b60405161080891906132ee565b60405180910390f35b34801561081d57600080fd5b5061083860048036038101906108339190613309565b61128e565b005b34801561084657600080fd5b5061084f611377565b60405161085c9190612fae565b60405180910390f35b34801561087157600080fd5b5061087a611409565b6040516108879190612efa565b60405180910390f35b34801561089c57600080fd5b506108a5611413565b6040516108b29190612efa565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd919061305f565b611419565b6040516108ef91906130ba565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a919061329f565b6114e6565b005b34801561092d57600080fd5b506109486004803603810190610943919061305f565b6115aa565b60405161095591906130ba565b60405180910390f35b34801561096a57600080fd5b506109736115c9565b6040516109809190612efa565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613206565b6115cf565b005b3480156109be57600080fd5b506109c761184b565b6040516109d49190612efa565b60405180910390f35b3480156109e957600080fd5b506109f2611851565b6040516109ff91906132ee565b60405180910390f35b348015610a1457600080fd5b50610a1d611877565b604051610a2a91906130ba565b60405180910390f35b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613336565b61188a565b604051610a679190612efa565b60405180910390f35b348015610a7c57600080fd5b50610a85611911565b604051610a929190613397565b60405180910390f35b348015610aa757600080fd5b50610ac26004803603810190610abd91906130d5565b611937565b005b348015610ad057600080fd5b50610aeb6004803603810190610ae6919061329f565b611af8565b005b348015610af957600080fd5b50610b02611b9f565b604051610b0f91906130ba565b60405180910390f35b348015610b2457600080fd5b50610b3f6004803603810190610b3a91906130d5565b611bb2565b005b60165481565b606060098054610b56906133e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b82906133e1565b8015610bcf5780601f10610ba457610100808354040283529160200191610bcf565b820191906000526020600020905b815481529060010190602001808311610bb257829003601f168201915b5050505050905090565b6000610bed610be6611db0565b8484611db8565b6001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b6000610c54848484611f81565b50610d1684610c61611db0565b610d1185604051806060016040528060288152602001613db460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc7611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b611db8565b600190509392505050565b60145481565b60175481565b6000600b60009054906101000a900460ff16905090565b6000610ded610d51611db0565b84610de88560036000610d62611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b611db8565b6001905092915050565b610dff611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e839061345e565b60405180910390fd5b80600d8190555050565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60195481565b610ee4611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f689061345e565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60159054906101000a900460ff1681565b610fe7611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b9061345e565b60405180910390fd5b8160158190555080601481905550611099601454601554611d5290919063ffffffff16565b6019819055505050565b60056020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60125481565b60105481565b600f5481565b60066020528060005260406000206000915054906101000a900460ff1681565b60155481565b611154611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d89061345e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611296611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a9061345e565b60405180910390fd5b80601b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161136c91906130ba565b60405180910390a150565b6060600a8054611386906133e1565b80601f01602080910402602001604051908101604052809291908181526020018280546113b2906133e1565b80156113ff5780601f106113d4576101008083540402835291602001916113ff565b820191906000526020600020905b8154815290600101906020018083116113e257829003601f168201915b5050505050905090565b6000600d54905090565b600e5481565b60006114dc611426611db0565b846114d785604051806060016040528060258152602001613ddc6025913960036000611450611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b611db8565b6001905092915050565b6114ee611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115729061345e565b60405180910390fd5b81601781905550806016819055506115a0601654601754611d5290919063ffffffff16565b6018819055505050565b60006115be6115b7611db0565b8484611f81565b506001905092915050565b60115481565b6000600267ffffffffffffffff8111156115ec576115eb61347e565b5b60405190808252806020026020018201604052801561161a5781602001602082028036833780820191505090505b5090503081600081518110611632576116316134ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd91906134f1565b81600181518110611711576117106134ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177830601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611db8565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117dc959493929190613617565b600060405180830381600087803b1580156117f657600080fd5b505af115801561180a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161183f929190613671565b60405180910390a15050565b60185481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60169054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61193f611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c39061345e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613713565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b00611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b849061345e565b60405180910390fd5b8160108190555080600f819055505050565b601b60179054906101000a900460ff1681565b611bba611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061345e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cf6576000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d4f565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6000808284611d619190613762565b905083811015611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613804565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e90613896565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8d90613928565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f749190612efa565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe8906139ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613a4c565b60405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e490613ab8565b60405180910390fd5b601b60149054906101000a900460ff16156121145761210d848484612655565b90506125ea565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b85750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220357601054821115612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f990613b4a565b60405180910390fd5b5b600061220e306110cb565b90506000600d5482101590508080156122345750601b60149054906101000a900460ff16155b801561228a5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122a25750601b60159054906101000a900460ff165b156122cc57601b60169054906101000a900460ff16156122c257600d5491505b6122cb82612828565b5b612355846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061243b5750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244f5761244a878787612a19565b612451565b845b9050601b60179054906101000a900460ff1680156124b95750600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124e857600f546124dc826124ce896110cb565b611d5290919063ffffffff16565b11156124e757600080fd5b5b61253a81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125da9190612efa565b60405180910390a3600193505050505b9392505050565b6000838311158290612639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126309190612fae565b60405180910390fd5b50600083856126489190613b6a565b9050809150509392505050565b60006126e0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277582600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128159190612efa565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff02191690831515021790555060006128816002612873600e5461286560125487612c4090919063ffffffff16565b612cba90919063ffffffff16565b612cba90919063ffffffff16565b905060006128988284612d0490919063ffffffff16565b90506128a3816115cf565b600047905060006128d46128c36002601254612cba90919063ffffffff16565b600e54612d0490919063ffffffff16565b905060006129126002612904846128f660125488612c4090919063ffffffff16565b612cba90919063ffffffff16565b612cba90919063ffffffff16565b9050600061293d8361292f60115487612c4090919063ffffffff16565b612cba90919063ffffffff16565b90506000612966826129588588612d0490919063ffffffff16565b612d0490919063ffffffff16565b9050600081111561299e5761299d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d4e565b5b60008211156129d4576129d3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612d4e565b5b6000831180156129e45750600087115b156129f4576129f38784612d99565b5b505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612aa157612a9a6064612a8c60185486612c4090919063ffffffff16565b612cba90919063ffffffff16565b9050612b1f565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b1e57612b1b6064612b0d60195486612c4090919063ffffffff16565b612cba90919063ffffffff16565b90505b5b6000811115612c2357612b7a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1a9190612efa565b60405180910390a35b612c368184612d0490919063ffffffff16565b9150509392505050565b6000808303612c525760009050612cb4565b60008284612c609190613b9e565b9050828482612c6f9190613c27565b14612caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca690613cca565b60405180910390fd5b809150505b92915050565b6000612cfc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e7e565b905092915050565b6000612d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125f1565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d94573d6000803e3d6000fd5b505050565b612dc630601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611db8565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612e12611265565b426040518863ffffffff1660e01b8152600401612e3496959493929190613cea565b60606040518083038185885af1158015612e52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e779190613d60565b5050505050565b60008083118290612ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebc9190612fae565b60405180910390fd5b5060008385612ed49190613c27565b9050809150509392505050565b6000819050919050565b612ef481612ee1565b82525050565b6000602082019050612f0f6000830184612eeb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f4f578082015181840152602081019050612f34565b83811115612f5e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f8082612f15565b612f8a8185612f20565b9350612f9a818560208601612f31565b612fa381612f64565b840191505092915050565b60006020820190508181036000830152612fc88184612f75565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300082612fd5565b9050919050565b61301081612ff5565b811461301b57600080fd5b50565b60008135905061302d81613007565b92915050565b61303c81612ee1565b811461304757600080fd5b50565b60008135905061305981613033565b92915050565b6000806040838503121561307657613075612fd0565b5b60006130848582860161301e565b92505060206130958582860161304a565b9150509250929050565b60008115159050919050565b6130b48161309f565b82525050565b60006020820190506130cf60008301846130ab565b92915050565b6000602082840312156130eb576130ea612fd0565b5b60006130f98482850161301e565b91505092915050565b6000819050919050565b600061312761312261311d84612fd5565b613102565b612fd5565b9050919050565b60006131398261310c565b9050919050565b600061314b8261312e565b9050919050565b61315b81613140565b82525050565b60006020820190506131766000830184613152565b92915050565b60008060006060848603121561319557613194612fd0565b5b60006131a38682870161301e565b93505060206131b48682870161301e565b92505060406131c58682870161304a565b9150509250925092565b600060ff82169050919050565b6131e5816131cf565b82525050565b600060208201905061320060008301846131dc565b92915050565b60006020828403121561321c5761321b612fd0565b5b600061322a8482850161304a565b91505092915050565b61323c8161309f565b811461324757600080fd5b50565b60008135905061325981613233565b92915050565b6000806040838503121561327657613275612fd0565b5b60006132848582860161301e565b92505060206132958582860161324a565b9150509250929050565b600080604083850312156132b6576132b5612fd0565b5b60006132c48582860161304a565b92505060206132d58582860161304a565b9150509250929050565b6132e881612ff5565b82525050565b600060208201905061330360008301846132df565b92915050565b60006020828403121561331f5761331e612fd0565b5b600061332d8482850161324a565b91505092915050565b6000806040838503121561334d5761334c612fd0565b5b600061335b8582860161301e565b925050602061336c8582860161301e565b9150509250929050565b600061338182612fd5565b9050919050565b61339181613376565b82525050565b60006020820190506133ac6000830184613388565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133f957607f821691505b60208210810361340c5761340b6133b2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613448602083612f20565b915061345382613412565b602082019050919050565b600060208201905081810360008301526134778161343b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506134eb81613007565b92915050565b60006020828403121561350757613506612fd0565b5b6000613515848285016134dc565b91505092915050565b6000819050919050565b600061354361353e6135398461351e565b613102565b612ee1565b9050919050565b61355381613528565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358e81612ff5565b82525050565b60006135a08383613585565b60208301905092915050565b6000602082019050919050565b60006135c482613559565b6135ce8185613564565b93506135d983613575565b8060005b8381101561360a5781516135f18882613594565b97506135fc836135ac565b9250506001810190506135dd565b5085935050505092915050565b600060a08201905061362c6000830188612eeb565b613639602083018761354a565b818103604083015261364b81866135b9565b905061365a60608301856132df565b6136676080830184612eeb565b9695505050505050565b60006040820190506136866000830185612eeb565b818103602083015261369881846135b9565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136fd602683612f20565b9150613708826136a1565b604082019050919050565b6000602082019050818103600083015261372c816136f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061376d82612ee1565b915061377883612ee1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137ad576137ac613733565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ee601b83612f20565b91506137f9826137b8565b602082019050919050565b6000602082019050818103600083015261381d816137e1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613880602483612f20565b915061388b82613824565b604082019050919050565b600060208201905081810360008301526138af81613873565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613912602283612f20565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139a4602583612f20565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a36602383612f20565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f4163636f756e74206973206120536e6970657200000000000000000000000000600082015250565b6000613aa2601383612f20565b9150613aad82613a6c565b602082019050919050565b60006020820190508181036000830152613ad181613a95565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613b34602883612f20565b9150613b3f82613ad8565b604082019050919050565b60006020820190508181036000830152613b6381613b27565b9050919050565b6000613b7582612ee1565b9150613b8083612ee1565b925082821015613b9357613b92613733565b5b828203905092915050565b6000613ba982612ee1565b9150613bb483612ee1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bed57613bec613733565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c3282612ee1565b9150613c3d83612ee1565b925082613c4d57613c4c613bf8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb4602183612f20565b9150613cbf82613c58565b604082019050919050565b60006020820190508181036000830152613ce381613ca7565b9050919050565b600060c082019050613cff60008301896132df565b613d0c6020830188612eeb565b613d19604083018761354a565b613d26606083018661354a565b613d3360808301856132df565b613d4060a0830184612eeb565b979650505050505050565b600081519050613d5a81613033565b92915050565b600080600060608486031215613d7957613d78612fd0565b5b6000613d8786828701613d4b565b9350506020613d9886828701613d4b565b9250506040613da986828701613d4b565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207cd5b24a93170ecd570d226e5d30ac3595a7319d6915fd631e3b2e2842dd82e264736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063807c2d9c1161015a578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e14610a33578063e0f07e3a14610a70578063f2fde38b14610a9b578063f5bc9def14610ac4578063f872858a14610aed578063fe458d8914610b1857610293565b8063a9059cbb14610921578063abdccea11461095e578063b28805f414610989578063baeb7a7d146109b2578063c816841b146109dd578063da00097d14610a0857610293565b806394faf34e1161011357806394faf34e1461081157806395d89b411461083a578063a073d37f14610865578063a08e671f14610890578063a457c2d7146108bb578063a6ce3614146108f857610293565b8063807c2d9c146106ff578063825e43c51461072a57806384141be314610767578063844d591c14610792578063893d20e8146107bb5780638da5cb5b146107e657610293565b80633b97084a116101fe5780634f9e0722116101b75780634f9e0722146105db5780635342acb414610604578063557ed1ba1461064157806370a082311461066c57806377908e04146106a95780637d1db4a5146106d457610293565b80633b97084a146104b95780633d180810146104e25780633ecad2711461051f5780633ef947211461055c5780633ff6f002146105875780634a74bb02146105b057610293565b806318160ddd1161025057806318160ddd1461039357806323b872dd146103be57806325acf340146103fb5780632fd49a1414610426578063313ce56714610451578063395093511461047c57610293565b80630540eb521461029857806306fdde03146102c3578063095ea7b3146102ee5780630f3a325f1461032b5780631694505e1461036857610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b41565b6040516102ba9190612efa565b60405180910390f35b3480156102cf57600080fd5b506102d8610b47565b6040516102e59190612fae565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061305f565b610bd9565b60405161032291906130ba565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d91906130d5565b610bf7565b60405161035f91906130ba565b60405180910390f35b34801561037457600080fd5b5061037d610c17565b60405161038a9190613161565b60405180910390f35b34801561039f57600080fd5b506103a8610c3d565b6040516103b59190612efa565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e0919061317c565b610c47565b6040516103f291906130ba565b60405180910390f35b34801561040757600080fd5b50610410610d21565b60405161041d9190612efa565b60405180910390f35b34801561043257600080fd5b5061043b610d27565b6040516104489190612efa565b60405180910390f35b34801561045d57600080fd5b50610466610d2d565b60405161047391906131eb565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e919061305f565b610d44565b6040516104b091906130ba565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613206565b610df7565b005b3480156104ee57600080fd5b50610509600480360381019061050491906130d5565b610e96565b60405161051691906130ba565b60405180910390f35b34801561052b57600080fd5b50610546600480360381019061054191906130d5565b610eb6565b60405161055391906130ba565b60405180910390f35b34801561056857600080fd5b50610571610ed6565b60405161057e9190612efa565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a9919061325f565b610edc565b005b3480156105bc57600080fd5b506105c5610fcc565b6040516105d291906130ba565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd919061329f565b610fdf565b005b34801561061057600080fd5b5061062b600480360381019061062691906130d5565b6110a3565b60405161063891906130ba565b60405180910390f35b34801561064d57600080fd5b506106566110c3565b6040516106639190612efa565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906130d5565b6110cb565b6040516106a09190612efa565b60405180910390f35b3480156106b557600080fd5b506106be611114565b6040516106cb9190612efa565b60405180910390f35b3480156106e057600080fd5b506106e961111a565b6040516106f69190612efa565b60405180910390f35b34801561070b57600080fd5b50610714611120565b6040516107219190612efa565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906130d5565b611126565b60405161075e91906130ba565b60405180910390f35b34801561077357600080fd5b5061077c611146565b6040516107899190612efa565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b4919061325f565b61114c565b005b3480156107c757600080fd5b506107d061123c565b6040516107dd91906132ee565b60405180910390f35b3480156107f257600080fd5b506107fb611265565b60405161080891906132ee565b60405180910390f35b34801561081d57600080fd5b5061083860048036038101906108339190613309565b61128e565b005b34801561084657600080fd5b5061084f611377565b60405161085c9190612fae565b60405180910390f35b34801561087157600080fd5b5061087a611409565b6040516108879190612efa565b60405180910390f35b34801561089c57600080fd5b506108a5611413565b6040516108b29190612efa565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd919061305f565b611419565b6040516108ef91906130ba565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a919061329f565b6114e6565b005b34801561092d57600080fd5b506109486004803603810190610943919061305f565b6115aa565b60405161095591906130ba565b60405180910390f35b34801561096a57600080fd5b506109736115c9565b6040516109809190612efa565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613206565b6115cf565b005b3480156109be57600080fd5b506109c761184b565b6040516109d49190612efa565b60405180910390f35b3480156109e957600080fd5b506109f2611851565b6040516109ff91906132ee565b60405180910390f35b348015610a1457600080fd5b50610a1d611877565b604051610a2a91906130ba565b60405180910390f35b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613336565b61188a565b604051610a679190612efa565b60405180910390f35b348015610a7c57600080fd5b50610a85611911565b604051610a929190613397565b60405180910390f35b348015610aa757600080fd5b50610ac26004803603810190610abd91906130d5565b611937565b005b348015610ad057600080fd5b50610aeb6004803603810190610ae6919061329f565b611af8565b005b348015610af957600080fd5b50610b02611b9f565b604051610b0f91906130ba565b60405180910390f35b348015610b2457600080fd5b50610b3f6004803603810190610b3a91906130d5565b611bb2565b005b60165481565b606060098054610b56906133e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b82906133e1565b8015610bcf5780601f10610ba457610100808354040283529160200191610bcf565b820191906000526020600020905b815481529060010190602001808311610bb257829003601f168201915b5050505050905090565b6000610bed610be6611db0565b8484611db8565b6001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b6000610c54848484611f81565b50610d1684610c61611db0565b610d1185604051806060016040528060288152602001613db460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc7611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b611db8565b600190509392505050565b60145481565b60175481565b6000600b60009054906101000a900460ff16905090565b6000610ded610d51611db0565b84610de88560036000610d62611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b611db8565b6001905092915050565b610dff611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e839061345e565b60405180910390fd5b80600d8190555050565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60195481565b610ee4611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f689061345e565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60159054906101000a900460ff1681565b610fe7611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b9061345e565b60405180910390fd5b8160158190555080601481905550611099601454601554611d5290919063ffffffff16565b6019819055505050565b60056020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60125481565b60105481565b600f5481565b60066020528060005260406000206000915054906101000a900460ff1681565b60155481565b611154611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d89061345e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611296611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a9061345e565b60405180910390fd5b80601b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161136c91906130ba565b60405180910390a150565b6060600a8054611386906133e1565b80601f01602080910402602001604051908101604052809291908181526020018280546113b2906133e1565b80156113ff5780601f106113d4576101008083540402835291602001916113ff565b820191906000526020600020905b8154815290600101906020018083116113e257829003601f168201915b5050505050905090565b6000600d54905090565b600e5481565b60006114dc611426611db0565b846114d785604051806060016040528060258152602001613ddc6025913960036000611450611db0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b611db8565b6001905092915050565b6114ee611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115729061345e565b60405180910390fd5b81601781905550806016819055506115a0601654601754611d5290919063ffffffff16565b6018819055505050565b60006115be6115b7611db0565b8484611f81565b506001905092915050565b60115481565b6000600267ffffffffffffffff8111156115ec576115eb61347e565b5b60405190808252806020026020018201604052801561161a5781602001602082028036833780820191505090505b5090503081600081518110611632576116316134ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd91906134f1565b81600181518110611711576117106134ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177830601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611db8565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117dc959493929190613617565b600060405180830381600087803b1580156117f657600080fd5b505af115801561180a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161183f929190613671565b60405180910390a15050565b60185481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60169054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61193f611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c39061345e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613713565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b00611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b849061345e565b60405180910390fd5b8160108190555080600f819055505050565b601b60179054906101000a900460ff1681565b611bba611db0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061345e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cf6576000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d4f565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6000808284611d619190613762565b905083811015611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613804565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e90613896565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8d90613928565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f749190612efa565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe8906139ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613a4c565b60405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e490613ab8565b60405180910390fd5b601b60149054906101000a900460ff16156121145761210d848484612655565b90506125ea565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b85750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220357601054821115612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f990613b4a565b60405180910390fd5b5b600061220e306110cb565b90506000600d5482101590508080156122345750601b60149054906101000a900460ff16155b801561228a5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122a25750601b60159054906101000a900460ff165b156122cc57601b60169054906101000a900460ff16156122c257600d5491505b6122cb82612828565b5b612355846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061243b5750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244f5761244a878787612a19565b612451565b845b9050601b60179054906101000a900460ff1680156124b95750600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124e857600f546124dc826124ce896110cb565b611d5290919063ffffffff16565b11156124e757600080fd5b5b61253a81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125da9190612efa565b60405180910390a3600193505050505b9392505050565b6000838311158290612639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126309190612fae565b60405180910390fd5b50600083856126489190613b6a565b9050809150509392505050565b60006126e0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f19092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277582600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128159190612efa565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff02191690831515021790555060006128816002612873600e5461286560125487612c4090919063ffffffff16565b612cba90919063ffffffff16565b612cba90919063ffffffff16565b905060006128988284612d0490919063ffffffff16565b90506128a3816115cf565b600047905060006128d46128c36002601254612cba90919063ffffffff16565b600e54612d0490919063ffffffff16565b905060006129126002612904846128f660125488612c4090919063ffffffff16565b612cba90919063ffffffff16565b612cba90919063ffffffff16565b9050600061293d8361292f60115487612c4090919063ffffffff16565b612cba90919063ffffffff16565b90506000612966826129588588612d0490919063ffffffff16565b612d0490919063ffffffff16565b9050600081111561299e5761299d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d4e565b5b60008211156129d4576129d3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612d4e565b5b6000831180156129e45750600087115b156129f4576129f38784612d99565b5b505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612aa157612a9a6064612a8c60185486612c4090919063ffffffff16565b612cba90919063ffffffff16565b9050612b1f565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b1e57612b1b6064612b0d60195486612c4090919063ffffffff16565b612cba90919063ffffffff16565b90505b5b6000811115612c2357612b7a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1a9190612efa565b60405180910390a35b612c368184612d0490919063ffffffff16565b9150509392505050565b6000808303612c525760009050612cb4565b60008284612c609190613b9e565b9050828482612c6f9190613c27565b14612caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca690613cca565b60405180910390fd5b809150505b92915050565b6000612cfc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e7e565b905092915050565b6000612d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125f1565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d94573d6000803e3d6000fd5b505050565b612dc630601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611db8565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612e12611265565b426040518863ffffffff1660e01b8152600401612e3496959493929190613cea565b60606040518083038185885af1158015612e52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e779190613d60565b5050505050565b60008083118290612ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebc9190612fae565b60405180910390fd5b5060008385612ed49190613c27565b9050809150509392505050565b6000819050919050565b612ef481612ee1565b82525050565b6000602082019050612f0f6000830184612eeb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f4f578082015181840152602081019050612f34565b83811115612f5e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f8082612f15565b612f8a8185612f20565b9350612f9a818560208601612f31565b612fa381612f64565b840191505092915050565b60006020820190508181036000830152612fc88184612f75565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300082612fd5565b9050919050565b61301081612ff5565b811461301b57600080fd5b50565b60008135905061302d81613007565b92915050565b61303c81612ee1565b811461304757600080fd5b50565b60008135905061305981613033565b92915050565b6000806040838503121561307657613075612fd0565b5b60006130848582860161301e565b92505060206130958582860161304a565b9150509250929050565b60008115159050919050565b6130b48161309f565b82525050565b60006020820190506130cf60008301846130ab565b92915050565b6000602082840312156130eb576130ea612fd0565b5b60006130f98482850161301e565b91505092915050565b6000819050919050565b600061312761312261311d84612fd5565b613102565b612fd5565b9050919050565b60006131398261310c565b9050919050565b600061314b8261312e565b9050919050565b61315b81613140565b82525050565b60006020820190506131766000830184613152565b92915050565b60008060006060848603121561319557613194612fd0565b5b60006131a38682870161301e565b93505060206131b48682870161301e565b92505060406131c58682870161304a565b9150509250925092565b600060ff82169050919050565b6131e5816131cf565b82525050565b600060208201905061320060008301846131dc565b92915050565b60006020828403121561321c5761321b612fd0565b5b600061322a8482850161304a565b91505092915050565b61323c8161309f565b811461324757600080fd5b50565b60008135905061325981613233565b92915050565b6000806040838503121561327657613275612fd0565b5b60006132848582860161301e565b92505060206132958582860161324a565b9150509250929050565b600080604083850312156132b6576132b5612fd0565b5b60006132c48582860161304a565b92505060206132d58582860161304a565b9150509250929050565b6132e881612ff5565b82525050565b600060208201905061330360008301846132df565b92915050565b60006020828403121561331f5761331e612fd0565b5b600061332d8482850161324a565b91505092915050565b6000806040838503121561334d5761334c612fd0565b5b600061335b8582860161301e565b925050602061336c8582860161301e565b9150509250929050565b600061338182612fd5565b9050919050565b61339181613376565b82525050565b60006020820190506133ac6000830184613388565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133f957607f821691505b60208210810361340c5761340b6133b2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613448602083612f20565b915061345382613412565b602082019050919050565b600060208201905081810360008301526134778161343b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506134eb81613007565b92915050565b60006020828403121561350757613506612fd0565b5b6000613515848285016134dc565b91505092915050565b6000819050919050565b600061354361353e6135398461351e565b613102565b612ee1565b9050919050565b61355381613528565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358e81612ff5565b82525050565b60006135a08383613585565b60208301905092915050565b6000602082019050919050565b60006135c482613559565b6135ce8185613564565b93506135d983613575565b8060005b8381101561360a5781516135f18882613594565b97506135fc836135ac565b9250506001810190506135dd565b5085935050505092915050565b600060a08201905061362c6000830188612eeb565b613639602083018761354a565b818103604083015261364b81866135b9565b905061365a60608301856132df565b6136676080830184612eeb565b9695505050505050565b60006040820190506136866000830185612eeb565b818103602083015261369881846135b9565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136fd602683612f20565b9150613708826136a1565b604082019050919050565b6000602082019050818103600083015261372c816136f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061376d82612ee1565b915061377883612ee1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137ad576137ac613733565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ee601b83612f20565b91506137f9826137b8565b602082019050919050565b6000602082019050818103600083015261381d816137e1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613880602483612f20565b915061388b82613824565b604082019050919050565b600060208201905081810360008301526138af81613873565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613912602283612f20565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139a4602583612f20565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a36602383612f20565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f4163636f756e74206973206120536e6970657200000000000000000000000000600082015250565b6000613aa2601383612f20565b9150613aad82613a6c565b602082019050919050565b60006020820190508181036000830152613ad181613a95565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613b34602883612f20565b9150613b3f82613ad8565b604082019050919050565b60006020820190508181036000830152613b6381613b27565b9050919050565b6000613b7582612ee1565b9150613b8083612ee1565b925082821015613b9357613b92613733565b5b828203905092915050565b6000613ba982612ee1565b9150613bb483612ee1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bed57613bec613733565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c3282612ee1565b9150613c3d83612ee1565b925082613c4d57613c4c613bf8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb4602183612f20565b9150613cbf82613c58565b604082019050919050565b60006020820190508181036000830152613ce381613ca7565b9050919050565b600060c082019050613cff60008301896132df565b613d0c6020830188612eeb565b613d19604083018761354a565b613d26606083018661354a565b613d3360808301856132df565b613d4060a0830184612eeb565b979650505050505050565b600081519050613d5a81613033565b92915050565b600080600060608486031215613d7957613d78612fd0565b5b6000613d8786828701613d4b565b9350506020613d9886828701613d4b565b9250506040613da986828701613d4b565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207cd5b24a93170ecd570d226e5d30ac3595a7319d6915fd631e3b2e2842dd82e264736f6c634300080f0033
Deployed Bytecode Sourcemap
14500:11722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15707:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17725:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19022:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15870;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18002:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21153:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15621:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15749:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17816:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18391:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20498:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14910:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14961:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15829:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20359:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15985:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19671:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14798:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6569:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18110:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15484:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15388:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15328:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14855:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15664:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19534:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6095:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20630:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17907:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18894:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15277:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18617:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19929:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20985:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15450:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24511:521;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15791:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15918:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16032:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18240:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15519:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6313:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20181:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16084:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25412:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15707:35;;;;:::o;17725:83::-;17762:13;17795:5;17788:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17725:83;:::o;19022:161::-;19097:4;19114:39;19123:12;:10;:12::i;:::-;19137:7;19146:6;19114:8;:39::i;:::-;19171:4;19164:11;;19022:161;;;;:::o;14750:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;15870:::-;;;;;;;;;;;;;:::o;18002:100::-;18055:7;18082:12;;18075:19;;18002:100;:::o;21153:303::-;21251:4;21268:36;21278:6;21286:9;21297:6;21268:9;:36::i;:::-;;21315:121;21324:6;21332:12;:10;:12::i;:::-;21346:89;21384:6;21346:89;;;;;;;;;;;;;;;;;:11;:19;21358:6;21346:19;;;;;;;;;;;;;;;:33;21366:12;:10;:12::i;:::-;21346:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21315:8;:121::i;:::-;21444:4;21437:11;;21153:303;;;;;:::o;15621:36::-;;;;:::o;15749:35::-;;;;:::o;17816:83::-;17857:5;17882:9;;;;;;;;;;;17875:16;;17816:83;:::o;18391:218::-;18479:4;18496:83;18505:12;:10;:12::i;:::-;18519:7;18528:50;18567:10;18528:11;:25;18540:12;:10;:12::i;:::-;18528:25;;;;;;;;;;;;;;;:34;18554:7;18528:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18496:8;:83::i;:::-;18597:4;18590:11;;18391:218;;;;:::o;20498:124::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20606:8:::1;20580:23;:34;;;;20498:124:::0;:::o;14910:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;14961:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15829:32::-;;;;:::o;20359:131::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20476:6:::1;20450:15;:23;20466:6;20450:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20359:131:::0;;:::o;15985:40::-;;;;;;;;;;;;;:::o;19671:250::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19791:12:::1;19771:17;:32;;;;19834:12;19814:17;:32;;;;19873:40;19895:17;;19873;;:21;;:40;;;;:::i;:::-;19857:13;:56;;;;19671:250:::0;;:::o;14798:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6569:90::-;6609:7;6636:15;6629:22;;6569:90;:::o;18110:122::-;18176:7;18203:12;:21;18216:7;18203:21;;;;;;;;;;;;;;;;18196:28;;18110:122;;;:::o;15484:26::-;;;;:::o;15388:53::-;;;;:::o;15328:51::-;;;;:::o;14855:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;15664:36::-;;;;:::o;19534:129::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19647:8:::1;19623:12;:21;19636:7;19623:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19534:129:::0;;:::o;6095:82::-;6136:7;6163:6;;;;;;;;;;;6156:13;;6095:82;:::o;6001:79::-;6039:7;6066:6;;;;;;;;;;;6059:13;;6001:79;:::o;20630:172::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20732:8:::1;20708:21;;:32;;;;;;;;;;;;;;;;;;20756:38;20785:8;20756:38;;;;;;:::i;:::-;;;;;;;;20630:172:::0;:::o;17907:87::-;17946:13;17979:7;17972:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17907:87;:::o;18894:120::-;18956:7;18983:23;;18976:30;;18894:120;:::o;15277:44::-;;;;:::o;18617:269::-;18710:4;18727:129;18736:12;:10;:12::i;:::-;18750:7;18759:96;18798:15;18759:96;;;;;;;;;;;;;;;;;:11;:25;18771:12;:10;:12::i;:::-;18759:25;;;;;;;;;;;;;;;:34;18785:7;18759:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18727:8;:129::i;:::-;18874:4;18867:11;;18617:269;;;;:::o;19929:244::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20047:12:::1;20028:16;:31;;;;20089:12;20070:16;:31;;;;20127:38;20148:16;;20127;;:20;;:38;;;;:::i;:::-;20112:12;:53;;;;19929:244:::0;;:::o;20985:157::-;21063:4;21080:42;21090:12;:10;:12::i;:::-;21104:9;21115:6;21080:9;:42::i;:::-;;21130:4;21123:11;;20985:157;;;;:::o;15450:27::-;;;;:::o;24511:521::-;24576:21;24614:1;24600:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24576:40;;24645:4;24627;24632:1;24627:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24671:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24661:4;24666:1;24661:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24704:62;24721:4;24736:15;;;;;;;;;;;24754:11;24704:8;:62::i;:::-;24777:15;;;;;;;;;;;:66;;;24858:11;24884:1;24900:4;24927;24947:15;24777:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24989:35;25006:11;25019:4;24989:35;;;;;;;:::i;:::-;;;;;;;;24565:467;24511:521;:::o;15791:31::-;;;;:::o;15918:26::-;;;;;;;;;;;;;:::o;16032:45::-;;;;;;;;;;;;;:::o;18240:143::-;18321:7;18348:11;:18;18360:5;18348:18;;;;;;;;;;;;;;;:27;18367:7;18348:27;;;;;;;;;;;;;;;;18341:34;;18240:143;;;;:::o;15519:93::-;;;;;;;;;;;;;:::o;6313:244::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6422:1:::1;6402:22;;:8;:22;;::::0;6394:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6512:8;6483:38;;6504:6;::::0;::::1;;;;;;;;6483:38;;;;;;;;;;;;6541:8;6532:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6313:244:::0;:::o;20181:170::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20294:11:::1;20279:12;:26;;;;20329:14;20316:10;:27;;;;20181:170:::0;;:::o;16084:35::-;;;;;;;;;;;;;:::o;25412:213::-;6236:12;:10;:12::i;:::-;6226:22;;:6;;;;;;;;;;:22;;;6218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25487:8:::1;:18;25496:8;25487:18;;;;;;;;;;;;;;;;;;;;;;;;;25483:135;;;25543:5;25522:8;:18;25531:8;25522:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;25483:135;;;25602:4;25581:8;:18;25590:8;25581:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;25483:135;25412:213:::0;:::o;1655:181::-;1713:7;1733:9;1749:1;1745;:5;;;;:::i;:::-;1733:17;;1774:1;1769;:6;;1761:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1827:1;1820:8;;;1655:181;;;;:::o;591:115::-;644:15;687:10;672:26;;591:115;:::o;19191:335::-;19301:1;19284:19;;:5;:19;;;19276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19382:1;19363:21;;:7;:21;;;19355:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19464:6;19434:11;:18;19446:5;19434:18;;;;;;;;;;;;;;;:27;19453:7;19434:27;;;;;;;;;;;;;;;:36;;;;19502:7;19486:32;;19495:5;19486:32;;;19511:6;19486:32;;;;;;:::i;:::-;;;;;;;;19191:335;;;:::o;21464:1678::-;21551:4;21594:1;21576:20;;:6;:20;;;21568:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21678:1;21657:23;;:9;:23;;;21649:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21740:8;:16;21749:6;21740:16;;;;;;;;;;;;;;;;;;;;;;;;;21739:17;21731:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;21794:16;;;;;;;;;;;21791:1344;;;21844:41;21859:6;21867:9;21878:6;21844:14;:41::i;:::-;21837:48;;;;21791:1344;21941:11;:19;21953:6;21941:19;;;;;;;;;;;;;;;;;;;;;;;;;21940:20;:47;;;;;21965:11;:22;21977:9;21965:22;;;;;;;;;;;;;;;;;;;;;;;;;21964:23;21940:47;21937:162;;;22026:12;;22016:6;:22;;22008:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21937:162;22113:28;22144:24;22162:4;22144:9;:24::i;:::-;22113:55;;22183:28;22238:23;;22214:20;:47;;22183:78;;22280:23;:44;;;;;22308:16;;;;;;;;;;;22307:17;22280:44;:69;;;;;22329:12;:20;22342:6;22329:20;;;;;;;;;;;;;;;;;;;;;;;;;22328:21;22280:69;:94;;;;;22353:21;;;;;;;;;;;22280:94;22276:305;;;22412:25;;;;;;;;;;;22409:97;;;22483:23;;22460:46;;22409:97;22525:36;22540:20;22525:14;:36::i;:::-;22276:305;22618:56;22643:6;22618:56;;;;;;;;;;;;;;;;;:12;:20;22631:6;22618:20;;;;;;;;;;;;;;;;:24;;:56;;;;;:::i;:::-;22595:12;:20;22608:6;22595:20;;;;;;;;;;;;;;;:79;;;;22689:19;22712:17;:25;22730:6;22712:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;22741:17;:28;22759:9;22741:28;;;;;;;;;;;;;;;;;;;;;;;;;22712:57;22711:105;;22782:34;22790:6;22798:9;22809:6;22782:7;:34::i;:::-;22711:105;;;22773:6;22711:105;22689:127;;22834:16;;;;;;;;;;;:47;;;;;22855:15;:26;22871:9;22855:26;;;;;;;;;;;;;;;;;;;;;;;;;22854:27;22834:47;22831:125;;;22945:10;;22904:37;22929:11;22904:20;22914:9;22904;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;22896:60;;;;;;22831:125;22997:40;23025:11;22997:12;:23;23010:9;22997:23;;;;;;;;;;;;;;;;:27;;:40;;;;:::i;:::-;22971:12;:23;22984:9;22971:23;;;;;;;;;;;;;;;:66;;;;23074:9;23057:40;;23066:6;23057:40;;;23085:11;23057:40;;;;;;:::i;:::-;;;;;;;;23119:4;23112:11;;;;;21464:1678;;;;;;:::o;1988:192::-;2074:7;2107:1;2102;:6;;2110:12;2094:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2134:9;2150:1;2146;:5;;;;:::i;:::-;2134:17;;2171:1;2164:8;;;1988:192;;;;;:::o;23150:342::-;23243:4;23283:56;23308:6;23283:56;;;;;;;;;;;;;;;;;:12;:20;23296:6;23283:20;;;;;;;;;;;;;;;;:24;;:56;;;;;:::i;:::-;23260:12;:20;23273:6;23260:20;;;;;;;;;;;;;;;:79;;;;23376:35;23404:6;23376:12;:23;23389:9;23376:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;23350:12;:23;23363:9;23350:23;;;;;;;;;;;;;;;:61;;;;23444:9;23427:35;;23436:6;23427:35;;;23455:6;23427:35;;;;;;:::i;:::-;;;;;;;;23480:4;23473:11;;23150:342;;;;;:::o;23500:999::-;16563:4;16544:16;;:23;;;;;;;;;;;;;;;;;;23573:19:::1;23595:57;23650:1;23595:50;23620:24;;23595:20;23607:7;;23595;:11;;:20;;;;:::i;:::-;:24;;:50;;;;:::i;:::-;:54;;:57;;;;:::i;:::-;23573:79;;23663:21;23687:24;23699:11;23687:7;:11;;:24;;;;:::i;:::-;23663:48;;23724:31;23741:13;23724:16;:31::i;:::-;23766:22;23791:21;23766:46;;23823:19;23845:44;23874:14;23886:1;23874:7;;:11;;:14;;;;:::i;:::-;23845:24;;:28;;:44;;;;:::i;:::-;23823:66;;23910:26;23939:51;23988:1;23939:44;23971:11;23939:27;23958:7;;23939:14;:18;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;23910:80;;24001:21;24025:44;24057:11;24025:27;24044:7;;24025:14;:18;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;24001:68;;24080:26;24109:57;24152:13;24109:38;24128:18;24109:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;24080:86;;24203:1;24182:18;:22;24179:98;;;24219:58;24240:16;;;;;;;;;;;24258:18;24219:20;:58::i;:::-;24179:98;24307:1;24291:13;:17;24288:88;;;24323:53;24344:16;;;;;;;;;;;24362:13;24323:20;:53::i;:::-;24288:88;24411:1;24390:18;:22;:41;;;;;24430:1;24416:11;:15;24390:41;24387:104;;;24446:45;24459:11;24472:18;24446:12;:45::i;:::-;24387:104;23562:937;;;;;;;16609:5:::0;16590:16;;:24;;;;;;;;;;;;;;;;;;23500:999;:::o;25633:586::-;25719:7;25739:17;25759:1;25739:21;;25774:12;:20;25787:6;25774:20;;;;;;;;;;;;;;;;;;;;;;;;;25771:213;;;25823:33;25852:3;25823:24;25834:12;;25823:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;25811:45;;25771:213;;;25886:12;:23;25899:9;25886:23;;;;;;;;;;;;;;;;;;;;;;;;;25883:101;;;25938:34;25968:3;25938:25;25949:13;;25938:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;25926:46;;25883:101;25771:213;26009:1;25997:9;:13;25994:179;;;26057:42;26089:9;26057:12;:27;26078:4;26057:27;;;;;;;;;;;;;;;;:31;;:42;;;;:::i;:::-;26027:12;:27;26048:4;26027:27;;;;;;;;;;;;;;;:72;;;;26144:4;26119:42;;26128:6;26119:42;;;26151:9;26119:42;;;;;;:::i;:::-;;;;;;;;25994:179;26190:21;26201:9;26190:6;:10;;:21;;;;:::i;:::-;26183:28;;;25633:586;;;;;:::o;2188:250::-;2246:7;2275:1;2270;:6;2266:47;;2300:1;2293:8;;;;2266:47;2325:9;2341:1;2337;:5;;;;:::i;:::-;2325:17;;2370:1;2365;2361;:5;;;;:::i;:::-;:10;2353:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2429:1;2422:8;;;2188:250;;;;;:::o;2446:132::-;2504:7;2531:39;2535:1;2538;2531:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2524:46;;2446:132;;;;:::o;1844:136::-;1902:7;1929:43;1933:1;1936;1929:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1922:50;;1844:136;;;;:::o;20810:126::-;20902:9;:18;;:26;20921:6;20902:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20810:126;;:::o;25040:362::-;25121:62;25138:4;25153:15;;;;;;;;;;;25171:11;25121:8;:62::i;:::-;25194:15;;;;;;;;;;;:31;;;25233:9;25266:4;25286:11;25312:1;25329;25346:7;:5;:7::i;:::-;25368:15;25194:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25040:362;;:::o;2586:278::-;2672:7;2704:1;2700;:5;2707:12;2692:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2731:9;2747:1;2743;:5;;;;:::i;:::-;2731:17;;2855:1;2848:8;;;2586:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:153::-;4604:9;4637:37;4668:5;4637:37;:::i;:::-;4624:50;;4527:153;;;:::o;4686:185::-;4800:64;4858:5;4800:64;:::i;:::-;4795:3;4788:77;4686:185;;:::o;4877:276::-;4997:4;5035:2;5024:9;5020:18;5012:26;;5048:98;5143:1;5132:9;5128:17;5119:6;5048:98;:::i;:::-;4877:276;;;;:::o;5159:619::-;5236:6;5244;5252;5301:2;5289:9;5280:7;5276:23;5272:32;5269:119;;;5307:79;;:::i;:::-;5269:119;5427:1;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5398:117;5554:2;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5525:118;5682:2;5708:53;5753:7;5744:6;5733:9;5729:22;5708:53;:::i;:::-;5698:63;;5653:118;5159:619;;;;;:::o;5784:86::-;5819:7;5859:4;5852:5;5848:16;5837:27;;5784:86;;;:::o;5876:112::-;5959:22;5975:5;5959:22;:::i;:::-;5954:3;5947:35;5876:112;;:::o;5994:214::-;6083:4;6121:2;6110:9;6106:18;6098:26;;6134:67;6198:1;6187:9;6183:17;6174:6;6134:67;:::i;:::-;5994:214;;;;:::o;6214:329::-;6273:6;6322:2;6310:9;6301:7;6297:23;6293:32;6290:119;;;6328:79;;:::i;:::-;6290:119;6448:1;6473:53;6518:7;6509:6;6498:9;6494:22;6473:53;:::i;:::-;6463:63;;6419:117;6214:329;;;;:::o;6549:116::-;6619:21;6634:5;6619:21;:::i;:::-;6612:5;6609:32;6599:60;;6655:1;6652;6645:12;6599:60;6549:116;:::o;6671:133::-;6714:5;6752:6;6739:20;6730:29;;6768:30;6792:5;6768:30;:::i;:::-;6671:133;;;;:::o;6810:468::-;6875:6;6883;6932:2;6920:9;6911:7;6907:23;6903:32;6900:119;;;6938:79;;:::i;:::-;6900:119;7058:1;7083:53;7128:7;7119:6;7108:9;7104:22;7083:53;:::i;:::-;7073:63;;7029:117;7185:2;7211:50;7253:7;7244:6;7233:9;7229:22;7211:50;:::i;:::-;7201:60;;7156:115;6810:468;;;;;:::o;7284:474::-;7352:6;7360;7409:2;7397:9;7388:7;7384:23;7380:32;7377:119;;;7415:79;;:::i;:::-;7377:119;7535:1;7560:53;7605:7;7596:6;7585:9;7581:22;7560:53;:::i;:::-;7550:63;;7506:117;7662:2;7688:53;7733:7;7724:6;7713:9;7709:22;7688:53;:::i;:::-;7678:63;;7633:118;7284:474;;;;;:::o;7764:118::-;7851:24;7869:5;7851:24;:::i;:::-;7846:3;7839:37;7764:118;;:::o;7888:222::-;7981:4;8019:2;8008:9;8004:18;7996:26;;8032:71;8100:1;8089:9;8085:17;8076:6;8032:71;:::i;:::-;7888:222;;;;:::o;8116:323::-;8172:6;8221:2;8209:9;8200:7;8196:23;8192:32;8189:119;;;8227:79;;:::i;:::-;8189:119;8347:1;8372:50;8414:7;8405:6;8394:9;8390:22;8372:50;:::i;:::-;8362:60;;8318:114;8116:323;;;;:::o;8445:474::-;8513:6;8521;8570:2;8558:9;8549:7;8545:23;8541:32;8538:119;;;8576:79;;:::i;:::-;8538:119;8696:1;8721:53;8766:7;8757:6;8746:9;8742:22;8721:53;:::i;:::-;8711:63;;8667:117;8823:2;8849:53;8894:7;8885:6;8874:9;8870:22;8849:53;:::i;:::-;8839:63;;8794:118;8445:474;;;;;:::o;8925:104::-;8970:7;8999:24;9017:5;8999:24;:::i;:::-;8988:35;;8925:104;;;:::o;9035:142::-;9138:32;9164:5;9138:32;:::i;:::-;9133:3;9126:45;9035:142;;:::o;9183:254::-;9292:4;9330:2;9319:9;9315:18;9307:26;;9343:87;9427:1;9416:9;9412:17;9403:6;9343:87;:::i;:::-;9183:254;;;;:::o;9443:180::-;9491:77;9488:1;9481:88;9588:4;9585:1;9578:15;9612:4;9609:1;9602:15;9629:320;9673:6;9710:1;9704:4;9700:12;9690:22;;9757:1;9751:4;9747:12;9778:18;9768:81;;9834:4;9826:6;9822:17;9812:27;;9768:81;9896:2;9888:6;9885:14;9865:18;9862:38;9859:84;;9915:18;;:::i;:::-;9859:84;9680:269;9629:320;;;:::o;9955:182::-;10095:34;10091:1;10083:6;10079:14;10072:58;9955:182;:::o;10143:366::-;10285:3;10306:67;10370:2;10365:3;10306:67;:::i;:::-;10299:74;;10382:93;10471:3;10382:93;:::i;:::-;10500:2;10495:3;10491:12;10484:19;;10143:366;;;:::o;10515:419::-;10681:4;10719:2;10708:9;10704:18;10696:26;;10768:9;10762:4;10758:20;10754:1;10743:9;10739:17;10732:47;10796:131;10922:4;10796:131;:::i;:::-;10788:139;;10515:419;;;:::o;10940:180::-;10988:77;10985:1;10978:88;11085:4;11082:1;11075:15;11109:4;11106:1;11099:15;11126:180;11174:77;11171:1;11164:88;11271:4;11268:1;11261:15;11295:4;11292:1;11285:15;11312:143;11369:5;11400:6;11394:13;11385:22;;11416:33;11443:5;11416:33;:::i;:::-;11312:143;;;;:::o;11461:351::-;11531:6;11580:2;11568:9;11559:7;11555:23;11551:32;11548:119;;;11586:79;;:::i;:::-;11548:119;11706:1;11731:64;11787:7;11778:6;11767:9;11763:22;11731:64;:::i;:::-;11721:74;;11677:128;11461:351;;;;:::o;11818:85::-;11863:7;11892:5;11881:16;;11818:85;;;:::o;11909:158::-;11967:9;12000:61;12018:42;12027:32;12053:5;12027:32;:::i;:::-;12018:42;:::i;:::-;12000:61;:::i;:::-;11987:74;;11909:158;;;:::o;12073:147::-;12168:45;12207:5;12168:45;:::i;:::-;12163:3;12156:58;12073:147;;:::o;12226:114::-;12293:6;12327:5;12321:12;12311:22;;12226:114;;;:::o;12346:184::-;12445:11;12479:6;12474:3;12467:19;12519:4;12514:3;12510:14;12495:29;;12346:184;;;;:::o;12536:132::-;12603:4;12626:3;12618:11;;12656:4;12651:3;12647:14;12639:22;;12536:132;;;:::o;12674:108::-;12751:24;12769:5;12751:24;:::i;:::-;12746:3;12739:37;12674:108;;:::o;12788:179::-;12857:10;12878:46;12920:3;12912:6;12878:46;:::i;:::-;12956:4;12951:3;12947:14;12933:28;;12788:179;;;;:::o;12973:113::-;13043:4;13075;13070:3;13066:14;13058:22;;12973:113;;;:::o;13122:732::-;13241:3;13270:54;13318:5;13270:54;:::i;:::-;13340:86;13419:6;13414:3;13340:86;:::i;:::-;13333:93;;13450:56;13500:5;13450:56;:::i;:::-;13529:7;13560:1;13545:284;13570:6;13567:1;13564:13;13545:284;;;13646:6;13640:13;13673:63;13732:3;13717:13;13673:63;:::i;:::-;13666:70;;13759:60;13812:6;13759:60;:::i;:::-;13749:70;;13605:224;13592:1;13589;13585:9;13580:14;;13545:284;;;13549:14;13845:3;13838:10;;13246:608;;;13122:732;;;;:::o;13860:831::-;14123:4;14161:3;14150:9;14146:19;14138:27;;14175:71;14243:1;14232:9;14228:17;14219:6;14175:71;:::i;:::-;14256:80;14332:2;14321:9;14317:18;14308:6;14256:80;:::i;:::-;14383:9;14377:4;14373:20;14368:2;14357:9;14353:18;14346:48;14411:108;14514:4;14505:6;14411:108;:::i;:::-;14403:116;;14529:72;14597:2;14586:9;14582:18;14573:6;14529:72;:::i;:::-;14611:73;14679:3;14668:9;14664:19;14655:6;14611:73;:::i;:::-;13860:831;;;;;;;;:::o;14697:483::-;14868:4;14906:2;14895:9;14891:18;14883:26;;14919:71;14987:1;14976:9;14972:17;14963:6;14919:71;:::i;:::-;15037:9;15031:4;15027:20;15022:2;15011:9;15007:18;15000:48;15065:108;15168:4;15159:6;15065:108;:::i;:::-;15057:116;;14697:483;;;;;:::o;15186:225::-;15326:34;15322:1;15314:6;15310:14;15303:58;15395:8;15390:2;15382:6;15378:15;15371:33;15186:225;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:180::-;16262:77;16259:1;16252:88;16359:4;16356:1;16349:15;16383:4;16380:1;16373:15;16400:305;16440:3;16459:20;16477:1;16459:20;:::i;:::-;16454:25;;16493:20;16511:1;16493:20;:::i;:::-;16488:25;;16647:1;16579:66;16575:74;16572:1;16569:81;16566:107;;;16653:18;;:::i;:::-;16566:107;16697:1;16694;16690:9;16683:16;;16400:305;;;;:::o;16711:177::-;16851:29;16847:1;16839:6;16835:14;16828:53;16711:177;:::o;16894:366::-;17036:3;17057:67;17121:2;17116:3;17057:67;:::i;:::-;17050:74;;17133:93;17222:3;17133:93;:::i;:::-;17251:2;17246:3;17242:12;17235:19;;16894:366;;;:::o;17266:419::-;17432:4;17470:2;17459:9;17455:18;17447:26;;17519:9;17513:4;17509:20;17505:1;17494:9;17490:17;17483:47;17547:131;17673:4;17547:131;:::i;:::-;17539:139;;17266:419;;;:::o;17691:223::-;17831:34;17827:1;17819:6;17815:14;17808:58;17900:6;17895:2;17887:6;17883:15;17876:31;17691:223;:::o;17920:366::-;18062:3;18083:67;18147:2;18142:3;18083:67;:::i;:::-;18076:74;;18159:93;18248:3;18159:93;:::i;:::-;18277:2;18272:3;18268:12;18261:19;;17920:366;;;:::o;18292:419::-;18458:4;18496:2;18485:9;18481:18;18473:26;;18545:9;18539:4;18535:20;18531:1;18520:9;18516:17;18509:47;18573:131;18699:4;18573:131;:::i;:::-;18565:139;;18292:419;;;:::o;18717:221::-;18857:34;18853:1;18845:6;18841:14;18834:58;18926:4;18921:2;18913:6;18909:15;18902:29;18717:221;:::o;18944:366::-;19086:3;19107:67;19171:2;19166:3;19107:67;:::i;:::-;19100:74;;19183:93;19272:3;19183:93;:::i;:::-;19301:2;19296:3;19292:12;19285:19;;18944:366;;;:::o;19316:419::-;19482:4;19520:2;19509:9;19505:18;19497:26;;19569:9;19563:4;19559:20;19555:1;19544:9;19540:17;19533:47;19597:131;19723:4;19597:131;:::i;:::-;19589:139;;19316:419;;;:::o;19741:224::-;19881:34;19877:1;19869:6;19865:14;19858:58;19950:7;19945:2;19937:6;19933:15;19926:32;19741:224;:::o;19971:366::-;20113:3;20134:67;20198:2;20193:3;20134:67;:::i;:::-;20127:74;;20210:93;20299:3;20210:93;:::i;:::-;20328:2;20323:3;20319:12;20312:19;;19971:366;;;:::o;20343:419::-;20509:4;20547:2;20536:9;20532:18;20524:26;;20596:9;20590:4;20586:20;20582:1;20571:9;20567:17;20560:47;20624:131;20750:4;20624:131;:::i;:::-;20616:139;;20343:419;;;:::o;20768:222::-;20908:34;20904:1;20896:6;20892:14;20885:58;20977:5;20972:2;20964:6;20960:15;20953:30;20768:222;:::o;20996:366::-;21138:3;21159:67;21223:2;21218:3;21159:67;:::i;:::-;21152:74;;21235:93;21324:3;21235:93;:::i;:::-;21353:2;21348:3;21344:12;21337:19;;20996:366;;;:::o;21368:419::-;21534:4;21572:2;21561:9;21557:18;21549:26;;21621:9;21615:4;21611:20;21607:1;21596:9;21592:17;21585:47;21649:131;21775:4;21649:131;:::i;:::-;21641:139;;21368:419;;;:::o;21793:169::-;21933:21;21929:1;21921:6;21917:14;21910:45;21793:169;:::o;21968:366::-;22110:3;22131:67;22195:2;22190:3;22131:67;:::i;:::-;22124:74;;22207:93;22296:3;22207:93;:::i;:::-;22325:2;22320:3;22316:12;22309:19;;21968:366;;;:::o;22340:419::-;22506:4;22544:2;22533:9;22529:18;22521:26;;22593:9;22587:4;22583:20;22579:1;22568:9;22564:17;22557:47;22621:131;22747:4;22621:131;:::i;:::-;22613:139;;22340:419;;;:::o;22765:227::-;22905:34;22901:1;22893:6;22889:14;22882:58;22974:10;22969:2;22961:6;22957:15;22950:35;22765:227;:::o;22998:366::-;23140:3;23161:67;23225:2;23220:3;23161:67;:::i;:::-;23154:74;;23237:93;23326:3;23237:93;:::i;:::-;23355:2;23350:3;23346:12;23339:19;;22998:366;;;:::o;23370:419::-;23536:4;23574:2;23563:9;23559:18;23551:26;;23623:9;23617:4;23613:20;23609:1;23598:9;23594:17;23587:47;23651:131;23777:4;23651:131;:::i;:::-;23643:139;;23370:419;;;:::o;23795:191::-;23835:4;23855:20;23873:1;23855:20;:::i;:::-;23850:25;;23889:20;23907:1;23889:20;:::i;:::-;23884:25;;23928:1;23925;23922:8;23919:34;;;23933:18;;:::i;:::-;23919:34;23978:1;23975;23971:9;23963:17;;23795:191;;;;:::o;23992:348::-;24032:7;24055:20;24073:1;24055:20;:::i;:::-;24050:25;;24089:20;24107:1;24089:20;:::i;:::-;24084:25;;24277:1;24209:66;24205:74;24202:1;24199:81;24194:1;24187:9;24180:17;24176:105;24173:131;;;24284:18;;:::i;:::-;24173:131;24332:1;24329;24325:9;24314:20;;23992:348;;;;:::o;24346:180::-;24394:77;24391:1;24384:88;24491:4;24488:1;24481:15;24515:4;24512:1;24505:15;24532:185;24572:1;24589:20;24607:1;24589:20;:::i;:::-;24584:25;;24623:20;24641:1;24623:20;:::i;:::-;24618:25;;24662:1;24652:35;;24667:18;;:::i;:::-;24652:35;24709:1;24706;24702:9;24697:14;;24532:185;;;;:::o;24723:220::-;24863:34;24859:1;24851:6;24847:14;24840:58;24932:3;24927:2;24919:6;24915:15;24908:28;24723:220;:::o;24949:366::-;25091:3;25112:67;25176:2;25171:3;25112:67;:::i;:::-;25105:74;;25188:93;25277:3;25188:93;:::i;:::-;25306:2;25301:3;25297:12;25290:19;;24949:366;;;:::o;25321:419::-;25487:4;25525:2;25514:9;25510:18;25502:26;;25574:9;25568:4;25564:20;25560:1;25549:9;25545:17;25538:47;25602:131;25728:4;25602:131;:::i;:::-;25594:139;;25321:419;;;:::o;25746:807::-;25995:4;26033:3;26022:9;26018:19;26010:27;;26047:71;26115:1;26104:9;26100:17;26091:6;26047:71;:::i;:::-;26128:72;26196:2;26185:9;26181:18;26172:6;26128:72;:::i;:::-;26210:80;26286:2;26275:9;26271:18;26262:6;26210:80;:::i;:::-;26300;26376:2;26365:9;26361:18;26352:6;26300:80;:::i;:::-;26390:73;26458:3;26447:9;26443:19;26434:6;26390:73;:::i;:::-;26473;26541:3;26530:9;26526:19;26517:6;26473:73;:::i;:::-;25746:807;;;;;;;;;:::o;26559:143::-;26616:5;26647:6;26641:13;26632:22;;26663:33;26690:5;26663:33;:::i;:::-;26559:143;;;;:::o;26708:663::-;26796:6;26804;26812;26861:2;26849:9;26840:7;26836:23;26832:32;26829:119;;;26867:79;;:::i;:::-;26829:119;26987:1;27012:64;27068:7;27059:6;27048:9;27044:22;27012:64;:::i;:::-;27002:74;;26958:128;27125:2;27151:64;27207:7;27198:6;27187:9;27183:22;27151:64;:::i;:::-;27141:74;;27096:129;27264:2;27290:64;27346:7;27337:6;27326:9;27322:22;27290:64;:::i;:::-;27280:74;;27235:129;26708:663;;;;;:::o
Swarm Source
ipfs://7cd5b24a93170ecd570d226e5d30ac3595a7319d6915fd631e3b2e2842dd82e2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.