Overview
Max Total Supply
100,000,000 BIRB
Holders
31,609 (0.00%)
Market
Price
$0.0037 @ 0.000001 ETH (+0.35%)
Onchain Market Cap
$365,638.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
255.566470421296040231 BIRBValue
$0.93 ( ~0.000326184821482999 ETH) [0.0003%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
BIRBBASEv2
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2024-09-05
*/
/*
* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXKkdlc;,... ...,;cldOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMMMMMMWX0xl;.. ..;lx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMMMNOd:. .':d0NMMMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMWXkc' .'lkXWMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMNOc. 'lONMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMWKd, ,dXWMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMW0l. ........... .oKWMMMMMMMMMMMMM
* MMMMMMMMMMMWKl. .';:codxxkkOOOOOkkkxdolc;,.. .lKMMMMMMMMMMMM
* MMMMMMMMMMXo. .':ldO00000OOkkkkkkkkkkkkkOOO00Oxoc,. .dNMMMMMMMMMM
* MMMMMMMMWO, .;lxO000OkkxxddddddddooooooddodddxxkkOOko;. ;OWMMMMMMMM
* MMMMMMMXo. .ck0K00OkxddoodddoooddddddddodoodddooddddxkOxl. .oNMMMMMMM
* MMMMMMK: .lO0K0Okddddodooddddodddddoddooddddddddddoooodxkxc. :KMMMMMM
* MMMMWO, .:k000OxdddddodoooddddddoddxxxkOO0000000000OOkkxdddxo, ;0MMMMM
* MMMWO' .o0K00kdddddoddool:;;;;:ok0KXXXNNNNNNNNNNNNNNNNXXK0Oxxd;. ,0MMMM
* MMM0' .d0K0Oxdodo::llc;.. .;xKNNNNNNNNNNNNNNNNNNNNNNNNXKOx: ,0MMM
* MMK; .o000Odddooo:'.. .;;. :0NNNNNNNNNNNNNNNXXXKKKXXNNNXk; :XMM
* MNl c0K0Ododooooool' ;KK: c0XNNNNNNNNNKkoc;,'...',:cdOKk' lNM
* Wx. ,kK0Oxoododooodl' .. ,x0NNNNNNXOc' ..,;:::;,.. .'c, .kM
* X; .l000xddooddodddo; ...c0XNNNNN0l. .lk0KKKKKXK0ko;. :X
* x. 'xK0Ododddooddoodo;. ..',..:0NNNNNN0; 'd000000000KKKXKkc. .k
* c :OK0xdodddooododdx0k:......'':xKNNNNNNK: .;dO0000000000000KXKd. l
* ' .l00OdddddoododdodOXNXKkdoodk0XNNNNNNNXo. 'dO00000000000000000KKo. ,
* . .xK0kdddddoodddoox0NNNNNNNNNNNNNNNNNNNK; ,k00000000000000000000O: .
* ;OK0xddddddooddodkXNNNNNNNNNNNNNNNNNNNk. .lkOOOOOOOkkkkkkkOOOO00o. .
* c0KOxdddoddodddodOXNNNNNNNNNNNNNNNNNNNx. .,:ccc::::::::::cloxkOd. .
* .dK0Ododdoodooddox0NNNNNNNNNNNNNNNNNNNNx. .:;'..................'::. .
* . :OK0kdddddddddddoxKNNNNNNNNNNNNNNNNNNNNO' .lxdooooooodddddoddl' .
* . .d00OxddoddoodddodOXNNNNNNNNNNNNNNNNNNNNK: ;ddddddddddddddxkOk; . '
* ; c000kdddooddodddod0NNNNNNNNNNNNNNNNNNNNNNx. .lddxxddxddddddxkOl. '; :
* d. .cOK0kdoooddoododddkKNNNNNNNNNNNNNNNNNNNNNNXo. .cdddddddddddxkOo. .d: .x
* 0' 'oO0OkdooddodoodododOXNNNNNNNNNNNNNNNNNNNNNNNXd. .;ldddddddxxxd:. 'x0; ,K
* Wo .lO00Oxdool:clooddoooxKNNNNNNNNNNNNNNNNNNNNNNNNNXOc. ..;:clllc:,. .cONO' .dW
* MK; .:k00Oxdddoooc,';coddddOXNNNNNNNNNNNNNNNNNNNNNNNNNNNXOo;.. ..;oOXNNx. :XM
* MWk. ,d00Okddodooddol:'.,lodkXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXKOxdoooxkKXNNNNXl 'OMM
* MMWx,cO0Okdoodddooddoolc,..:xKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNK: .xWMM
* MMMWX00kxdddoddooddddolcc;..lXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0' .dWMMM
* MMMMWXkddddoodddoodddoolcc;..dXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk. .xWMMMM
* MMMMMWKxddddoddoodddooolccc' 'kNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNo. 'kWMMMMM
* MMMMMMWXkddodddddoddddolccc:. cKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNK: ;0WMMMMMM
* MMMMMMMMN0xddodddodddolccccc' .kNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk. .oXMMMMMMMM
* MMMMMMMMMWXOddoddddddolccccc;. lXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXl ;OWMMMMMMMMM
* MMMMMMMMMMMWKkddddoddolccccl;. ;0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk. 'xNMMMMMMMMMMM
* MMMMMMMMMMMMMNKkddodolcccccc;. ;O0KXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0: 'dXMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMNKOxollcccccc, cO000KXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXKl. .;xXMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMWXOdlcccccc. .d000000KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXK0o. 'lONMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMNKkdllc, cO000000000KXXNNNNNNNNNNNNNNNNNNNNNNNXXKK00o. .ckXWMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMWNKOo'.:k00000000000000KKXXXXXXNNNNNNNXXXXXKK00000kooOXWMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMMMMMWK0KXK0000000000000000000000KKKKK000000000KXXNNWMMMMMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNXXKK0000000000000000000000KKXXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNXXKKKKKKKKKKKKKKXXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
*
* SPDX-License-Identifier: None
*/
pragma solidity 0.8.26;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount ) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXPair {
function sync() external;
}
interface IDEXRouter {
function factory() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract BIRBBASEv2 is IERC20 {
string public constant name = "Birb";
string public constant symbol = "BIRB";
uint8 public constant decimals = 18;
uint256 constant _totalSupply = 100_000_000 * (10**decimals);
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public limitless;
uint256 public buyTax = 0;
uint256 public sellTax = 5;
uint256 private buyLiq = 0;
uint256 private buyMarketing = 0;
uint256 private buyToken = 0;
uint256 private buyBurn = 0;
uint256 private sellLiq = 2;
uint256 private sellMarketing = 3;
uint256 private sellToken = 0;
uint256 private sellBurn = 0;
uint256 private taxDivisor = 100;
uint256 private swapBirbAt = _totalSupply / 10_000;
IDEXRouter public constant ROUTER = IDEXRouter(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
address public constant OWNER = 0x2CDC845df3fAe64cC3e34f155320C075568f44a1;
address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
address private constant WETH = 0x4200000000000000000000000000000000000006;
address public marketingWallet = 0x991301c3B35fB48e7B5a2B62d6C8A63E3a18507a;
address public tokenWallet = 0x678da04DC68fb12076E71FcfA1FF7b8ff974517C;
address public immutable pcsPair;
address[] public pairs;
modifier onlyOwner(){
require (msg.sender == OWNER, "Only the OWNER can do that");
_;
}
event WalletsChanged(address marketingWallet, address tokenWallet);
event SwapBirbAtSet(uint256 swapBirbAt);
event TokenRescued(address tokenRescued, uint256 amountRescued);
event EthRescued(uint256 balanceRescued);
event ExcludedAddressFromTax(address wallet);
event UnExcludedAddressFromTax(address wallet);
event AirdropsSent(address[] airdropWallets, uint256[] amount);
event MarketingTaxSwapped(uint256 ethReceived);
event PairAdded(address addedPair);
event PairRemoved(address removedPair);
event TaxesChanged(
uint256 sellTax,
uint256 buyTax,
uint256 newBuyLiq,
uint256 newBuyMarketing,
uint256 newBuyToken,
uint256 newBuyBurn,
uint256 newSellLiq,
uint256 newSellMarketing,
uint256 newSellToken,
uint256 newSellBurn,
uint256 newTaxDivisor
);
constructor() {
pcsPair = IDEXFactory(IDEXRouter(ROUTER).factory()).createPair(WETH, address(this));
pairs.push(pcsPair);
_allowances[address(this)][address(ROUTER)] = type(uint256).max;
limitless[OWNER] = true;
limitless[address(this)] = true;
_balances[OWNER] = _totalSupply;
emit Transfer(address(0), OWNER, _totalSupply);
}
receive() external payable {}
function totalSupply() public view override returns (uint256) {return _totalSupply - _balances[DEAD];}
function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
function allowance(address holder, address spender) public view override returns (uint256) {return _allowances[holder][spender];}
function approveMax(address spender) external returns (bool) {return approve(spender, type(uint256).max);}
function approve(address spender, uint256 amount) public override returns (bool) {
require(spender != address(0), "Can't use zero address here");
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
require(spender != address(0), "Can't use zero address here");
_allowances[msg.sender][spender] = allowance(msg.sender, spender) + addedValue;
emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
require(spender != address(0), "Can't use zero address here");
require(allowance(msg.sender, spender) >= subtractedValue, "Can't subtract more than current allowance");
_allowances[msg.sender][spender] = allowance(msg.sender, spender) - subtractedValue;
emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
return true;
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount ) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
require(_allowances[sender][msg.sender] >= amount, "Insufficient Allowance");
_allowances[sender][msg.sender] -= amount;
emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
}
return _transferFrom(sender, recipient, amount);
}
function setBirbWallets(address marketingAddress, address tokenAddress) external onlyOwner {
require(marketingAddress != address(0) && tokenAddress != address(0), "Can't use zero addresses here");
marketingWallet = marketingAddress;
tokenWallet = tokenAddress;
emit WalletsChanged(marketingWallet, tokenWallet);
}
function setSwapBirbAt(uint256 _swapBirbAt) external onlyOwner{
require(_swapBirbAt <= _totalSupply / 50, "Can't set the amount to sell to higher than 2% of totalSupply");
swapBirbAt = _swapBirbAt;
emit SwapBirbAtSet(swapBirbAt);
}
function rescueAnyToken(address tokenToRescue) external onlyOwner {
require(tokenToRescue != address(this), "Can't rescue your own");
emit TokenRescued(tokenToRescue, IERC20(tokenToRescue).balanceOf(address(this)));
IERC20(tokenToRescue).transfer(OWNER, IERC20(tokenToRescue).balanceOf(address(this)));
}
function rescueEth() external onlyOwner {
emit EthRescued(address(this).balance);
(bool success, ) = OWNER.call{value: address(this).balance}("");
require(success, "Something went wrong");
}
function setSellTax(uint256 newTaxDivisor, uint256 newSellLiq, uint256 newSellMarketing, uint256 newSellToken, uint256 newSellBurn) external onlyOwner {
taxDivisor = newTaxDivisor;
sellLiq = newSellLiq;
sellMarketing = newSellMarketing;
sellToken = newSellToken;
sellBurn = newSellBurn;
sellTax = sellLiq + sellMarketing + sellToken + sellBurn;
require(buyTax <= taxDivisor / 20 || sellTax <= taxDivisor / 20, "Taxes are limited to max. 5%");
emit TaxesChanged(
sellTax,
buyTax,
buyLiq,
buyMarketing,
buyToken,
buyBurn,
newSellLiq,
newSellMarketing,
newSellToken,
newSellBurn,
newTaxDivisor
);
}
function setBuyTax(uint256 newTaxDivisor, uint256 newBuyLiq, uint256 newBuyMarketing, uint256 newBuyToken, uint256 newBuyBurn) external onlyOwner {
taxDivisor = newTaxDivisor;
buyLiq = newBuyLiq;
buyMarketing = newBuyMarketing;
buyToken = newBuyToken;
buyBurn = newBuyBurn;
buyTax = buyLiq + buyMarketing + buyToken + buyBurn;
require(buyTax <= taxDivisor / 20 || sellTax <= taxDivisor / 20, "Taxes are limited to max. 5%");
emit TaxesChanged(
sellTax,
buyTax,
newBuyLiq,
newBuyMarketing,
newBuyToken,
newBuyBurn,
sellLiq,
sellMarketing,
sellToken,
sellBurn,
newTaxDivisor
);
}
function setAddressTaxStatus(address wallet, bool status) external onlyOwner {
limitless[wallet] = status;
if(status) emit ExcludedAddressFromTax(wallet);
else emit UnExcludedAddressFromTax(wallet);
}
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function addPair(address pairToAdd) external onlyOwner {
require(isContract(pairToAdd) && pairToAdd != address(this) && pairToAdd != address(ROUTER), "This address can not be set as a pair");
pairs.push(pairToAdd);
emit PairAdded(pairToAdd);
}
function removeLastPair() external onlyOwner {
address pairToBeRemoved = pairs[pairs.length-1];
if(pairs.length == 1) return;
pairs.pop();
emit PairRemoved(pairToBeRemoved);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if (limitless[sender] || limitless[recipient]) return _lowGasTransfer(sender, recipient, amount);
amount = takeTax(sender, recipient, amount);
return _lowGasTransfer(sender, recipient, amount);
}
function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 taxAmount = 0;
uint256 totalTax = 0;
if(isPair(sender)) {
totalTax = buyTax;
if(totalTax == 0) return amount;
taxAmount = amount * totalTax / taxDivisor;
if(buyBurn > 0)
_lowGasTransfer(sender, DEAD, taxAmount * buyBurn / totalTax);
if(buyToken > 0)
_lowGasTransfer(sender, tokenWallet, taxAmount * buyToken / totalTax);
if(buyLiq > 0)
_lowGasTransfer(sender, pcsPair, taxAmount * buyLiq / totalTax);
if(buyMarketing > 0)
_lowGasTransfer(sender, address(this), taxAmount * buyMarketing / totalTax);
return amount - taxAmount;
}
if(isPair(recipient)) {
totalTax = sellTax;
if(totalTax == 0) return amount;
taxAmount = amount * sellTax / taxDivisor;
if(sellBurn > 0)
_lowGasTransfer(sender, DEAD, taxAmount * sellBurn / totalTax);
if(sellToken > 0)
_lowGasTransfer(sender, tokenWallet, taxAmount * sellToken / totalTax);
if(sellLiq > 0)
_lowGasTransfer(sender, pcsPair, taxAmount * sellLiq / totalTax);
if(sellMarketing > 0)
_lowGasTransfer(sender, address(this), taxAmount * sellMarketing / totalTax);
if(balanceOf(address(this)) >= swapBirbAt) {
swapBirb();
} else if(sellLiq > 0) {
IDEXPair(pcsPair).sync();
}
}
return amount - taxAmount;
}
function isPair(address check) internal view returns(bool) {
for (uint256 i = 0; i < pairs.length; i++) if(check == pairs[i]) return true;
return false;
}
function _lowGasTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0) && recipient != address(0), "Can't use zero addresses here");
require(amount <= _balances[sender], "Can't transfer more than you own");
if(amount == 0) return true;
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function swapBirb() internal {
uint256 contractBalance = _balances[address(this)];
if(contractBalance == 0) return;
uint256 balanceBefore = marketingWallet.balance;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
contractBalance,
0,
path,
marketingWallet,
block.timestamp
);
emit MarketingTaxSwapped(marketingWallet.balance - balanceBefore);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"AirdropsSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balanceRescued","type":"uint256"}],"name":"EthRescued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"ExcludedAddressFromTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"MarketingTaxSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addedPair","type":"address"}],"name":"PairAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"removedPair","type":"address"}],"name":"PairRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapBirbAt","type":"uint256"}],"name":"SwapBirbAtSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBuyLiq","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBuyMarketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBuyToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBuyBurn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellLiq","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellMarketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellBurn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTaxDivisor","type":"uint256"}],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenRescued","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountRescued","type":"uint256"}],"name":"TokenRescued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"UnExcludedAddressFromTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"tokenWallet","type":"address"}],"name":"WalletsChanged","type":"event"},{"inputs":[],"name":"OWNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pairToAdd","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pcsPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLastPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenToRescue","type":"address"}],"name":"rescueAnyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAddressTaxStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"setBirbWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxDivisor","type":"uint256"},{"internalType":"uint256","name":"newBuyLiq","type":"uint256"},{"internalType":"uint256","name":"newBuyMarketing","type":"uint256"},{"internalType":"uint256","name":"newBuyToken","type":"uint256"},{"internalType":"uint256","name":"newBuyBurn","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxDivisor","type":"uint256"},{"internalType":"uint256","name":"newSellLiq","type":"uint256"},{"internalType":"uint256","name":"newSellMarketing","type":"uint256"},{"internalType":"uint256","name":"newSellToken","type":"uint256"},{"internalType":"uint256","name":"newSellBurn","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapBirbAt","type":"uint256"}],"name":"setSwapBirbAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040525f60035560056004555f6005555f6006555f6007555f60085560026009556003600a555f600b555f600c556064600d556127106012600a61004591906106a4565b6305f5e10061005491906106ee565b61005e919061075c565b600e5573991301c3b35fb48e7b5a2b62d6c8a63e3a18507a600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073678da04dc68fb12076e71fcfa1ff7b8ff974517c60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610114575f80fd5b50734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610172573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019691906107ea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396734200000000000000000000000000000000000006306040518363ffffffff1660e01b81526004016101e4929190610824565b6020604051808303815f875af1158015610200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906107ea565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506011608051908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160025f732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506012600a61043691906106a4565b6305f5e10061044591906106ee565b5f80732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050a91906106a4565b6305f5e10061051991906106ee565b604051610526919061085a565b60405180910390a3610873565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156105b55780860481111561059157610590610533565b5b60018516156105a05780820291505b80810290506105ae85610560565b9450610575565b94509492505050565b5f826105cd5760019050610688565b816105da575f9050610688565b81600181146105f057600281146105fa57610629565b6001915050610688565b60ff84111561060c5761060b610533565b5b8360020a91508482111561062357610622610533565b5b50610688565b5060208310610133831016604e8410600b841016171561065e5782820a90508381111561065957610658610533565b5b610688565b61066b848484600161056c565b9250905081840481111561068257610681610533565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6106ae8261068f565b91506106b983610698565b92506106e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846105be565b905092915050565b5f6106f88261068f565b91506107038361068f565b92508282026107118161068f565b9150828204841483151761072857610727610533565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107668261068f565b91506107718361068f565b9250826107815761078061072f565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107b982610790565b9050919050565b6107c9816107af565b81146107d3575f80fd5b50565b5f815190506107e4816107c0565b92915050565b5f602082840312156107ff576107fe61078c565b5b5f61080c848285016107d6565b91505092915050565b61081e816107af565b82525050565b5f6040820190506108375f830185610815565b6108446020830184610815565b9392505050565b6108548161068f565b82525050565b5f60208201905061086d5f83018461084b565b92915050565b608051613b896108a05f395f8181610dae0152818161262001528181612775015261280d0152613b895ff3fe6080604052600436106101cf575f3560e01c8063571ac8b0116100f6578063bff99c6c11610094578063ce31a06b11610063578063ce31a06b146106a2578063dd62ed3e146106b8578063e5a47e94146106f4578063fced1e7b1461071c576101d6565b8063bff99c6c146105fe578063c2b7bbb614610628578063c5fba32914610650578063cc1776d314610678576101d6565b806395d89b41116100d057806395d89b4114610520578063a457c2d71461054a578063a9059cbb14610586578063b91ac788146105c2576101d6565b8063571ac8b01461047e57806370a08231146104ba57806375f0a874146104f6576101d6565b806318160ddd1161016e57806332fe7b261161013d57806332fe7b26146103b257806334d635d2146103dc57806339509351146104185780634f7041a514610454576101d6565b806318160ddd146102fa57806323b872dd146103245780632c9cdbbf14610360578063313ce56714610388576101d6565b8063095ea7b3116101aa578063095ea7b3146102425780630aae351d1461027e578063117803e3146102a6578063137d5a22146102d0576101d6565b806293dc14146101da57806303dc41e4146101f057806306fdde0314610218576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b506101ee610744565b005b3480156101fb575f80fd5b5061021660048036038101906102119190612c24565b6108a8565b005b348015610223575f80fd5b5061022c6109d8565b6040516102399190612cbf565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190612d39565b610a11565b6040516102759190612d91565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190612daa565b610b6c565b005b3480156102b1575f80fd5b506102ba610d94565b6040516102c79190612df7565b60405180910390f35b3480156102db575f80fd5b506102e4610dac565b6040516102f19190612df7565b60405180910390f35b348015610305575f80fd5b5061030e610dd0565b60405161031b9190612e1f565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612e38565b610e3c565b6040516103579190612d91565b60405180910390f35b34801561036b575f80fd5b5061038660048036038101906103819190612e88565b611117565b005b348015610393575f80fd5b5061039c6113c1565b6040516103a99190612ece565b60405180910390f35b3480156103bd575f80fd5b506103c66113c6565b6040516103d39190612f42565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd9190612e88565b6113de565b60405161040f9190612d91565b60405180910390f35b348015610423575f80fd5b5061043e60048036038101906104399190612d39565b6113fb565b60405161044b9190612d91565b60405180910390f35b34801561045f575f80fd5b506104686115e2565b6040516104759190612e1f565b60405180910390f35b348015610489575f80fd5b506104a4600480360381019061049f9190612e88565b6115e8565b6040516104b19190612d91565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190612e88565b61161a565b6040516104ed9190612e1f565b60405180910390f35b348015610501575f80fd5b5061050a61165f565b6040516105179190612df7565b60405180910390f35b34801561052b575f80fd5b50610534611684565b6040516105419190612cbf565b60405180910390f35b348015610555575f80fd5b50610570600480360381019061056b9190612d39565b6116bd565b60405161057d9190612d91565b60405180910390f35b348015610591575f80fd5b506105ac60048036038101906105a79190612d39565b6118f0565b6040516105b99190612d91565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e39190612c24565b611904565b6040516105f59190612df7565b60405180910390f35b348015610609575f80fd5b5061061261193f565b60405161061f9190612df7565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190612e88565b611964565b005b34801561065b575f80fd5b5061067660048036038101906106719190612f85565b611b4c565b005b348015610683575f80fd5b5061068c611ca0565b6040516106999190612e1f565b60405180910390f35b3480156106ad575f80fd5b506106b6611ca6565b005b3480156106c3575f80fd5b506106de60048036038101906106d99190612daa565b611e1e565b6040516106eb9190612e1f565b60405180910390f35b3480156106ff575f80fd5b5061071a60048036038101906107159190612fc3565b611ea0565b005b348015610727575f80fd5b50610742600480360381019061073d9190612fc3565b612041565b005b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90613084565b60405180910390fd5b5f601160016011805490506107db91906130cf565b815481106107ec576107eb613102565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016011805490500361082957506108a6565b601180548061083b5761083a61312f565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590557f9493af33d363a70a1cd9cc0ceb347e3c0e16b5d9371695618e1ac5fb1c255b7c8160405161089c9190612df7565b60405180910390a1505b565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190613084565b60405180910390fd5b60326012600a61093a919061328b565b6305f5e10061094991906132d5565b6109539190613343565b811115610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906133e3565b60405180910390fd5b80600e819055507f18d3e2e30dc7bd5ae453873f09c0c3bb4c376ca6011f8771557c3ab80c8ba1bb600e546040516109cd9190612e1f565b60405180910390a150565b6040518060400160405280600481526020017f426972620000000000000000000000000000000000000000000000000000000081525081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a779061344b565b60405180910390fd5b8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5a9190612e1f565b60405180910390a36001905092915050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590613084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610c5657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c906134b3565b60405180910390fd5b81600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f186ca604571738d83684995b203c2a2e6f26412e30436bf1926162381878fe27600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d889291906134d1565b60405180910390a15050565b732cdc845df3fae64cc3e34f155320c075568f44a181565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f805f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546012600a610e1e919061328b565b6305f5e100610e2d91906132d5565b610e3791906130cf565b905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611103578160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90613542565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461101e91906130cf565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516110fa9190612e1f565b60405180910390a35b61110e8484846121e2565b90509392505050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090613084565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906135aa565b60405180910390fd5b7fe82be315ba1a0d0362d09d5cf59781f214b53a74eb978c35b76ad687099c670c818273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112629190612df7565b602060405180830381865afa15801561127d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906135dc565b6040516112af929190613607565b60405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb732cdc845df3fae64cc3e34f155320c075568f44a18373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113219190612df7565b602060405180830381865afa15801561133c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136091906135dc565b6040518363ffffffff1660e01b815260040161137d929190613607565b6020604051808303815f875af1158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd9190613642565b5050565b601281565b734752ba5dbc23f44d87826276bf6fd6b1c372ad2481565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114619061344b565b60405180910390fd5b816114753385611e1e565b61147f919061366d565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516115d09190612e1f565b60405180910390a36001905092915050565b60035481565b5f611613827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a11565b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f424952420000000000000000000000000000000000000000000000000000000081525081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117239061344b565b60405180910390fd5b816117373385611e1e565b1015611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90613710565b60405180910390fd5b816117833385611e1e565b61178d91906130cf565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516118de9190612e1f565b60405180910390a36001905092915050565b5f6118fc3384846121e2565b905092915050565b60118181548110611913575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613084565b60405180910390fd5b6119ef816122b7565b8015611a2757503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611a735750734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa99061379e565b60405180910390fd5b601181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0d887d6750d996ace85ff35e7af4ff7f229bd111350121e552876ac01011ad0981604051611b419190612df7565b60405180910390a150565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590613084565b60405180910390fd5b8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015611c64577ff49fa1faa6910d691ba46dbeb65658621c1e37059eba6281dc16acab5326238b82604051611c579190612df7565b60405180910390a1611c9c565b7f41c509580227219388f962d26fb90a219e40238bd55cc0c5f9502e763f696d4782604051611c939190612df7565b60405180910390a15b5050565b60045481565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f90613084565b60405180910390fd5b7fca85299660828d766556cc2f077d9c2519e82526f6b4f058c8ee3df629ff54f747604051611d579190612e1f565b60405180910390a15f732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff1647604051611d98906137e9565b5f6040518083038185875af1925050503d805f8114611dd2576040519150601f19603f3d011682016040523d82523d5f602084013e611dd7565b606091505b5050905080611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290613847565b60405180910390fd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990613084565b60405180910390fd5b84600d8190555083600581905550826006819055508160078190555080600881905550600854600754600654600554611f5b919061366d565b611f65919061366d565b611f6f919061366d565b6003819055506014600d54611f849190613343565b600354111580611fa457506014600d54611f9e9190613343565b60045411155b611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda906138af565b60405180910390fd5b7f4514a01013a1afb40a7354e454f84ec794a2cb817c04d9906614be7e4c99989760045460035486868686600954600a54600b54600c548f6040516120329b9a999897969594939291906138cd565b60405180910390a15050505050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613084565b60405180910390fd5b84600d819055508360098190555082600a8190555081600b8190555080600c81905550600c54600b54600a546009546120fc919061366d565b612106919061366d565b612110919061366d565b6004819055506014600d546121259190613343565b60035411158061214557506014600d5461213f9190613343565b60045411155b612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b906138af565b60405180910390fd5b7f4514a01013a1afb40a7354e454f84ec794a2cb817c04d9906614be7e4c9998976004546003546005546006546007546008548a8a8a8a8f6040516121d39b9a999897969594939291906138cd565b60405180910390a15050505050565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061227e575060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122955761228e8484846122fe565b90506122b0565b6122a084848461254a565b91506122ad8484846122fe565b90505b9392505050565b5f805f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b9050833f91508082141580156122f557505f801b8214155b92505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561236757505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6123a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239d906134b3565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c906139c0565b60405180910390fd5b5f82036124355760019050612543565b815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461248091906130cf565b92505081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124d2919061366d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125369190612e1f565b60405180910390a3600190505b9392505050565b5f805f90505f612559866128a1565b156126a35760035490505f810361257457839250505061289a565b600d54818561258391906132d5565b61258d9190613343565b91505f60085411156125c0576125be8661dead83600854866125af91906132d5565b6125b99190613343565b6122fe565b505b5f60075411156126105761260e8660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600754866125ff91906132d5565b6126099190613343565b6122fe565b505b5f600554111561265f5761265d867f0000000000000000000000000000000000000000000000000000000000000000836005548661264e91906132d5565b6126589190613343565b6122fe565b505b5f600654111561268e5761268c8630836006548661267d91906132d5565b6126879190613343565b6122fe565b505b818461269a91906130cf565b9250505061289a565b6126ac856128a1565b156128895760045490505f81036126c757839250505061289a565b600d54600454856126d891906132d5565b6126e29190613343565b91505f600c541115612715576127138661dead83600c548661270491906132d5565b61270e9190613343565b6122fe565b505b5f600b541115612765576127638660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600b548661275491906132d5565b61275e9190613343565b6122fe565b505b5f60095411156127b4576127b2867f000000000000000000000000000000000000000000000000000000000000000083600954866127a391906132d5565b6127ad9190613343565b6122fe565b505b5f600a5411156127e3576127e1863083600a54866127d291906132d5565b6127dc9190613343565b6122fe565b505b600e546127ef3061161a565b10612801576127fc612943565b612888565b5f6009541115612887577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612870575f80fd5b505af1158015612882573d5f803e3d5ffd5b505050505b5b5b818461289591906130cf565b925050505b9392505050565b5f805f90505b60118054905081101561293957601181815481106128c8576128c7613102565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361292c57600191505061293e565b80806001019150506128a7565b505f90505b919050565b5f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81036129905750612beb565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190505f600267ffffffffffffffff8111156129e8576129e76139de565b5b604051908082528060200260200182016040528015612a165781602001602082028036833780820191505090505b50905030815f81518110612a2d57612a2c613102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073420000000000000000000000000000000000000681600181518110612a9057612a8f613102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612b40959493929190613afb565b5f604051808303815f87803b158015612b57575f80fd5b505af1158015612b69573d5f803e3d5ffd5b505050507fd98bb38d2f9f603059d1ec82645c467276e7f2173e84918e987a827fb48603ea82600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631612bd291906130cf565b604051612bdf9190612e1f565b60405180910390a15050505b565b5f80fd5b5f819050919050565b612c0381612bf1565b8114612c0d575f80fd5b50565b5f81359050612c1e81612bfa565b92915050565b5f60208284031215612c3957612c38612bed565b5b5f612c4684828501612c10565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612c9182612c4f565b612c9b8185612c59565b9350612cab818560208601612c69565b612cb481612c77565b840191505092915050565b5f6020820190508181035f830152612cd78184612c87565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d0882612cdf565b9050919050565b612d1881612cfe565b8114612d22575f80fd5b50565b5f81359050612d3381612d0f565b92915050565b5f8060408385031215612d4f57612d4e612bed565b5b5f612d5c85828601612d25565b9250506020612d6d85828601612c10565b9150509250929050565b5f8115159050919050565b612d8b81612d77565b82525050565b5f602082019050612da45f830184612d82565b92915050565b5f8060408385031215612dc057612dbf612bed565b5b5f612dcd85828601612d25565b9250506020612dde85828601612d25565b9150509250929050565b612df181612cfe565b82525050565b5f602082019050612e0a5f830184612de8565b92915050565b612e1981612bf1565b82525050565b5f602082019050612e325f830184612e10565b92915050565b5f805f60608486031215612e4f57612e4e612bed565b5b5f612e5c86828701612d25565b9350506020612e6d86828701612d25565b9250506040612e7e86828701612c10565b9150509250925092565b5f60208284031215612e9d57612e9c612bed565b5b5f612eaa84828501612d25565b91505092915050565b5f60ff82169050919050565b612ec881612eb3565b82525050565b5f602082019050612ee15f830184612ebf565b92915050565b5f819050919050565b5f612f0a612f05612f0084612cdf565b612ee7565b612cdf565b9050919050565b5f612f1b82612ef0565b9050919050565b5f612f2c82612f11565b9050919050565b612f3c81612f22565b82525050565b5f602082019050612f555f830184612f33565b92915050565b612f6481612d77565b8114612f6e575f80fd5b50565b5f81359050612f7f81612f5b565b92915050565b5f8060408385031215612f9b57612f9a612bed565b5b5f612fa885828601612d25565b9250506020612fb985828601612f71565b9150509250929050565b5f805f805f60a08688031215612fdc57612fdb612bed565b5b5f612fe988828901612c10565b9550506020612ffa88828901612c10565b945050604061300b88828901612c10565b935050606061301c88828901612c10565b925050608061302d88828901612c10565b9150509295509295909350565b7f4f6e6c7920746865204f574e45522063616e20646f20746861740000000000005f82015250565b5f61306e601a83612c59565b91506130798261303a565b602082019050919050565b5f6020820190508181035f83015261309b81613062565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6130d982612bf1565b91506130e483612bf1565b92508282039050818111156130fc576130fb6130a2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156131b15780860481111561318d5761318c6130a2565b5b600185161561319c5780820291505b80810290506131aa8561315c565b9450613171565b94509492505050565b5f826131c95760019050613284565b816131d6575f9050613284565b81600181146131ec57600281146131f657613225565b6001915050613284565b60ff841115613208576132076130a2565b5b8360020a91508482111561321f5761321e6130a2565b5b50613284565b5060208310610133831016604e8410600b841016171561325a5782820a905083811115613255576132546130a2565b5b613284565b6132678484846001613168565b9250905081840481111561327e5761327d6130a2565b5b81810290505b9392505050565b5f61329582612bf1565b91506132a083612eb3565b92506132cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131ba565b905092915050565b5f6132df82612bf1565b91506132ea83612bf1565b92508282026132f881612bf1565b9150828204841483151761330f5761330e6130a2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61334d82612bf1565b915061335883612bf1565b92508261336857613367613316565b5b828204905092915050565b7f43616e2774207365742074686520616d6f756e7420746f2073656c6c20746f205f8201527f686967686572207468616e203225206f6620746f74616c537570706c79000000602082015250565b5f6133cd603d83612c59565b91506133d882613373565b604082019050919050565b5f6020820190508181035f8301526133fa816133c1565b9050919050565b7f43616e277420757365207a65726f2061646472657373206865726500000000005f82015250565b5f613435601b83612c59565b915061344082613401565b602082019050919050565b5f6020820190508181035f83015261346281613429565b9050919050565b7f43616e277420757365207a65726f2061646472657373657320686572650000005f82015250565b5f61349d601d83612c59565b91506134a882613469565b602082019050919050565b5f6020820190508181035f8301526134ca81613491565b9050919050565b5f6040820190506134e45f830185612de8565b6134f16020830184612de8565b9392505050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f61352c601683612c59565b9150613537826134f8565b602082019050919050565b5f6020820190508181035f83015261355981613520565b9050919050565b7f43616e27742072657363756520796f7572206f776e00000000000000000000005f82015250565b5f613594601583612c59565b915061359f82613560565b602082019050919050565b5f6020820190508181035f8301526135c181613588565b9050919050565b5f815190506135d681612bfa565b92915050565b5f602082840312156135f1576135f0612bed565b5b5f6135fe848285016135c8565b91505092915050565b5f60408201905061361a5f830185612de8565b6136276020830184612e10565b9392505050565b5f8151905061363c81612f5b565b92915050565b5f6020828403121561365757613656612bed565b5b5f6136648482850161362e565b91505092915050565b5f61367782612bf1565b915061368283612bf1565b925082820190508082111561369a576136996130a2565b5b92915050565b7f43616e2774207375627472616374206d6f7265207468616e2063757272656e745f8201527f20616c6c6f77616e636500000000000000000000000000000000000000000000602082015250565b5f6136fa602a83612c59565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f5468697320616464726573732063616e206e6f742062652073657420617320615f8201527f2070616972000000000000000000000000000000000000000000000000000000602082015250565b5f613788602583612c59565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b5f81905092915050565b50565b5f6137d45f836137bc565b91506137df826137c6565b5f82019050919050565b5f6137f3826137c9565b9150819050919050565b7f536f6d657468696e672077656e742077726f6e670000000000000000000000005f82015250565b5f613831601483612c59565b915061383c826137fd565b602082019050919050565b5f6020820190508181035f83015261385e81613825565b9050919050565b7f546178657320617265206c696d6974656420746f206d61782e203525000000005f82015250565b5f613899601c83612c59565b91506138a482613865565b602082019050919050565b5f6020820190508181035f8301526138c68161388d565b9050919050565b5f610160820190506138e15f83018e612e10565b6138ee602083018d612e10565b6138fb604083018c612e10565b613908606083018b612e10565b613915608083018a612e10565b61392260a0830189612e10565b61392f60c0830188612e10565b61393c60e0830187612e10565b61394a610100830186612e10565b613958610120830185612e10565b613966610140830184612e10565b9c9b505050505050505050505050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e5f82015250565b5f6139aa602083612c59565b91506139b582613976565b602082019050919050565b5f6020820190508181035f8301526139d78161399e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f613a2e613a29613a2484613a0b565b612ee7565b612bf1565b9050919050565b613a3e81613a14565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a7681612cfe565b82525050565b5f613a878383613a6d565b60208301905092915050565b5f602082019050919050565b5f613aa982613a44565b613ab38185613a4e565b9350613abe83613a5e565b805f5b83811015613aee578151613ad58882613a7c565b9750613ae083613a93565b925050600181019050613ac1565b5085935050505092915050565b5f60a082019050613b0e5f830188612e10565b613b1b6020830187613a35565b8181036040830152613b2d8186613a9f565b9050613b3c6060830185612de8565b613b496080830184612e10565b969550505050505056fea264697066735822122076622fac1a1026c0605f0c0a781d3c9665c9e8448c5994932ec91083ca969cce64736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101cf575f3560e01c8063571ac8b0116100f6578063bff99c6c11610094578063ce31a06b11610063578063ce31a06b146106a2578063dd62ed3e146106b8578063e5a47e94146106f4578063fced1e7b1461071c576101d6565b8063bff99c6c146105fe578063c2b7bbb614610628578063c5fba32914610650578063cc1776d314610678576101d6565b806395d89b41116100d057806395d89b4114610520578063a457c2d71461054a578063a9059cbb14610586578063b91ac788146105c2576101d6565b8063571ac8b01461047e57806370a08231146104ba57806375f0a874146104f6576101d6565b806318160ddd1161016e57806332fe7b261161013d57806332fe7b26146103b257806334d635d2146103dc57806339509351146104185780634f7041a514610454576101d6565b806318160ddd146102fa57806323b872dd146103245780632c9cdbbf14610360578063313ce56714610388576101d6565b8063095ea7b3116101aa578063095ea7b3146102425780630aae351d1461027e578063117803e3146102a6578063137d5a22146102d0576101d6565b806293dc14146101da57806303dc41e4146101f057806306fdde0314610218576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b506101ee610744565b005b3480156101fb575f80fd5b5061021660048036038101906102119190612c24565b6108a8565b005b348015610223575f80fd5b5061022c6109d8565b6040516102399190612cbf565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190612d39565b610a11565b6040516102759190612d91565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190612daa565b610b6c565b005b3480156102b1575f80fd5b506102ba610d94565b6040516102c79190612df7565b60405180910390f35b3480156102db575f80fd5b506102e4610dac565b6040516102f19190612df7565b60405180910390f35b348015610305575f80fd5b5061030e610dd0565b60405161031b9190612e1f565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612e38565b610e3c565b6040516103579190612d91565b60405180910390f35b34801561036b575f80fd5b5061038660048036038101906103819190612e88565b611117565b005b348015610393575f80fd5b5061039c6113c1565b6040516103a99190612ece565b60405180910390f35b3480156103bd575f80fd5b506103c66113c6565b6040516103d39190612f42565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd9190612e88565b6113de565b60405161040f9190612d91565b60405180910390f35b348015610423575f80fd5b5061043e60048036038101906104399190612d39565b6113fb565b60405161044b9190612d91565b60405180910390f35b34801561045f575f80fd5b506104686115e2565b6040516104759190612e1f565b60405180910390f35b348015610489575f80fd5b506104a4600480360381019061049f9190612e88565b6115e8565b6040516104b19190612d91565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190612e88565b61161a565b6040516104ed9190612e1f565b60405180910390f35b348015610501575f80fd5b5061050a61165f565b6040516105179190612df7565b60405180910390f35b34801561052b575f80fd5b50610534611684565b6040516105419190612cbf565b60405180910390f35b348015610555575f80fd5b50610570600480360381019061056b9190612d39565b6116bd565b60405161057d9190612d91565b60405180910390f35b348015610591575f80fd5b506105ac60048036038101906105a79190612d39565b6118f0565b6040516105b99190612d91565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e39190612c24565b611904565b6040516105f59190612df7565b60405180910390f35b348015610609575f80fd5b5061061261193f565b60405161061f9190612df7565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190612e88565b611964565b005b34801561065b575f80fd5b5061067660048036038101906106719190612f85565b611b4c565b005b348015610683575f80fd5b5061068c611ca0565b6040516106999190612e1f565b60405180910390f35b3480156106ad575f80fd5b506106b6611ca6565b005b3480156106c3575f80fd5b506106de60048036038101906106d99190612daa565b611e1e565b6040516106eb9190612e1f565b60405180910390f35b3480156106ff575f80fd5b5061071a60048036038101906107159190612fc3565b611ea0565b005b348015610727575f80fd5b50610742600480360381019061073d9190612fc3565b612041565b005b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90613084565b60405180910390fd5b5f601160016011805490506107db91906130cf565b815481106107ec576107eb613102565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016011805490500361082957506108a6565b601180548061083b5761083a61312f565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590557f9493af33d363a70a1cd9cc0ceb347e3c0e16b5d9371695618e1ac5fb1c255b7c8160405161089c9190612df7565b60405180910390a1505b565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190613084565b60405180910390fd5b60326012600a61093a919061328b565b6305f5e10061094991906132d5565b6109539190613343565b811115610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906133e3565b60405180910390fd5b80600e819055507f18d3e2e30dc7bd5ae453873f09c0c3bb4c376ca6011f8771557c3ab80c8ba1bb600e546040516109cd9190612e1f565b60405180910390a150565b6040518060400160405280600481526020017f426972620000000000000000000000000000000000000000000000000000000081525081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a779061344b565b60405180910390fd5b8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5a9190612e1f565b60405180910390a36001905092915050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590613084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610c5657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c906134b3565b60405180910390fd5b81600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f186ca604571738d83684995b203c2a2e6f26412e30436bf1926162381878fe27600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d889291906134d1565b60405180910390a15050565b732cdc845df3fae64cc3e34f155320c075568f44a181565b7f000000000000000000000000c2b4092e4ee1c89975eb35ad799dd1069b5753b581565b5f805f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546012600a610e1e919061328b565b6305f5e100610e2d91906132d5565b610e3791906130cf565b905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611103578160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90613542565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461101e91906130cf565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516110fa9190612e1f565b60405180910390a35b61110e8484846121e2565b90509392505050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090613084565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906135aa565b60405180910390fd5b7fe82be315ba1a0d0362d09d5cf59781f214b53a74eb978c35b76ad687099c670c818273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112629190612df7565b602060405180830381865afa15801561127d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906135dc565b6040516112af929190613607565b60405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb732cdc845df3fae64cc3e34f155320c075568f44a18373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113219190612df7565b602060405180830381865afa15801561133c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136091906135dc565b6040518363ffffffff1660e01b815260040161137d929190613607565b6020604051808303815f875af1158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd9190613642565b5050565b601281565b734752ba5dbc23f44d87826276bf6fd6b1c372ad2481565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114619061344b565b60405180910390fd5b816114753385611e1e565b61147f919061366d565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516115d09190612e1f565b60405180910390a36001905092915050565b60035481565b5f611613827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a11565b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f424952420000000000000000000000000000000000000000000000000000000081525081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117239061344b565b60405180910390fd5b816117373385611e1e565b1015611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90613710565b60405180910390fd5b816117833385611e1e565b61178d91906130cf565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516118de9190612e1f565b60405180910390a36001905092915050565b5f6118fc3384846121e2565b905092915050565b60118181548110611913575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613084565b60405180910390fd5b6119ef816122b7565b8015611a2757503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611a735750734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa99061379e565b60405180910390fd5b601181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0d887d6750d996ace85ff35e7af4ff7f229bd111350121e552876ac01011ad0981604051611b419190612df7565b60405180910390a150565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590613084565b60405180910390fd5b8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015611c64577ff49fa1faa6910d691ba46dbeb65658621c1e37059eba6281dc16acab5326238b82604051611c579190612df7565b60405180910390a1611c9c565b7f41c509580227219388f962d26fb90a219e40238bd55cc0c5f9502e763f696d4782604051611c939190612df7565b60405180910390a15b5050565b60045481565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f90613084565b60405180910390fd5b7fca85299660828d766556cc2f077d9c2519e82526f6b4f058c8ee3df629ff54f747604051611d579190612e1f565b60405180910390a15f732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff1647604051611d98906137e9565b5f6040518083038185875af1925050503d805f8114611dd2576040519150601f19603f3d011682016040523d82523d5f602084013e611dd7565b606091505b5050905080611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290613847565b60405180910390fd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990613084565b60405180910390fd5b84600d8190555083600581905550826006819055508160078190555080600881905550600854600754600654600554611f5b919061366d565b611f65919061366d565b611f6f919061366d565b6003819055506014600d54611f849190613343565b600354111580611fa457506014600d54611f9e9190613343565b60045411155b611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda906138af565b60405180910390fd5b7f4514a01013a1afb40a7354e454f84ec794a2cb817c04d9906614be7e4c99989760045460035486868686600954600a54600b54600c548f6040516120329b9a999897969594939291906138cd565b60405180910390a15050505050565b732cdc845df3fae64cc3e34f155320c075568f44a173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613084565b60405180910390fd5b84600d819055508360098190555082600a8190555081600b8190555080600c81905550600c54600b54600a546009546120fc919061366d565b612106919061366d565b612110919061366d565b6004819055506014600d546121259190613343565b60035411158061214557506014600d5461213f9190613343565b60045411155b612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b906138af565b60405180910390fd5b7f4514a01013a1afb40a7354e454f84ec794a2cb817c04d9906614be7e4c9998976004546003546005546006546007546008548a8a8a8a8f6040516121d39b9a999897969594939291906138cd565b60405180910390a15050505050565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061227e575060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122955761228e8484846122fe565b90506122b0565b6122a084848461254a565b91506122ad8484846122fe565b90505b9392505050565b5f805f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b9050833f91508082141580156122f557505f801b8214155b92505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561236757505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6123a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239d906134b3565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c906139c0565b60405180910390fd5b5f82036124355760019050612543565b815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461248091906130cf565b92505081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124d2919061366d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125369190612e1f565b60405180910390a3600190505b9392505050565b5f805f90505f612559866128a1565b156126a35760035490505f810361257457839250505061289a565b600d54818561258391906132d5565b61258d9190613343565b91505f60085411156125c0576125be8661dead83600854866125af91906132d5565b6125b99190613343565b6122fe565b505b5f60075411156126105761260e8660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600754866125ff91906132d5565b6126099190613343565b6122fe565b505b5f600554111561265f5761265d867f000000000000000000000000c2b4092e4ee1c89975eb35ad799dd1069b5753b5836005548661264e91906132d5565b6126589190613343565b6122fe565b505b5f600654111561268e5761268c8630836006548661267d91906132d5565b6126879190613343565b6122fe565b505b818461269a91906130cf565b9250505061289a565b6126ac856128a1565b156128895760045490505f81036126c757839250505061289a565b600d54600454856126d891906132d5565b6126e29190613343565b91505f600c541115612715576127138661dead83600c548661270491906132d5565b61270e9190613343565b6122fe565b505b5f600b541115612765576127638660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600b548661275491906132d5565b61275e9190613343565b6122fe565b505b5f60095411156127b4576127b2867f000000000000000000000000c2b4092e4ee1c89975eb35ad799dd1069b5753b583600954866127a391906132d5565b6127ad9190613343565b6122fe565b505b5f600a5411156127e3576127e1863083600a54866127d291906132d5565b6127dc9190613343565b6122fe565b505b600e546127ef3061161a565b10612801576127fc612943565b612888565b5f6009541115612887577f000000000000000000000000c2b4092e4ee1c89975eb35ad799dd1069b5753b573ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612870575f80fd5b505af1158015612882573d5f803e3d5ffd5b505050505b5b5b818461289591906130cf565b925050505b9392505050565b5f805f90505b60118054905081101561293957601181815481106128c8576128c7613102565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361292c57600191505061293e565b80806001019150506128a7565b505f90505b919050565b5f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81036129905750612beb565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190505f600267ffffffffffffffff8111156129e8576129e76139de565b5b604051908082528060200260200182016040528015612a165781602001602082028036833780820191505090505b50905030815f81518110612a2d57612a2c613102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073420000000000000000000000000000000000000681600181518110612a9057612a8f613102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734752ba5dbc23f44d87826276bf6fd6b1c372ad2473ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612b40959493929190613afb565b5f604051808303815f87803b158015612b57575f80fd5b505af1158015612b69573d5f803e3d5ffd5b505050507fd98bb38d2f9f603059d1ec82645c467276e7f2173e84918e987a827fb48603ea82600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631612bd291906130cf565b604051612bdf9190612e1f565b60405180910390a15050505b565b5f80fd5b5f819050919050565b612c0381612bf1565b8114612c0d575f80fd5b50565b5f81359050612c1e81612bfa565b92915050565b5f60208284031215612c3957612c38612bed565b5b5f612c4684828501612c10565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612c9182612c4f565b612c9b8185612c59565b9350612cab818560208601612c69565b612cb481612c77565b840191505092915050565b5f6020820190508181035f830152612cd78184612c87565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d0882612cdf565b9050919050565b612d1881612cfe565b8114612d22575f80fd5b50565b5f81359050612d3381612d0f565b92915050565b5f8060408385031215612d4f57612d4e612bed565b5b5f612d5c85828601612d25565b9250506020612d6d85828601612c10565b9150509250929050565b5f8115159050919050565b612d8b81612d77565b82525050565b5f602082019050612da45f830184612d82565b92915050565b5f8060408385031215612dc057612dbf612bed565b5b5f612dcd85828601612d25565b9250506020612dde85828601612d25565b9150509250929050565b612df181612cfe565b82525050565b5f602082019050612e0a5f830184612de8565b92915050565b612e1981612bf1565b82525050565b5f602082019050612e325f830184612e10565b92915050565b5f805f60608486031215612e4f57612e4e612bed565b5b5f612e5c86828701612d25565b9350506020612e6d86828701612d25565b9250506040612e7e86828701612c10565b9150509250925092565b5f60208284031215612e9d57612e9c612bed565b5b5f612eaa84828501612d25565b91505092915050565b5f60ff82169050919050565b612ec881612eb3565b82525050565b5f602082019050612ee15f830184612ebf565b92915050565b5f819050919050565b5f612f0a612f05612f0084612cdf565b612ee7565b612cdf565b9050919050565b5f612f1b82612ef0565b9050919050565b5f612f2c82612f11565b9050919050565b612f3c81612f22565b82525050565b5f602082019050612f555f830184612f33565b92915050565b612f6481612d77565b8114612f6e575f80fd5b50565b5f81359050612f7f81612f5b565b92915050565b5f8060408385031215612f9b57612f9a612bed565b5b5f612fa885828601612d25565b9250506020612fb985828601612f71565b9150509250929050565b5f805f805f60a08688031215612fdc57612fdb612bed565b5b5f612fe988828901612c10565b9550506020612ffa88828901612c10565b945050604061300b88828901612c10565b935050606061301c88828901612c10565b925050608061302d88828901612c10565b9150509295509295909350565b7f4f6e6c7920746865204f574e45522063616e20646f20746861740000000000005f82015250565b5f61306e601a83612c59565b91506130798261303a565b602082019050919050565b5f6020820190508181035f83015261309b81613062565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6130d982612bf1565b91506130e483612bf1565b92508282039050818111156130fc576130fb6130a2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156131b15780860481111561318d5761318c6130a2565b5b600185161561319c5780820291505b80810290506131aa8561315c565b9450613171565b94509492505050565b5f826131c95760019050613284565b816131d6575f9050613284565b81600181146131ec57600281146131f657613225565b6001915050613284565b60ff841115613208576132076130a2565b5b8360020a91508482111561321f5761321e6130a2565b5b50613284565b5060208310610133831016604e8410600b841016171561325a5782820a905083811115613255576132546130a2565b5b613284565b6132678484846001613168565b9250905081840481111561327e5761327d6130a2565b5b81810290505b9392505050565b5f61329582612bf1565b91506132a083612eb3565b92506132cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131ba565b905092915050565b5f6132df82612bf1565b91506132ea83612bf1565b92508282026132f881612bf1565b9150828204841483151761330f5761330e6130a2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61334d82612bf1565b915061335883612bf1565b92508261336857613367613316565b5b828204905092915050565b7f43616e2774207365742074686520616d6f756e7420746f2073656c6c20746f205f8201527f686967686572207468616e203225206f6620746f74616c537570706c79000000602082015250565b5f6133cd603d83612c59565b91506133d882613373565b604082019050919050565b5f6020820190508181035f8301526133fa816133c1565b9050919050565b7f43616e277420757365207a65726f2061646472657373206865726500000000005f82015250565b5f613435601b83612c59565b915061344082613401565b602082019050919050565b5f6020820190508181035f83015261346281613429565b9050919050565b7f43616e277420757365207a65726f2061646472657373657320686572650000005f82015250565b5f61349d601d83612c59565b91506134a882613469565b602082019050919050565b5f6020820190508181035f8301526134ca81613491565b9050919050565b5f6040820190506134e45f830185612de8565b6134f16020830184612de8565b9392505050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f61352c601683612c59565b9150613537826134f8565b602082019050919050565b5f6020820190508181035f83015261355981613520565b9050919050565b7f43616e27742072657363756520796f7572206f776e00000000000000000000005f82015250565b5f613594601583612c59565b915061359f82613560565b602082019050919050565b5f6020820190508181035f8301526135c181613588565b9050919050565b5f815190506135d681612bfa565b92915050565b5f602082840312156135f1576135f0612bed565b5b5f6135fe848285016135c8565b91505092915050565b5f60408201905061361a5f830185612de8565b6136276020830184612e10565b9392505050565b5f8151905061363c81612f5b565b92915050565b5f6020828403121561365757613656612bed565b5b5f6136648482850161362e565b91505092915050565b5f61367782612bf1565b915061368283612bf1565b925082820190508082111561369a576136996130a2565b5b92915050565b7f43616e2774207375627472616374206d6f7265207468616e2063757272656e745f8201527f20616c6c6f77616e636500000000000000000000000000000000000000000000602082015250565b5f6136fa602a83612c59565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f5468697320616464726573732063616e206e6f742062652073657420617320615f8201527f2070616972000000000000000000000000000000000000000000000000000000602082015250565b5f613788602583612c59565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b5f81905092915050565b50565b5f6137d45f836137bc565b91506137df826137c6565b5f82019050919050565b5f6137f3826137c9565b9150819050919050565b7f536f6d657468696e672077656e742077726f6e670000000000000000000000005f82015250565b5f613831601483612c59565b915061383c826137fd565b602082019050919050565b5f6020820190508181035f83015261385e81613825565b9050919050565b7f546178657320617265206c696d6974656420746f206d61782e203525000000005f82015250565b5f613899601c83612c59565b91506138a482613865565b602082019050919050565b5f6020820190508181035f8301526138c68161388d565b9050919050565b5f610160820190506138e15f83018e612e10565b6138ee602083018d612e10565b6138fb604083018c612e10565b613908606083018b612e10565b613915608083018a612e10565b61392260a0830189612e10565b61392f60c0830188612e10565b61393c60e0830187612e10565b61394a610100830186612e10565b613958610120830185612e10565b613966610140830184612e10565b9c9b505050505050505050505050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e5f82015250565b5f6139aa602083612c59565b91506139b582613976565b602082019050919050565b5f6020820190508181035f8301526139d78161399e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f613a2e613a29613a2484613a0b565b612ee7565b612bf1565b9050919050565b613a3e81613a14565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a7681612cfe565b82525050565b5f613a878383613a6d565b60208301905092915050565b5f602082019050919050565b5f613aa982613a44565b613ab38185613a4e565b9350613abe83613a5e565b805f5b83811015613aee578151613ad58882613a7c565b9750613ae083613a93565b925050600181019050613ac1565b5085935050505092915050565b5f60a082019050613b0e5f830188612e10565b613b1b6020830187613a35565b8181036040830152613b2d8186613a9f565b9050613b3c6060830185612de8565b613b496080830184612e10565b969550505050505056fea264697066735822122076622fac1a1026c0605f0c0a781d3c9665c9e8448c5994932ec91083ca969cce64736f6c634300081a0033
Deployed Bytecode Sourcemap
6673:12554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15639:216;;;;;;;;;;;;;:::i;:::-;;12229:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6710:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10053:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11867:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7637:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8042:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9587:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12502:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6798:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7035:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10349:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7085:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9939:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9695:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7882:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6753:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10714:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8081:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7964:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15356:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14791:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7117:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12846:222;;;;;;;;;;;;;:::i;:::-;;9804:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13940:843;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13076:856;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15639:216;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15695:23:::1;15721:5;15740:1;15727:5;:12;;;;:14;;;;:::i;:::-;15721:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15695:47;;15772:1;15756:5;:12;;;;:17:::0;15753:29:::1;;15775:7;;;15753:29;15792:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;15819:28;15831:15;15819:28;;;;;;:::i;:::-;;;;;;;;15684:171;8213:1;15639:216::o:0;12229:265::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12340:2:::1;6831;6887;:12;;;;:::i;:::-;6872:11;:28;;;;:::i;:::-;12325:17;;;;:::i;:::-;12310:11;:32;;12302:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;12434:11;12421:10;:24;;;;12461:25;12475:10;;12461:25;;;;;;:::i;:::-;;;;;;;;12229:265:::0;:::o;6710:36::-;;;;;;;;;;;;;;;;;;;:::o;10053:288::-;10128:4;10172:1;10153:21;;:7;:21;;;10145:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10252:6;10217:11;:23;10229:10;10217:23;;;;;;;;;;;;;;;:32;10241:7;10217:32;;;;;;;;;;;;;;;:41;;;;10295:7;10274:37;;10283:10;10274:37;;;10304:6;10274:37;;;;;;:::i;:::-;;;;;;;;10329:4;10322:11;;10053:288;;;;:::o;11867:354::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12005:1:::1;11977:30;;:16;:30;;;;:60;;;;;12035:1;12011:26;;:12;:26;;;;11977:60;11969:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12100:16;12082:15;;:34;;;;;;;;;;;;;;;;;;12141:12;12127:11;;:26;;;;;;;;;;;;;;;;;;12169:44;12184:15;;;;;;;;;;;12201:11;;;;;;;;;;;12169:44;;;;;;;:::i;:::-;;;;;;;;11867:354:::0;;:::o;7637:74::-;7669:42;7637:74;:::o;8042:32::-;;;:::o;9587:102::-;9640:7;9672:9;:15;7750:42;9672:15;;;;;;;;;;;;;;;;6831:2;6887;:12;;;;:::i;:::-;6872:11;:28;;;;:::i;:::-;9657:30;;;;:::i;:::-;9650:37;;9587:102;:::o;11368:491::-;11469:4;11525:17;11490:11;:19;11502:6;11490:19;;;;;;;;;;;;;;;:31;11510:10;11490:31;;;;;;;;;;;;;;;;:52;11486:298;;11602:6;11567:11;:19;11579:6;11567:19;;;;;;;;;;;;;;;:31;11587:10;11567:31;;;;;;;;;;;;;;;;:41;;11559:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11685:6;11650:11;:19;11662:6;11650:19;;;;;;;;;;;;;;;:31;11670:10;11650:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;11728:10;11711:61;;11720:6;11711:61;;;11740:11;:19;11752:6;11740:19;;;;;;;;;;;;;;;:31;11760:10;11740:31;;;;;;;;;;;;;;;;11711:61;;;;;;:::i;:::-;;;;;;;;11486:298;11811:40;11825:6;11833:9;11844:6;11811:13;:40::i;:::-;11804:47;;11368:491;;;;;:::o;12502:336::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12612:4:::1;12587:30;;:13;:30;;::::0;12579:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12659:75;12672:13;12694;12687:31;;;12727:4;12687:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12659:75;;;;;;;:::i;:::-;;;;;;;;12752:13;12745:30;;;7669:42;12790:13;12783:31;;;12823:4;12783:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12745:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12502:336:::0;:::o;6798:35::-;6831:2;6798:35;:::o;7540:90::-;7587:42;7540:90;:::o;7035:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10349:357::-;10429:4;10473:1;10454:21;;:7;:21;;;10446:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10587:10;10554:30;10564:10;10576:7;10554:9;:30::i;:::-;:43;;;;:::i;:::-;10518:11;:23;10530:10;10518:23;;;;;;;;;;;;;;;:32;10542:7;10518:32;;;;;;;;;;;;;;;:79;;;;10634:7;10613:63;;10622:10;10613:63;;;10643:11;:23;10655:10;10643:23;;;;;;;;;;;;;;;:32;10667:7;10643:32;;;;;;;;;;;;;;;;10613:63;;;;;;:::i;:::-;;;;;;;;10694:4;10687:11;;10349:357;;;;:::o;7085:25::-;;;;:::o;9939:106::-;9994:4;10008:35;10016:7;10025:17;10008:7;:35::i;:::-;10001:42;;9939:106;;;:::o;9695:103::-;9761:7;9778:9;:18;9788:7;9778:18;;;;;;;;;;;;;;;;9771:25;;9695:103;;;:::o;7882:75::-;;;;;;;;;;;;;:::o;6753:38::-;;;;;;;;;;;;;;;;;;;:::o;10714:482::-;10799:4;10843:1;10824:21;;:7;:21;;;10816:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10930:15;10896:30;10906:10;10918:7;10896:9;:30::i;:::-;:49;;10888:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;11072:15;11039:30;11049:10;11061:7;11039:9;:30::i;:::-;:48;;;;:::i;:::-;11003:11;:23;11015:10;11003:23;;;;;;;;;;;;;;;:32;11027:7;11003:32;;;;;;;;;;;;;;;:84;;;;11124:7;11103:63;;11112:10;11103:63;;;11133:11;:23;11145:10;11133:23;;;;;;;;;;;;;;;:32;11157:7;11133:32;;;;;;;;;;;;;;;;11103:63;;;;;;:::i;:::-;;;;;;;;11184:4;11177:11;;10714:482;;;;:::o;11204:156::-;11284:4;11308:44;11322:10;11334:9;11345:6;11308:13;:44::i;:::-;11301:51;;11204:156;;;;:::o;8081:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7964:71::-;;;;;;;;;;;;;:::o;15356:275::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15430:21:::1;15441:9;15430:10;:21::i;:::-;:51;;;;;15476:4;15455:26;;:9;:26;;;;15430:51;:83;;;;;7587:42;15485:28;;:9;:28;;;;15430:83;15422:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15566:5;15577:9;15566:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15603:20;15613:9;15603:20;;;;;;:::i;:::-;;;;;;;;15356:275:::0;:::o;14791:232::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14899:6:::1;14879:9;:17;14889:6;14879:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14919:6;14916:99;;;14932:30;14955:6;14932:30;;;;;;:::i;:::-;;;;;;;;14916:99;;;14983:32;15008:6;14983:32;;;;;;:::i;:::-;;;;;;;;14916:99;14791:232:::0;;:::o;7117:26::-;;;;:::o;12846:222::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12902:33:::1;12913:21;12902:33;;;;;;:::i;:::-;;;;;;;;12947:12;7669:42;12965:10;;12983:21;12965:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12946:63;;;13028:7;13020:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;12886:182;12846:222::o:0;9804:129::-;9886:7;9903:11;:19;9915:6;9903:19;;;;;;;;;;;;;;;:28;9923:7;9903:28;;;;;;;;;;;;;;;;9896:35;;9804:129;;;;:::o;13940:843::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14114:13:::1;14097:10;:30;;;;14155:9;14138:6;:26;;;;14192:15;14175:12;:32;;;;14235:11;14218:8;:28;;;;14274:10;14257:7;:27;;;;14347:7;;14336:8;;14321:12;;14312:6;;:21;;;;:::i;:::-;:32;;;;:::i;:::-;:42;;;;:::i;:::-;14295:6;:59;;;;14396:2;14383:10;;:15;;;;:::i;:::-;14373:6;;:25;;:55;;;;14426:2;14413:10;;:15;;;;:::i;:::-;14402:7;;:26;;14373:55;14365:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14479:296;14506:7;;14528:6;;14549:9;14573:15;14603:11;14629:10;14654:7;;14676:13;;14704:9;;14728:8;;14751:13;14479:296;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;13940:843:::0;;;;;:::o;13076:856::-;7669:42;8152:19;;:10;:19;;;8143:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13255:13:::1;13238:10;:30;;;;13296:10;13279:7;:27;;;;13334:16;13317:13;:33;;;;13378:12;13361:9;:29;;;;13418:11;13401:8;:28;;;;13495:8;;13483:9;;13467:13;;13457:7;;:23;;;;:::i;:::-;:35;;;;:::i;:::-;:46;;;;:::i;:::-;13440:7;:63;;;;13545:2;13532:10;;:15;;;;:::i;:::-;13522:6;;:25;;:55;;;;13575:2;13562:10;;:15;;;;:::i;:::-;13551:7;;:26;;13522:55;13514:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13628:296;13655:7;;13677:6;;13698;;13719:12;;13746:8;;13769:7;;13791:10;13816:16;13847:12;13874:11;13900:13;13628:296;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;13076:856:::0;;;;;:::o;15863:327::-;15955:4;15976:9;:17;15986:6;15976:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;15997:9;:20;16007:9;15997:20;;;;;;;;;;;;;;;;;;;;;;;;;15976:41;15972:96;;;16026:42;16042:6;16050:9;16061:6;16026:15;:42::i;:::-;16019:49;;;;15972:96;16088:34;16096:6;16104:9;16115:6;16088:7;:34::i;:::-;16079:43;;16140:42;16156:6;16164:9;16175:6;16140:15;:42::i;:::-;16133:49;;15863:327;;;;;;:::o;15031:317::-;15091:4;15108:16;15135:19;15157:66;15135:88;;;;15269:7;15257:20;15245:32;;15309:11;15297:8;:23;;:42;;;;;15336:3;15324:15;;:8;:15;;15297:42;15289:51;;;;15031:317;;;:::o;18143:481::-;18237:4;18280:1;18262:20;;:6;:20;;;;:47;;;;;18307:1;18286:23;;:9;:23;;;;18262:47;18254:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;18372:9;:17;18382:6;18372:17;;;;;;;;;;;;;;;;18362:6;:27;;18354:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18450:1;18440:6;:11;18437:27;;18460:4;18453:11;;;;18437:27;18496:6;18475:9;:17;18485:6;18475:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;18537:6;18513:9;:20;18523:9;18513:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;18576:9;18559:35;;18568:6;18559:35;;;18587:6;18559:35;;;;;;:::i;:::-;;;;;;;;18612:4;18605:11;;18143:481;;;;;;:::o;16198:1752::-;16284:7;16304:17;16324:1;16304:21;;16336:16;16372:14;16379:6;16372;:14::i;:::-;16369:685;;;16414:6;;16403:17;;16450:1;16438:8;:13;16435:31;;16460:6;16453:13;;;;;;16435:31;16513:10;;16502:8;16493:6;:17;;;;:::i;:::-;:30;;;;:::i;:::-;16481:42;;16553:1;16543:7;;:11;16540:95;;;16574:61;16590:6;7750:42;16626:8;16616:7;;16604:9;:19;;;;:::i;:::-;:30;;;;:::i;:::-;16574:15;:61::i;:::-;;16540:95;16666:1;16655:8;;:12;16652:104;;;16687:69;16703:6;16711:11;;;;;;;;;;;16747:8;16736;;16724:9;:20;;;;:::i;:::-;:31;;;;:::i;:::-;16687:15;:69::i;:::-;;16652:104;16785:1;16776:6;;:10;16773:96;;;16806:63;16822:6;16830:7;16860:8;16851:6;;16839:9;:18;;;;:::i;:::-;:29;;;;:::i;:::-;16806:15;:63::i;:::-;;16773:96;16904:1;16889:12;;:16;16886:114;;;16925:75;16941:6;16957:4;16991:8;16976:12;;16964:9;:24;;;;:::i;:::-;:35;;;;:::i;:::-;16925:15;:75::i;:::-;;16886:114;17033:9;17024:6;:18;;;;:::i;:::-;17017:25;;;;;;16369:685;17069:17;17076:9;17069:6;:17::i;:::-;17066:839;;;17114:7;;17103:18;;17151:1;17139:8;:13;17136:31;;17161:6;17154:13;;;;;;17136:31;17213:10;;17203:7;;17194:6;:16;;;;:::i;:::-;:29;;;;:::i;:::-;17182:41;;17254:1;17243:8;;:12;17240:97;;;17275:62;17291:6;7750:42;17328:8;17317;;17305:9;:20;;;;:::i;:::-;:31;;;;:::i;:::-;17275:15;:62::i;:::-;;17240:97;17369:1;17357:9;;:13;17354:106;;;17390:70;17406:6;17414:11;;;;;;;;;;;17451:8;17439:9;;17427;:21;;;;:::i;:::-;:32;;;;:::i;:::-;17390:15;:70::i;:::-;;17354:106;17490:1;17480:7;;:11;17477:98;;;17511:64;17527:6;17535:7;17566:8;17556:7;;17544:9;:19;;;;:::i;:::-;:30;;;;:::i;:::-;17511:15;:64::i;:::-;;17477:98;17611:1;17595:13;;:17;17592:116;;;17632:76;17648:6;17664:4;17699:8;17683:13;;17671:9;:25;;;;:::i;:::-;:36;;;;:::i;:::-;17632:15;:76::i;:::-;;17592:116;17756:10;;17728:24;17746:4;17728:9;:24::i;:::-;:38;17725:169;;17787:10;:8;:10::i;:::-;17725:169;;;17832:1;17822:7;;:11;17819:75;;;17863:7;17854:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17819:75;17725:169;17066:839;17933:9;17924:6;:18;;;;:::i;:::-;17917:25;;;;16198:1752;;;;;;:::o;17958:177::-;18011:4;18033:9;18045:1;18033:13;;18028:76;18052:5;:12;;;;18048:1;:16;18028:76;;;18083:5;18089:1;18083:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18074:17;;:5;:17;;;18071:33;;18100:4;18093:11;;;;;18071:33;18066:3;;;;;;;18028:76;;;;18122:5;18115:12;;17958:177;;;;:::o;18632:592::-;18672:23;18698:9;:24;18716:4;18698:24;;;;;;;;;;;;;;;;18672:50;;18755:1;18736:15;:20;18733:32;;18758:7;;;18733:32;18775:21;18799:15;;;;;;;;;;;:23;;;18775:47;;18833:21;18871:1;18857:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18833:40;;18902:4;18884;18889:1;18884:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7831:42;18918:4;18923:1;18918:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;7587:42;18945:57;;;19017:15;19047:1;19063:4;19082:15;;;;;;;;;;;19112;18945:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19156:60;19202:13;19176:15;;;;;;;;;;;:23;;;:39;;;;:::i;:::-;19156:60;;;;;;:::i;:::-;;;;;;;;18661:563;;;18632:592;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:474::-;3742:6;3750;3799:2;3787:9;3778:7;3774:23;3770:32;3767:119;;;3805:79;;:::i;:::-;3767:119;3925:1;3950:53;3995:7;3986:6;3975:9;3971:22;3950:53;:::i;:::-;3940:63;;3896:117;4052:2;4078:53;4123:7;4114:6;4103:9;4099:22;4078:53;:::i;:::-;4068:63;;4023:118;3674:474;;;;;:::o;4154:118::-;4241:24;4259:5;4241:24;:::i;:::-;4236:3;4229:37;4154:118;;:::o;4278:222::-;4371:4;4409:2;4398:9;4394:18;4386:26;;4422:71;4490:1;4479:9;4475:17;4466:6;4422:71;:::i;:::-;4278:222;;;;:::o;4506:118::-;4593:24;4611:5;4593:24;:::i;:::-;4588:3;4581:37;4506:118;;:::o;4630:222::-;4723:4;4761:2;4750:9;4746:18;4738:26;;4774:71;4842:1;4831:9;4827:17;4818:6;4774:71;:::i;:::-;4630:222;;;;:::o;4858:619::-;4935:6;4943;4951;5000:2;4988:9;4979:7;4975:23;4971:32;4968:119;;;5006:79;;:::i;:::-;4968:119;5126:1;5151:53;5196:7;5187:6;5176:9;5172:22;5151:53;:::i;:::-;5141:63;;5097:117;5253:2;5279:53;5324:7;5315:6;5304:9;5300:22;5279:53;:::i;:::-;5269:63;;5224:118;5381:2;5407:53;5452:7;5443:6;5432:9;5428:22;5407:53;:::i;:::-;5397:63;;5352:118;4858:619;;;;;:::o;5483:329::-;5542:6;5591:2;5579:9;5570:7;5566:23;5562:32;5559:119;;;5597:79;;:::i;:::-;5559:119;5717:1;5742:53;5787:7;5778:6;5767:9;5763:22;5742:53;:::i;:::-;5732:63;;5688:117;5483:329;;;;:::o;5818:86::-;5853:7;5893:4;5886:5;5882:16;5871:27;;5818:86;;;:::o;5910:112::-;5993:22;6009:5;5993:22;:::i;:::-;5988:3;5981:35;5910:112;;:::o;6028:214::-;6117:4;6155:2;6144:9;6140:18;6132:26;;6168:67;6232:1;6221:9;6217:17;6208:6;6168:67;:::i;:::-;6028:214;;;;:::o;6248:60::-;6276:3;6297:5;6290:12;;6248:60;;;:::o;6314:142::-;6364:9;6397:53;6415:34;6424:24;6442:5;6424:24;:::i;:::-;6415:34;:::i;:::-;6397:53;:::i;:::-;6384:66;;6314:142;;;:::o;6462:126::-;6512:9;6545:37;6576:5;6545:37;:::i;:::-;6532:50;;6462:126;;;:::o;6594:144::-;6662:9;6695:37;6726:5;6695:37;:::i;:::-;6682:50;;6594:144;;;:::o;6744:167::-;6849:55;6898:5;6849:55;:::i;:::-;6844:3;6837:68;6744:167;;:::o;6917:258::-;7028:4;7066:2;7055:9;7051:18;7043:26;;7079:89;7165:1;7154:9;7150:17;7141:6;7079:89;:::i;:::-;6917:258;;;;:::o;7181:116::-;7251:21;7266:5;7251:21;:::i;:::-;7244:5;7241:32;7231:60;;7287:1;7284;7277:12;7231:60;7181:116;:::o;7303:133::-;7346:5;7384:6;7371:20;7362:29;;7400:30;7424:5;7400:30;:::i;:::-;7303:133;;;;:::o;7442:468::-;7507:6;7515;7564:2;7552:9;7543:7;7539:23;7535:32;7532:119;;;7570:79;;:::i;:::-;7532:119;7690:1;7715:53;7760:7;7751:6;7740:9;7736:22;7715:53;:::i;:::-;7705:63;;7661:117;7817:2;7843:50;7885:7;7876:6;7865:9;7861:22;7843:50;:::i;:::-;7833:60;;7788:115;7442:468;;;;;:::o;7916:911::-;8011:6;8019;8027;8035;8043;8092:3;8080:9;8071:7;8067:23;8063:33;8060:120;;;8099:79;;:::i;:::-;8060:120;8219:1;8244:53;8289:7;8280:6;8269:9;8265:22;8244:53;:::i;:::-;8234:63;;8190:117;8346:2;8372:53;8417:7;8408:6;8397:9;8393:22;8372:53;:::i;:::-;8362:63;;8317:118;8474:2;8500:53;8545:7;8536:6;8525:9;8521:22;8500:53;:::i;:::-;8490:63;;8445:118;8602:2;8628:53;8673:7;8664:6;8653:9;8649:22;8628:53;:::i;:::-;8618:63;;8573:118;8730:3;8757:53;8802:7;8793:6;8782:9;8778:22;8757:53;:::i;:::-;8747:63;;8701:119;7916:911;;;;;;;;:::o;8833:176::-;8973:28;8969:1;8961:6;8957:14;8950:52;8833:176;:::o;9015:366::-;9157:3;9178:67;9242:2;9237:3;9178:67;:::i;:::-;9171:74;;9254:93;9343:3;9254:93;:::i;:::-;9372:2;9367:3;9363:12;9356:19;;9015:366;;;:::o;9387:419::-;9553:4;9591:2;9580:9;9576:18;9568:26;;9640:9;9634:4;9630:20;9626:1;9615:9;9611:17;9604:47;9668:131;9794:4;9668:131;:::i;:::-;9660:139;;9387:419;;;:::o;9812:180::-;9860:77;9857:1;9850:88;9957:4;9954:1;9947:15;9981:4;9978:1;9971:15;9998:194;10038:4;10058:20;10076:1;10058:20;:::i;:::-;10053:25;;10092:20;10110:1;10092:20;:::i;:::-;10087:25;;10136:1;10133;10129:9;10121:17;;10160:1;10154:4;10151:11;10148:37;;;10165:18;;:::i;:::-;10148:37;9998:194;;;;:::o;10198:180::-;10246:77;10243:1;10236:88;10343:4;10340:1;10333:15;10367:4;10364:1;10357:15;10384:180;10432:77;10429:1;10422:88;10529:4;10526:1;10519:15;10553:4;10550:1;10543:15;10570:102;10612:8;10659:5;10656:1;10652:13;10631:34;;10570:102;;;:::o;10678:848::-;10739:5;10746:4;10770:6;10761:15;;10794:5;10785:14;;10808:712;10829:1;10819:8;10816:15;10808:712;;;10924:4;10919:3;10915:14;10909:4;10906:24;10903:50;;;10933:18;;:::i;:::-;10903:50;10983:1;10973:8;10969:16;10966:451;;;11398:4;11391:5;11387:16;11378:25;;10966:451;11448:4;11442;11438:15;11430:23;;11478:32;11501:8;11478:32;:::i;:::-;11466:44;;10808:712;;;10678:848;;;;;;;:::o;11532:1073::-;11586:5;11777:8;11767:40;;11798:1;11789:10;;11800:5;;11767:40;11826:4;11816:36;;11843:1;11834:10;;11845:5;;11816:36;11912:4;11960:1;11955:27;;;;11996:1;11991:191;;;;11905:277;;11955:27;11973:1;11964:10;;11975:5;;;11991:191;12036:3;12026:8;12023:17;12020:43;;;12043:18;;:::i;:::-;12020:43;12092:8;12089:1;12085:16;12076:25;;12127:3;12120:5;12117:14;12114:40;;;12134:18;;:::i;:::-;12114:40;12167:5;;;11905:277;;12291:2;12281:8;12278:16;12272:3;12266:4;12263:13;12259:36;12241:2;12231:8;12228:16;12223:2;12217:4;12214:12;12210:35;12194:111;12191:246;;;12347:8;12341:4;12337:19;12328:28;;12382:3;12375:5;12372:14;12369:40;;;12389:18;;:::i;:::-;12369:40;12422:5;;12191:246;12462:42;12500:3;12490:8;12484:4;12481:1;12462:42;:::i;:::-;12447:57;;;;12536:4;12531:3;12527:14;12520:5;12517:25;12514:51;;;12545:18;;:::i;:::-;12514:51;12594:4;12587:5;12583:16;12574:25;;11532:1073;;;;;;:::o;12611:281::-;12669:5;12693:23;12711:4;12693:23;:::i;:::-;12685:31;;12737:25;12753:8;12737:25;:::i;:::-;12725:37;;12781:104;12818:66;12808:8;12802:4;12781:104;:::i;:::-;12772:113;;12611:281;;;;:::o;12898:410::-;12938:7;12961:20;12979:1;12961:20;:::i;:::-;12956:25;;12995:20;13013:1;12995:20;:::i;:::-;12990:25;;13050:1;13047;13043:9;13072:30;13090:11;13072:30;:::i;:::-;13061:41;;13251:1;13242:7;13238:15;13235:1;13232:22;13212:1;13205:9;13185:83;13162:139;;13281:18;;:::i;:::-;13162:139;12946:362;12898:410;;;;:::o;13314:180::-;13362:77;13359:1;13352:88;13459:4;13456:1;13449:15;13483:4;13480:1;13473:15;13500:185;13540:1;13557:20;13575:1;13557:20;:::i;:::-;13552:25;;13591:20;13609:1;13591:20;:::i;:::-;13586:25;;13630:1;13620:35;;13635:18;;:::i;:::-;13620:35;13677:1;13674;13670:9;13665:14;;13500:185;;;;:::o;13691:248::-;13831:34;13827:1;13819:6;13815:14;13808:58;13900:31;13895:2;13887:6;13883:15;13876:56;13691:248;:::o;13945:366::-;14087:3;14108:67;14172:2;14167:3;14108:67;:::i;:::-;14101:74;;14184:93;14273:3;14184:93;:::i;:::-;14302:2;14297:3;14293:12;14286:19;;13945:366;;;:::o;14317:419::-;14483:4;14521:2;14510:9;14506:18;14498:26;;14570:9;14564:4;14560:20;14556:1;14545:9;14541:17;14534:47;14598:131;14724:4;14598:131;:::i;:::-;14590:139;;14317:419;;;:::o;14742:177::-;14882:29;14878:1;14870:6;14866:14;14859:53;14742:177;:::o;14925:366::-;15067:3;15088:67;15152:2;15147:3;15088:67;:::i;:::-;15081:74;;15164:93;15253:3;15164:93;:::i;:::-;15282:2;15277:3;15273:12;15266:19;;14925:366;;;:::o;15297:419::-;15463:4;15501:2;15490:9;15486:18;15478:26;;15550:9;15544:4;15540:20;15536:1;15525:9;15521:17;15514:47;15578:131;15704:4;15578:131;:::i;:::-;15570:139;;15297:419;;;:::o;15722:179::-;15862:31;15858:1;15850:6;15846:14;15839:55;15722:179;:::o;15907:366::-;16049:3;16070:67;16134:2;16129:3;16070:67;:::i;:::-;16063:74;;16146:93;16235:3;16146:93;:::i;:::-;16264:2;16259:3;16255:12;16248:19;;15907:366;;;:::o;16279:419::-;16445:4;16483:2;16472:9;16468:18;16460:26;;16532:9;16526:4;16522:20;16518:1;16507:9;16503:17;16496:47;16560:131;16686:4;16560:131;:::i;:::-;16552:139;;16279:419;;;:::o;16704:332::-;16825:4;16863:2;16852:9;16848:18;16840:26;;16876:71;16944:1;16933:9;16929:17;16920:6;16876:71;:::i;:::-;16957:72;17025:2;17014:9;17010:18;17001:6;16957:72;:::i;:::-;16704:332;;;;;:::o;17042:172::-;17182:24;17178:1;17170:6;17166:14;17159:48;17042:172;:::o;17220:366::-;17362:3;17383:67;17447:2;17442:3;17383:67;:::i;:::-;17376:74;;17459:93;17548:3;17459:93;:::i;:::-;17577:2;17572:3;17568:12;17561:19;;17220:366;;;:::o;17592:419::-;17758:4;17796:2;17785:9;17781:18;17773:26;;17845:9;17839:4;17835:20;17831:1;17820:9;17816:17;17809:47;17873:131;17999:4;17873:131;:::i;:::-;17865:139;;17592:419;;;:::o;18017:171::-;18157:23;18153:1;18145:6;18141:14;18134:47;18017:171;:::o;18194:366::-;18336:3;18357:67;18421:2;18416:3;18357:67;:::i;:::-;18350:74;;18433:93;18522:3;18433:93;:::i;:::-;18551:2;18546:3;18542:12;18535:19;;18194:366;;;:::o;18566:419::-;18732:4;18770:2;18759:9;18755:18;18747:26;;18819:9;18813:4;18809:20;18805:1;18794:9;18790:17;18783:47;18847:131;18973:4;18847:131;:::i;:::-;18839:139;;18566:419;;;:::o;18991:143::-;19048:5;19079:6;19073:13;19064:22;;19095:33;19122:5;19095:33;:::i;:::-;18991:143;;;;:::o;19140:351::-;19210:6;19259:2;19247:9;19238:7;19234:23;19230:32;19227:119;;;19265:79;;:::i;:::-;19227:119;19385:1;19410:64;19466:7;19457:6;19446:9;19442:22;19410:64;:::i;:::-;19400:74;;19356:128;19140:351;;;;:::o;19497:332::-;19618:4;19656:2;19645:9;19641:18;19633:26;;19669:71;19737:1;19726:9;19722:17;19713:6;19669:71;:::i;:::-;19750:72;19818:2;19807:9;19803:18;19794:6;19750:72;:::i;:::-;19497:332;;;;;:::o;19835:137::-;19889:5;19920:6;19914:13;19905:22;;19936:30;19960:5;19936:30;:::i;:::-;19835:137;;;;:::o;19978:345::-;20045:6;20094:2;20082:9;20073:7;20069:23;20065:32;20062:119;;;20100:79;;:::i;:::-;20062:119;20220:1;20245:61;20298:7;20289:6;20278:9;20274:22;20245:61;:::i;:::-;20235:71;;20191:125;19978:345;;;;:::o;20329:191::-;20369:3;20388:20;20406:1;20388:20;:::i;:::-;20383:25;;20422:20;20440:1;20422:20;:::i;:::-;20417:25;;20465:1;20462;20458:9;20451:16;;20486:3;20483:1;20480:10;20477:36;;;20493:18;;:::i;:::-;20477:36;20329:191;;;;:::o;20526:229::-;20666:34;20662:1;20654:6;20650:14;20643:58;20735:12;20730:2;20722:6;20718:15;20711:37;20526:229;:::o;20761:366::-;20903:3;20924:67;20988:2;20983:3;20924:67;:::i;:::-;20917:74;;21000:93;21089:3;21000:93;:::i;:::-;21118:2;21113:3;21109:12;21102:19;;20761:366;;;:::o;21133:419::-;21299:4;21337:2;21326:9;21322:18;21314:26;;21386:9;21380:4;21376:20;21372:1;21361:9;21357:17;21350:47;21414:131;21540:4;21414:131;:::i;:::-;21406:139;;21133:419;;;:::o;21558:224::-;21698:34;21694:1;21686:6;21682:14;21675:58;21767:7;21762:2;21754:6;21750:15;21743:32;21558:224;:::o;21788:366::-;21930:3;21951:67;22015:2;22010:3;21951:67;:::i;:::-;21944:74;;22027:93;22116:3;22027:93;:::i;:::-;22145:2;22140:3;22136:12;22129:19;;21788:366;;;:::o;22160:419::-;22326:4;22364:2;22353:9;22349:18;22341:26;;22413:9;22407:4;22403:20;22399:1;22388:9;22384:17;22377:47;22441:131;22567:4;22441:131;:::i;:::-;22433:139;;22160:419;;;:::o;22585:147::-;22686:11;22723:3;22708:18;;22585:147;;;;:::o;22738:114::-;;:::o;22858:398::-;23017:3;23038:83;23119:1;23114:3;23038:83;:::i;:::-;23031:90;;23130:93;23219:3;23130:93;:::i;:::-;23248:1;23243:3;23239:11;23232:18;;22858:398;;;:::o;23262:379::-;23446:3;23468:147;23611:3;23468:147;:::i;:::-;23461:154;;23632:3;23625:10;;23262:379;;;:::o;23647:170::-;23787:22;23783:1;23775:6;23771:14;23764:46;23647:170;:::o;23823:366::-;23965:3;23986:67;24050:2;24045:3;23986:67;:::i;:::-;23979:74;;24062:93;24151:3;24062:93;:::i;:::-;24180:2;24175:3;24171:12;24164:19;;23823:366;;;:::o;24195:419::-;24361:4;24399:2;24388:9;24384:18;24376:26;;24448:9;24442:4;24438:20;24434:1;24423:9;24419:17;24412:47;24476:131;24602:4;24476:131;:::i;:::-;24468:139;;24195:419;;;:::o;24620:178::-;24760:30;24756:1;24748:6;24744:14;24737:54;24620:178;:::o;24804:366::-;24946:3;24967:67;25031:2;25026:3;24967:67;:::i;:::-;24960:74;;25043:93;25132:3;25043:93;:::i;:::-;25161:2;25156:3;25152:12;25145:19;;24804:366;;;:::o;25176:419::-;25342:4;25380:2;25369:9;25365:18;25357:26;;25429:9;25423:4;25419:20;25415:1;25404:9;25400:17;25393:47;25457:131;25583:4;25457:131;:::i;:::-;25449:139;;25176:419;;;:::o;25601:1332::-;25975:4;26013:3;26002:9;25998:19;25990:27;;26027:71;26095:1;26084:9;26080:17;26071:6;26027:71;:::i;:::-;26108:72;26176:2;26165:9;26161:18;26152:6;26108:72;:::i;:::-;26190;26258:2;26247:9;26243:18;26234:6;26190:72;:::i;:::-;26272;26340:2;26329:9;26325:18;26316:6;26272:72;:::i;:::-;26354:73;26422:3;26411:9;26407:19;26398:6;26354:73;:::i;:::-;26437;26505:3;26494:9;26490:19;26481:6;26437:73;:::i;:::-;26520;26588:3;26577:9;26573:19;26564:6;26520:73;:::i;:::-;26603;26671:3;26660:9;26656:19;26647:6;26603:73;:::i;:::-;26686;26754:3;26743:9;26739:19;26730:6;26686:73;:::i;:::-;26769;26837:3;26826:9;26822:19;26813:6;26769:73;:::i;:::-;26852:74;26921:3;26910:9;26906:19;26896:7;26852:74;:::i;:::-;25601:1332;;;;;;;;;;;;;;:::o;26939:182::-;27079:34;27075:1;27067:6;27063:14;27056:58;26939:182;:::o;27127:366::-;27269:3;27290:67;27354:2;27349:3;27290:67;:::i;:::-;27283:74;;27366:93;27455:3;27366:93;:::i;:::-;27484:2;27479:3;27475:12;27468:19;;27127:366;;;:::o;27499:419::-;27665:4;27703:2;27692:9;27688:18;27680:26;;27752:9;27746:4;27742:20;27738:1;27727:9;27723:17;27716:47;27780:131;27906:4;27780:131;:::i;:::-;27772:139;;27499:419;;;:::o;27924:180::-;27972:77;27969:1;27962:88;28069:4;28066:1;28059:15;28093:4;28090:1;28083:15;28110:85;28155:7;28184:5;28173:16;;28110:85;;;:::o;28201:158::-;28259:9;28292:61;28310:42;28319:32;28345:5;28319:32;:::i;:::-;28310:42;:::i;:::-;28292:61;:::i;:::-;28279:74;;28201:158;;;:::o;28365:147::-;28460:45;28499:5;28460:45;:::i;:::-;28455:3;28448:58;28365:147;;:::o;28518:114::-;28585:6;28619:5;28613:12;28603:22;;28518:114;;;:::o;28638:184::-;28737:11;28771:6;28766:3;28759:19;28811:4;28806:3;28802:14;28787:29;;28638:184;;;;:::o;28828:132::-;28895:4;28918:3;28910:11;;28948:4;28943:3;28939:14;28931:22;;28828:132;;;:::o;28966:108::-;29043:24;29061:5;29043:24;:::i;:::-;29038:3;29031:37;28966:108;;:::o;29080:179::-;29149:10;29170:46;29212:3;29204:6;29170:46;:::i;:::-;29248:4;29243:3;29239:14;29225:28;;29080:179;;;;:::o;29265:113::-;29335:4;29367;29362:3;29358:14;29350:22;;29265:113;;;:::o;29414:732::-;29533:3;29562:54;29610:5;29562:54;:::i;:::-;29632:86;29711:6;29706:3;29632:86;:::i;:::-;29625:93;;29742:56;29792:5;29742:56;:::i;:::-;29821:7;29852:1;29837:284;29862:6;29859:1;29856:13;29837:284;;;29938:6;29932:13;29965:63;30024:3;30009:13;29965:63;:::i;:::-;29958:70;;30051:60;30104:6;30051:60;:::i;:::-;30041:70;;29897:224;29884:1;29881;29877:9;29872:14;;29837:284;;;29841:14;30137:3;30130:10;;29538:608;;;29414:732;;;;:::o;30152:831::-;30415:4;30453:3;30442:9;30438:19;30430:27;;30467:71;30535:1;30524:9;30520:17;30511:6;30467:71;:::i;:::-;30548:80;30624:2;30613:9;30609:18;30600:6;30548:80;:::i;:::-;30675:9;30669:4;30665:20;30660:2;30649:9;30645:18;30638:48;30703:108;30806:4;30797:6;30703:108;:::i;:::-;30695:116;;30821:72;30889:2;30878:9;30874:18;30865:6;30821:72;:::i;:::-;30903:73;30971:3;30960:9;30956:19;30947:6;30903:73;:::i;:::-;30152:831;;;;;;;;:::o
Swarm Source
ipfs://76622fac1a1026c0605f0c0a781d3c9665c9e8448c5994932ec91083ca969cce
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)