ETH Price: $2,412.44 (-0.36%)

Token

ArenaBook (ARENA)
 

Overview

Max Total Supply

1,000,000 ARENA

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
65.699831876 ARENA

Value
$0.00
0xd3B0DF4Ca11DB9D999e1f904F10cf8c1D82072D8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ArenaBook

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

/**

ArenaBook creates a new trading & data analysis experience for SocialFi platforms. 

Website: https://arenabook.xyz
X: https://x.com/ArenaBook_xyz

Powered by the $ARENA token.

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

interface IUniswapV2Factory {
 function createPair(address tokenA, address tokenB) external returns(address pair);
}

interface IERC20 {

 function totalSupply() external view returns(uint256);

 function balanceOf(address account) external view returns(uint256);

 function transfer(address recipient, uint256 amount) external returns(bool);

 function allowance(address owner, address spender) external view returns(uint256);

 function approve(address spender, uint256 amount) external returns(bool);

 function transferFrom(
 address sender,
 address recipient,
 uint256 amount
 ) external returns(bool);

 event Transfer(address indexed from, address indexed to, uint256 value);

 event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
 function name() external view returns(string memory);

 function symbol() external view returns(string memory);

 function decimals() external view returns(uint8);
}

abstract contract Context {
 function _msgSender() internal view virtual returns(address) {
 return msg.sender;
 }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
 using SafeMath for uint256;

 mapping(address => uint256) private _balances;
 mapping(address => mapping(address => uint256)) private _allowances;
 uint256 private _totalSupply;

 string private _name;
 string private _symbol;

 constructor(string memory name_, string memory symbol_) {
 _name = name_;
 _symbol = symbol_;
 }

 function name() public view virtual override returns(string memory) {
 return _name;
 }

 function symbol() public view virtual override returns(string memory) {
 return _symbol;
 }

 function decimals() public view virtual override returns(uint8) {
 return 9;
 }

 function totalSupply() public view virtual override returns(uint256) {
 return _totalSupply;
 }

 function balanceOf(address account) public view virtual override returns(uint256) {
 return _balances[account];
 }

 function transfer(address recipient, uint256 amount) public virtual override returns(bool) {
 _transfer(_msgSender(), recipient, amount);
 return true;
 }

 function allowance(address owner, address spender) public view virtual override returns(uint256) {
 return _allowances[owner][spender];
 }

 function approve(address spender, uint256 amount) public virtual override returns(bool) {
 _approve(_msgSender(), spender, amount);
 return true;
 }

 function transferFrom(
 address sender,
 address recipient,
 uint256 amount
 ) public virtual override returns(bool) {
 _transfer(sender, recipient, amount);
 _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
 return true;
 }

 function increaseAllowance(address spender, uint256 addedValue) public virtual returns(bool) {
 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
 return true;
 }

 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns(bool) {
 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased cannot be below zero"));
 return true;
 }

 function _transfer(
 address sender,
 address recipient,
 uint256 amount
 ) internal virtual {

 _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
 _balances[recipient] = _balances[recipient].add(amount);
 emit Transfer(sender, recipient, amount);
 }

  function _approve(
 address owner,
 address spender,
 uint256 amount
 ) internal virtual {
 _allowances[owner][spender] = amount;
 emit Approval(owner, spender, amount);
 }

 function _mint(address account, uint256 amount) internal virtual {
 require(account != address(0), "ERC20: mint to the zero address");

 _totalSupply = _totalSupply.add(amount);
 _balances[account] = _balances[account].add(amount);
 emit Transfer(address(0), account, amount);
 }

}

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 Ownable is Context {
 address private _owner;

 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

 constructor() {
 address msgSender = _msgSender();
 _owner = msgSender;
 emit OwnershipTransferred(address(0), msgSender);
 }

 function owner() public view returns(address) {
 return _owner;
 }

 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;
 }
}

library SafeMathInt {
 int256 private constant MIN_INT256 = int256(1) << 255;
 int256 private constant MAX_INT256 = ~(int256(1) << 255);

 function mul(int256 a, int256 b) internal pure returns(int256) {
 int256 c = a * b;

 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
 require((b == 0) || (c / b == a));
 return c;
 }

 function div(int256 a, int256 b) internal pure returns(int256) {
 require(b != -1 || a != MIN_INT256);

 return a / b;
 }

 function sub(int256 a, int256 b) internal pure returns(int256) {
 int256 c = a - b;
 require((b >= 0 && c <= a) || (b < 0 && c > a));
 return c;
 }

 function add(int256 a, int256 b) internal pure returns(int256) {
 int256 c = a + b;
 require((b >= 0 && c >= a) || (b < 0 && c < a));
 return c;
 }

 function abs(int256 a) internal pure returns(int256) {
 require(a != MIN_INT256);
 return a < 0 ? -a : a;
 }

 function toUint256Safe(int256 a) internal pure returns(uint256) {
 require(a >= 0);
 return uint256(a);
 }
}

library SafeMathUint {
 function toInt256Safe(uint256 a) internal pure returns(int256) {
 int256 b = int256(a);
 require(b >= 0);
 return b;
 }
}

interface IUniswapV2Router01 {
 function factory() external pure returns(address);
 function WETH() external pure returns(address);

 function addLiquidity(
 address tokenA,
 address tokenB,
 uint amountADesired,
 uint amountBDesired,
 uint amountAMin,
 uint amountBMin,
 address to,
 uint deadline
 ) external returns(uint amountA, uint amountB, uint liquidity);
 function addLiquidityETH(
 address token,
 uint amountTokenDesired,
 uint amountTokenMin,
 uint amountETHMin,
 address to,
 uint deadline
 ) external payable returns(uint amountToken, uint amountETH, uint liquidity);
 function removeLiquidity(
 address tokenA,
 address tokenB,
 uint liquidity,
 uint amountAMin,
 uint amountBMin,
 address to,
 uint deadline
 ) external returns(uint amountA, uint amountB);
 function removeLiquidityETH(
 address token,
 uint liquidity,
 uint amountTokenMin,
 uint amountETHMin,
 address to,
 uint deadline
 ) external returns(uint amountToken, uint amountETH);
 function removeLiquidityWithPermit(
 address tokenA,
 address tokenB,
 uint liquidity,
 uint amountAMin,
 uint amountBMin,
 address to,
 uint deadline,
 bool approveMax, uint8 v, bytes32 r, bytes32 s
 ) external returns(uint amountA, uint amountB);
 function removeLiquidityETHWithPermit(
 address token,
 uint liquidity,
 uint amountTokenMin,
 uint amountETHMin,
 address to,
 uint deadline,
 bool approveMax, uint8 v, bytes32 r, bytes32 s
 ) external returns(uint amountToken, uint amountETH);
 function swapExactTokensForTokens(
 uint amountIn,
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external returns(uint[] memory amounts);
 function swapTokensForExactTokens(
 uint amountOut,
 uint amountInMax,
 address[] calldata path,
 address to,
 uint deadline
 ) external returns(uint[] memory amounts);
 function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
 external
 payable
 returns(uint[] memory amounts);
 function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
 external
 returns(uint[] memory amounts);
 function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
 external
 returns(uint[] memory amounts);
 function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
 external
 payable
 returns(uint[] memory amounts);

 function quote(uint amountA, uint reserveA, uint reserveB) external pure returns(uint amountB);
 function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns(uint amountOut);
 function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns(uint amountIn);
 function getAmountsOut(uint amountIn, address[] calldata path) external view returns(uint[] memory amounts);
 function getAmountsIn(uint amountOut, address[] calldata path) external view returns(uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
 function removeLiquidityETHSupportingFeeOnTransferTokens(
 address token,
 uint liquidity,
 uint amountTokenMin,
 uint amountETHMin,
 address to,
 uint deadline
 ) external returns(uint amountETH);
 function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
 address token,
 uint liquidity,
 uint amountTokenMin,
 uint amountETHMin,
 address to,
 uint deadline,
 bool approveMax, uint8 v, bytes32 r, bytes32 s
 ) external returns(uint amountETH);

 function swapExactTokensForTokensSupportingFeeOnTransferTokens(
 uint amountIn,
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external;
 function swapExactETHForTokensSupportingFeeOnTransferTokens(
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external payable;
 function swapExactTokensForETHSupportingFeeOnTransferTokens(
 uint amountIn,
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external;
}

contract ArenaBook is ERC20, Ownable {
 using SafeMath for uint256;

 IUniswapV2Router02 public immutable router;
 address public immutable uniswapV2Pair;

 // addresses
 address public devWallet;
 address private marketingWallet;

 // limits
 uint256 private maxBuyAmount;
 uint256 private maxSellAmount;
 uint256 private maxWalletAmount;

 uint256 private thresholdSwapAmount;

 // status flags
 bool private isTrading = false;
 bool public swapEnabled = false;
 bool public isSwapping;

 struct Fees {
 uint8 buyTotalFees;
 uint8 buyMarketingFee;
 uint8 buyDevFee;
 uint8 buyLiquidityFee;

 uint8 sellTotalFees;
 uint8 sellMarketingFee;
 uint8 sellDevFee;
 uint8 sellLiquidityFee;
 }

 Fees public _fees = Fees({
 sellTotalFees: 2,
 sellMarketingFee: 1,
 sellDevFee: 1,
 sellLiquidityFee: 0,

 buyTotalFees: 2,
 buyMarketingFee: 1,
 buyDevFee:1,
 buyLiquidityFee: 0
 });

 mapping(address => bool) private _isExcludedFromFees;
 mapping(address => bool) public _isExcludedMaxTransactionAmount;
 mapping(address => bool) public _isExcludedMaxWalletAmount;

 uint256 public tokensForMarketing;
 uint256 public tokensForLiquidity;
 uint256 public tokensForDev;
 uint256 private taxTill;

 mapping(address => bool) public marketPair;
 mapping(address => bool) public _isBlacklisted;

 event SwapAndLiquify(
 uint256 tokensSwapped,
 uint256 ethReceived
 );

 constructor() ERC20("ArenaBook", "ARENA") {

 router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
 uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());

 //Wallets
 devWallet = address(0x049d535b164892Be1C6270E32357dDc3a518beC6);
 marketingWallet = address(0x049d535b164892Be1C6270E32357dDc3a518beC6);

//Fees
 _fees.buyMarketingFee = 1;
 _fees.buyLiquidityFee = 0;
 _fees.buyDevFee = 0;
 _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee;

 _fees.sellMarketingFee = 1;
 _fees.sellLiquidityFee = 1;
 _fees.sellDevFee = 1;
 _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee;

// Lists
 _isExcludedMaxWalletAmount[owner()] = true;
 _isExcludedMaxWalletAmount[address(this)] = true;
 _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true;

 _isExcludedMaxTransactionAmount[address(router)] = true;
 _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;
 _isExcludedMaxTransactionAmount[owner()] = true;
 _isExcludedMaxTransactionAmount[address(this)] = true;

 _isExcludedFromFees[owner()] = true;
 _isExcludedFromFees[address(this)] = true;

 marketPair[address(uniswapV2Pair)] = true;
 approve(address(router), type(uint256).max);

 //Supply
 uint256 totalSupply = 1000000 * 10**9;

//Limits
 maxBuyAmount = totalSupply * 2 / 100;
 maxSellAmount = totalSupply * 2 / 100;
 maxWalletAmount = totalSupply * 2 / 100;
 thresholdSwapAmount = totalSupply * 2 / 1000;

 _mint(msg.sender, totalSupply);
 }

 receive() external payable {
 }

 function openTrading() external onlyOwner {
 isTrading = true;
 swapEnabled = true;
 taxTill = block.number + 2;
 }

 function updateThresholdSwapAmount(uint256 newAmount) external onlyOwner returns(bool){
 thresholdSwapAmount = newAmount;
 return true;
 }




 function toggleSwapEnabled(bool enabled) external onlyOwner(){
 swapEnabled = enabled;
 }


 function updatewalletAmount(uint256 newPercentage) external onlyOwner {
 require(((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100), "Cannot set maxWallet lower than 1%");
 maxWalletAmount = (totalSupply() * newPercentage) / 1000;
 }



 function ReduceTax(uint8 _marketingFeeBuy, uint8 _liquidityFeeBuy,uint8 _devFeeBuy,uint8 _marketingFeeSell, uint8 _liquidityFeeSell,uint8 _devFeeSell) external onlyOwner{
 _fees.buyMarketingFee = _marketingFeeBuy;
 _fees.buyLiquidityFee = _liquidityFeeBuy;
 _fees.buyDevFee = _devFeeBuy;
 _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee;

 _fees.sellMarketingFee = _marketingFeeSell;
 _fees.sellLiquidityFee = _liquidityFeeSell;
 _fees.sellDevFee = _devFeeSell;
 _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee;

 }

 function excludeFromFees(address account, bool excluded) public onlyOwner {
 _isExcludedFromFees[account] = excluded;
 }
 function excludeFromWalletLimit(address account, bool excluded) public onlyOwner {
 _isExcludedMaxWalletAmount[account] = excluded;
 }
 function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
 _isExcludedMaxTransactionAmount[updAds] = isEx;
 }
  function addLiquidity(uint256 tAmount, uint256 ethAmount) private {
 _approve(address(this), address(router), tAmount);

 router.addLiquidityETH{ value: ethAmount } (address(this), tAmount, 0, 0 , address(this), block.timestamp);
 }

 function setMarketPair(address pair, bool value) public onlyOwner {
 require(pair != uniswapV2Pair, "Must keep uniswapV2Pair");
 marketPair[pair] = value;
 }

 function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner {
 require(((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100), "maxBuyAmount must be higher than 1%");
 require(((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100), "maxSellAmount must be higher than 1%");
 maxBuyAmount = (totalSupply() * newMaxBuy) / 1000;
 maxSellAmount = (totalSupply() * newMaxSell) / 1000;
 }

 function setWallets(address _marketingWallet,address _devWallet) external onlyOwner{
 marketingWallet = _marketingWallet;
 devWallet = _devWallet;
 }

 function isExcludedFromFees(address account) public view returns(bool) {
 return _isExcludedFromFees[account];
 }

 function _transfer(
 address sender,
 address recipient,
 uint256 amount

 ) internal override {

 if (amount == 0) {
 super._transfer(sender, recipient, 0);
 return;
 }

 if (
 sender != owner() &&
 recipient != owner() &&
 !isSwapping
 ) {

 if (!isTrading) {
 require(_isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "Trading is not active.");
 }
 if (marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient]) {
 require(amount <= maxBuyAmount, "buy transfer over max amount");
 }
 else if (marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender]) {
 require(amount <= maxSellAmount, "Sell transfer over max amount");
 }

 if (!_isExcludedMaxWalletAmount[recipient]) {
 require(amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded");
 }
 require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "Blacklisted address");
 }

 uint256 contractTokenBalance = balanceOf(address(this));

 bool canSwap = contractTokenBalance >= thresholdSwapAmount;

 if (
 canSwap &&
 swapEnabled &&
 !isSwapping &&
 marketPair[recipient] &&
 !_isExcludedFromFees[sender] &&
 !_isExcludedFromFees[recipient]
 ) {
 isSwapping = true;
 swapBack();
 isSwapping = false;
 }

 bool takeFee = !isSwapping;

 if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) {
 takeFee = false;
 }

 if (takeFee) {
 uint256 fees = 0;
 if(block.number < taxTill) {
 fees = amount.mul(99).div(100);
 tokensForMarketing += (fees * 94) / 99;
 tokensForDev += (fees * 5) / 99;
 } else if (marketPair[recipient] && _fees.sellTotalFees > 0) {
 fees = amount.mul(_fees.sellTotalFees).div(100);
 tokensForLiquidity += fees * _fees.sellLiquidityFee / _fees.sellTotalFees;
 tokensForMarketing += fees * _fees.sellMarketingFee / _fees.sellTotalFees;
 tokensForDev += fees * _fees.sellDevFee / _fees.sellTotalFees;
 }
 // on buy
 else if (marketPair[sender] && _fees.buyTotalFees > 0) {
 fees = amount.mul(_fees.buyTotalFees).div(100);
 tokensForLiquidity += fees * _fees.buyLiquidityFee / _fees.buyTotalFees;
 tokensForMarketing += fees * _fees.buyMarketingFee / _fees.buyTotalFees;
 tokensForDev += fees * _fees.buyDevFee / _fees.buyTotalFees;
 }

 if (fees > 0) {
 super._transfer(sender, address(this), fees);
 }

 amount -= fees;

 }

 super._transfer(sender, recipient, amount);
 }

 function swapTokensForEth(uint256 tAmount) private {

 address[] memory path = new address[](2);
 path[0] = address(this);
 path[1] = router.WETH();

 _approve(address(this), address(router), tAmount);

 router.swapExactTokensForETHSupportingFeeOnTransferTokens(
 tAmount,
 0, // accept any amount of ETH!
 path,
 address(this),
 block.timestamp
 );
 }



 function swapBack() private {
 uint256 contractTokenBalance = balanceOf(address(this));
 uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
 bool success;

 if (contractTokenBalance == 0 || toSwap == 0) { return; }

 if (contractTokenBalance > thresholdSwapAmount * 20) {
 contractTokenBalance = thresholdSwapAmount * 20;
 }

 uint256 liquidityTokens = contractTokenBalance * tokensForLiquidity / toSwap / 2;
 uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens);

 uint256 initialETHBalance = address(this).balance;

 swapTokensForEth(amountToSwapForETH);

 uint256 newBalance = address(this).balance.sub(initialETHBalance);

 uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div(toSwap);
 uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap);
 uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev);


 tokensForLiquidity = 0;
 tokensForMarketing = 0;
 tokensForDev = 0;

 if (liquidityTokens > 0 && ethForLiquidity > 0) {
 addLiquidity(liquidityTokens, ethForLiquidity);
 emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity);
 }

 (success,) = address(devWallet).call{ value: (address(this).balance - ethForMarketing) } ("");
 (success,) = address(marketingWallet).call{ value: address(this).balance } ("");
 }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"ReduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"toggleSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updatewalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff021916908315150217905550604051806101000160405280600260ff168152602001600160ff168152602001600160ff168152602001600060ff168152602001600260ff168152602001600160ff168152602001600160ff168152602001600060ff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548160ff021916908360ff16021790555060e08201518160000160076101000a81548160ff021916908360ff1602179055505050348015620001ad57600080fd5b506040518060400160405280600981526020017f4172656e61426f6f6b00000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4152454e4100000000000000000000000000000000000000000000000000000081525081600390805190602001906200023292919062000f2a565b5080600490805190602001906200024b92919062000f2a565b50505060006200026062000bdf60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039057600080fd5b505afa158015620003a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cb919062001044565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043057600080fd5b505afa15801562000445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046b919062001044565b6040518363ffffffff1660e01b81526004016200048a92919062001087565b602060405180830381600087803b158015620004a557600080fd5b505af1158015620004ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e0919062001044565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505073049d535b164892be1c6270e32357ddc3a518bec6600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073049d535b164892be1c6270e32357ddc3a518bec6600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60000160016101000a81548160ff021916908360ff1602179055506000600d60000160036101000a81548160ff021916908360ff1602179055506000600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166200065f9190620010f0565b6200066b9190620010f0565b600d60000160006101000a81548160ff021916908360ff1602179055506001600d60000160056101000a81548160ff021916908360ff1602179055506001600d60000160076101000a81548160ff021916908360ff1602179055506001600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166200072a9190620010f0565b620007369190620010f0565b600d60000160046101000a81548160ff021916908360ff1602179055506001601060006200076962000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60006200093662000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000620009f562000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000b2c6080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000c1160201b60201c565b50600066038d7ea4c680009050606460028262000b4a919062001138565b62000b569190620011c8565b600881905550606460028262000b6d919062001138565b62000b799190620011c8565b600981905550606460028262000b90919062001138565b62000b9c9190620011c8565b600a819055506103e860028262000bb4919062001138565b62000bc09190620011c8565b600b8190555062000bd8338262000c3f60201b60201c565b50620013e5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000c3562000c2762000bdf60201b60201c565b848462000dda60201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ca99062001261565b60405180910390fd5b62000cce8160025462000ec760201b620020601790919060201c565b60028190555062000d2c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000ec760201b620020601790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000dce919062001294565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000eba919062001294565b60405180910390a3505050565b600080828462000ed89190620012b1565b90508381101562000f20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f17906200135e565b60405180910390fd5b8091505092915050565b82805462000f3890620013af565b90600052602060002090601f01602090048101928262000f5c576000855562000fa8565b82601f1062000f7757805160ff191683800117855562000fa8565b8280016001018555821562000fa8579182015b8281111562000fa757825182559160200191906001019062000f8a565b5b50905062000fb7919062000fbb565b5090565b5b8082111562000fd657600081600090555060010162000fbc565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200100c8262000fdf565b9050919050565b6200101e8162000fff565b81146200102a57600080fd5b50565b6000815190506200103e8162001013565b92915050565b6000602082840312156200105d576200105c62000fda565b5b60006200106d848285016200102d565b91505092915050565b620010818162000fff565b82525050565b60006040820190506200109e600083018562001076565b620010ad602083018462001076565b9392505050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010fd82620010b4565b91506200110a83620010b4565b92508260ff03821115620011235762001122620010c1565b5b828201905092915050565b6000819050919050565b600062001145826200112e565b915062001152836200112e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200118e576200118d620010c1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011d5826200112e565b9150620011e2836200112e565b925082620011f557620011f462001199565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001249601f8362001200565b9150620012568262001211565b602082019050919050565b600060208201905081810360008301526200127c816200123a565b9050919050565b6200128e816200112e565b82525050565b6000602082019050620012ab600083018462001283565b92915050565b6000620012be826200112e565b9150620012cb836200112e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013035762001302620010c1565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001346601b8362001200565b915062001353826200130e565b602082019050919050565b60006020820190508181036000830152620013798162001337565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620013c857607f821691505b60208210811415620013df57620013de62001380565b5b50919050565b60805160a0516148f26200143560003960008181610ea4015261182201526000818161203e01528181613414015281816135040152818161352b015281816135c701526135ee01526148f26000f3fe6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c16dd4a4116100ab578063e16830a81161006f578063e16830a81461089f578063f2fde38b146108c8578063f5b3c3bf146108f1578063f62bbf891461092e578063f887ea40146109575761023b565b8063c16dd4a4146107c7578063c9567bf9146107f0578063d212a69a14610807578063d3f6a15714610839578063dd62ed3e146108625761023b565b80639fccce32116100f25780639fccce32146106ce578063a457c2d7146106f9578063a9059cbb14610736578063b886311514610773578063c02466681461079e5761023b565b80638da5cb5b146105e75780638ea5220f1461061257806395d89b411461063d57806396880b17146106685780639b2cd67d146106a55761023b565b806323b872dd116101bc578063555467a111610180578063555467a1146105025780636ddd17131461053f57806370a082311461056a578063715018a6146105a75780637571336a146105be5761023b565b806323b872dd146103f5578063313ce56714610432578063395093511461045d57806349bd5a5e1461049a5780634fbee193146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631c6e8a75146103645780631cdd3be31461038d5780631f3fed8f146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610982565b60405161026291906137a6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613861565b610a14565b60405161029f91906138bc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906138d7565b610a32565b6040516102dc91906138bc565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613904565b610a52565b005b34801561031a57600080fd5b50610323610c23565b6040516103309190613953565b60405180910390f35b34801561034557600080fd5b5061034e610c2d565b60405161035b9190613953565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061399a565b610c33565b005b34801561039957600080fd5b506103b460048036038101906103af91906138d7565b610ce7565b6040516103c191906138bc565b60405180910390f35b3480156103d657600080fd5b506103df610d07565b6040516103ec9190613953565b60405180910390f35b34801561040157600080fd5b5061041c600480360381019061041791906139c7565b610d0d565b60405161042991906138bc565b60405180910390f35b34801561043e57600080fd5b50610447610de6565b6040516104549190613a36565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613861565b610def565b60405161049191906138bc565b60405180910390f35b3480156104a657600080fd5b506104af610ea2565b6040516104bc9190613a60565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e791906138d7565b610ec6565b6040516104f991906138bc565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613a7b565b610f1c565b60405161053691906138bc565b60405180910390f35b34801561054b57600080fd5b50610554610fc5565b60405161056191906138bc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c91906138d7565b610fd8565b60405161059e9190613953565b60405180910390f35b3480156105b357600080fd5b506105bc611020565b005b3480156105ca57600080fd5b506105e560048036038101906105e09190613aa8565b611178565b005b3480156105f357600080fd5b506105fc61126a565b6040516106099190613a60565b60405180910390f35b34801561061e57600080fd5b50610627611294565b6040516106349190613a60565b60405180910390f35b34801561064957600080fd5b506106526112ba565b60405161065f91906137a6565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906138d7565b61134c565b60405161069c91906138bc565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613b14565b61136c565b005b3480156106da57600080fd5b506106e3611593565b6040516106f09190613953565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613861565b611599565b60405161072d91906138bc565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613861565b611666565b60405161076a91906138bc565b60405180910390f35b34801561077f57600080fd5b50610788611684565b60405161079591906138bc565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613aa8565b611697565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190613aa8565b611789565b005b3480156107fc57600080fd5b5061080561190a565b005b34801561081357600080fd5b5061081c6119ec565b604051610830989796959493929190613ba1565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b9190613c1f565b611a8a565b005b34801561086e57600080fd5b5061088960048036038101906108849190613c1f565b611ba7565b6040516108969190613953565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190613aa8565b611c2e565b005b3480156108d457600080fd5b506108ef60048036038101906108ea91906138d7565b611d20565b005b3480156108fd57600080fd5b50610918600480360381019061091391906138d7565b611ee7565b60405161092591906138bc565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613a7b565b611f07565b005b34801561096357600080fd5b5061096c61203c565b6040516109799190613cbe565b60405180910390f35b60606003805461099190613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546109bd90613d08565b8015610a0a5780601f106109df57610100808354040283529160200191610a0a565b820191906000526020600020905b8154815290600101906020018083116109ed57829003601f168201915b5050505050905090565b6000610a28610a216120be565b84846120c6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b610a5a6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613d86565b60405180910390fd5b6064610af3610c23565b610afd9190613e04565b6103e883610b09610c23565b610b139190613e35565b610b1d9190613e04565b1015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613f01565b60405180910390fd5b6064610b68610c23565b610b729190613e04565b6103e882610b7e610c23565b610b889190613e35565b610b929190613e04565b1015610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613f93565b60405180910390fd5b6103e882610bdf610c23565b610be99190613e35565b610bf39190613e04565b6008819055506103e881610c05610c23565b610c0f9190613e35565b610c199190613e04565b6009819055505050565b6000600254905090565b60125481565b610c3b6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613d86565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b60166020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610d1a8484846121b1565b610ddb84610d266120be565b610dd68560405180606001604052806028815260200161489560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d8c6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b600190509392505050565b60006009905090565b6000610e98610dfc6120be565b84610e938560016000610e0d6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6120c6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610f266120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613d86565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111806120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613d86565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546112c990613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546112f590613d08565b80156113425780601f1061131757610100808354040283529160200191611342565b820191906000526020600020905b81548152906001019060200180831161132557829003601f168201915b5050505050905090565b60106020528060005260406000206000915054906101000a900460ff1681565b6113746120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613d86565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166114a09190613fb3565b6114aa9190613fb3565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166115649190613fb3565b61156e9190613fb3565b600d60000160046101000a81548160ff021916908360ff160217905550505050505050565b60135481565b600061165c6115a66120be565b846116578560405180606001604052806025815260200161484a60259139600160006115d06120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b6001905092915050565b600061167a6116736120be565b84846121b1565b6001905092915050565b600c60029054906101000a900460ff1681565b61169f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613d86565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117916120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790613d86565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690614036565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119126120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613d86565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119e49190614056565b601481905550565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611a926120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1890613d86565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c366120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613d86565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9061411e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611f0f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613d86565b60405180910390fd5b6064611fa8610c23565b611fb29190613e04565b6103e882611fbe610c23565b611fc89190613e35565b611fd29190613e04565b1015612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a906141b0565b60405180910390fd5b6103e88161201f610c23565b6120299190613e35565b6120339190613e04565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080828461206f9190614056565b9050838110156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061421c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121a49190613953565b60405180910390a3505050565b60008114156121cb576121c683836000612dce565b612d65565b6121d361126a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612241575061221161126a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225a5750600c60029054906101000a900460ff16155b156126c357600c60009054906101000a900460ff1661235457600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a90614288565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123f75750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244657600854811115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906142f4565b60405180910390fd5b612535565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e95750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253457600954811115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614360565b60405180910390fd5b5b5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125df57600a5461259283610fd8565b8261259d9190614056565b11156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5906143cc565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990614438565b60405180910390fd5b5b60006126ce30610fd8565b90506000600b5482101590508080156126f35750600c60019054906101000a900460ff165b801561270c5750600c60029054906101000a900460ff16155b80156127615750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127b75750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561280d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612851576001600c60026101000a81548160ff021916908315150217905550612835612f78565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129075750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291157600090505b8015612d565760006014544310156129b35761294a606461293c60638861326690919063ffffffff16565b6132e190919063ffffffff16565b90506063605e8261295b9190613e35565b6129659190613e04565b601160008282546129769190614056565b92505081905550606360058261298c9190613e35565b6129969190613e04565b601360008282546129a79190614056565b92505081905550612d31565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2157506000600d60000160049054906101000a900460ff1660ff16115b15612b7357612a616064612a53600d60000160049054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612a9a9190613e35565b612aa49190613e04565b60126000828254612ab59190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612af39190613e35565b612afd9190613e04565b60116000828254612b0e9190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612b4c9190613e35565b612b569190613e04565b60136000828254612b679190614056565b92505081905550612d30565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612be157506000600d60000160009054906101000a900460ff1660ff16115b15612d2f57612c216064612c13600d60000160009054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612c5a9190613e35565b612c649190613e04565b60126000828254612c759190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612cb39190613e35565b612cbd9190613e04565b60116000828254612cce9190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612d0c9190613e35565b612d169190613e04565b60136000828254612d279190614056565b925050819055505b5b5b6000811115612d4657612d45873083612dce565b5b8085612d529190614458565b9450505b612d61868686612dce565b5050505b505050565b6000838311158290612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da991906137a6565b60405180910390fd5b5060008385612dc19190614458565b9050809150509392505050565b612e398160405180606001604052806026815260200161486f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ecc816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6b9190613953565b60405180910390a3505050565b6000612f8330610fd8565b90506000601354601154601254612f9a9190614056565b612fa49190614056565b9050600080831480612fb65750600082145b15612fc357505050613264565b6014600b54612fd29190613e35565b831115612feb576014600b54612fe89190613e35565b92505b600060028360125486612ffe9190613e35565b6130089190613e04565b6130129190613e04565b90506000613029828661332b90919063ffffffff16565b9050600047905061303982613375565b600061304e824761332b90919063ffffffff16565b905060006130798761306b6011548561326690919063ffffffff16565b6132e190919063ffffffff16565b905060006130a4886130966013548661326690919063ffffffff16565b6132e190919063ffffffff16565b9050600081836130b49190614056565b846130bf9190614458565b90506000601281905550600060118190555060006013819055506000871180156130e95750600081115b15613132576130f887826135c1565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486868260405161312992919061448c565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476131779190614458565b604051613183906144e6565b60006040518083038185875af1925050503d80600081146131c0576040519150601f19603f3d011682016040523d82523d6000602084013e6131c5565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613211906144e6565b60006040518083038185875af1925050503d806000811461324e576040519150601f19603f3d011682016040523d82523d6000602084013e613253565b606091505b505080985050505050505050505050505b565b60008083141561327957600090506132db565b600082846132879190613e35565b90508284826132969190613e04565b146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cd9061456d565b60405180910390fd5b809150505b92915050565b600061332383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136aa565b905092915050565b600061336d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d6a565b905092915050565b6000600267ffffffffffffffff8111156133925761339161458d565b5b6040519080825280602002602001820160405280156133c05781602001602082028036833780820191505090505b50905030816000815181106133d8576133d76145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561347857600080fd5b505afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b09190614600565b816001815181106134c4576134c36145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613529307f0000000000000000000000000000000000000000000000000000000000000000846120c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161358b959493929190614726565b600060405180830381600087803b1580156135a557600080fd5b505af11580156135b9573d6000803e3d6000fd5b505050505050565b6135ec307f0000000000000000000000000000000000000000000000000000000000000000846120c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161365196959493929190614780565b6060604051808303818588803b15801561366a57600080fd5b505af115801561367e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136a391906147f6565b5050505050565b600080831182906136f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e891906137a6565b60405180910390fd5b50600083856137009190613e04565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561374757808201518184015260208101905061372c565b83811115613756576000848401525b50505050565b6000601f19601f8301169050919050565b60006137788261370d565b6137828185613718565b9350613792818560208601613729565b61379b8161375c565b840191505092915050565b600060208201905081810360008301526137c0818461376d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c8565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b6000602082840312156138ed576138ec6137c8565b5b60006138fb84828501613816565b91505092915050565b6000806040838503121561391b5761391a6137c8565b5b60006139298582860161384c565b925050602061393a8582860161384c565b9150509250929050565b61394d8161382b565b82525050565b60006020820190506139686000830184613944565b92915050565b613977816138a1565b811461398257600080fd5b50565b6000813590506139948161396e565b92915050565b6000602082840312156139b0576139af6137c8565b5b60006139be84828501613985565b91505092915050565b6000806000606084860312156139e0576139df6137c8565b5b60006139ee86828701613816565b93505060206139ff86828701613816565b9250506040613a108682870161384c565b9150509250925092565b600060ff82169050919050565b613a3081613a1a565b82525050565b6000602082019050613a4b6000830184613a27565b92915050565b613a5a816137ed565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137c8565b5b6000613a9f8482850161384c565b91505092915050565b60008060408385031215613abf57613abe6137c8565b5b6000613acd85828601613816565b9250506020613ade85828601613985565b9150509250929050565b613af181613a1a565b8114613afc57600080fd5b50565b600081359050613b0e81613ae8565b92915050565b60008060008060008060c08789031215613b3157613b306137c8565b5b6000613b3f89828a01613aff565b9650506020613b5089828a01613aff565b9550506040613b6189828a01613aff565b9450506060613b7289828a01613aff565b9350506080613b8389828a01613aff565b92505060a0613b9489828a01613aff565b9150509295509295509295565b600061010082019050613bb7600083018b613a27565b613bc4602083018a613a27565b613bd16040830189613a27565b613bde6060830188613a27565b613beb6080830187613a27565b613bf860a0830186613a27565b613c0560c0830185613a27565b613c1260e0830184613a27565b9998505050505050505050565b60008060408385031215613c3657613c356137c8565b5b6000613c4485828601613816565b9250506020613c5585828601613816565b9150509250929050565b6000819050919050565b6000613c84613c7f613c7a846137cd565b613c5f565b6137cd565b9050919050565b6000613c9682613c69565b9050919050565b6000613ca882613c8b565b9050919050565b613cb881613c9d565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2057607f821691505b60208210811415613d3457613d33613cd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d70602083613718565b9150613d7b82613d3a565b602082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0f8261382b565b9150613e1a8361382b565b925082613e2a57613e29613da6565b5b828204905092915050565b6000613e408261382b565b9150613e4b8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8457613e83613dd5565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602383613718565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602483613718565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b6000613fbe82613a1a565b9150613fc983613a1a565b92508260ff03821115613fdf57613fde613dd5565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000614020601783613718565b915061402b82613fea565b602082019050919050565b6000602082019050818103600083015261404f81614013565b9050919050565b60006140618261382b565b915061406c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140a1576140a0613dd5565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614108602683613718565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b600061419a602283613718565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614206601b83613718565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614272601683613718565b915061427d8261423c565b602082019050919050565b600060208201905081810360008301526142a181614265565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b60006142de601c83613718565b91506142e9826142a8565b602082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061434a601d83613718565b915061435582614314565b602082019050919050565b600060208201905081810360008301526143798161433d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006143b6601383613718565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000614422601383613718565b915061442d826143ec565b602082019050919050565b6000602082019050818103600083015261445181614415565b9050919050565b60006144638261382b565b915061446e8361382b565b92508282101561448157614480613dd5565b5b828203905092915050565b60006040820190506144a16000830185613944565b6144ae6020830184613944565b9392505050565b600081905092915050565b50565b60006144d06000836144b5565b91506144db826144c0565b600082019050919050565b60006144f1826144c3565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614557602183613718565b9150614562826144fb565b604082019050919050565b600060208201905081810360008301526145868161454a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506145fa816137ff565b92915050565b600060208284031215614616576146156137c8565b5b6000614624848285016145eb565b91505092915050565b6000819050919050565b600061465261464d6146488461462d565b613c5f565b61382b565b9050919050565b61466281614637565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469d816137ed565b82525050565b60006146af8383614694565b60208301905092915050565b6000602082019050919050565b60006146d382614668565b6146dd8185614673565b93506146e883614684565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b600060a08201905061473b6000830188613944565b6147486020830187614659565b818103604083015261475a81866146c8565b90506147696060830185613a51565b6147766080830184613944565b9695505050505050565b600060c0820190506147956000830189613a51565b6147a26020830188613944565b6147af6040830187614659565b6147bc6060830186614659565b6147c96080830185613a51565b6147d660a0830184613944565b979650505050505050565b6000815190506147f081613835565b92915050565b60008060006060848603121561480f5761480e6137c8565b5b600061481d868287016147e1565b935050602061482e868287016147e1565b925050604061483f868287016147e1565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a8005fed833d0ed72a4d94eab1b9543329b5016f004aac8c5b1695b9557d73964736f6c63430008090033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c16dd4a4116100ab578063e16830a81161006f578063e16830a81461089f578063f2fde38b146108c8578063f5b3c3bf146108f1578063f62bbf891461092e578063f887ea40146109575761023b565b8063c16dd4a4146107c7578063c9567bf9146107f0578063d212a69a14610807578063d3f6a15714610839578063dd62ed3e146108625761023b565b80639fccce32116100f25780639fccce32146106ce578063a457c2d7146106f9578063a9059cbb14610736578063b886311514610773578063c02466681461079e5761023b565b80638da5cb5b146105e75780638ea5220f1461061257806395d89b411461063d57806396880b17146106685780639b2cd67d146106a55761023b565b806323b872dd116101bc578063555467a111610180578063555467a1146105025780636ddd17131461053f57806370a082311461056a578063715018a6146105a75780637571336a146105be5761023b565b806323b872dd146103f5578063313ce56714610432578063395093511461045d57806349bd5a5e1461049a5780634fbee193146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631c6e8a75146103645780631cdd3be31461038d5780631f3fed8f146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610982565b60405161026291906137a6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613861565b610a14565b60405161029f91906138bc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906138d7565b610a32565b6040516102dc91906138bc565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613904565b610a52565b005b34801561031a57600080fd5b50610323610c23565b6040516103309190613953565b60405180910390f35b34801561034557600080fd5b5061034e610c2d565b60405161035b9190613953565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061399a565b610c33565b005b34801561039957600080fd5b506103b460048036038101906103af91906138d7565b610ce7565b6040516103c191906138bc565b60405180910390f35b3480156103d657600080fd5b506103df610d07565b6040516103ec9190613953565b60405180910390f35b34801561040157600080fd5b5061041c600480360381019061041791906139c7565b610d0d565b60405161042991906138bc565b60405180910390f35b34801561043e57600080fd5b50610447610de6565b6040516104549190613a36565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613861565b610def565b60405161049191906138bc565b60405180910390f35b3480156104a657600080fd5b506104af610ea2565b6040516104bc9190613a60565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e791906138d7565b610ec6565b6040516104f991906138bc565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613a7b565b610f1c565b60405161053691906138bc565b60405180910390f35b34801561054b57600080fd5b50610554610fc5565b60405161056191906138bc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c91906138d7565b610fd8565b60405161059e9190613953565b60405180910390f35b3480156105b357600080fd5b506105bc611020565b005b3480156105ca57600080fd5b506105e560048036038101906105e09190613aa8565b611178565b005b3480156105f357600080fd5b506105fc61126a565b6040516106099190613a60565b60405180910390f35b34801561061e57600080fd5b50610627611294565b6040516106349190613a60565b60405180910390f35b34801561064957600080fd5b506106526112ba565b60405161065f91906137a6565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906138d7565b61134c565b60405161069c91906138bc565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613b14565b61136c565b005b3480156106da57600080fd5b506106e3611593565b6040516106f09190613953565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613861565b611599565b60405161072d91906138bc565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613861565b611666565b60405161076a91906138bc565b60405180910390f35b34801561077f57600080fd5b50610788611684565b60405161079591906138bc565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613aa8565b611697565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190613aa8565b611789565b005b3480156107fc57600080fd5b5061080561190a565b005b34801561081357600080fd5b5061081c6119ec565b604051610830989796959493929190613ba1565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b9190613c1f565b611a8a565b005b34801561086e57600080fd5b5061088960048036038101906108849190613c1f565b611ba7565b6040516108969190613953565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190613aa8565b611c2e565b005b3480156108d457600080fd5b506108ef60048036038101906108ea91906138d7565b611d20565b005b3480156108fd57600080fd5b50610918600480360381019061091391906138d7565b611ee7565b60405161092591906138bc565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613a7b565b611f07565b005b34801561096357600080fd5b5061096c61203c565b6040516109799190613cbe565b60405180910390f35b60606003805461099190613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546109bd90613d08565b8015610a0a5780601f106109df57610100808354040283529160200191610a0a565b820191906000526020600020905b8154815290600101906020018083116109ed57829003601f168201915b5050505050905090565b6000610a28610a216120be565b84846120c6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b610a5a6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613d86565b60405180910390fd5b6064610af3610c23565b610afd9190613e04565b6103e883610b09610c23565b610b139190613e35565b610b1d9190613e04565b1015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613f01565b60405180910390fd5b6064610b68610c23565b610b729190613e04565b6103e882610b7e610c23565b610b889190613e35565b610b929190613e04565b1015610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613f93565b60405180910390fd5b6103e882610bdf610c23565b610be99190613e35565b610bf39190613e04565b6008819055506103e881610c05610c23565b610c0f9190613e35565b610c199190613e04565b6009819055505050565b6000600254905090565b60125481565b610c3b6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613d86565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b60166020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610d1a8484846121b1565b610ddb84610d266120be565b610dd68560405180606001604052806028815260200161489560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d8c6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b600190509392505050565b60006009905090565b6000610e98610dfc6120be565b84610e938560016000610e0d6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6120c6565b6001905092915050565b7f00000000000000000000000041cfb7480f41f874a046f530101a802594576ec181565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610f266120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613d86565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111806120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613d86565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546112c990613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546112f590613d08565b80156113425780601f1061131757610100808354040283529160200191611342565b820191906000526020600020905b81548152906001019060200180831161132557829003601f168201915b5050505050905090565b60106020528060005260406000206000915054906101000a900460ff1681565b6113746120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613d86565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166114a09190613fb3565b6114aa9190613fb3565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166115649190613fb3565b61156e9190613fb3565b600d60000160046101000a81548160ff021916908360ff160217905550505050505050565b60135481565b600061165c6115a66120be565b846116578560405180606001604052806025815260200161484a60259139600160006115d06120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b6001905092915050565b600061167a6116736120be565b84846121b1565b6001905092915050565b600c60029054906101000a900460ff1681565b61169f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613d86565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117916120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790613d86565b60405180910390fd5b7f00000000000000000000000041cfb7480f41f874a046f530101a802594576ec173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690614036565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119126120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613d86565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119e49190614056565b601481905550565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611a926120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1890613d86565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c366120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613d86565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9061411e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611f0f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613d86565b60405180910390fd5b6064611fa8610c23565b611fb29190613e04565b6103e882611fbe610c23565b611fc89190613e35565b611fd29190613e04565b1015612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a906141b0565b60405180910390fd5b6103e88161201f610c23565b6120299190613e35565b6120339190613e04565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080828461206f9190614056565b9050838110156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061421c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121a49190613953565b60405180910390a3505050565b60008114156121cb576121c683836000612dce565b612d65565b6121d361126a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612241575061221161126a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225a5750600c60029054906101000a900460ff16155b156126c357600c60009054906101000a900460ff1661235457600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a90614288565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123f75750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244657600854811115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906142f4565b60405180910390fd5b612535565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e95750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253457600954811115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614360565b60405180910390fd5b5b5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125df57600a5461259283610fd8565b8261259d9190614056565b11156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5906143cc565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990614438565b60405180910390fd5b5b60006126ce30610fd8565b90506000600b5482101590508080156126f35750600c60019054906101000a900460ff165b801561270c5750600c60029054906101000a900460ff16155b80156127615750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127b75750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561280d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612851576001600c60026101000a81548160ff021916908315150217905550612835612f78565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129075750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291157600090505b8015612d565760006014544310156129b35761294a606461293c60638861326690919063ffffffff16565b6132e190919063ffffffff16565b90506063605e8261295b9190613e35565b6129659190613e04565b601160008282546129769190614056565b92505081905550606360058261298c9190613e35565b6129969190613e04565b601360008282546129a79190614056565b92505081905550612d31565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2157506000600d60000160049054906101000a900460ff1660ff16115b15612b7357612a616064612a53600d60000160049054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612a9a9190613e35565b612aa49190613e04565b60126000828254612ab59190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612af39190613e35565b612afd9190613e04565b60116000828254612b0e9190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612b4c9190613e35565b612b569190613e04565b60136000828254612b679190614056565b92505081905550612d30565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612be157506000600d60000160009054906101000a900460ff1660ff16115b15612d2f57612c216064612c13600d60000160009054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612c5a9190613e35565b612c649190613e04565b60126000828254612c759190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612cb39190613e35565b612cbd9190613e04565b60116000828254612cce9190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612d0c9190613e35565b612d169190613e04565b60136000828254612d279190614056565b925050819055505b5b5b6000811115612d4657612d45873083612dce565b5b8085612d529190614458565b9450505b612d61868686612dce565b5050505b505050565b6000838311158290612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da991906137a6565b60405180910390fd5b5060008385612dc19190614458565b9050809150509392505050565b612e398160405180606001604052806026815260200161486f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ecc816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6b9190613953565b60405180910390a3505050565b6000612f8330610fd8565b90506000601354601154601254612f9a9190614056565b612fa49190614056565b9050600080831480612fb65750600082145b15612fc357505050613264565b6014600b54612fd29190613e35565b831115612feb576014600b54612fe89190613e35565b92505b600060028360125486612ffe9190613e35565b6130089190613e04565b6130129190613e04565b90506000613029828661332b90919063ffffffff16565b9050600047905061303982613375565b600061304e824761332b90919063ffffffff16565b905060006130798761306b6011548561326690919063ffffffff16565b6132e190919063ffffffff16565b905060006130a4886130966013548661326690919063ffffffff16565b6132e190919063ffffffff16565b9050600081836130b49190614056565b846130bf9190614458565b90506000601281905550600060118190555060006013819055506000871180156130e95750600081115b15613132576130f887826135c1565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486868260405161312992919061448c565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476131779190614458565b604051613183906144e6565b60006040518083038185875af1925050503d80600081146131c0576040519150601f19603f3d011682016040523d82523d6000602084013e6131c5565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613211906144e6565b60006040518083038185875af1925050503d806000811461324e576040519150601f19603f3d011682016040523d82523d6000602084013e613253565b606091505b505080985050505050505050505050505b565b60008083141561327957600090506132db565b600082846132879190613e35565b90508284826132969190613e04565b146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cd9061456d565b60405180910390fd5b809150505b92915050565b600061332383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136aa565b905092915050565b600061336d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d6a565b905092915050565b6000600267ffffffffffffffff8111156133925761339161458d565b5b6040519080825280602002602001820160405280156133c05781602001602082028036833780820191505090505b50905030816000815181106133d8576133d76145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561347857600080fd5b505afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b09190614600565b816001815181106134c4576134c36145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613529307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846120c6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161358b959493929190614726565b600060405180830381600087803b1580156135a557600080fd5b505af11580156135b9573d6000803e3d6000fd5b505050505050565b6135ec307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846120c6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161365196959493929190614780565b6060604051808303818588803b15801561366a57600080fd5b505af115801561367e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136a391906147f6565b5050505050565b600080831182906136f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e891906137a6565b60405180910390fd5b50600083856137009190613e04565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561374757808201518184015260208101905061372c565b83811115613756576000848401525b50505050565b6000601f19601f8301169050919050565b60006137788261370d565b6137828185613718565b9350613792818560208601613729565b61379b8161375c565b840191505092915050565b600060208201905081810360008301526137c0818461376d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c8565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b6000602082840312156138ed576138ec6137c8565b5b60006138fb84828501613816565b91505092915050565b6000806040838503121561391b5761391a6137c8565b5b60006139298582860161384c565b925050602061393a8582860161384c565b9150509250929050565b61394d8161382b565b82525050565b60006020820190506139686000830184613944565b92915050565b613977816138a1565b811461398257600080fd5b50565b6000813590506139948161396e565b92915050565b6000602082840312156139b0576139af6137c8565b5b60006139be84828501613985565b91505092915050565b6000806000606084860312156139e0576139df6137c8565b5b60006139ee86828701613816565b93505060206139ff86828701613816565b9250506040613a108682870161384c565b9150509250925092565b600060ff82169050919050565b613a3081613a1a565b82525050565b6000602082019050613a4b6000830184613a27565b92915050565b613a5a816137ed565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137c8565b5b6000613a9f8482850161384c565b91505092915050565b60008060408385031215613abf57613abe6137c8565b5b6000613acd85828601613816565b9250506020613ade85828601613985565b9150509250929050565b613af181613a1a565b8114613afc57600080fd5b50565b600081359050613b0e81613ae8565b92915050565b60008060008060008060c08789031215613b3157613b306137c8565b5b6000613b3f89828a01613aff565b9650506020613b5089828a01613aff565b9550506040613b6189828a01613aff565b9450506060613b7289828a01613aff565b9350506080613b8389828a01613aff565b92505060a0613b9489828a01613aff565b9150509295509295509295565b600061010082019050613bb7600083018b613a27565b613bc4602083018a613a27565b613bd16040830189613a27565b613bde6060830188613a27565b613beb6080830187613a27565b613bf860a0830186613a27565b613c0560c0830185613a27565b613c1260e0830184613a27565b9998505050505050505050565b60008060408385031215613c3657613c356137c8565b5b6000613c4485828601613816565b9250506020613c5585828601613816565b9150509250929050565b6000819050919050565b6000613c84613c7f613c7a846137cd565b613c5f565b6137cd565b9050919050565b6000613c9682613c69565b9050919050565b6000613ca882613c8b565b9050919050565b613cb881613c9d565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2057607f821691505b60208210811415613d3457613d33613cd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d70602083613718565b9150613d7b82613d3a565b602082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0f8261382b565b9150613e1a8361382b565b925082613e2a57613e29613da6565b5b828204905092915050565b6000613e408261382b565b9150613e4b8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8457613e83613dd5565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602383613718565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602483613718565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b6000613fbe82613a1a565b9150613fc983613a1a565b92508260ff03821115613fdf57613fde613dd5565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000614020601783613718565b915061402b82613fea565b602082019050919050565b6000602082019050818103600083015261404f81614013565b9050919050565b60006140618261382b565b915061406c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140a1576140a0613dd5565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614108602683613718565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b600061419a602283613718565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614206601b83613718565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614272601683613718565b915061427d8261423c565b602082019050919050565b600060208201905081810360008301526142a181614265565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b60006142de601c83613718565b91506142e9826142a8565b602082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061434a601d83613718565b915061435582614314565b602082019050919050565b600060208201905081810360008301526143798161433d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006143b6601383613718565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000614422601383613718565b915061442d826143ec565b602082019050919050565b6000602082019050818103600083015261445181614415565b9050919050565b60006144638261382b565b915061446e8361382b565b92508282101561448157614480613dd5565b5b828203905092915050565b60006040820190506144a16000830185613944565b6144ae6020830184613944565b9392505050565b600081905092915050565b50565b60006144d06000836144b5565b91506144db826144c0565b600082019050919050565b60006144f1826144c3565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614557602183613718565b9150614562826144fb565b604082019050919050565b600060208201905081810360008301526145868161454a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506145fa816137ff565b92915050565b600060208284031215614616576146156137c8565b5b6000614624848285016145eb565b91505092915050565b6000819050919050565b600061465261464d6146488461462d565b613c5f565b61382b565b9050919050565b61466281614637565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469d816137ed565b82525050565b60006146af8383614694565b60208301905092915050565b6000602082019050919050565b60006146d382614668565b6146dd8185614673565b93506146e883614684565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b600060a08201905061473b6000830188613944565b6147486020830187614659565b818103604083015261475a81866146c8565b90506147696060830185613a51565b6147766080830184613944565b9695505050505050565b600060c0820190506147956000830189613a51565b6147a26020830188613944565b6147af6040830187614659565b6147bc6060830186614659565b6147c96080830185613a51565b6147d660a0830184613944565b979650505050505050565b6000815190506147f081613835565b92915050565b60008060006060848603121561480f5761480e6137c8565b5b600061481d868287016147e1565b935050602061482e868287016147e1565b925050604061483f868287016147e1565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a8005fed833d0ed72a4d94eab1b9543329b5016f004aac8c5b1695b9557d73964736f6c63430008090033

Deployed Bytecode Sourcemap

11417:9917:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1787:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2595:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12395:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16520:427;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2065:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12563:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14745:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12706:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12526:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2751:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1979:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3062:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11536:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17109:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14593:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11867:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2167:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5764:131;;;;;;;;;;;;;:::i;:::-;;15976:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5584:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11595:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1881:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12462:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15103:604;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12600:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3267:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2288:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11902:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15712:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16355:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14469:119;;;;;;;;;;;;;:::i;:::-;;12140:193;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;16952:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2450:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15837:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5900:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12660:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14843:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11490:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1787:89;1840:13;1866:5;1859:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1787:89;:::o;2595:151::-;2677:4;2687:39;2696:12;:10;:12::i;:::-;2710:7;2719:6;2687:8;:39::i;:::-;2737:4;2730:11;;2595:151;;;;:::o;12395:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;16520:427::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16675:3:::1;16659:13;:11;:13::i;:::-;:19;;;;:::i;:::-;16649:4;16636:9;16620:13;:11;:13::i;:::-;:25;;;;:::i;:::-;16619:34;;;;:::i;:::-;16618:61;;16610:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;16789:3;16773:13;:11;:13::i;:::-;:19;;;;:::i;:::-;16763:4;16749:10;16733:13;:11;:13::i;:::-;:26;;;;:::i;:::-;16732:35;;;;:::i;:::-;16731:62;;16723:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;16883:4;16870:9;16854:13;:11;:13::i;:::-;:25;;;;:::i;:::-;16853:34;;;;:::i;:::-;16838:12;:49;;;;16938:4;16924:10;16908:13;:11;:13::i;:::-;:26;;;;:::i;:::-;16907:35;;;;:::i;:::-;16891:13;:51;;;;16520:427:::0;;:::o;2065:97::-;2125:7;2145:12;;2138:19;;2065:97;:::o;12563:33::-;;;;:::o;14745:91::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14824:7:::1;14810:11;;:21;;;;;;;;;;;;;;;;;;14745:91:::0;:::o;12706:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;12526:33::-;;;;:::o;2751:306::-;2866:4;2876:36;2886:6;2894:9;2905:6;2876:9;:36::i;:::-;2916:121;2925:6;2933:12;:10;:12::i;:::-;2947:89;2985:6;2947:89;;;;;;;;;;;;;;;;;:11;:19;2959:6;2947:19;;;;;;;;;;;;;;;:33;2967:12;:10;:12::i;:::-;2947:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;2916:8;:121::i;:::-;3048:4;3041:11;;2751:306;;;;;:::o;1979:81::-;2036:5;2054:1;2047:8;;1979:81;:::o;3062:200::-;3149:4;3159:83;3168:12;:10;:12::i;:::-;3182:7;3191:50;3230:10;3191:11;:25;3203:12;:10;:12::i;:::-;3191:25;;;;;;;;;;;;;;;:34;3217:7;3191:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3159:8;:83::i;:::-;3253:4;3246:11;;3062:200;;;;:::o;11536:38::-;;;:::o;17109:115::-;17174:4;17191:19;:28;17211:7;17191:28;;;;;;;;;;;;;;;;;;;;;;;;;17184:35;;17109:115;;;:::o;14593:141::-;14674:4;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14705:9:::1;14683:19;:31;;;;14725:4;14718:11;;14593:141:::0;;;:::o;11867:31::-;;;;;;;;;;;;;:::o;2167:116::-;2240:7;2260:9;:18;2270:7;2260:18;;;;;;;;;;;;;;;;2253:25;;2167:116;;;:::o;5764:131::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5864:1:::1;5827:40;;5848:6;;;;;;;;;;;5827:40;;;;;;;;;;;;5888:1;5871:6;;:19;;;;;;;;;;;;;;;;;;5764:131::o:0;15976:134::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16101:4:::1;16059:31;:39;16091:6;16059:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15976:134:::0;;:::o;5584:68::-;5621:7;5641:6;;;;;;;;;;;5634:13;;5584:68;:::o;11595:24::-;;;;;;;;;;;;;:::o;1881:93::-;1936:13;1962:7;1955:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1881:93;:::o;12462:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;15103:604::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15300:16:::1;15276:5;:21;;;:40;;;;;;;;;;;;;;;;;;15344:16;15320:5;:21;;;:40;;;;;;;;;;;;;;;;;;15382:10;15364:5;:15;;;:28;;;;;;;;;;;;;;;;;;15465:5;:15;;;;;;;;;;;;15441:5;:21;;;;;;;;;;;;15417:5;:21;;;;;;;;;;;;:45;;;;:::i;:::-;:63;;;;:::i;:::-;15396:5;:18;;;:84;;;;;;;;;;;;;;;;;;15511:17;15486:5;:22;;;:42;;;;;;;;;;;;;;;;;;15557:17;15532:5;:22;;;:42;;;;;;;;;;;;;;;;;;15597:11;15578:5;:16;;;:30;;;;;;;;;;;;;;;;;;15684:5;:16;;;;;;;;;;;;15659:5;:22;;;;;;;;;;;;15634:5;:22;;;;;;;;;;;;:47;;;;:::i;:::-;:66;;;;:::i;:::-;15612:5;:19;;;:88;;;;;;;;;;;;;;;;;;15103:604:::0;;;;;;:::o;12600:27::-;;;;:::o;3267:251::-;3359:4;3369:129;3378:12;:10;:12::i;:::-;3392:7;3401:96;3440:15;3401:96;;;;;;;;;;;;;;;;;:11;:25;3413:12;:10;:12::i;:::-;3401:25;;;;;;;;;;;;;;;:34;3427:7;3401:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;3369:8;:129::i;:::-;3509:4;3502:11;;3267:251;;;;:::o;2288:157::-;2373:4;2383:42;2393:12;:10;:12::i;:::-;2407:9;2418:6;2383:9;:42::i;:::-;2436:4;2429:11;;2288:157;;;;:::o;11902:22::-;;;;;;;;;;;;;:::o;15712:122::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15821:8:::1;15790:19;:28;15810:7;15790:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15712:122:::0;;:::o;16355:160::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16441:13:::1;16433:21;;:4;:21;;;;16425:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16505:5;16486:10;:16;16497:4;16486:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16355:160:::0;;:::o;14469:119::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14527:4:::1;14515:9;;:16;;;;;;;;;;;;;;;;;;14549:4;14535:11;;:18;;;;;;;;;;;;;;;;;;14582:1;14567:12;:16;;;;:::i;:::-;14557:7;:26;;;;14469:119::o:0;12140:193::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16952:152::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17057:16:::1;17039:15;;:34;;;;;;;;;;;;;;;;;;17089:10;17077:9;;:22;;;;;;;;;;;;;;;;;;16952:152:::0;;:::o;2450:140::-;2538:7;2558:11;:18;2570:5;2558:18;;;;;;;;;;;;;;;:27;2577:7;2558:27;;;;;;;;;;;;;;;;2551:34;;2450:140;;;;:::o;15837:136::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15960:8:::1;15922:26;:35;15949:7;15922:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15837:136:::0;;:::o;5900:220::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6002:1:::1;5982:22;;:8;:22;;;;5974:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6085:8;6056:38;;6077:6;;;;;;;;;;;6056:38;;;;;;;;;;;;6107:8;6098:6;;:17;;;;;;;;;;;;;;;;;;5900:220:::0;:::o;12660:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;14843:251::-;5700:12;:10;:12::i;:::-;5690:22;;:6;;;;;;;;;;;:22;;;5682:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14986:3:::1;14970:13;:11;:13::i;:::-;:19;;;;:::i;:::-;14960:4;14943:13;14927;:11;:13::i;:::-;:29;;;;:::i;:::-;14926:38;;;;:::i;:::-;14925:65;;14917:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;15085:4;15068:13;15052;:11;:13::i;:::-;:29;;;;:::i;:::-;15051:38;;;;:::i;:::-;15033:15;:56;;;;14843:251:::0;:::o;11490:42::-;;;:::o;4332:156::-;4389:7;4402:9;4418:1;4414;:5;;;;:::i;:::-;4402:17;;4436:1;4431;:6;;4423:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4482:1;4475:8;;;4332:156;;;;:::o;1297:87::-;1349:7;1369:10;1362:17;;1297:87;:::o;3831:179::-;3958:6;3928:11;:18;3940:5;3928:18;;;;;;;;;;;;;;;:27;3947:7;3928:27;;;;;;;;;;;;;;;:36;;;;3989:7;3973:32;;3982:5;3973:32;;;3998:6;3973:32;;;;;;:::i;:::-;;;;;;;;3831:179;;;:::o;17229:2392::-;17349:1;17339:6;:11;17335:73;;;17356:37;17372:6;17380:9;17391:1;17356:15;:37::i;:::-;17397:7;;17335:73;17430:7;:5;:7::i;:::-;17420:17;;:6;:17;;;;:43;;;;;17456:7;:5;:7::i;:::-;17443:20;;:9;:20;;;;17420:43;:60;;;;;17470:10;;;;;;;;;;;17469:11;17420:60;17413:729;;;17496:9;;;;;;;;;;;17491:121;;17519:19;:27;17539:6;17519:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;17550:19;:30;17570:9;17550:30;;;;;;;;;;;;;;;;;;;;;;;;;17519:61;17511:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;17491:121;17619:10;:18;17630:6;17619:18;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;17642:31;:42;17674:9;17642:42;;;;;;;;;;;;;;;;;;;;;;;;;17641:43;17619:65;17615:296;;;17708:12;;17698:6;:22;;17690:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;17615:296;;;17770:10;:21;17781:9;17770:21;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;17796:31;:39;17828:6;17796:39;;;;;;;;;;;;;;;;;;;;;;;;;17795:40;17770:65;17766:145;;;17859:13;;17849:6;:23;;17841:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17766:145;17615:296;17921:26;:37;17948:9;17921:37;;;;;;;;;;;;;;;;;;;;;;;;;17916:133;;18005:15;;17981:20;17991:9;17981;:20::i;:::-;17972:6;:29;;;;:::i;:::-;:48;;17964:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;17916:133;18061:14;:22;18076:6;18061:22;;;;;;;;;;;;;;;;;;;;;;;;;18060:23;:53;;;;;18088:14;:25;18103:9;18088:25;;;;;;;;;;;;;;;;;;;;;;;;;18087:26;18060:53;18052:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17413:729;18147:28;18178:24;18196:4;18178:9;:24::i;:::-;18147:55;;18208:12;18247:19;;18223:20;:43;;18208:58;;18279:7;:24;;;;;18292:11;;;;;;;;;;;18279:24;:41;;;;;18310:10;;;;;;;;;;;18309:11;18279:41;:68;;;;;18326:10;:21;18337:9;18326:21;;;;;;;;;;;;;;;;;;;;;;;;;18279:68;:102;;;;;18354:19;:27;18374:6;18354:27;;;;;;;;;;;;;;;;;;;;;;;;;18353:28;18279:102;:139;;;;;18388:19;:30;18408:9;18388:30;;;;;;;;;;;;;;;;;;;;;;;;;18387:31;18279:139;18272:213;;;18440:4;18427:10;;:17;;;;;;;;;;;;;;;;;;18448:10;:8;:10::i;:::-;18475:5;18462:10;;:18;;;;;;;;;;;;;;;;;;18272:213;18490:12;18506:10;;;;;;;;;;;18505:11;18490:26;;18526:19;:27;18546:6;18526:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;18557:19;:30;18577:9;18557:30;;;;;;;;;;;;;;;;;;;;;;;;;18526:61;18522:91;;;18603:5;18593:15;;18522:91;18622:7;18618:951;;;18635:12;18673:7;;18658:12;:22;18655:816;;;18693:23;18712:3;18693:14;18704:2;18693:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18686:30;;18756:2;18750;18743:4;:9;;;;:::i;:::-;18742:16;;;;:::i;:::-;18720:18;;:38;;;;;;;:::i;:::-;;;;;;;;18791:2;18786:1;18779:4;:8;;;;:::i;:::-;18778:15;;;;:::i;:::-;18762:12;;:31;;;;;;;:::i;:::-;;;;;;;;18655:816;;;18808:10;:21;18819:9;18808:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;18855:1;18833:5;:19;;;;;;;;;;;;:23;;;18808:48;18804:667;;;18869:40;18905:3;18869:31;18880:5;:19;;;;;;;;;;;;18869:31;;:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;18862:47;;18967:5;:19;;;;;;;;;;;;18935:51;;18942:5;:22;;;;;;;;;;;;18935:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;18913:18;;:73;;;;;;;:::i;:::-;;;;;;;;19044:5;:19;;;;;;;;;;;;19012:51;;19019:5;:22;;;;;;;;;;;;19012:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;18990:18;;:73;;;;;;;:::i;:::-;;;;;;;;19109:5;:19;;;;;;;;;;;;19083:45;;19090:5;:16;;;;;;;;;;;;19083:23;;:4;:23;;;;:::i;:::-;:45;;;;:::i;:::-;19067:12;;:61;;;;;;;:::i;:::-;;;;;;;;18804:667;;;19157:10;:18;19168:6;19157:18;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;19200:1;19179:5;:18;;;;;;;;;;;;:22;;;19157:44;19153:318;;;19214:39;19249:3;19214:30;19225:5;:18;;;;;;;;;;;;19214:30;;:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19207:46;;19310:5;:18;;;;;;;;;;;;19279:49;;19286:5;:21;;;;;;;;;;;;19279:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;19257:18;;:71;;;;;;;:::i;:::-;;;;;;;;19385:5;:18;;;;;;;;;;;;19354:49;;19361:5;:21;;;;;;;;;;;;19354:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;19332:18;;:71;;;;;;;:::i;:::-;;;;;;;;19448:5;:18;;;;;;;;;;;;19423:43;;19430:5;:15;;;;;;;;;;;;19423:22;;:4;:22;;;;:::i;:::-;:43;;;;:::i;:::-;19407:12;;:59;;;;;;;:::i;:::-;;;;;;;;19153:318;18804:667;18655:816;19487:1;19480:4;:8;19476:67;;;19494:44;19510:6;19526:4;19533;19494:15;:44::i;:::-;19476:67;19558:4;19548:14;;;;;:::i;:::-;;;18631:938;18618:951;19574:42;19590:6;19598:9;19609:6;19574:15;:42::i;:::-;17329:2292;;;17229:2392;;;;:::o;4623:167::-;4708:7;4734:1;4729;:6;;4737:12;4721:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4754:9;4770:1;4766;:5;;;;:::i;:::-;4754:17;;4784:1;4777:8;;;4623:167;;;;;:::o;3523:302::-;3646:71;3668:6;3646:71;;;;;;;;;;;;;;;;;:9;:17;3656:6;3646:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;3626:9;:17;3636:6;3626:17;;;;;;;;;;;;;;;:91;;;;3744:32;3769:6;3744:9;:20;3754:9;3744:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3721:9;:20;3731:9;3721:20;;;;;;;;;;;;;;;:55;;;;3802:9;3785:35;;3794:6;3785:35;;;3813:6;3785:35;;;;;;:::i;:::-;;;;;;;;3523:302;;;:::o;20002:1327::-;20034:28;20065:24;20083:4;20065:9;:24::i;:::-;20034:55;;20093:14;20152:12;;20131:18;;20110;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;20093:71;;20168:12;20214:1;20190:20;:25;:40;;;;20229:1;20219:6;:11;20190:40;20186:57;;;20234:7;;;;;20186:57;20297:2;20275:19;;:24;;;;:::i;:::-;20252:20;:47;20248:109;;;20350:2;20328:19;;:24;;;;:::i;:::-;20305:47;;20248:109;20362:23;20441:1;20432:6;20411:18;;20388:20;:41;;;;:::i;:::-;:50;;;;:::i;:::-;:54;;;;:::i;:::-;20362:80;;20446:26;20475:41;20500:15;20475:20;:24;;:41;;;;:::i;:::-;20446:70;;20522:25;20550:21;20522:49;;20577:36;20594:18;20577:16;:36::i;:::-;20619:18;20640:44;20666:17;20640:21;:25;;:44;;;;:::i;:::-;20619:65;;20690:23;20716:46;20755:6;20716:34;20731:18;;20716:10;:14;;:34;;;;:::i;:::-;:38;;:46;;;;:::i;:::-;20690:72;;20766:17;20786:40;20819:6;20786:28;20801:12;;20786:10;:14;;:28;;;;:::i;:::-;:32;;:40;;;;:::i;:::-;20766:60;;20830:23;20888:9;20870:15;:27;;;;:::i;:::-;20856:10;:42;;;;:::i;:::-;20830:68;;20927:1;20906:18;:22;;;;20953:1;20932:18;:22;;;;20973:1;20958:12;:16;;;;21002:1;20984:15;:19;:42;;;;;21025:1;21007:15;:19;20984:42;20980:163;;;21032:46;21045:15;21062;21032:12;:46::i;:::-;21087:51;21102:18;21122:15;21087:51;;;;;;;:::i;:::-;;;;;;;;20980:163;21169:9;;;;;;;;;;;21161:23;;21218:15;21194:21;:39;;;;:::i;:::-;21161:80;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21148:93;;;;;21266:15;;;;;;;;;;;21258:29;;21296:21;21258:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21245:79;;;;;20030:1299;;;;;;;;;;20002:1327;:::o;4795:202::-;4852:7;4876:1;4871;:6;4867:29;;;4890:1;4883:8;;;;4867:29;4901:9;4917:1;4913;:5;;;;:::i;:::-;4901:17;;4939:1;4934;4930;:5;;;;:::i;:::-;:10;4922:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4991:1;4984:8;;;4795:202;;;;;:::o;5002:121::-;5059:7;5079:39;5083:1;5086;5079:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5072:46;;5002:121;;;;:::o;4493:125::-;4550:7;4570:43;4574:1;4577;4570:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4563:50;;4493:125;;;;:::o;19626:367::-;19683:21;19721:1;19707:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19683:40;;19745:4;19727;19732:1;19727:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19764:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19754:4;19759:1;19754:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19783:49;19800:4;19815:6;19824:7;19783:8;:49::i;:::-;19838:6;:57;;;19899:7;19910:1;19944:4;19960;19969:15;19838:150;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19677:316;19626:367;:::o;16114:236::-;16184:49;16201:4;16216:6;16225:7;16184:8;:49::i;:::-;16239:6;:22;;;16270:9;16291:4;16298:7;16307:1;16310;16322:4;16329:15;16239:106;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16114:236;;:::o;5128:166::-;5213:7;5238:1;5234;:5;5241:12;5226:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5258:9;5274:1;5270;:5;;;;:::i;:::-;5258:17;;5288:1;5281:8;;;5128:166;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:116::-;4731:21;4746:5;4731:21;:::i;:::-;4724:5;4721:32;4711:60;;4767:1;4764;4757:12;4711:60;4661:116;:::o;4783:133::-;4826:5;4864:6;4851:20;4842:29;;4880:30;4904:5;4880:30;:::i;:::-;4783:133;;;;:::o;4922:323::-;4978:6;5027:2;5015:9;5006:7;5002:23;4998:32;4995:119;;;5033:79;;:::i;:::-;4995:119;5153:1;5178:50;5220:7;5211:6;5200:9;5196:22;5178:50;:::i;:::-;5168:60;;5124:114;4922:323;;;;:::o;5251:619::-;5328:6;5336;5344;5393:2;5381:9;5372:7;5368:23;5364:32;5361:119;;;5399:79;;:::i;:::-;5361:119;5519:1;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5490:117;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5774:2;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5745:118;5251:619;;;;;:::o;5876:86::-;5911:7;5951:4;5944:5;5940:16;5929:27;;5876:86;;;:::o;5968:112::-;6051:22;6067:5;6051:22;:::i;:::-;6046:3;6039:35;5968:112;;:::o;6086:214::-;6175:4;6213:2;6202:9;6198:18;6190:26;;6226:67;6290:1;6279:9;6275:17;6266:6;6226:67;:::i;:::-;6086:214;;;;:::o;6306:118::-;6393:24;6411:5;6393:24;:::i;:::-;6388:3;6381:37;6306:118;;:::o;6430:222::-;6523:4;6561:2;6550:9;6546:18;6538:26;;6574:71;6642:1;6631:9;6627:17;6618:6;6574:71;:::i;:::-;6430:222;;;;:::o;6658:329::-;6717:6;6766:2;6754:9;6745:7;6741:23;6737:32;6734:119;;;6772:79;;:::i;:::-;6734:119;6892:1;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6863:117;6658:329;;;;:::o;6993:468::-;7058:6;7066;7115:2;7103:9;7094:7;7090:23;7086:32;7083:119;;;7121:79;;:::i;:::-;7083:119;7241:1;7266:53;7311:7;7302:6;7291:9;7287:22;7266:53;:::i;:::-;7256:63;;7212:117;7368:2;7394:50;7436:7;7427:6;7416:9;7412:22;7394:50;:::i;:::-;7384:60;;7339:115;6993:468;;;;;:::o;7467:118::-;7538:22;7554:5;7538:22;:::i;:::-;7531:5;7528:33;7518:61;;7575:1;7572;7565:12;7518:61;7467:118;:::o;7591:135::-;7635:5;7673:6;7660:20;7651:29;;7689:31;7714:5;7689:31;:::i;:::-;7591:135;;;;:::o;7732:1033::-;7824:6;7832;7840;7848;7856;7864;7913:3;7901:9;7892:7;7888:23;7884:33;7881:120;;;7920:79;;:::i;:::-;7881:120;8040:1;8065:51;8108:7;8099:6;8088:9;8084:22;8065:51;:::i;:::-;8055:61;;8011:115;8165:2;8191:51;8234:7;8225:6;8214:9;8210:22;8191:51;:::i;:::-;8181:61;;8136:116;8291:2;8317:51;8360:7;8351:6;8340:9;8336:22;8317:51;:::i;:::-;8307:61;;8262:116;8417:2;8443:51;8486:7;8477:6;8466:9;8462:22;8443:51;:::i;:::-;8433:61;;8388:116;8543:3;8570:51;8613:7;8604:6;8593:9;8589:22;8570:51;:::i;:::-;8560:61;;8514:117;8670:3;8697:51;8740:7;8731:6;8720:9;8716:22;8697:51;:::i;:::-;8687:61;;8641:117;7732:1033;;;;;;;;:::o;8771:933::-;9028:4;9066:3;9055:9;9051:19;9043:27;;9080:67;9144:1;9133:9;9129:17;9120:6;9080:67;:::i;:::-;9157:68;9221:2;9210:9;9206:18;9197:6;9157:68;:::i;:::-;9235;9299:2;9288:9;9284:18;9275:6;9235:68;:::i;:::-;9313;9377:2;9366:9;9362:18;9353:6;9313:68;:::i;:::-;9391:69;9455:3;9444:9;9440:19;9431:6;9391:69;:::i;:::-;9470;9534:3;9523:9;9519:19;9510:6;9470:69;:::i;:::-;9549;9613:3;9602:9;9598:19;9589:6;9549:69;:::i;:::-;9628;9692:3;9681:9;9677:19;9668:6;9628:69;:::i;:::-;8771:933;;;;;;;;;;;:::o;9710:474::-;9778:6;9786;9835:2;9823:9;9814:7;9810:23;9806:32;9803:119;;;9841:79;;:::i;:::-;9803:119;9961:1;9986:53;10031:7;10022:6;10011:9;10007:22;9986:53;:::i;:::-;9976:63;;9932:117;10088:2;10114:53;10159:7;10150:6;10139:9;10135:22;10114:53;:::i;:::-;10104:63;;10059:118;9710:474;;;;;:::o;10190:60::-;10218:3;10239:5;10232:12;;10190:60;;;:::o;10256:142::-;10306:9;10339:53;10357:34;10366:24;10384:5;10366:24;:::i;:::-;10357:34;:::i;:::-;10339:53;:::i;:::-;10326:66;;10256:142;;;:::o;10404:126::-;10454:9;10487:37;10518:5;10487:37;:::i;:::-;10474:50;;10404:126;;;:::o;10536:153::-;10613:9;10646:37;10677:5;10646:37;:::i;:::-;10633:50;;10536:153;;;:::o;10695:185::-;10809:64;10867:5;10809:64;:::i;:::-;10804:3;10797:77;10695:185;;:::o;10886:276::-;11006:4;11044:2;11033:9;11029:18;11021:26;;11057:98;11152:1;11141:9;11137:17;11128:6;11057:98;:::i;:::-;10886:276;;;;:::o;11168:180::-;11216:77;11213:1;11206:88;11313:4;11310:1;11303:15;11337:4;11334:1;11327:15;11354:320;11398:6;11435:1;11429:4;11425:12;11415:22;;11482:1;11476:4;11472:12;11503:18;11493:81;;11559:4;11551:6;11547:17;11537:27;;11493:81;11621:2;11613:6;11610:14;11590:18;11587:38;11584:84;;;11640:18;;:::i;:::-;11584:84;11405:269;11354:320;;;:::o;11680:182::-;11820:34;11816:1;11808:6;11804:14;11797:58;11680:182;:::o;11868:366::-;12010:3;12031:67;12095:2;12090:3;12031:67;:::i;:::-;12024:74;;12107:93;12196:3;12107:93;:::i;:::-;12225:2;12220:3;12216:12;12209:19;;11868:366;;;:::o;12240:419::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12493:9;12487:4;12483:20;12479:1;12468:9;12464:17;12457:47;12521:131;12647:4;12521:131;:::i;:::-;12513:139;;12240:419;;;:::o;12665:180::-;12713:77;12710:1;12703:88;12810:4;12807:1;12800:15;12834:4;12831:1;12824:15;12851:180;12899:77;12896:1;12889:88;12996:4;12993:1;12986:15;13020:4;13017:1;13010:15;13037:185;13077:1;13094:20;13112:1;13094:20;:::i;:::-;13089:25;;13128:20;13146:1;13128:20;:::i;:::-;13123:25;;13167:1;13157:35;;13172:18;;:::i;:::-;13157:35;13214:1;13211;13207:9;13202:14;;13037:185;;;;:::o;13228:348::-;13268:7;13291:20;13309:1;13291:20;:::i;:::-;13286:25;;13325:20;13343:1;13325:20;:::i;:::-;13320:25;;13513:1;13445:66;13441:74;13438:1;13435:81;13430:1;13423:9;13416:17;13412:105;13409:131;;;13520:18;;:::i;:::-;13409:131;13568:1;13565;13561:9;13550:20;;13228:348;;;;:::o;13582:222::-;13722:34;13718:1;13710:6;13706:14;13699:58;13791:5;13786:2;13778:6;13774:15;13767:30;13582:222;:::o;13810:366::-;13952:3;13973:67;14037:2;14032:3;13973:67;:::i;:::-;13966:74;;14049:93;14138:3;14049:93;:::i;:::-;14167:2;14162:3;14158:12;14151:19;;13810:366;;;:::o;14182:419::-;14348:4;14386:2;14375:9;14371:18;14363:26;;14435:9;14429:4;14425:20;14421:1;14410:9;14406:17;14399:47;14463:131;14589:4;14463:131;:::i;:::-;14455:139;;14182:419;;;:::o;14607:223::-;14747:34;14743:1;14735:6;14731:14;14724:58;14816:6;14811:2;14803:6;14799:15;14792:31;14607:223;:::o;14836:366::-;14978:3;14999:67;15063:2;15058:3;14999:67;:::i;:::-;14992:74;;15075:93;15164:3;15075:93;:::i;:::-;15193:2;15188:3;15184:12;15177:19;;14836:366;;;:::o;15208:419::-;15374:4;15412:2;15401:9;15397:18;15389:26;;15461:9;15455:4;15451:20;15447:1;15436:9;15432:17;15425:47;15489:131;15615:4;15489:131;:::i;:::-;15481:139;;15208:419;;;:::o;15633:237::-;15671:3;15690:18;15706:1;15690:18;:::i;:::-;15685:23;;15722:18;15738:1;15722:18;:::i;:::-;15717:23;;15812:1;15806:4;15802:12;15799:1;15796:19;15793:45;;;15818:18;;:::i;:::-;15793:45;15862:1;15859;15855:9;15848:16;;15633:237;;;;:::o;15876:173::-;16016:25;16012:1;16004:6;16000:14;15993:49;15876:173;:::o;16055:366::-;16197:3;16218:67;16282:2;16277:3;16218:67;:::i;:::-;16211:74;;16294:93;16383:3;16294:93;:::i;:::-;16412:2;16407:3;16403:12;16396:19;;16055:366;;;:::o;16427:419::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16680:9;16674:4;16670:20;16666:1;16655:9;16651:17;16644:47;16708:131;16834:4;16708:131;:::i;:::-;16700:139;;16427:419;;;:::o;16852:305::-;16892:3;16911:20;16929:1;16911:20;:::i;:::-;16906:25;;16945:20;16963:1;16945:20;:::i;:::-;16940:25;;17099:1;17031:66;17027:74;17024:1;17021:81;17018:107;;;17105:18;;:::i;:::-;17018:107;17149:1;17146;17142:9;17135:16;;16852:305;;;;:::o;17163:225::-;17303:34;17299:1;17291:6;17287:14;17280:58;17372:8;17367:2;17359:6;17355:15;17348:33;17163:225;:::o;17394:366::-;17536:3;17557:67;17621:2;17616:3;17557:67;:::i;:::-;17550:74;;17633:93;17722:3;17633:93;:::i;:::-;17751:2;17746:3;17742:12;17735:19;;17394:366;;;:::o;17766:419::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:221::-;18331:34;18327:1;18319:6;18315:14;18308:58;18400:4;18395:2;18387:6;18383:15;18376:29;18191:221;:::o;18418:366::-;18560:3;18581:67;18645:2;18640:3;18581:67;:::i;:::-;18574:74;;18657:93;18746:3;18657:93;:::i;:::-;18775:2;18770:3;18766:12;18759:19;;18418:366;;;:::o;18790:419::-;18956:4;18994:2;18983:9;18979:18;18971:26;;19043:9;19037:4;19033:20;19029:1;19018:9;19014:17;19007:47;19071:131;19197:4;19071:131;:::i;:::-;19063:139;;18790:419;;;:::o;19215:177::-;19355:29;19351:1;19343:6;19339:14;19332:53;19215:177;:::o;19398:366::-;19540:3;19561:67;19625:2;19620:3;19561:67;:::i;:::-;19554:74;;19637:93;19726:3;19637:93;:::i;:::-;19755:2;19750:3;19746:12;19739:19;;19398:366;;;:::o;19770:419::-;19936:4;19974:2;19963:9;19959:18;19951:26;;20023:9;20017:4;20013:20;20009:1;19998:9;19994:17;19987:47;20051:131;20177:4;20051:131;:::i;:::-;20043:139;;19770:419;;;:::o;20195:172::-;20335:24;20331:1;20323:6;20319:14;20312:48;20195:172;:::o;20373:366::-;20515:3;20536:67;20600:2;20595:3;20536:67;:::i;:::-;20529:74;;20612:93;20701:3;20612:93;:::i;:::-;20730:2;20725:3;20721:12;20714:19;;20373:366;;;:::o;20745:419::-;20911:4;20949:2;20938:9;20934:18;20926:26;;20998:9;20992:4;20988:20;20984:1;20973:9;20969:17;20962:47;21026:131;21152:4;21026:131;:::i;:::-;21018:139;;20745:419;;;:::o;21170:178::-;21310:30;21306:1;21298:6;21294:14;21287:54;21170:178;:::o;21354:366::-;21496:3;21517:67;21581:2;21576:3;21517:67;:::i;:::-;21510:74;;21593:93;21682:3;21593:93;:::i;:::-;21711:2;21706:3;21702:12;21695:19;;21354:366;;;:::o;21726:419::-;21892:4;21930:2;21919:9;21915:18;21907:26;;21979:9;21973:4;21969:20;21965:1;21954:9;21950:17;21943:47;22007:131;22133:4;22007:131;:::i;:::-;21999:139;;21726:419;;;:::o;22151:179::-;22291:31;22287:1;22279:6;22275:14;22268:55;22151:179;:::o;22336:366::-;22478:3;22499:67;22563:2;22558:3;22499:67;:::i;:::-;22492:74;;22575:93;22664:3;22575:93;:::i;:::-;22693:2;22688:3;22684:12;22677:19;;22336:366;;;:::o;22708:419::-;22874:4;22912:2;22901:9;22897:18;22889:26;;22961:9;22955:4;22951:20;22947:1;22936:9;22932:17;22925:47;22989:131;23115:4;22989:131;:::i;:::-;22981:139;;22708:419;;;:::o;23133:169::-;23273:21;23269:1;23261:6;23257:14;23250:45;23133:169;:::o;23308:366::-;23450:3;23471:67;23535:2;23530:3;23471:67;:::i;:::-;23464:74;;23547:93;23636:3;23547:93;:::i;:::-;23665:2;23660:3;23656:12;23649:19;;23308:366;;;:::o;23680:419::-;23846:4;23884:2;23873:9;23869:18;23861:26;;23933:9;23927:4;23923:20;23919:1;23908:9;23904:17;23897:47;23961:131;24087:4;23961:131;:::i;:::-;23953:139;;23680:419;;;:::o;24105:169::-;24245:21;24241:1;24233:6;24229:14;24222:45;24105:169;:::o;24280:366::-;24422:3;24443:67;24507:2;24502:3;24443:67;:::i;:::-;24436:74;;24519:93;24608:3;24519:93;:::i;:::-;24637:2;24632:3;24628:12;24621:19;;24280:366;;;:::o;24652:419::-;24818:4;24856:2;24845:9;24841:18;24833:26;;24905:9;24899:4;24895:20;24891:1;24880:9;24876:17;24869:47;24933:131;25059:4;24933:131;:::i;:::-;24925:139;;24652:419;;;:::o;25077:191::-;25117:4;25137:20;25155:1;25137:20;:::i;:::-;25132:25;;25171:20;25189:1;25171:20;:::i;:::-;25166:25;;25210:1;25207;25204:8;25201:34;;;25215:18;;:::i;:::-;25201:34;25260:1;25257;25253:9;25245:17;;25077:191;;;;:::o;25274:332::-;25395:4;25433:2;25422:9;25418:18;25410:26;;25446:71;25514:1;25503:9;25499:17;25490:6;25446:71;:::i;:::-;25527:72;25595:2;25584:9;25580:18;25571:6;25527:72;:::i;:::-;25274:332;;;;;:::o;25612:147::-;25713:11;25750:3;25735:18;;25612:147;;;;:::o;25765:114::-;;:::o;25885:398::-;26044:3;26065:83;26146:1;26141:3;26065:83;:::i;:::-;26058:90;;26157:93;26246:3;26157:93;:::i;:::-;26275:1;26270:3;26266:11;26259:18;;25885:398;;;:::o;26289:379::-;26473:3;26495:147;26638:3;26495:147;:::i;:::-;26488:154;;26659:3;26652:10;;26289:379;;;:::o;26674:220::-;26814:34;26810:1;26802:6;26798:14;26791:58;26883:3;26878:2;26870:6;26866:15;26859:28;26674:220;:::o;26900:366::-;27042:3;27063:67;27127:2;27122:3;27063:67;:::i;:::-;27056:74;;27139:93;27228:3;27139:93;:::i;:::-;27257:2;27252:3;27248:12;27241:19;;26900:366;;;:::o;27272:419::-;27438:4;27476:2;27465:9;27461:18;27453:26;;27525:9;27519:4;27515:20;27511:1;27500:9;27496:17;27489:47;27553:131;27679:4;27553:131;:::i;:::-;27545:139;;27272:419;;;:::o;27697:180::-;27745:77;27742:1;27735:88;27842:4;27839:1;27832:15;27866:4;27863:1;27856:15;27883:180;27931:77;27928:1;27921:88;28028:4;28025:1;28018:15;28052:4;28049:1;28042:15;28069:143;28126:5;28157:6;28151:13;28142:22;;28173:33;28200:5;28173:33;:::i;:::-;28069:143;;;;:::o;28218:351::-;28288:6;28337:2;28325:9;28316:7;28312:23;28308:32;28305:119;;;28343:79;;:::i;:::-;28305:119;28463:1;28488:64;28544:7;28535:6;28524:9;28520:22;28488:64;:::i;:::-;28478:74;;28434:128;28218:351;;;;:::o;28575:85::-;28620:7;28649:5;28638:16;;28575:85;;;:::o;28666:158::-;28724:9;28757:61;28775:42;28784:32;28810:5;28784:32;:::i;:::-;28775:42;:::i;:::-;28757:61;:::i;:::-;28744:74;;28666:158;;;:::o;28830:147::-;28925:45;28964:5;28925:45;:::i;:::-;28920:3;28913:58;28830:147;;:::o;28983:114::-;29050:6;29084:5;29078:12;29068:22;;28983:114;;;:::o;29103:184::-;29202:11;29236:6;29231:3;29224:19;29276:4;29271:3;29267:14;29252:29;;29103:184;;;;:::o;29293:132::-;29360:4;29383:3;29375:11;;29413:4;29408:3;29404:14;29396:22;;29293:132;;;:::o;29431:108::-;29508:24;29526:5;29508:24;:::i;:::-;29503:3;29496:37;29431:108;;:::o;29545:179::-;29614:10;29635:46;29677:3;29669:6;29635:46;:::i;:::-;29713:4;29708:3;29704:14;29690:28;;29545:179;;;;:::o;29730:113::-;29800:4;29832;29827:3;29823:14;29815:22;;29730:113;;;:::o;29879:732::-;29998:3;30027:54;30075:5;30027:54;:::i;:::-;30097:86;30176:6;30171:3;30097:86;:::i;:::-;30090:93;;30207:56;30257:5;30207:56;:::i;:::-;30286:7;30317:1;30302:284;30327:6;30324:1;30321:13;30302:284;;;30403:6;30397:13;30430:63;30489:3;30474:13;30430:63;:::i;:::-;30423:70;;30516:60;30569:6;30516:60;:::i;:::-;30506:70;;30362:224;30349:1;30346;30342:9;30337:14;;30302:284;;;30306:14;30602:3;30595:10;;30003:608;;;29879:732;;;;:::o;30617:831::-;30880:4;30918:3;30907:9;30903:19;30895:27;;30932:71;31000:1;30989:9;30985:17;30976:6;30932:71;:::i;:::-;31013:80;31089:2;31078:9;31074:18;31065:6;31013:80;:::i;:::-;31140:9;31134:4;31130:20;31125:2;31114:9;31110:18;31103:48;31168:108;31271:4;31262:6;31168:108;:::i;:::-;31160:116;;31286:72;31354:2;31343:9;31339:18;31330:6;31286:72;:::i;:::-;31368:73;31436:3;31425:9;31421:19;31412:6;31368:73;:::i;:::-;30617:831;;;;;;;;:::o;31454:807::-;31703:4;31741:3;31730:9;31726:19;31718:27;;31755:71;31823:1;31812:9;31808:17;31799:6;31755:71;:::i;:::-;31836:72;31904:2;31893:9;31889:18;31880:6;31836:72;:::i;:::-;31918:80;31994:2;31983:9;31979:18;31970:6;31918:80;:::i;:::-;32008;32084:2;32073:9;32069:18;32060:6;32008:80;:::i;:::-;32098:73;32166:3;32155:9;32151:19;32142:6;32098:73;:::i;:::-;32181;32249:3;32238:9;32234:19;32225:6;32181:73;:::i;:::-;31454:807;;;;;;;;;:::o;32267:143::-;32324:5;32355:6;32349:13;32340:22;;32371:33;32398:5;32371:33;:::i;:::-;32267:143;;;;:::o;32416:663::-;32504:6;32512;32520;32569:2;32557:9;32548:7;32544:23;32540:32;32537:119;;;32575:79;;:::i;:::-;32537:119;32695:1;32720:64;32776:7;32767:6;32756:9;32752:22;32720:64;:::i;:::-;32710:74;;32666:128;32833:2;32859:64;32915:7;32906:6;32895:9;32891:22;32859:64;:::i;:::-;32849:74;;32804:129;32972:2;32998:64;33054:7;33045:6;33034:9;33030:22;32998:64;:::i;:::-;32988:74;;32943:129;32416:663;;;;;:::o

Swarm Source

ipfs://4a8005fed833d0ed72a4d94eab1b9543329b5016f004aac8c5b1695b9557d739
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.