ERC-20
Source Code
Overview
Max Total Supply
69,690,690,690,690 PEPE69
Holders
2
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Pepe69
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-09-28
*/
/*
https://t.me/Pepe69Token
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.21;
interface ERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
contract Ownable is Context {
address public _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
authorizations[_owner] = true;
emit OwnershipTransferred(address(0), msgSender);
}
mapping (address => bool) internal authorizations;
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface InterfaceLP {
function sync() external;
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Pepe69 is Ownable, ERC20 {
using SafeMath for uint256;
address WETH;
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
address constant ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "PEPE69";
string constant _symbol = "PEPE69";
uint8 constant _decimals = 9;
event AutoLiquify(uint256 amountETH, uint256 amountTokens);
event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
event user_exemptfromfees(address Wallet, bool Exempt);
event user_TxExempt(address Wallet, bool Exempt);
event ClearStuck(uint256 amount);
event ClearToken(address TokenAddressCleared, uint256 Amount);
event set_Receivers(address marketingFeeReceiver, address teamFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
event set_MaxWallet(uint256 maxWallet);
event set_SwapBack(uint256 Amount, bool Enabled);
uint256 _totalSupply = 69690690690690 * 10**_decimals;
uint256 public _maxTxAmount = _totalSupply.mul(100).div(100);
uint256 public _maxWalletToken = _totalSupply.mul(5).div(1000);
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isexemptfromfees;
mapping (address => bool) isexemptfrommaxTX;
//set your overall tax here.
uint256 private liquidityFee = 0;
uint256 private marketingFee = 1;
uint256 private devFee = 0;
uint256 private teamFee = 0;
uint256 private burnFee = 0;
uint256 public totalFee = teamFee + marketingFee + liquidityFee + devFee + burnFee;
uint256 private feeDenominator = 100;
// below adjusts the sell , transfer and buy. 200 = 2x , 50 = .5x etc
uint256 sellpercent = 100; // 200 = 2x the above so 10% sell
uint256 buypercent = 100;
uint256 transferpercent = 100; // 200 = 2x the above so 10% sell
address private autoLiquidityReceiver;
address private marketingFeeReceiver;
address private devFeeReceiver;
address private teamFeeReceiver;
address private burnFeeReceiver;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
IDEXRouter public router;
InterfaceLP private pairContract;
address public pair;
bool public TradingOpen = true;
bool public swapEnabled = true;
uint256 public swapThreshold = 70000000000 * 10**_decimals;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
pairContract = InterfaceLP(pair);
_allowances[address(this)][address(router)] = type(uint256).max;
isexemptfromfees[msg.sender] = true;
isexemptfrommaxTX[msg.sender] = true;
isexemptfrommaxTX[pair] = true;
isexemptfrommaxTX[marketingFeeReceiver] = true;
isexemptfrommaxTX[address(this)] = true;
authorizations[marketingFeeReceiver] = true;
autoLiquidityReceiver = msg.sender;
marketingFeeReceiver = 0x1f237BB50d7dB0f90FA24401716a4Eb4F6a2E3f2;
devFeeReceiver = msg.sender;
teamFeeReceiver = msg.sender;
burnFeeReceiver = DEAD;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) {return owner();}
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
require(maxWallPercent >= 1);
_maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
emit set_MaxWallet(_maxWalletToken);
}
function authorize(address adr) public onlyOwner {
authorizations[adr] = true;
}
function enableTrading() public onlyOwner {
TradingOpen = true;
}
function setWhitelistAddresss(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
isTxLimitExempt[holder] = exempt;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(!authorizations[sender] && !authorizations[recipient] && recipient !=marketingFeeReceiver && sender !=marketingFeeReceiver) {
require(TradingOpen,"Trading not open yet");
}
if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){
uint256 heldTokens = balanceOf(recipient);
require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
checkTxLimit(sender, amount);
if(shouldSwapBack()){ swapBack(); }
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient);
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function checkTxLimit(address sender, uint256 amount) internal view {
require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded");
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isexemptfromfees[sender];
}
function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
uint256 percent = transferpercent;
if(recipient == pair) {
percent = sellpercent;
} else if(sender == pair) {
percent = buypercent;
}
uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
uint256 contractTokens = feeAmount.sub(burnTokens);
_balances[address(this)] = _balances[address(this)].add(contractTokens);
_balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
emit Transfer(sender, address(this), contractTokens);
if(burnTokens > 0){
_totalSupply = _totalSupply.sub(burnTokens);
emit Transfer(sender, ZERO, burnTokens);
}
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& _balances[address(this)] >= swapThreshold;
}
function clearStuckETH() external {
payable(marketingFeeReceiver).transfer(address(this).balance);
}
function removeLimits() external {
_maxTxAmount = _totalSupply;
_maxWalletToken = _totalSupply;
}
function clearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
require(tokenAddress != address(this), "Owner cannot claim native tokens");
if(tokens == 0){
tokens = ERC20 (tokenAddress).balanceOf(address(this));
}
return ERC20 (tokenAddress).transfer(msg.sender, tokens);
}
function setFeeMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) public onlyOwner {
sellpercent = _sell;
buypercent = _buy;
transferpercent = _trans;
require(totalFee.mul(buypercent).div(100) < 12, "Buy Tax cannot be more than 12%");
require(totalFee.mul(sellpercent).div(100) < 12, "Sell Tax cannot be more than 12%");
require(totalFee.mul(transferpercent).div(100) < 12, "Transfer Tax cannot be more than 12%");
}
function swapBack() internal swapping {
uint256 totalETHFee = totalFee;
uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
uint256 amountToSwap = swapThreshold - amountToLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance;
totalETHFee = totalETHFee - (liquidityFee / 2);
uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2);
uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);
(bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
(tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
(tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
tmpSuccess = false;
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
}
function set_fees() internal {
emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
uint8(totalFee.mul(sellpercent).div(100)),
uint8(totalFee.mul(transferpercent).div(100))
);
}
function setTax(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
liquidityFee = _liquidityFee;
teamFee = _teamFee;
marketingFee = _marketingFee;
devFee = _devFee;
burnFee = _burnFee;
totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
feeDenominator = _feeDenominator;
require(totalFee < feeDenominator / 4, "Fees can not be more than 25%");
set_fees();
}
function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
autoLiquidityReceiver = _autoLiquidityReceiver;
marketingFeeReceiver = _marketingFeeReceiver;
devFeeReceiver = _devFeeReceiver;
burnFeeReceiver = _burnFeeReceiver;
teamFeeReceiver = _teamFeeReceiver;
emit set_Receivers(marketingFeeReceiver, teamFeeReceiver, burnFeeReceiver, devFeeReceiver);
}
function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = _amount;
emit set_SwapBack(swapThreshold, swapEnabled);
}
function circulatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFeeMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setWhitelistAddresss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526009600a62000014919062000d6b565b653f6220dcde8262000027919062000dbb565b60035562000057606462000048606460035462000a9b60201b90919060201c565b62000b1b60201b90919060201c565b600455620000886103e862000079600560035462000a9b60201b90919060201c565b62000b1b60201b90919060201c565b6005555f600a556001600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000bb919062000e05565b620000c7919062000e05565b620000d3919062000e05565b620000df919062000e05565b600f5560646010556064601155606460125560646013556001601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506009600a6200013c919062000d6b565b64104c533c006200014e919062000dbb565b601e553480156200015d575f80fd5b505f6200016f62000b6c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000364919062000ea4565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200040e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000434919062000ea4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049192919062000ee5565b6020604051808303815f875af1158015620004ae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d4919062000ea4565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001805f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731f237bb50d7db0f90fa24401716a4eb4f6a2e3f260155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a8d919062000f21565b60405180910390a3620010ea565b5f80830362000aad575f905062000b15565b5f828462000abc919062000dbb565b905082848262000acd919062000f69565b1462000b10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b079062001024565b60405180910390fd5b809150505b92915050565b5f62000b6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b7360201b60201c565b905092915050565b5f33905090565b5f808311829062000bbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb39190620010c8565b60405180910390fd5b505f838562000bcc919062000f69565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c635780860481111562000c3b5762000c3a62000bd9565b5b600185161562000c4b5780820291505b808102905062000c5b8562000c06565b945062000c1b565b94509492505050565b5f8262000c7d576001905062000d4f565b8162000c8c575f905062000d4f565b816001811462000ca5576002811462000cb05762000ce6565b600191505062000d4f565b60ff84111562000cc55762000cc462000bd9565b5b8360020a91508482111562000cdf5762000cde62000bd9565b5b5062000d4f565b5060208310610133831016604e8410600b841016171562000d205782820a90508381111562000d1a5762000d1962000bd9565b5b62000d4f565b62000d2f848484600162000c12565b9250905081840481111562000d495762000d4862000bd9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d778262000d56565b915062000d848362000d5f565b925062000db37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c6c565b905092915050565b5f62000dc78262000d56565b915062000dd48362000d56565b925082820262000de48162000d56565b9150828204841483151762000dfe5762000dfd62000bd9565b5b5092915050565b5f62000e118262000d56565b915062000e1e8362000d56565b925082820190508082111562000e395762000e3862000bd9565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e6e8262000e43565b9050919050565b62000e808162000e62565b811462000e8b575f80fd5b50565b5f8151905062000e9e8162000e75565b92915050565b5f6020828403121562000ebc5762000ebb62000e3f565b5b5f62000ecb8482850162000e8e565b91505092915050565b62000edf8162000e62565b82525050565b5f60408201905062000efa5f83018562000ed4565b62000f09602083018462000ed4565b9392505050565b62000f1b8162000d56565b82525050565b5f60208201905062000f365f83018462000f10565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f758262000d56565b915062000f828362000d56565b92508262000f955762000f9462000f3c565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200100c60218362000fa0565b9150620010198262000fb0565b604082019050919050565b5f6020820190508181035f8301526200103d8162000ffe565b9050919050565b5f81519050919050565b5f5b838110156200106d57808201518184015260208101905062001050565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010948262001044565b620010a0818562000fa0565b9350620010b28185602086016200104e565b620010bd8162001078565b840191505092915050565b5f6020820190508181035f830152620010e2818462001088565b905092915050565b61449980620010f85f395ff3fe608060405260043610610207575f3560e01c8063751039fc11610117578063a8aa1b311161009f578063dd62ed3e1161006e578063dd62ed3e14610722578063df20fd491461075e578063f2fde38b14610786578063f887ea40146107ae578063f88de0c3146107d85761020e565b8063a8aa1b311461066a578063a9059cbb14610694578063b2bdfa7b146106d0578063b6a5d7de146106fa5761020e565b8063893d20e8116100e6578063893d20e8146105ac5780638a8c523c146105d65780638da5cb5b146105ec5780639358928b1461061657806395d89b41146106405761020e565b8063751039fc1461050657806377b54bad1461051c57806378109e54146105585780637d1db4a5146105825761020e565b80631df4ccfc1161019a578063571ac8b011610169578063571ac8b0146104265780635d0044ca146104625780636ddd17131461048a57806370a08231146104b4578063715018a6146104f05761020e565b80631df4ccfc1461036e57806323b872dd1461039857806326f85dbe146103d4578063313ce567146103fc5761020e565b806311f630f3116101d657806311f630f3146102cc578063169bb498146102f457806318160ddd1461031c57806318abb635146103465761020e565b80630445b6671461021257806306fdde031461023c57806308fd3d0514610266578063095ea7b3146102905761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107ee565b6040516102339190613457565b60405180910390f35b348015610247575f80fd5b506102506107f4565b60405161025d91906134fa565b60405180910390f35b348015610271575f80fd5b5061027a610831565b6040516102879190613534565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b191906135d5565b610844565b6040516102c39190613534565b60405180910390f35b3480156102d7575f80fd5b506102f260048036038101906102ed9190613613565b610931565b005b3480156102ff575f80fd5b5061031a6004803603810190610315919061369c565b610aa0565b005b348015610327575f80fd5b50610330610c92565b60405161033d9190613457565b60405180910390f35b348015610351575f80fd5b5061036c600480360381019061036791906136ec565b610c9b565b005b348015610379575f80fd5b50610382610f37565b60405161038f9190613457565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190613763565b610f3d565b6040516103cb9190613534565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f591906137dd565b611130565b005b348015610407575f80fd5b50610410611270565b60405161041d9190613836565b60405180910390f35b348015610431575f80fd5b5061044c6004803603810190610447919061384f565b611278565b6040516104599190613534565b60405180910390f35b34801561046d575f80fd5b506104886004803603810190610483919061387a565b6112aa565b005b348015610495575f80fd5b5061049e6113a8565b6040516104ab9190613534565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061384f565b6113bb565b6040516104e79190613457565b60405180910390f35b3480156104fb575f80fd5b50610504611401565b005b348015610511575f80fd5b5061051a61154f565b005b348015610527575f80fd5b50610542600480360381019061053d91906135d5565b611563565b60405161054f9190613534565b60405180910390f35b348015610563575f80fd5b5061056c61176b565b6040516105799190613457565b60405180910390f35b34801561058d575f80fd5b50610596611771565b6040516105a39190613457565b60405180910390f35b3480156105b7575f80fd5b506105c0611777565b6040516105cd91906138b4565b60405180910390f35b3480156105e1575f80fd5b506105ea611785565b005b3480156105f7575f80fd5b50610600611836565b60405161060d91906138b4565b60405180910390f35b348015610621575f80fd5b5061062a61185d565b6040516106379190613457565b60405180910390f35b34801561064b575f80fd5b5061065461189c565b60405161066191906134fa565b60405180910390f35b348015610675575f80fd5b5061067e6118d9565b60405161068b91906138b4565b60405180910390f35b34801561069f575f80fd5b506106ba60048036038101906106b591906135d5565b6118fe565b6040516106c79190613534565b60405180910390f35b3480156106db575f80fd5b506106e4611912565b6040516106f191906138b4565b60405180910390f35b348015610705575f80fd5b50610720600480360381019061071b919061384f565b611935565b005b34801561072d575f80fd5b50610748600480360381019061074391906138cd565b611a20565b6040516107559190613457565b60405180910390f35b348015610769575f80fd5b50610784600480360381019061077f919061390b565b611aa2565b005b348015610791575f80fd5b506107ac60048036038101906107a7919061384f565b611ba5565b005b3480156107b9575f80fd5b506107c2611d62565b6040516107cf91906139a4565b60405180910390f35b3480156107e3575f80fd5b506107ec611d87565b005b601e5481565b60606040518060400160405280600681526020017f5045504536390000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161091f9190613457565b60405180910390a36001905092915050565b610939611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613a07565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610a3182610a2385610a1588610a078b8d611df590919063ffffffff16565b611df590919063ffffffff16565b611df590919063ffffffff16565b611df590919063ffffffff16565b600f81905550806010819055506004601054610a4d9190613a7f565b600f5410610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790613af9565b60405180910390fd5b610a98611e52565b505050505050565b610aa8611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90613a07565b60405180910390fd5b816011819055508260128190555080601381905550600c610b756064610b67601254600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90613b61565b60405180910390fd5b600c610be16064610bd3601154600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613bc9565b60405180910390fd5b600c610c4d6064610c3f601354600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8490613c57565b60405180910390fd5b505050565b5f600354905090565b610ca3611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690613a07565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610f289493929190613c75565b60405180910390a15050505050565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461111c5761109f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61112784848461202c565b90509392505050565b611138611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90613a07565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6009905090565b5f6112a3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610844565b9050919050565b6112b2611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590613a07565b60405180910390fd5b600181101561134b575f80fd5b6103e88160035461135c9190613cb8565b6113669190613a7f565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be5160055460405161139d9190613457565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611409611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90613a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600354600481905550600354600581905550565b5f61156c611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613a07565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613d43565b60405180910390fd5b5f82036116e8578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116a691906138b4565b602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190613d75565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611723929190613da0565b6020604051808303815f875af115801561173f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117639190613ddb565b905092915050565b60055481565b60045481565b5f611780611836565b905090565b61178d611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613a07565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f61189761186a5f6113bb565b61188961187861dead6113bb565b60035461271590919063ffffffff16565b61271590919063ffffffff16565b905090565b60606040518060400160405280600681526020017f5045504536390000000000000000000000000000000000000000000000000000815250905090565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61190a33848461202c565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61193d611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090613a07565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611aaa611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613a07565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611b99929190613e06565b60405180910390a15050565b611bad611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090613a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613e9d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611deb573d5f803e3d5ffd5b50565b5f33905090565b5f808284611e039190613ebb565b905083811015611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613f38565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611e9d6064611e8f601254600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b611ec76064611eb9601154600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b611ef16064611ee3601354600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b604051611f0093929190613f56565b60405180910390a1565b5f808303611f1a575f9050611f7b565b5f8284611f279190613cb8565b9050828482611f369190613a7f565b14611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613ffb565b60405180910390fd5b809150505b92915050565b5f611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275e565b905092915050565b5f838311158290612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200891906134fa565b60405180910390fd5b505f838561201f9190614019565b9050809150509392505050565b5f601f5f9054906101000a900460ff16156120535761204c8484846127bf565b905061270e565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120f1575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121f857601d60149054906101000a900460ff166121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90614096565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561227b57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122b5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561230e5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612367575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123c0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612413575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612476575f612422846113bb565b905060055483826124339190613ebb565b1115612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90614124565b60405180910390fd5b505b6124808483612989565b612488612a23565b1561249657612495612af5565b5b61251d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125fa575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61260e57612609858486613081565b612610565b825b90506126628160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127009190613457565b60405180910390a360019150505b9392505050565b5f61275683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fca565b905092915050565b5f80831182906127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b91906134fa565b60405180910390fd5b505f83856127b29190613a7f565b9050809150509392505050565b5f612847826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128d88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129769190613457565b60405180910390a3600190509392505050565b600454811115806129e0575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a169061418c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a8d5750601f5f9054906101000a900460ff16155b8015612aa55750601d60159054906101000a900460ff165b8015612af05750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f600f5490505f600282612b239190613cb8565b600a54601e54612b339190613cb8565b612b3d9190613a7f565b90505f81601e54612b4e9190614019565b90505f600267ffffffffffffffff811115612b6c57612b6b6141aa565b5b604051908082528060200260200182016040528015612b9a5781602001602082028036833780820191505090505b50905030815f81518110612bb157612bb06141d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c206141d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cbd9594939291906142f4565b5f604051808303815f87803b158015612cd4575f80fd5b505af1158015612ce6573d5f803e3d5ffd5b505050505f4790506002600a54612cfd9190613a7f565b85612d089190614019565b94505f600286612d189190613cb8565b600a5483612d269190613cb8565b612d309190613a7f565b90505f612d5a87612d4c600b5486611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f612d8488612d76600d5487611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f612dae89612da0600c5488611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612df690614379565b5f6040518083038185875af1925050503d805f8114612e30576040519150601f19603f3d011682016040523d82523d5f602084013e612e35565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612e7e90614379565b5f6040518083038185875af1925050503d805f8114612eb8576040519150601f19603f3d011682016040523d82523d5f602084013e612ebd565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612f0890614379565b5f6040518083038185875af1925050503d805f8114612f42576040519150601f19603f3d011682016040523d82523d5f602084013e612f47565b606091505b5050809150505f90505f89111561305c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308c5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fde9695949392919061438d565b60606040518083038185885af1158015612ffa573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061301f91906143ec565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858a60405161305392919061443c565b60405180910390a15b505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130e6576011549050613141565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131405760125490505b5b5f61318960646010546131549190613cb8565b61317b8461316d600f548a611f0a90919063ffffffff16565b611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f6131b5600f546131a7600e5485611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f6131cb828461271590919063ffffffff16565b905061321d8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132cf8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161338e9190613457565b60405180910390a35f82111561341f576133b38260035461271590919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134169190613457565b60405180910390a35b613432838861271590919063ffffffff16565b9450505050509392505050565b5f819050919050565b6134518161343f565b82525050565b5f60208201905061346a5f830184613448565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134a757808201518184015260208101905061348c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134cc82613470565b6134d6818561347a565b93506134e681856020860161348a565b6134ef816134b2565b840191505092915050565b5f6020820190508181035f83015261351281846134c2565b905092915050565b5f8115159050919050565b61352e8161351a565b82525050565b5f6020820190506135475f830184613525565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61357a82613551565b9050919050565b61358a81613570565b8114613594575f80fd5b50565b5f813590506135a581613581565b92915050565b6135b48161343f565b81146135be575f80fd5b50565b5f813590506135cf816135ab565b92915050565b5f80604083850312156135eb576135ea61354d565b5b5f6135f885828601613597565b9250506020613609858286016135c1565b9150509250929050565b5f805f805f8060c0878903121561362d5761362c61354d565b5b5f61363a89828a016135c1565b965050602061364b89828a016135c1565b955050604061365c89828a016135c1565b945050606061366d89828a016135c1565b935050608061367e89828a016135c1565b92505060a061368f89828a016135c1565b9150509295509295509295565b5f805f606084860312156136b3576136b261354d565b5b5f6136c0868287016135c1565b93505060206136d1868287016135c1565b92505060406136e2868287016135c1565b9150509250925092565b5f805f805f60a086880312156137055761370461354d565b5b5f61371288828901613597565b955050602061372388828901613597565b945050604061373488828901613597565b935050606061374588828901613597565b925050608061375688828901613597565b9150509295509295909350565b5f805f6060848603121561377a5761377961354d565b5b5f61378786828701613597565b935050602061379886828701613597565b92505060406137a9868287016135c1565b9150509250925092565b6137bc8161351a565b81146137c6575f80fd5b50565b5f813590506137d7816137b3565b92915050565b5f80604083850312156137f3576137f261354d565b5b5f61380085828601613597565b9250506020613811858286016137c9565b9150509250929050565b5f60ff82169050919050565b6138308161381b565b82525050565b5f6020820190506138495f830184613827565b92915050565b5f602082840312156138645761386361354d565b5b5f61387184828501613597565b91505092915050565b5f6020828403121561388f5761388e61354d565b5b5f61389c848285016135c1565b91505092915050565b6138ae81613570565b82525050565b5f6020820190506138c75f8301846138a5565b92915050565b5f80604083850312156138e3576138e261354d565b5b5f6138f085828601613597565b925050602061390185828601613597565b9150509250929050565b5f80604083850312156139215761392061354d565b5b5f61392e858286016137c9565b925050602061393f858286016135c1565b9150509250929050565b5f819050919050565b5f61396c61396761396284613551565b613949565b613551565b9050919050565b5f61397d82613952565b9050919050565b5f61398e82613973565b9050919050565b61399e81613984565b82525050565b5f6020820190506139b75f830184613995565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139f160208361347a565b91506139fc826139bd565b602082019050919050565b5f6020820190508181035f830152613a1e816139e5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a898261343f565b9150613a948361343f565b925082613aa457613aa3613a25565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203235250000005f82015250565b5f613ae3601d8361347a565b9150613aee82613aaf565b602082019050919050565b5f6020820190508181035f830152613b1081613ad7565b9050919050565b7f427579205461782063616e6e6f74206265206d6f7265207468616e20313225005f82015250565b5f613b4b601f8361347a565b9150613b5682613b17565b602082019050919050565b5f6020820190508181035f830152613b7881613b3f565b9050919050565b7f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203132255f82015250565b5f613bb360208361347a565b9150613bbe82613b7f565b602082019050919050565b5f6020820190508181035f830152613be081613ba7565b9050919050565b7f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e5f8201527f2031322500000000000000000000000000000000000000000000000000000000602082015250565b5f613c4160248361347a565b9150613c4c82613be7565b604082019050919050565b5f6020820190508181035f830152613c6e81613c35565b9050919050565b5f608082019050613c885f8301876138a5565b613c9560208301866138a5565b613ca260408301856138a5565b613caf60608301846138a5565b95945050505050565b5f613cc28261343f565b9150613ccd8361343f565b9250828202613cdb8161343f565b91508282048414831517613cf257613cf1613a52565b5b5092915050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e735f82015250565b5f613d2d60208361347a565b9150613d3882613cf9565b602082019050919050565b5f6020820190508181035f830152613d5a81613d21565b9050919050565b5f81519050613d6f816135ab565b92915050565b5f60208284031215613d8a57613d8961354d565b5b5f613d9784828501613d61565b91505092915050565b5f604082019050613db35f8301856138a5565b613dc06020830184613448565b9392505050565b5f81519050613dd5816137b3565b92915050565b5f60208284031215613df057613def61354d565b5b5f613dfd84828501613dc7565b91505092915050565b5f604082019050613e195f830185613448565b613e266020830184613525565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613e8760268361347a565b9150613e9282613e2d565b604082019050919050565b5f6020820190508181035f830152613eb481613e7b565b9050919050565b5f613ec58261343f565b9150613ed08361343f565b9250828201905080821115613ee857613ee7613a52565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f22601b8361347a565b9150613f2d82613eee565b602082019050919050565b5f6020820190508181035f830152613f4f81613f16565b9050919050565b5f606082019050613f695f830186613827565b613f766020830185613827565b613f836040830184613827565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fe560218361347a565b9150613ff082613f8b565b604082019050919050565b5f6020820190508181035f83015261401281613fd9565b9050919050565b5f6140238261343f565b915061402e8361343f565b925082820390508181111561404657614045613a52565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f61408060148361347a565b915061408b8261404c565b602082019050919050565b5f6020820190508181035f8301526140ad81614074565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f61410e603e8361347a565b9150614119826140b4565b604082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f61417660118361347a565b915061418182614142565b602082019050919050565b5f6020820190508181035f8301526141a38161416a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61422761422261421d84614204565b613949565b61343f565b9050919050565b6142378161420d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61426f81613570565b82525050565b5f6142808383614266565b60208301905092915050565b5f602082019050919050565b5f6142a28261423d565b6142ac8185614247565b93506142b783614257565b805f5b838110156142e75781516142ce8882614275565b97506142d98361428c565b9250506001810190506142ba565b5085935050505092915050565b5f60a0820190506143075f830188613448565b614314602083018761422e565b81810360408301526143268186614298565b905061433560608301856138a5565b6143426080830184613448565b9695505050505050565b5f81905092915050565b50565b5f6143645f8361434c565b915061436f82614356565b5f82019050919050565b5f61438382614359565b9150819050919050565b5f60c0820190506143a05f8301896138a5565b6143ad6020830188613448565b6143ba604083018761422e565b6143c7606083018661422e565b6143d460808301856138a5565b6143e160a0830184613448565b979650505050505050565b5f805f606084860312156144035761440261354d565b5b5f61441086828701613d61565b935050602061442186828701613d61565b925050604061443286828701613d61565b9150509250925092565b5f60408201905061444f5f830185613448565b61445c6020830184613448565b939250505056fea2646970667358221220b94418e8fa75d0d478df084fccdd1a7105e2d350bc11fef5681597c530e2663c64736f6c63430008150033
Deployed Bytecode
0x608060405260043610610207575f3560e01c8063751039fc11610117578063a8aa1b311161009f578063dd62ed3e1161006e578063dd62ed3e14610722578063df20fd491461075e578063f2fde38b14610786578063f887ea40146107ae578063f88de0c3146107d85761020e565b8063a8aa1b311461066a578063a9059cbb14610694578063b2bdfa7b146106d0578063b6a5d7de146106fa5761020e565b8063893d20e8116100e6578063893d20e8146105ac5780638a8c523c146105d65780638da5cb5b146105ec5780639358928b1461061657806395d89b41146106405761020e565b8063751039fc1461050657806377b54bad1461051c57806378109e54146105585780637d1db4a5146105825761020e565b80631df4ccfc1161019a578063571ac8b011610169578063571ac8b0146104265780635d0044ca146104625780636ddd17131461048a57806370a08231146104b4578063715018a6146104f05761020e565b80631df4ccfc1461036e57806323b872dd1461039857806326f85dbe146103d4578063313ce567146103fc5761020e565b806311f630f3116101d657806311f630f3146102cc578063169bb498146102f457806318160ddd1461031c57806318abb635146103465761020e565b80630445b6671461021257806306fdde031461023c57806308fd3d0514610266578063095ea7b3146102905761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107ee565b6040516102339190613457565b60405180910390f35b348015610247575f80fd5b506102506107f4565b60405161025d91906134fa565b60405180910390f35b348015610271575f80fd5b5061027a610831565b6040516102879190613534565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b191906135d5565b610844565b6040516102c39190613534565b60405180910390f35b3480156102d7575f80fd5b506102f260048036038101906102ed9190613613565b610931565b005b3480156102ff575f80fd5b5061031a6004803603810190610315919061369c565b610aa0565b005b348015610327575f80fd5b50610330610c92565b60405161033d9190613457565b60405180910390f35b348015610351575f80fd5b5061036c600480360381019061036791906136ec565b610c9b565b005b348015610379575f80fd5b50610382610f37565b60405161038f9190613457565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190613763565b610f3d565b6040516103cb9190613534565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f591906137dd565b611130565b005b348015610407575f80fd5b50610410611270565b60405161041d9190613836565b60405180910390f35b348015610431575f80fd5b5061044c6004803603810190610447919061384f565b611278565b6040516104599190613534565b60405180910390f35b34801561046d575f80fd5b506104886004803603810190610483919061387a565b6112aa565b005b348015610495575f80fd5b5061049e6113a8565b6040516104ab9190613534565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061384f565b6113bb565b6040516104e79190613457565b60405180910390f35b3480156104fb575f80fd5b50610504611401565b005b348015610511575f80fd5b5061051a61154f565b005b348015610527575f80fd5b50610542600480360381019061053d91906135d5565b611563565b60405161054f9190613534565b60405180910390f35b348015610563575f80fd5b5061056c61176b565b6040516105799190613457565b60405180910390f35b34801561058d575f80fd5b50610596611771565b6040516105a39190613457565b60405180910390f35b3480156105b7575f80fd5b506105c0611777565b6040516105cd91906138b4565b60405180910390f35b3480156105e1575f80fd5b506105ea611785565b005b3480156105f7575f80fd5b50610600611836565b60405161060d91906138b4565b60405180910390f35b348015610621575f80fd5b5061062a61185d565b6040516106379190613457565b60405180910390f35b34801561064b575f80fd5b5061065461189c565b60405161066191906134fa565b60405180910390f35b348015610675575f80fd5b5061067e6118d9565b60405161068b91906138b4565b60405180910390f35b34801561069f575f80fd5b506106ba60048036038101906106b591906135d5565b6118fe565b6040516106c79190613534565b60405180910390f35b3480156106db575f80fd5b506106e4611912565b6040516106f191906138b4565b60405180910390f35b348015610705575f80fd5b50610720600480360381019061071b919061384f565b611935565b005b34801561072d575f80fd5b50610748600480360381019061074391906138cd565b611a20565b6040516107559190613457565b60405180910390f35b348015610769575f80fd5b50610784600480360381019061077f919061390b565b611aa2565b005b348015610791575f80fd5b506107ac60048036038101906107a7919061384f565b611ba5565b005b3480156107b9575f80fd5b506107c2611d62565b6040516107cf91906139a4565b60405180910390f35b3480156107e3575f80fd5b506107ec611d87565b005b601e5481565b60606040518060400160405280600681526020017f5045504536390000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161091f9190613457565b60405180910390a36001905092915050565b610939611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613a07565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610a3182610a2385610a1588610a078b8d611df590919063ffffffff16565b611df590919063ffffffff16565b611df590919063ffffffff16565b611df590919063ffffffff16565b600f81905550806010819055506004601054610a4d9190613a7f565b600f5410610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790613af9565b60405180910390fd5b610a98611e52565b505050505050565b610aa8611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90613a07565b60405180910390fd5b816011819055508260128190555080601381905550600c610b756064610b67601254600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90613b61565b60405180910390fd5b600c610be16064610bd3601154600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613bc9565b60405180910390fd5b600c610c4d6064610c3f601354600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b10610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8490613c57565b60405180910390fd5b505050565b5f600354905090565b610ca3611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690613a07565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610f289493929190613c75565b60405180910390a15050505050565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461111c5761109f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61112784848461202c565b90509392505050565b611138611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90613a07565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6009905090565b5f6112a3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610844565b9050919050565b6112b2611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590613a07565b60405180910390fd5b600181101561134b575f80fd5b6103e88160035461135c9190613cb8565b6113669190613a7f565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be5160055460405161139d9190613457565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611409611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90613a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600354600481905550600354600581905550565b5f61156c611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613a07565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613d43565b60405180910390fd5b5f82036116e8578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116a691906138b4565b602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190613d75565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611723929190613da0565b6020604051808303815f875af115801561173f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117639190613ddb565b905092915050565b60055481565b60045481565b5f611780611836565b905090565b61178d611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613a07565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f61189761186a5f6113bb565b61188961187861dead6113bb565b60035461271590919063ffffffff16565b61271590919063ffffffff16565b905090565b60606040518060400160405280600681526020017f5045504536390000000000000000000000000000000000000000000000000000815250905090565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61190a33848461202c565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61193d611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090613a07565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611aaa611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613a07565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611b99929190613e06565b60405180910390a15050565b611bad611dee565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090613a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613e9d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611deb573d5f803e3d5ffd5b50565b5f33905090565b5f808284611e039190613ebb565b905083811015611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613f38565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611e9d6064611e8f601254600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b611ec76064611eb9601154600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b611ef16064611ee3601354600f54611f0a90919063ffffffff16565b611f8190919063ffffffff16565b604051611f0093929190613f56565b60405180910390a1565b5f808303611f1a575f9050611f7b565b5f8284611f279190613cb8565b9050828482611f369190613a7f565b14611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613ffb565b60405180910390fd5b809150505b92915050565b5f611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275e565b905092915050565b5f838311158290612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200891906134fa565b60405180910390fd5b505f838561201f9190614019565b9050809150509392505050565b5f601f5f9054906101000a900460ff16156120535761204c8484846127bf565b905061270e565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120f1575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121f857601d60149054906101000a900460ff166121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90614096565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561227b57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122b5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561230e5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612367575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123c0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612413575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612476575f612422846113bb565b905060055483826124339190613ebb565b1115612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90614124565b60405180910390fd5b505b6124808483612989565b612488612a23565b1561249657612495612af5565b5b61251d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125fa575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61260e57612609858486613081565b612610565b825b90506126628160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127009190613457565b60405180910390a360019150505b9392505050565b5f61275683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fca565b905092915050565b5f80831182906127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b91906134fa565b60405180910390fd5b505f83856127b29190613a7f565b9050809150509392505050565b5f612847826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fca9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128d88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129769190613457565b60405180910390a3600190509392505050565b600454811115806129e0575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a169061418c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a8d5750601f5f9054906101000a900460ff16155b8015612aa55750601d60159054906101000a900460ff165b8015612af05750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f600f5490505f600282612b239190613cb8565b600a54601e54612b339190613cb8565b612b3d9190613a7f565b90505f81601e54612b4e9190614019565b90505f600267ffffffffffffffff811115612b6c57612b6b6141aa565b5b604051908082528060200260200182016040528015612b9a5781602001602082028036833780820191505090505b50905030815f81518110612bb157612bb06141d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c206141d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cbd9594939291906142f4565b5f604051808303815f87803b158015612cd4575f80fd5b505af1158015612ce6573d5f803e3d5ffd5b505050505f4790506002600a54612cfd9190613a7f565b85612d089190614019565b94505f600286612d189190613cb8565b600a5483612d269190613cb8565b612d309190613a7f565b90505f612d5a87612d4c600b5486611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f612d8488612d76600d5487611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f612dae89612da0600c5488611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612df690614379565b5f6040518083038185875af1925050503d805f8114612e30576040519150601f19603f3d011682016040523d82523d5f602084013e612e35565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612e7e90614379565b5f6040518083038185875af1925050503d805f8114612eb8576040519150601f19603f3d011682016040523d82523d5f602084013e612ebd565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612f0890614379565b5f6040518083038185875af1925050503d805f8114612f42576040519150601f19603f3d011682016040523d82523d5f602084013e612f47565b606091505b5050809150505f90505f89111561305c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308c5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fde9695949392919061438d565b60606040518083038185885af1158015612ffa573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061301f91906143ec565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858a60405161305392919061443c565b60405180910390a15b505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130e6576011549050613141565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131405760125490505b5b5f61318960646010546131549190613cb8565b61317b8461316d600f548a611f0a90919063ffffffff16565b611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f6131b5600f546131a7600e5485611f0a90919063ffffffff16565b611f8190919063ffffffff16565b90505f6131cb828461271590919063ffffffff16565b905061321d8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132cf8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df590919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161338e9190613457565b60405180910390a35f82111561341f576133b38260035461271590919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134169190613457565b60405180910390a35b613432838861271590919063ffffffff16565b9450505050509392505050565b5f819050919050565b6134518161343f565b82525050565b5f60208201905061346a5f830184613448565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134a757808201518184015260208101905061348c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134cc82613470565b6134d6818561347a565b93506134e681856020860161348a565b6134ef816134b2565b840191505092915050565b5f6020820190508181035f83015261351281846134c2565b905092915050565b5f8115159050919050565b61352e8161351a565b82525050565b5f6020820190506135475f830184613525565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61357a82613551565b9050919050565b61358a81613570565b8114613594575f80fd5b50565b5f813590506135a581613581565b92915050565b6135b48161343f565b81146135be575f80fd5b50565b5f813590506135cf816135ab565b92915050565b5f80604083850312156135eb576135ea61354d565b5b5f6135f885828601613597565b9250506020613609858286016135c1565b9150509250929050565b5f805f805f8060c0878903121561362d5761362c61354d565b5b5f61363a89828a016135c1565b965050602061364b89828a016135c1565b955050604061365c89828a016135c1565b945050606061366d89828a016135c1565b935050608061367e89828a016135c1565b92505060a061368f89828a016135c1565b9150509295509295509295565b5f805f606084860312156136b3576136b261354d565b5b5f6136c0868287016135c1565b93505060206136d1868287016135c1565b92505060406136e2868287016135c1565b9150509250925092565b5f805f805f60a086880312156137055761370461354d565b5b5f61371288828901613597565b955050602061372388828901613597565b945050604061373488828901613597565b935050606061374588828901613597565b925050608061375688828901613597565b9150509295509295909350565b5f805f6060848603121561377a5761377961354d565b5b5f61378786828701613597565b935050602061379886828701613597565b92505060406137a9868287016135c1565b9150509250925092565b6137bc8161351a565b81146137c6575f80fd5b50565b5f813590506137d7816137b3565b92915050565b5f80604083850312156137f3576137f261354d565b5b5f61380085828601613597565b9250506020613811858286016137c9565b9150509250929050565b5f60ff82169050919050565b6138308161381b565b82525050565b5f6020820190506138495f830184613827565b92915050565b5f602082840312156138645761386361354d565b5b5f61387184828501613597565b91505092915050565b5f6020828403121561388f5761388e61354d565b5b5f61389c848285016135c1565b91505092915050565b6138ae81613570565b82525050565b5f6020820190506138c75f8301846138a5565b92915050565b5f80604083850312156138e3576138e261354d565b5b5f6138f085828601613597565b925050602061390185828601613597565b9150509250929050565b5f80604083850312156139215761392061354d565b5b5f61392e858286016137c9565b925050602061393f858286016135c1565b9150509250929050565b5f819050919050565b5f61396c61396761396284613551565b613949565b613551565b9050919050565b5f61397d82613952565b9050919050565b5f61398e82613973565b9050919050565b61399e81613984565b82525050565b5f6020820190506139b75f830184613995565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139f160208361347a565b91506139fc826139bd565b602082019050919050565b5f6020820190508181035f830152613a1e816139e5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a898261343f565b9150613a948361343f565b925082613aa457613aa3613a25565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203235250000005f82015250565b5f613ae3601d8361347a565b9150613aee82613aaf565b602082019050919050565b5f6020820190508181035f830152613b1081613ad7565b9050919050565b7f427579205461782063616e6e6f74206265206d6f7265207468616e20313225005f82015250565b5f613b4b601f8361347a565b9150613b5682613b17565b602082019050919050565b5f6020820190508181035f830152613b7881613b3f565b9050919050565b7f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203132255f82015250565b5f613bb360208361347a565b9150613bbe82613b7f565b602082019050919050565b5f6020820190508181035f830152613be081613ba7565b9050919050565b7f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e5f8201527f2031322500000000000000000000000000000000000000000000000000000000602082015250565b5f613c4160248361347a565b9150613c4c82613be7565b604082019050919050565b5f6020820190508181035f830152613c6e81613c35565b9050919050565b5f608082019050613c885f8301876138a5565b613c9560208301866138a5565b613ca260408301856138a5565b613caf60608301846138a5565b95945050505050565b5f613cc28261343f565b9150613ccd8361343f565b9250828202613cdb8161343f565b91508282048414831517613cf257613cf1613a52565b5b5092915050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e735f82015250565b5f613d2d60208361347a565b9150613d3882613cf9565b602082019050919050565b5f6020820190508181035f830152613d5a81613d21565b9050919050565b5f81519050613d6f816135ab565b92915050565b5f60208284031215613d8a57613d8961354d565b5b5f613d9784828501613d61565b91505092915050565b5f604082019050613db35f8301856138a5565b613dc06020830184613448565b9392505050565b5f81519050613dd5816137b3565b92915050565b5f60208284031215613df057613def61354d565b5b5f613dfd84828501613dc7565b91505092915050565b5f604082019050613e195f830185613448565b613e266020830184613525565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613e8760268361347a565b9150613e9282613e2d565b604082019050919050565b5f6020820190508181035f830152613eb481613e7b565b9050919050565b5f613ec58261343f565b9150613ed08361343f565b9250828201905080821115613ee857613ee7613a52565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f22601b8361347a565b9150613f2d82613eee565b602082019050919050565b5f6020820190508181035f830152613f4f81613f16565b9050919050565b5f606082019050613f695f830186613827565b613f766020830185613827565b613f836040830184613827565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fe560218361347a565b9150613ff082613f8b565b604082019050919050565b5f6020820190508181035f83015261401281613fd9565b9050919050565b5f6140238261343f565b915061402e8361343f565b925082820390508181111561404657614045613a52565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f61408060148361347a565b915061408b8261404c565b602082019050919050565b5f6020820190508181035f8301526140ad81614074565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f61410e603e8361347a565b9150614119826140b4565b604082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f61417660118361347a565b915061418182614142565b602082019050919050565b5f6020820190508181035f8301526141a38161416a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61422761422261421d84614204565b613949565b61343f565b9050919050565b6142378161420d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61426f81613570565b82525050565b5f6142808383614266565b60208301905092915050565b5f602082019050919050565b5f6142a28261423d565b6142ac8185614247565b93506142b783614257565b805f5b838110156142e75781516142ce8882614275565b97506142d98361428c565b9250506001810190506142ba565b5085935050505092915050565b5f60a0820190506143075f830188613448565b614314602083018761422e565b81810360408301526143268186614298565b905061433560608301856138a5565b6143426080830184613448565b9695505050505050565b5f81905092915050565b50565b5f6143645f8361434c565b915061436f82614356565b5f82019050919050565b5f61438382614359565b9150819050919050565b5f60c0820190506143a05f8301896138a5565b6143ad6020830188613448565b6143ba604083018761422e565b6143c7606083018661422e565b6143d460808301856138a5565b6143e160a0830184613448565b979650505050505050565b5f805f606084860312156144035761440261354d565b5b5f61441086828701613d61565b935050602061442186828701613d61565b925050604061443286828701613d61565b9150509250925092565b5f60408201905061444f5f830185613448565b61445c6020830184613448565b939250505056fea2646970667358221220b94418e8fa75d0d478df084fccdd1a7105e2d350bc11fef5681597c530e2663c64736f6c63430008150033
Deployed Bytecode Sourcemap
5034:13687:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8999:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7436:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9421:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17214:572;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14762:490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8729:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17799:540;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6646:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9939:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10777:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8823:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9645:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10321:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7478:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9169:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1948:148;;;;;;;;;;;;;:::i;:::-;;14262:122;;;;;;;;;;;;;:::i;:::-;;14392:356;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6112:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6045:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9085:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10688:81;;;;;;;;;;;;;:::i;:::-;;1734:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18575:139;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8909:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7410:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9775:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1346:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10577:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9280:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18347:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2104:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7340:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14120:134;;;;;;;;;;;;;:::i;:::-;;7515:58;;;;:::o;8999:80::-;9047:13;9071:5;;;;;;;;;;;;;;;;;9064:12;;8999:80;:::o;7436:30::-;;;;;;;;;;;;;:::o;9421:216::-;9496:4;9548:6;9513:11;:23;9525:10;9513:23;;;;;;;;;;;;;;;:32;9537:7;9513:32;;;;;;;;;;;;;;;:41;;;;9591:7;9570:37;;9579:10;9570:37;;;9600:6;9570:37;;;;;;:::i;:::-;;;;;;;;9625:4;9618:11;;9421:216;;;;:::o;17214:572::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17399:13:::1;17384:12;:28;;;;17433:8;17423:7;:18;;;;17467:13;17452:12;:28;;;;17500:7;17491:6;:16;;;;17528:8;17518:7;:18;;;;17558:73;17622:8;17558:59;17609:7;17558:46;17590:13;17558:27;17576:8;17558:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:59;;;;:::i;:::-;:63;;:73;;;;:::i;:::-;17547:8;:84;;;;17659:15;17642:14;:32;;;;17721:1;17704:14;;:18;;;;:::i;:::-;17693:8;;:29;17685:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17768:10;:8;:10::i;:::-;17214:572:::0;;;;;;:::o;14762:490::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14876:5:::1;14862:11;:19;;;;14905:4;14892:10;:17;;;;14938:6;14920:15;:24;;;;15005:2;14969:33;14998:3;14969:24;14982:10;;14969:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;:38;14961:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;15099:2;15062:34;15092:3;15062:25;15075:11;;15062:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;:39;15054:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15198:2;15157:38;15191:3;15157:29;15170:15;;15157:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:43;15149:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14762:490:::0;;;:::o;8729:88::-;8784:7;8802:12;;8795:19;;8729:88;:::o;17799:540::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18018:22:::1;17994:21;;:46;;;;;;;;;;;;;;;;;;18074:21;18051:20;;:44;;;;;;;;;;;;;;;;;;18123:15;18106:14;;:32;;;;;;;;;;;;;;;;;;18167:16;18149:15;;:34;;;;;;;;;;;;;;;;;;18212:16;18194:15;;:34;;;;;;;;;;;;;;;;;;18246:85;18260:20;;;;;;;;;;;18282:15;;;;;;;;;;;18299;;;;;;;;;;;18316:14;;;;;;;;;;;18246:85;;;;;;;;;:::i;:::-;;;;;;;;17799:540:::0;;;;;:::o;6646:90::-;;;;:::o;9939:370::-;10039:4;10094:17;10059:11;:19;10071:6;10059:19;;;;;;;;;;;;;;;:31;10079:10;10059:31;;;;;;;;;;;;;;;;:52;10056:186;;10161:69;10197:6;10161:69;;;;;;;;;;;;;;;;;:11;:19;10173:6;10161:19;;;;;;;;;;;;;;;:31;10181:10;10161:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10127:11;:19;10139:6;10127:19;;;;;;;;;;;;;;;:31;10147:10;10127:31;;;;;;;;;;;;;;;:103;;;;10056:186;10261:40;10275:6;10283:9;10294:6;10261:13;:40::i;:::-;10254:47;;9939:370;;;;;:::o;10777:168::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10888:6:::1;10866:11;:19;10878:6;10866:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10931:6;10905:15;:23;10921:6;10905:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10777:168:::0;;:::o;8823:80::-;8875:5;5390:1;8884:16;;8823:80;:::o;9645:122::-;9700:4;9724:35;9732:7;9741:17;9724:7;:35::i;:::-;9717:42;;9645:122;;;:::o;10321:246::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10424:1:::1;10406:14;:19;;10398:28;;;::::0;::::1;;10491:4;10472:14;10457:12;;:29;;;;:::i;:::-;10456:39;;;;:::i;:::-;10438:15;:57;;;;10511:30;10525:15;;10511:30;;;;;;:::i;:::-;;;;;;;;10321:246:::0;:::o;7478:30::-;;;;;;;;;;;;;:::o;9169:105::-;9235:7;9253:9;:18;9263:7;9253:18;;;;;;;;;;;;;;;;9246:25;;9169:105;;;:::o;1948:148::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2055:1:::1;2018:40;;2039:6;::::0;::::1;;;;;;;;2018:40;;;;;;;;;;;;2086:1;2069:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1948:148::o:0;14262:122::-;14321:12;;14306;:27;;;;14362:12;;14344:15;:30;;;;14262:122::o;14392:356::-;14481:4;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14527:4:::1;14503:29;;:12;:29;;::::0;14495:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14591:1;14581:6;:11:::0;14578:96:::1;;14624:12;14617:30;;;14656:4;14617:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14608:54;;14578:96;14698:12;14691:29;;;14721:10;14733:6;14691:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14684:56;;14392:356:::0;;;;:::o;6112:62::-;;;;:::o;6045:60::-;;;;:::o;9085:78::-;9137:7;9154;:5;:7::i;:::-;9147:14;;9085:78;:::o;10688:81::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10755:4:::1;10741:11;;:18;;;;;;;;;;;;;;;;;;10688:81::o:0;1734:79::-;1772:7;1799:6;;;;;;;;;;;1792:13;;1734:79;:::o;18575:139::-;18625:7;18652:54;18690:15;5226:42;18690:9;:15::i;:::-;18652:33;18669:15;5153:42;18669:9;:15::i;:::-;18652:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18645:61;;18575:139;:::o;8909:84::-;8959:13;8983:7;;;;;;;;;;;;;;;;;8976:14;;8909:84;:::o;7410:19::-;;;;;;;;;;;;;:::o;9775:156::-;9855:4;9879:44;9893:10;9905:9;9916:6;9879:13;:44::i;:::-;9872:51;;9775:156;;;;:::o;1346:21::-;;;;;;;;;;;;:::o;10577:94::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10659:4:::1;10637:14:::0;:19:::1;10652:3;10637:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10577:94:::0;:::o;9280:133::-;9364:7;9382:11;:19;9394:6;9382:19;;;;;;;;;;;;;;;:28;9402:7;9382:28;;;;;;;;;;;;;;;;9375:35;;9280:133;;;;:::o;18347:211::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18452:8:::1;18438:11;;:22;;;;;;;;;;;;;;;;;;18487:7;18471:13;:23;;;;18510:40;18523:13;;18538:11;;;;;;;;;;;18510:40;;;;;;;:::i;:::-;;;;;;;;18347:211:::0;;:::o;2104:244::-;1871:12;:10;:12::i;:::-;1861:22;;:6;;;;;;;;;;:22;;;1853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2213:1:::1;2193:22;;:8;:22;;::::0;2185:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2303:8;2274:38;;2295:6;::::0;::::1;;;;;;;;2274:38;;;;;;;;;;;;2332:8;2323:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2104:244:::0;:::o;7340:24::-;;;;;;;;;;;;;:::o;14120:134::-;14179:20;;;;;;;;;;;14171:38;;:61;14210:21;14171:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14120:134::o;1067:115::-;1120:15;1163:10;1148:26;;1067:115;:::o;3917:181::-;3975:7;3995:9;4011:1;4007;:5;;;;:::i;:::-;3995:17;;4036:1;4031;:6;;4023:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4089:1;4082:8;;;3917:181;;;;:::o;16961:241::-;17014:180;17029:33;17058:3;17029:24;17042:10;;17029:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;17084:34;17114:3;17084:25;17097:11;;17084:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;17140:38;17174:3;17140:29;17153:15;;17140:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17014:180;;;;;;;;:::i;:::-;;;;;;;;16961:241::o;4444:250::-;4502:7;4531:1;4526;:6;4522:47;;4556:1;4549:8;;;;4522:47;4581:9;4597:1;4593;:5;;;;:::i;:::-;4581:17;;4626:1;4621;4617;:5;;;;:::i;:::-;:10;4609:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4685:1;4678:8;;;4444:250;;;;;:::o;4700:132::-;4758:7;4785:39;4789:1;4792;4785:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4778:46;;4700:132;;;;:::o;4246:192::-;4332:7;4365:1;4360;:6;;4368:12;4352:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4392:9;4408:1;4404;:5;;;;:::i;:::-;4392:17;;4429:1;4422:8;;;4246:192;;;;;:::o;10961:1313::-;11053:4;11073:6;;;;;;;;;;;11070:63;;;11089:41;11104:6;11112:9;11123:6;11089:14;:41::i;:::-;11082:48;;;;11070:63;11149:14;:22;11164:6;11149:22;;;;;;;;;;;;;;;;;;;;;;;;;11148:23;:53;;;;;11176:14;:25;11191:9;11176:25;;;;;;;;;;;;;;;;;;;;;;;;;11175:26;11148:53;:89;;;;;11217:20;;;;;;;;;;;11205:32;;:9;:32;;;;11148:89;:122;;;;;11250:20;;;;;;;;;;;11241:29;;:6;:29;;;;11148:122;11145:209;;;11295:11;;;;;;;;;;;11287:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11145:209;11396:14;:22;11411:6;11396:22;;;;;;;;;;;;;;;;;;;;;;;;;11395:23;:53;;;;;11443:4;11422:26;;:9;:26;;;;11395:53;:84;;;;;5153:42;11453:26;;:9;:26;;;;11395:84;:105;;;;;11496:4;;;;;;;;;;;11483:17;;:9;:17;;;;11395:105;:137;;;;;11517:15;;;;;;;;;;;11504:28;;:9;:28;;;;11395:137;:174;;;;;11549:20;;;;;;;;;;;11536:33;;:9;:33;;;;11395:174;:207;;;;;11574:17;:28;11592:9;11574:28;;;;;;;;;;;;;;;;;;;;;;;;;11573:29;11395:207;11391:399;;;11618:18;11639:20;11649:9;11639;:20::i;:::-;11618:41;;11707:15;;11696:6;11683:10;:19;;;;:::i;:::-;11682:40;;11674:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11603:187;11391:399;11802:28;11815:6;11823;11802:12;:28::i;:::-;11853:16;:14;:16::i;:::-;11850:35;;;11872:10;:8;:10::i;:::-;11850:35;11915:53;11937:6;11915:53;;;;;;;;;;;;;;;;;:9;:17;11925:6;11915:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11895:9;:17;11905:6;11895:17;;;;;;;;;;;;;;;:73;;;;11981:22;12007:16;:24;12024:6;12007:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;12035:16;:27;12052:9;12035:27;;;;;;;;;;;;;;;;;;;;;;;;;12007:55;12006:103;;12075:34;12083:6;12091;12099:9;12075:7;:34::i;:::-;12006:103;;;12066:6;12006:103;11981:128;;12143:40;12168:14;12143:9;:20;12153:9;12143:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12120:9;:20;12130:9;12120:20;;;;;;;;;;;;;;;:63;;;;12218:9;12201:43;;12210:6;12201:43;;;12229:14;12201:43;;;;;;:::i;:::-;;;;;;;;12262:4;12255:11;;;10961:1313;;;;;;:::o;4104:136::-;4162:7;4189:43;4193:1;4196;4189:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4182:50;;4104:136;;;;:::o;4838:189::-;4924:7;4956:1;4952;:5;4959:12;4944:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4983:9;4999:1;4995;:5;;;;:::i;:::-;4983:17;;5018:1;5011:8;;;4838:189;;;;;:::o;12283:330::-;12376:4;12413:53;12435:6;12413:53;;;;;;;;;;;;;;;;;:9;:17;12423:6;12413:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12393:9;:17;12403:6;12393:17;;;;;;;;;;;;;;;:73;;;;12500:32;12525:6;12500:9;:20;12510:9;12500:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12477:9;:20;12487:9;12477:20;;;;;;;;;;;;;;;:55;;;;12565:9;12548:35;;12557:6;12548:35;;;12576:6;12548:35;;;;;;:::i;:::-;;;;;;;;12601:4;12594:11;;12283:330;;;;;:::o;12621:164::-;12714:12;;12704:6;:22;;:51;;;;12730:17;:25;12748:6;12730:25;;;;;;;;;;;;;;;;;;;;;;;;;12704:51;12696:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12621:164;;:::o;13910:197::-;13959:4;13997;;;;;;;;;;;13983:18;;:10;:18;;;;:38;;;;;14015:6;;;;;;;;;;;14014:7;13983:38;:62;;;;;14034:11;;;;;;;;;;;13983:62;:116;;;;;14086:13;;14058:9;:24;14076:4;14058:24;;;;;;;;;;;;;;;;:41;;13983:116;13976:123;;13910:197;:::o;15268:1677::-;7630:4;7621:6;;:13;;;;;;;;;;;;;;;;;;15327:19:::1;15349:8;;15327:30;;15370:23;15442:1;15428:11;:15;;;;:::i;:::-;15413:12;;15397:13;;:28;;;;:::i;:::-;15396:48;;;;:::i;:::-;15370:74;;15455:20;15494:15;15478:13;;:31;;;;:::i;:::-;15455:54;;15522:21;15560:1;15546:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15522:40;;15591:4;15573;15578:1;15573:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15617:4;;;;;;;;;;;15607;15612:1;15607:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15634:6;;;;;;;;;;;:57;;;15706:12;15733:1;15749:4;15776;15796:15;15634:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15836:17;15856:21;15836:41;;15935:1;15920:12;;:16;;;;:::i;:::-;15905:11;:32;;;;:::i;:::-;15891:46;;15958:26;16031:1;16017:11;:15;;;;:::i;:::-;16000:12;;15988:9;:24;;;;:::i;:::-;15987:46;;;;:::i;:::-;15958:75;;16044:26;16073:44;16105:11;16073:27;16087:12;;16073:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16044:73;;16128:21;16152:39;16179:11;16152:22;16166:7;;16152:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16128:63;;16202:20;16225:38;16251:11;16225:21;16239:6;;16225:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16202:61;;16277:15;16305:20;;;;;;;;;;;16297:34;;16339:18;16297:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16276:86;;;16397:14;;;;;;;;;;;16389:28;;16425:12;16389:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16373:69;;;;;16477:15;;;;;;;;;;;16469:29;;16506:13;16469:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16453:71;;;;;16558:5;16545:18;;16597:1;16579:15;:19;16576:362;;;16614:6;;;;;;;;;;;:22;;;16644:18;16690:4;16714:15;16748:1;16768::::0;16788:21:::1;;;;;;;;;;;16828:15;16614:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16878:48;16890:18;16910:15;16878:48;;;;;;;:::i;:::-;;;;;;;;16576:362;15306:1639;;;;;;;;;;7648:5:::0;7639:6;;:14;;;;;;;;;;;;;;;;;;15268:1677::o;12920:982::-;13006:7;13036:15;13054;;13036:33;;13096:4;;;;;;;;;;;13083:17;;:9;:17;;;13080:142;;13127:11;;13117:21;;13080:142;;;13169:4;;;;;;;;;;;13159:14;;:6;:14;;;13156:66;;13200:10;;13190:20;;13156:66;13080:142;13234:17;13254:59;13309:3;13292:14;;:20;;;;:::i;:::-;13254:33;13279:7;13254:20;13265:8;;13254:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:59;;;;:::i;:::-;13234:79;;13324:18;13345:36;13372:8;;13345:22;13359:7;;13345:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13324:57;;13392:22;13417:25;13431:10;13417:9;:13;;:25;;;;:::i;:::-;13392:50;;13480:44;13509:14;13480:9;:24;13498:4;13480:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13453:9;:24;13471:4;13453:24;;;;;;;;;;;;;;;:71;;;;13564:42;13595:10;13564:9;:26;13574:15;;;;;;;;;;;13564:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13535:9;:26;13545:15;;;;;;;;;;;13535:26;;;;;;;;;;;;;;;:71;;;;13647:4;13622:47;;13631:6;13622:47;;;13654:14;13622:47;;;;;;:::i;:::-;;;;;;;;13716:1;13703:10;:14;13700:154;;;13748:28;13765:10;13748:12;;:16;;:28;;;;:::i;:::-;13733:12;:43;;;;5226:42;13796:34;;13805:6;13796:34;;;13819:10;13796:34;;;;;;:::i;:::-;;;;;;;;13700:154;13873:21;13884:9;13873:6;:10;;:21;;;;:::i;:::-;13866:28;;;;;;12920:982;;;;;:::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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:1057::-;3902:6;3910;3918;3926;3934;3942;3991:3;3979:9;3970:7;3966:23;3962:33;3959:120;;;3998:79;;:::i;:::-;3959:120;4118:1;4143:53;4188:7;4179:6;4168:9;4164:22;4143:53;:::i;:::-;4133:63;;4089:117;4245:2;4271:53;4316:7;4307:6;4296:9;4292:22;4271:53;:::i;:::-;4261:63;;4216:118;4373:2;4399:53;4444:7;4435:6;4424:9;4420:22;4399:53;:::i;:::-;4389:63;;4344:118;4501:2;4527:53;4572:7;4563:6;4552:9;4548:22;4527:53;:::i;:::-;4517:63;;4472:118;4629:3;4656:53;4701:7;4692:6;4681:9;4677:22;4656:53;:::i;:::-;4646:63;;4600:119;4758:3;4785:53;4830:7;4821:6;4810:9;4806:22;4785:53;:::i;:::-;4775:63;;4729:119;3798:1057;;;;;;;;:::o;4861:619::-;4938:6;4946;4954;5003:2;4991:9;4982:7;4978:23;4974:32;4971:119;;;5009:79;;:::i;:::-;4971:119;5129:1;5154:53;5199:7;5190:6;5179:9;5175:22;5154:53;:::i;:::-;5144:63;;5100:117;5256:2;5282:53;5327:7;5318:6;5307:9;5303:22;5282:53;:::i;:::-;5272:63;;5227:118;5384:2;5410:53;5455:7;5446:6;5435:9;5431:22;5410:53;:::i;:::-;5400:63;;5355:118;4861:619;;;;;:::o;5486:911::-;5581:6;5589;5597;5605;5613;5662:3;5650:9;5641:7;5637:23;5633:33;5630:120;;;5669:79;;:::i;:::-;5630:120;5789:1;5814:53;5859:7;5850:6;5839:9;5835:22;5814:53;:::i;:::-;5804:63;;5760:117;5916:2;5942:53;5987:7;5978:6;5967:9;5963:22;5942:53;:::i;:::-;5932:63;;5887:118;6044:2;6070:53;6115:7;6106:6;6095:9;6091:22;6070:53;:::i;:::-;6060:63;;6015:118;6172:2;6198:53;6243:7;6234:6;6223:9;6219:22;6198:53;:::i;:::-;6188:63;;6143:118;6300:3;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6271:119;5486:911;;;;;;;;:::o;6403:619::-;6480:6;6488;6496;6545:2;6533:9;6524:7;6520:23;6516:32;6513:119;;;6551:79;;:::i;:::-;6513:119;6671:1;6696:53;6741:7;6732:6;6721:9;6717:22;6696:53;:::i;:::-;6686:63;;6642:117;6798:2;6824:53;6869:7;6860:6;6849:9;6845:22;6824:53;:::i;:::-;6814:63;;6769:118;6926:2;6952:53;6997:7;6988:6;6977:9;6973:22;6952:53;:::i;:::-;6942:63;;6897:118;6403:619;;;;;:::o;7028:116::-;7098:21;7113:5;7098:21;:::i;:::-;7091:5;7088:32;7078:60;;7134:1;7131;7124:12;7078:60;7028:116;:::o;7150:133::-;7193:5;7231:6;7218:20;7209:29;;7247:30;7271:5;7247:30;:::i;:::-;7150:133;;;;:::o;7289:468::-;7354:6;7362;7411:2;7399:9;7390:7;7386:23;7382:32;7379:119;;;7417:79;;:::i;:::-;7379:119;7537:1;7562:53;7607:7;7598:6;7587:9;7583:22;7562:53;:::i;:::-;7552:63;;7508:117;7664:2;7690:50;7732:7;7723:6;7712:9;7708:22;7690:50;:::i;:::-;7680:60;;7635:115;7289:468;;;;;:::o;7763:86::-;7798:7;7838:4;7831:5;7827:16;7816:27;;7763:86;;;:::o;7855:112::-;7938:22;7954:5;7938:22;:::i;:::-;7933:3;7926:35;7855:112;;:::o;7973:214::-;8062:4;8100:2;8089:9;8085:18;8077:26;;8113:67;8177:1;8166:9;8162:17;8153:6;8113:67;:::i;:::-;7973:214;;;;:::o;8193:329::-;8252:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:119;;;8307:79;;:::i;:::-;8269:119;8427:1;8452:53;8497:7;8488:6;8477:9;8473:22;8452:53;:::i;:::-;8442:63;;8398:117;8193:329;;;;:::o;8528:::-;8587:6;8636:2;8624:9;8615:7;8611:23;8607:32;8604:119;;;8642:79;;:::i;:::-;8604:119;8762:1;8787:53;8832:7;8823:6;8812:9;8808:22;8787:53;:::i;:::-;8777:63;;8733:117;8528:329;;;;:::o;8863:118::-;8950:24;8968:5;8950:24;:::i;:::-;8945:3;8938:37;8863:118;;:::o;8987:222::-;9080:4;9118:2;9107:9;9103:18;9095:26;;9131:71;9199:1;9188:9;9184:17;9175:6;9131:71;:::i;:::-;8987:222;;;;:::o;9215:474::-;9283:6;9291;9340:2;9328:9;9319:7;9315:23;9311:32;9308:119;;;9346:79;;:::i;:::-;9308:119;9466:1;9491:53;9536:7;9527:6;9516:9;9512:22;9491:53;:::i;:::-;9481:63;;9437:117;9593:2;9619:53;9664:7;9655:6;9644:9;9640:22;9619:53;:::i;:::-;9609:63;;9564:118;9215:474;;;;;:::o;9695:468::-;9760:6;9768;9817:2;9805:9;9796:7;9792:23;9788:32;9785:119;;;9823:79;;:::i;:::-;9785:119;9943:1;9968:50;10010:7;10001:6;9990:9;9986:22;9968:50;:::i;:::-;9958:60;;9914:114;10067:2;10093:53;10138:7;10129:6;10118:9;10114:22;10093:53;:::i;:::-;10083:63;;10038:118;9695:468;;;;;:::o;10169:60::-;10197:3;10218:5;10211:12;;10169:60;;;:::o;10235:142::-;10285:9;10318:53;10336:34;10345:24;10363:5;10345:24;:::i;:::-;10336:34;:::i;:::-;10318:53;:::i;:::-;10305:66;;10235:142;;;:::o;10383:126::-;10433:9;10466:37;10497:5;10466:37;:::i;:::-;10453:50;;10383:126;;;:::o;10515:144::-;10583:9;10616:37;10647:5;10616:37;:::i;:::-;10603:50;;10515:144;;;:::o;10665:167::-;10770:55;10819:5;10770:55;:::i;:::-;10765:3;10758:68;10665:167;;:::o;10838:258::-;10949:4;10987:2;10976:9;10972:18;10964:26;;11000:89;11086:1;11075:9;11071:17;11062:6;11000:89;:::i;:::-;10838:258;;;;:::o;11102:182::-;11242:34;11238:1;11230:6;11226:14;11219:58;11102:182;:::o;11290:366::-;11432:3;11453:67;11517:2;11512:3;11453:67;:::i;:::-;11446:74;;11529:93;11618:3;11529:93;:::i;:::-;11647:2;11642:3;11638:12;11631:19;;11290:366;;;:::o;11662:419::-;11828:4;11866:2;11855:9;11851:18;11843:26;;11915:9;11909:4;11905:20;11901:1;11890:9;11886:17;11879:47;11943:131;12069:4;11943:131;:::i;:::-;11935:139;;11662:419;;;:::o;12087:180::-;12135:77;12132:1;12125:88;12232:4;12229:1;12222:15;12256:4;12253:1;12246:15;12273:180;12321:77;12318:1;12311:88;12418:4;12415:1;12408:15;12442:4;12439:1;12432:15;12459:185;12499:1;12516:20;12534:1;12516:20;:::i;:::-;12511:25;;12550:20;12568:1;12550:20;:::i;:::-;12545:25;;12589:1;12579:35;;12594:18;;:::i;:::-;12579:35;12636:1;12633;12629:9;12624:14;;12459:185;;;;:::o;12650:179::-;12790:31;12786:1;12778:6;12774:14;12767:55;12650:179;:::o;12835:366::-;12977:3;12998:67;13062:2;13057:3;12998:67;:::i;:::-;12991:74;;13074:93;13163:3;13074:93;:::i;:::-;13192:2;13187:3;13183:12;13176:19;;12835:366;;;:::o;13207:419::-;13373:4;13411:2;13400:9;13396:18;13388:26;;13460:9;13454:4;13450:20;13446:1;13435:9;13431:17;13424:47;13488:131;13614:4;13488:131;:::i;:::-;13480:139;;13207:419;;;:::o;13632:181::-;13772:33;13768:1;13760:6;13756:14;13749:57;13632:181;:::o;13819:366::-;13961:3;13982:67;14046:2;14041:3;13982:67;:::i;:::-;13975:74;;14058:93;14147:3;14058:93;:::i;:::-;14176:2;14171:3;14167:12;14160:19;;13819:366;;;:::o;14191:419::-;14357:4;14395:2;14384:9;14380:18;14372:26;;14444:9;14438:4;14434:20;14430:1;14419:9;14415:17;14408:47;14472:131;14598:4;14472:131;:::i;:::-;14464:139;;14191:419;;;:::o;14616:182::-;14756:34;14752:1;14744:6;14740:14;14733:58;14616:182;:::o;14804:366::-;14946:3;14967:67;15031:2;15026:3;14967:67;:::i;:::-;14960:74;;15043:93;15132:3;15043:93;:::i;:::-;15161:2;15156:3;15152:12;15145:19;;14804:366;;;:::o;15176:419::-;15342:4;15380:2;15369:9;15365:18;15357:26;;15429:9;15423:4;15419:20;15415:1;15404:9;15400:17;15393:47;15457:131;15583:4;15457:131;:::i;:::-;15449:139;;15176:419;;;:::o;15601:223::-;15741:34;15737:1;15729:6;15725:14;15718:58;15810:6;15805:2;15797:6;15793:15;15786:31;15601:223;:::o;15830:366::-;15972:3;15993:67;16057:2;16052:3;15993:67;:::i;:::-;15986:74;;16069:93;16158:3;16069:93;:::i;:::-;16187:2;16182:3;16178:12;16171:19;;15830:366;;;:::o;16202:419::-;16368:4;16406:2;16395:9;16391:18;16383:26;;16455:9;16449:4;16445:20;16441:1;16430:9;16426:17;16419:47;16483:131;16609:4;16483:131;:::i;:::-;16475:139;;16202:419;;;:::o;16627:553::-;16804:4;16842:3;16831:9;16827:19;16819:27;;16856:71;16924:1;16913:9;16909:17;16900:6;16856:71;:::i;:::-;16937:72;17005:2;16994:9;16990:18;16981:6;16937:72;:::i;:::-;17019;17087:2;17076:9;17072:18;17063:6;17019:72;:::i;:::-;17101;17169:2;17158:9;17154:18;17145:6;17101:72;:::i;:::-;16627:553;;;;;;;:::o;17186:410::-;17226:7;17249:20;17267:1;17249:20;:::i;:::-;17244:25;;17283:20;17301:1;17283:20;:::i;:::-;17278:25;;17338:1;17335;17331:9;17360:30;17378:11;17360:30;:::i;:::-;17349:41;;17539:1;17530:7;17526:15;17523:1;17520:22;17500:1;17493:9;17473:83;17450:139;;17569:18;;:::i;:::-;17450:139;17234:362;17186:410;;;;:::o;17602:182::-;17742:34;17738:1;17730:6;17726:14;17719:58;17602:182;:::o;17790:366::-;17932:3;17953:67;18017:2;18012:3;17953:67;:::i;:::-;17946:74;;18029:93;18118:3;18029:93;:::i;:::-;18147:2;18142:3;18138:12;18131:19;;17790:366;;;:::o;18162:419::-;18328:4;18366:2;18355:9;18351:18;18343:26;;18415:9;18409:4;18405:20;18401:1;18390:9;18386:17;18379:47;18443:131;18569:4;18443:131;:::i;:::-;18435:139;;18162:419;;;:::o;18587:143::-;18644:5;18675:6;18669:13;18660:22;;18691:33;18718:5;18691:33;:::i;:::-;18587:143;;;;:::o;18736:351::-;18806:6;18855:2;18843:9;18834:7;18830:23;18826:32;18823:119;;;18861:79;;:::i;:::-;18823:119;18981:1;19006:64;19062:7;19053:6;19042:9;19038:22;19006:64;:::i;:::-;18996:74;;18952:128;18736:351;;;;:::o;19093:332::-;19214:4;19252:2;19241:9;19237:18;19229:26;;19265:71;19333:1;19322:9;19318:17;19309:6;19265:71;:::i;:::-;19346:72;19414:2;19403:9;19399:18;19390:6;19346:72;:::i;:::-;19093:332;;;;;:::o;19431:137::-;19485:5;19516:6;19510:13;19501:22;;19532:30;19556:5;19532:30;:::i;:::-;19431:137;;;;:::o;19574:345::-;19641:6;19690:2;19678:9;19669:7;19665:23;19661:32;19658:119;;;19696:79;;:::i;:::-;19658:119;19816:1;19841:61;19894:7;19885:6;19874:9;19870:22;19841:61;:::i;:::-;19831:71;;19787:125;19574:345;;;;:::o;19925:320::-;20040:4;20078:2;20067:9;20063:18;20055:26;;20091:71;20159:1;20148:9;20144:17;20135:6;20091:71;:::i;:::-;20172:66;20234:2;20223:9;20219:18;20210:6;20172:66;:::i;:::-;19925:320;;;;;:::o;20251:225::-;20391:34;20387:1;20379:6;20375:14;20368:58;20460:8;20455:2;20447:6;20443:15;20436:33;20251:225;:::o;20482:366::-;20624:3;20645:67;20709:2;20704:3;20645:67;:::i;:::-;20638:74;;20721:93;20810:3;20721:93;:::i;:::-;20839:2;20834:3;20830:12;20823:19;;20482:366;;;:::o;20854:419::-;21020:4;21058:2;21047:9;21043:18;21035:26;;21107:9;21101:4;21097:20;21093:1;21082:9;21078:17;21071:47;21135:131;21261:4;21135:131;:::i;:::-;21127:139;;20854:419;;;:::o;21279:191::-;21319:3;21338:20;21356:1;21338:20;:::i;:::-;21333:25;;21372:20;21390:1;21372:20;:::i;:::-;21367:25;;21415:1;21412;21408:9;21401:16;;21436:3;21433:1;21430:10;21427:36;;;21443:18;;:::i;:::-;21427:36;21279:191;;;;:::o;21476:177::-;21616:29;21612:1;21604:6;21600:14;21593:53;21476:177;:::o;21659:366::-;21801:3;21822:67;21886:2;21881:3;21822:67;:::i;:::-;21815:74;;21898:93;21987:3;21898:93;:::i;:::-;22016:2;22011:3;22007:12;22000:19;;21659:366;;;:::o;22031:419::-;22197:4;22235:2;22224:9;22220:18;22212:26;;22284:9;22278:4;22274:20;22270:1;22259:9;22255:17;22248:47;22312:131;22438:4;22312:131;:::i;:::-;22304:139;;22031:419;;;:::o;22456:418::-;22593:4;22631:2;22620:9;22616:18;22608:26;;22644:67;22708:1;22697:9;22693:17;22684:6;22644:67;:::i;:::-;22721:68;22785:2;22774:9;22770:18;22761:6;22721:68;:::i;:::-;22799;22863:2;22852:9;22848:18;22839:6;22799:68;:::i;:::-;22456:418;;;;;;:::o;22880:220::-;23020:34;23016:1;23008:6;23004:14;22997:58;23089:3;23084:2;23076:6;23072:15;23065:28;22880:220;:::o;23106:366::-;23248:3;23269:67;23333:2;23328:3;23269:67;:::i;:::-;23262:74;;23345:93;23434:3;23345:93;:::i;:::-;23463:2;23458:3;23454:12;23447:19;;23106:366;;;:::o;23478:419::-;23644:4;23682:2;23671:9;23667:18;23659:26;;23731:9;23725:4;23721:20;23717:1;23706:9;23702:17;23695:47;23759:131;23885:4;23759:131;:::i;:::-;23751:139;;23478:419;;;:::o;23903:194::-;23943:4;23963:20;23981:1;23963:20;:::i;:::-;23958:25;;23997:20;24015:1;23997:20;:::i;:::-;23992:25;;24041:1;24038;24034:9;24026:17;;24065:1;24059:4;24056:11;24053:37;;;24070:18;;:::i;:::-;24053:37;23903:194;;;;:::o;24103:170::-;24243:22;24239:1;24231:6;24227:14;24220:46;24103:170;:::o;24279:366::-;24421:3;24442:67;24506:2;24501:3;24442:67;:::i;:::-;24435:74;;24518:93;24607:3;24518:93;:::i;:::-;24636:2;24631:3;24627:12;24620:19;;24279:366;;;:::o;24651:419::-;24817:4;24855:2;24844:9;24840:18;24832:26;;24904:9;24898:4;24894:20;24890:1;24879:9;24875:17;24868:47;24932:131;25058:4;24932:131;:::i;:::-;24924:139;;24651:419;;;:::o;25076:249::-;25216:34;25212:1;25204:6;25200:14;25193:58;25285:32;25280:2;25272:6;25268:15;25261:57;25076:249;:::o;25331:366::-;25473:3;25494:67;25558:2;25553:3;25494:67;:::i;:::-;25487:74;;25570:93;25659:3;25570:93;:::i;:::-;25688:2;25683:3;25679:12;25672:19;;25331:366;;;:::o;25703:419::-;25869:4;25907:2;25896:9;25892:18;25884:26;;25956:9;25950:4;25946:20;25942:1;25931:9;25927:17;25920:47;25984:131;26110:4;25984:131;:::i;:::-;25976:139;;25703:419;;;:::o;26128:167::-;26268:19;26264:1;26256:6;26252:14;26245:43;26128:167;:::o;26301:366::-;26443:3;26464:67;26528:2;26523:3;26464:67;:::i;:::-;26457:74;;26540:93;26629:3;26540:93;:::i;:::-;26658:2;26653:3;26649:12;26642:19;;26301:366;;;:::o;26673:419::-;26839:4;26877:2;26866:9;26862:18;26854:26;;26926:9;26920:4;26916:20;26912:1;26901:9;26897:17;26890:47;26954:131;27080:4;26954:131;:::i;:::-;26946:139;;26673:419;;;:::o;27098:180::-;27146:77;27143:1;27136:88;27243:4;27240:1;27233:15;27267:4;27264:1;27257:15;27284:180;27332:77;27329:1;27322:88;27429:4;27426:1;27419:15;27453:4;27450:1;27443:15;27470:85;27515:7;27544:5;27533:16;;27470:85;;;:::o;27561:158::-;27619:9;27652:61;27670:42;27679:32;27705:5;27679:32;:::i;:::-;27670:42;:::i;:::-;27652:61;:::i;:::-;27639:74;;27561:158;;;:::o;27725:147::-;27820:45;27859:5;27820:45;:::i;:::-;27815:3;27808:58;27725:147;;:::o;27878:114::-;27945:6;27979:5;27973:12;27963:22;;27878:114;;;:::o;27998:184::-;28097:11;28131:6;28126:3;28119:19;28171:4;28166:3;28162:14;28147:29;;27998:184;;;;:::o;28188:132::-;28255:4;28278:3;28270:11;;28308:4;28303:3;28299:14;28291:22;;28188:132;;;:::o;28326:108::-;28403:24;28421:5;28403:24;:::i;:::-;28398:3;28391:37;28326:108;;:::o;28440:179::-;28509:10;28530:46;28572:3;28564:6;28530:46;:::i;:::-;28608:4;28603:3;28599:14;28585:28;;28440:179;;;;:::o;28625:113::-;28695:4;28727;28722:3;28718:14;28710:22;;28625:113;;;:::o;28774:732::-;28893:3;28922:54;28970:5;28922:54;:::i;:::-;28992:86;29071:6;29066:3;28992:86;:::i;:::-;28985:93;;29102:56;29152:5;29102:56;:::i;:::-;29181:7;29212:1;29197:284;29222:6;29219:1;29216:13;29197:284;;;29298:6;29292:13;29325:63;29384:3;29369:13;29325:63;:::i;:::-;29318:70;;29411:60;29464:6;29411:60;:::i;:::-;29401:70;;29257:224;29244:1;29241;29237:9;29232:14;;29197:284;;;29201:14;29497:3;29490:10;;28898:608;;;28774:732;;;;:::o;29512:831::-;29775:4;29813:3;29802:9;29798:19;29790:27;;29827:71;29895:1;29884:9;29880:17;29871:6;29827:71;:::i;:::-;29908:80;29984:2;29973:9;29969:18;29960:6;29908:80;:::i;:::-;30035:9;30029:4;30025:20;30020:2;30009:9;30005:18;29998:48;30063:108;30166:4;30157:6;30063:108;:::i;:::-;30055:116;;30181:72;30249:2;30238:9;30234:18;30225:6;30181:72;:::i;:::-;30263:73;30331:3;30320:9;30316:19;30307:6;30263:73;:::i;:::-;29512:831;;;;;;;;:::o;30349:147::-;30450:11;30487:3;30472:18;;30349:147;;;;:::o;30502:114::-;;:::o;30622:398::-;30781:3;30802:83;30883:1;30878:3;30802:83;:::i;:::-;30795:90;;30894:93;30983:3;30894:93;:::i;:::-;31012:1;31007:3;31003:11;30996:18;;30622:398;;;:::o;31026:379::-;31210:3;31232:147;31375:3;31232:147;:::i;:::-;31225:154;;31396:3;31389:10;;31026:379;;;:::o;31411:807::-;31660:4;31698:3;31687:9;31683:19;31675:27;;31712:71;31780:1;31769:9;31765:17;31756:6;31712:71;:::i;:::-;31793:72;31861:2;31850:9;31846:18;31837:6;31793:72;:::i;:::-;31875:80;31951:2;31940:9;31936:18;31927:6;31875:80;:::i;:::-;31965;32041:2;32030:9;32026:18;32017:6;31965:80;:::i;:::-;32055:73;32123:3;32112:9;32108:19;32099:6;32055:73;:::i;:::-;32138;32206:3;32195:9;32191:19;32182:6;32138:73;:::i;:::-;31411:807;;;;;;;;;:::o;32224:663::-;32312:6;32320;32328;32377:2;32365:9;32356:7;32352:23;32348:32;32345:119;;;32383:79;;:::i;:::-;32345:119;32503:1;32528:64;32584:7;32575:6;32564:9;32560:22;32528:64;:::i;:::-;32518:74;;32474:128;32641:2;32667:64;32723:7;32714:6;32703:9;32699:22;32667:64;:::i;:::-;32657:74;;32612:129;32780:2;32806:64;32862:7;32853:6;32842:9;32838:22;32806:64;:::i;:::-;32796:74;;32751:129;32224:663;;;;;:::o;32893:332::-;33014:4;33052:2;33041:9;33037:18;33029:26;;33065:71;33133:1;33122:9;33118:17;33109:6;33065:71;:::i;:::-;33146:72;33214:2;33203:9;33199:18;33190:6;33146:72;:::i;:::-;32893:332;;;;;:::o
Swarm Source
ipfs://b94418e8fa75d0d478df084fccdd1a7105e2d350bc11fef5681597c530e2663c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)