ERC-20
Source Code
Overview
Max Total Supply
21,450,000 CTRA
Holders
4
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
CARTERA
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-10-11
*/
/*
Website: https://cartera.systems
Twitter: http://x.com/carterasystems
Telegram: https://t.me/carteraOfficial
Apps: https://cartera.systems/app
Youtube : https://youtube.com/@carterasystems
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, 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 from,
address to,
uint256 amount
) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(
address account
) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(
address to,
uint256 amount
) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amount
) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(
fromBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
unchecked {
_balances[from] = fromBalance - amount;
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(
currentAllowance >= amount,
"ERC20: insufficient allowance"
);
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)
external
payable
returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IUniswapV2Factory {
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
}
contract CARTERA is ERC20, Ownable {
uint256 private buyTax = 20;
uint256 private sellTax = 20;
IUniswapV2Router02 private uniswapV2Router;
address public uniswapV2Pair;
mapping(address => bool) public isExempt;
address private marketingAddress =
0x26b5f5627a0f8c46CFEB61e082b5fD1A3aa8FBCa;
address private taxAddress = 0x26b5f5627a0f8c46CFEB61e082b5fD1A3aa8FBCa;
address private team = 0x99Ce364bBFB0dB1772CB5958a27b4ec905b6e81D;
address private develompent = 0x4eaEf21f1E7363586354af81853BEc1dA9eF2082;
uint256 public maxTransactionAmount;
uint256 public maxTxLaunch;
bool private launch = false;
bool private slowLaunch = true;
uint256 private blockLaunch;
uint256 private lastSellBlock;
uint256 private sellCount;
uint256 private minSwap;
uint256 private maxSwap;
uint256 private _buyCount = 0;
bool private inSwap;
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor()
// address _taxAddress,
// address _marketingAddress,
// address _team,
// address _develompent
ERC20("CARTERA", "CTRA")
Ownable()
{
uint256 totalSupply = 21450000 * 10 ** 18;
// marketingAddress = _marketingAddress;
// taxAddress = _taxAddress;
// team = _team;
// develompent = _develompent;
isExempt[msg.sender] = true;
isExempt[address(this)] = true;
isExempt[marketingAddress] = true;
isExempt[taxAddress] = true;
_mint(marketingAddress, (totalSupply * 5) / 100);
_mint(team, (totalSupply * 3) / 100);
_mint(develompent, (totalSupply * 5) / 100);
_mint(address(this), (totalSupply * 87) / 100);
uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
//total supply = 21450000
maxTransactionAmount = (totalSupply * 2) / 100; // 2% of total supply = 429000
maxTxLaunch = (totalSupply * 15) / 1000; // 1.5% of total supply = 321750
maxSwap = (totalSupply * 5) / 1000; // 0.5% of total supply = 107250
minSwap = (totalSupply * 1) / 1000; // 0.1% of total supply = 21450
}
function openTrading() external onlyOwner {
uint256 tokenToLP = (balanceOf(address(this)) * 80) / 100;
_approve(
address(this),
address(uniswapV2Router),
balanceOf(address(this))
);
// uniswapV2Pair = address(
// IUniswapV2Factory(uniswapV2Router.factory()).createPair(
// address(this),
// uniswapV2Router.WETH()
// )
// );
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
tokenToLP,
0,
0,
owner(),
block.timestamp
);
launch = true;
blockLaunch = block.number;
}
function getMinCASwap() public view returns (uint256) {
return minSwap / 10 ** decimals();
}
function initializePair() external onlyOwner {
uniswapV2Pair = address(
IUniswapV2Factory(uniswapV2Router.factory()).createPair(
address(this),
uniswapV2Router.WETH()
)
);
}
function setMaxCASwap(uint256 _maxSwap) external onlyOwner {
uint256 _max = (totalSupply() * 5) / 1000; // 0.5% of total supply
uint256 _min = (totalSupply() * 2) / 1000; // 0.05% of total supply
require(_maxSwap <= _max);
require(_maxSwap >= _min);
maxSwap = _maxSwap * 10 ** decimals();
}
function setMinSwap(uint256 _minSwap) external onlyOwner {
uint256 _max = (totalSupply() * 1) / 1000; // 0.1% of total supply
uint256 _min = (totalSupply() * 5) / 10000; // 0.05% of total supply
require(_minSwap <= _max);
require(_minSwap >= _min);
minSwap = _minSwap * 10 ** decimals();
}
function switchCaSell() external onlyOwner {
if (inSwap) {
inSwap = false;
} else {
inSwap = true;
}
}
function deactivateSlowLaunch() external onlyOwner {
slowLaunch = false;
}
function getMaxCASwap() public view returns (uint256) {
return maxSwap / 10 ** decimals();
}
function swapTokensEth(uint256 tokenAmount) internal lockTheSwap {
_approve(address(this), address(uniswapV2Router), tokenAmount);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
taxAddress,
block.timestamp
);
}
function _transfer(
address from,
address to,
uint256 value
) internal virtual override {
if (!isExempt[from] && !isExempt[to]) {
require(launch);
uint256 tax = 0;
if (slowLaunch && blockLaunch != block.number) {
require(value <= maxTxLaunch, "MAX TX LIMIT");
} else {
require(value <= maxTransactionAmount, "MAX TX LIMIT");
}
if (to == uniswapV2Pair) {
tax = sellTax;
uint256 tokensSwap = balanceOf(address(this));
if (tokensSwap > minSwap && !inSwap) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
if (sellCount < 3) {
sellCount++;
lastSellBlock = block.number;
swapTokensEth(min(maxSwap, min(value, tokensSwap)));
}
}
} else if (from == uniswapV2Pair) {
tax = buyTax;
if (block.number == blockLaunch) {
_buyCount++;
tax = 20;
require(
_buyCount <= 15,
"Exceeds buys on the first block."
);
}
}
uint256 taxAmount = (value * tax) / 100;
uint256 amountAfterTax = value - taxAmount;
if (taxAmount > 0) {
super._transfer(from, address(this), taxAmount);
}
super._transfer(from, to, amountAfterTax);
return;
}
super._transfer(from, to, value);
}
function min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
function setTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
require(newBuyTax < 21 && newSellTax < 21);
sellTax = newSellTax;
buyTax = newBuyTax;
}
function setMaxTx(uint256 newMaxTx) external onlyOwner {
maxTransactionAmount = newMaxTx * 10 ** decimals();
}
function removeAllLimits() external onlyOwner {
maxTransactionAmount = totalSupply();
}
function clearStuckNativeToken() external onlyOwner {
uint256 _amount = (address(this).balance * 50) / 100;
payable(owner()).transfer(_amount);
}
function exportETH() external {
payable(marketingAddress).transfer(address(this).balance);
}
function setExcludedWallet(
address wAddress,
bool isExcle
) external onlyOwner {
// only used to whitelist Market Maker Wallet on CEX Listing
isExempt[wAddress] = isExcle;
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckNativeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deactivateSlowLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exportETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxCASwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinCASwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wAddress","type":"address"},{"internalType":"bool","name":"isExcle","type":"bool"}],"name":"setExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwap","type":"uint256"}],"name":"setMaxCASwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minSwap","type":"uint256"}],"name":"setMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchCaSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052601460065560146007557326b5f5627a0f8c46cfeb61e082b5fd1a3aa8fbca600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507326b5f5627a0f8c46cfeb61e082b5fd1a3aa8fbca600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507399ce364bbfb0db1772cb5958a27b4ec905b6e81d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734eaef21f1e7363586354af81853bec1da9ef2082600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60115f6101000a81548160ff0219169083151502179055506001601160016101000a81548160ff0219169083151502179055505f6017553480156101a1575f80fd5b506040518060400160405280600781526020017f43415254455241000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4354524100000000000000000000000000000000000000000000000000000000815250816003908161021d9190610a35565b50806004908161022d9190610a35565b50505061024c6102416105cd60201b60201c565b6105d460201b60201c565b5f6a11be36d47a454f8a40000090506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061043a600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646005846104259190610b31565b61042f9190610b9f565b61069760201b60201c565b610483600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460038461046e9190610b31565b6104789190610b9f565b61069760201b60201c565b6104cc600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646005846104b79190610b31565b6104c19190610b9f565b61069760201b60201c565b6104f43060646057846104df9190610b31565b6104e99190610b9f565b61069760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646002826105579190610b31565b6105619190610b9f565b600f819055506103e8600f826105779190610b31565b6105819190610b9f565b6010819055506103e86005826105979190610b31565b6105a19190610b9f565b6016819055506103e86001826105b79190610b31565b6105c19190610b9f565b60158190555050610ca2565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90610c29565b60405180910390fd5b6107165f83836107f160201b60201c565b8060025f8282546107279190610c47565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107d49190610c89565b60405180910390a36107ed5f83836107f660201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061087657607f821691505b60208210810361088957610888610832565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026108eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108b0565b6108f586836108b0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61093961093461092f8461090d565b610916565b61090d565b9050919050565b5f819050919050565b6109528361091f565b61096661095e82610940565b8484546108bc565b825550505050565b5f90565b61097a61096e565b610985818484610949565b505050565b5b818110156109a85761099d5f82610972565b60018101905061098b565b5050565b601f8211156109ed576109be8161088f565b6109c7846108a1565b810160208510156109d6578190505b6109ea6109e2856108a1565b83018261098a565b50505b505050565b5f82821c905092915050565b5f610a0d5f19846008026109f2565b1980831691505092915050565b5f610a2583836109fe565b9150826002028217905092915050565b610a3e826107fb565b67ffffffffffffffff811115610a5757610a56610805565b5b610a61825461085f565b610a6c8282856109ac565b5f60209050601f831160018114610a9d575f8415610a8b578287015190505b610a958582610a1a565b865550610afc565b601f198416610aab8661088f565b5f5b82811015610ad257848901518255600182019150602085019450602081019050610aad565b86831015610aef5784890151610aeb601f8916826109fe565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b3b8261090d565b9150610b468361090d565b9250828202610b548161090d565b91508282048414831517610b6b57610b6a610b04565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610ba98261090d565b9150610bb48361090d565b925082610bc457610bc3610b72565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610c13601f83610bcf565b9150610c1e82610bdf565b602082019050919050565b5f6020820190508181035f830152610c4081610c07565b9050919050565b5f610c518261090d565b9150610c5c8361090d565b9250828201905080821115610c7457610c73610b04565b5b92915050565b610c838161090d565b82525050565b5f602082019050610c9c5f830184610c7a565b92915050565b612d8c80610caf5f395ff3fe6080604052600436106101e6575f3560e01c80639be67ca611610101578063c8c8ebe411610094578063da81a85a11610063578063da81a85a14610685578063db05e5cb1461069b578063dd62ed3e146106b1578063f2fde38b146106ed576101ed565b8063c8c8ebe414610607578063c9567bf914610631578063d579d4ed14610647578063d7acde1f1461065d576101ed565b8063a9e282b8116100d0578063a9e282b814610553578063aca2cd6e1461057b578063ad5dff73146105a3578063bc337182146105df576101ed565b80639be67ca61461049b578063a457c2d7146104b1578063a508de62146104ed578063a9059cbb14610517576101ed565b806349bd5a5e1161017957806370a082311161014857806370a08231146103f5578063715018a6146104315780638da5cb5b1461044757806395d89b4114610471576101ed565b806349bd5a5e146103635780634b203e1b1461038d5780634fab9e4c146103b7578063667f6526146103cd576101ed565b8063184619d3116101b5578063184619d3146102ab57806323b872dd146102c1578063313ce567146102fd5780633950935114610327576101ed565b806306fdde03146101f1578063084cf6151461021b578063095ea7b31461024557806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610715565b6040516102129190611e82565b60405180910390f35b348015610226575f80fd5b5061022f6107a5565b60405161023c9190611eba565b60405180910390f35b348015610250575f80fd5b5061026b60048036038101906102669190611f5b565b6107ab565b6040516102789190611fb3565b60405180910390f35b34801561028c575f80fd5b506102956107cd565b6040516102a29190611eba565b60405180910390f35b3480156102b6575f80fd5b506102bf6107d6565b005b3480156102cc575f80fd5b506102e760048036038101906102e29190611fcc565b6107fa565b6040516102f49190611fb3565b60405180910390f35b348015610308575f80fd5b50610311610828565b60405161031e9190612037565b60405180910390f35b348015610332575f80fd5b5061034d60048036038101906103489190611f5b565b610830565b60405161035a9190611fb3565b60405180910390f35b34801561036e575f80fd5b50610377610866565b604051610384919061205f565b60405180910390f35b348015610398575f80fd5b506103a161088b565b6040516103ae9190611eba565b60405180910390f35b3480156103c2575f80fd5b506103cb6108b2565b005b3480156103d8575f80fd5b506103f360048036038101906103ee9190612078565b610a90565b005b348015610400575f80fd5b5061041b600480360381019061041691906120b6565b610ac2565b6040516104289190611eba565b60405180910390f35b34801561043c575f80fd5b50610445610b07565b005b348015610452575f80fd5b5061045b610b1a565b604051610468919061205f565b60405180910390f35b34801561047c575f80fd5b50610485610b42565b6040516104929190611e82565b60405180910390f35b3480156104a6575f80fd5b506104af610bd2565b005b3480156104bc575f80fd5b506104d760048036038101906104d29190611f5b565b610c44565b6040516104e49190611fb3565b60405180910390f35b3480156104f8575f80fd5b50610501610cb9565b60405161050e9190611eba565b60405180910390f35b348015610522575f80fd5b5061053d60048036038101906105389190611f5b565b610ce0565b60405161054a9190611fb3565b60405180910390f35b34801561055e575f80fd5b50610579600480360381019061057491906120e1565b610d02565b005b348015610586575f80fd5b506105a1600480360381019061059c9190612136565b610d94565b005b3480156105ae575f80fd5b506105c960048036038101906105c491906120b6565b610df4565b6040516105d69190611fb3565b60405180910390f35b3480156105ea575f80fd5b50610605600480360381019061060091906120e1565b610e11565b005b348015610612575f80fd5b5061061b610e41565b6040516106289190611eba565b60405180910390f35b34801561063c575f80fd5b50610645610e47565b005b348015610652575f80fd5b5061065b610f7b565b005b348015610668575f80fd5b50610683600480360381019061067e91906120e1565b610fe2565b005b348015610690575f80fd5b50610699611074565b005b3480156106a6575f80fd5b506106af6110cb565b005b3480156106bc575f80fd5b506106d760048036038101906106d29190612174565b6110e3565b6040516106e49190611eba565b60405180910390f35b3480156106f8575f80fd5b50610713600480360381019061070e91906120b6565b611165565b005b606060038054610724906121df565b80601f0160208091040260200160405190810160405280929190818152602001828054610750906121df565b801561079b5780601f106107725761010080835404028352916020019161079b565b820191905f5260205f20905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b60105481565b5f806107b56111e7565b90506107c28185856111ee565b600191505092915050565b5f600254905090565b6107de6113b1565b5f601160016101000a81548160ff021916908315150217905550565b5f806108046111e7565b905061081185828561142f565b61081c8585856114ba565b60019150509392505050565b5f6012905090565b5f8061083a6111e7565b905061085b81858561084c85896110e3565b610856919061223c565b6111ee565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610894610828565b600a6108a0919061239e565b6015546108ad9190612415565b905090565b6108ba6113b1565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109489190612459565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f29190612459565b6040518363ffffffff1660e01b8152600401610a0f929190612484565b6020604051808303815f875af1158015610a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4f9190612459565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a986113b1565b601582108015610aa85750601581105b610ab0575f80fd5b80600781905550816006819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0f6113b1565b610b185f611837565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b51906121df565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7d906121df565b8015610bc85780601f10610b9f57610100808354040283529160200191610bc8565b820191905f5260205f20905b815481529060010190602001808311610bab57829003601f168201915b5050505050905090565b610bda6113b1565b5f6064603247610bea91906124ab565b610bf49190612415565b9050610bfe610b1a565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c40573d5f803e3d5ffd5b5050565b5f80610c4e6111e7565b90505f610c5b82866110e3565b905083811015610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c979061255c565b60405180910390fd5b610cad82868684036111ee565b60019250505092915050565b5f610cc2610828565b600a610cce919061239e565b601654610cdb9190612415565b905090565b5f80610cea6111e7565b9050610cf78185856114ba565b600191505092915050565b610d0a6113b1565b5f6103e86001610d186107cd565b610d2291906124ab565b610d2c9190612415565b90505f6127106005610d3c6107cd565b610d4691906124ab565b610d509190612415565b905081831115610d5e575f80fd5b80831015610d6a575f80fd5b610d72610828565b600a610d7e919061239e565b83610d8991906124ab565b601581905550505050565b610d9c6113b1565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610e196113b1565b610e21610828565b600a610e2d919061239e565b81610e3891906124ab565b600f8190555050565b600f5481565b610e4f6113b1565b5f60646050610e5d30610ac2565b610e6791906124ab565b610e719190612415565b9050610ea73060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ea230610ac2565b6111ee565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610ef1610b1a565b426040518863ffffffff1660e01b8152600401610f13969594939291906125bc565b60606040518083038185885af1158015610f2f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f54919061262f565b505050600160115f6101000a81548160ff0219169083151502179055504360128190555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fdf573d5f803e3d5ffd5b50565b610fea6113b1565b5f6103e86005610ff86107cd565b61100291906124ab565b61100c9190612415565b90505f6103e8600261101c6107cd565b61102691906124ab565b6110309190612415565b90508183111561103e575f80fd5b8083101561104a575f80fd5b611052610828565b600a61105e919061239e565b8361106991906124ab565b601681905550505050565b61107c6113b1565b60185f9054906101000a900460ff16156110ae575f60185f6101000a81548160ff0219169083151502179055506110c9565b600160185f6101000a81548160ff0219169083151502179055505b565b6110d36113b1565b6110db6107cd565b600f81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61116d6113b1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906126ef565b60405180910390fd5b6111e481611837565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112539061277d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c19061280b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113a49190611eba565b60405180910390a3505050565b6113b96111e7565b73ffffffffffffffffffffffffffffffffffffffff166113d7610b1a565b73ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612873565b60405180910390fd5b565b5f61143a84846110e3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114b457818110156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906128db565b60405180910390fd5b6114b384848484036111ee565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115585750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118265760115f9054906101000a900460ff16611574575f80fd5b5f601160019054906101000a900460ff16801561159357504360125414155b156115e2576010548211156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612943565b60405180910390fd5b611628565b600f54821115611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90612943565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170f5760075490505f61168b30610ac2565b9050601554811180156116aa575060185f9054906101000a900460ff16155b15611709576013544311156116c1575f6014819055505b600360145410156117085760145f8154809291906116de90612961565b9190505550436013819055506117076117026016546116fd86856118fa565b6118fa565b611912565b5b5b506117d5565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117d457600654905060125443036117d35760175f81548092919061178390612961565b919050555060149050600f60175411156117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c9906129f2565b60405180910390fd5b5b5b5b5f606482846117e491906124ab565b6117ee9190612415565b90505f81846117fd9190612a10565b90505f82111561181357611812863084611b9c565b5b61181e868683611b9c565b505050611832565b611831838383611b9c565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818311611908578261190a565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055506119583060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836111ee565b5f600267ffffffffffffffff81111561197457611973612a43565b5b6040519080825280602002602001820160405280156119a25781602001602082028036833780820191505090505b50905030815f815181106119b9576119b8612a70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a819190612459565b81600181518110611a9557611a94612a70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b52959493929190612b54565b5f604051808303815f87803b158015611b69575f80fd5b505af1158015611b7b573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0190612c1c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f90612caa565b60405180910390fd5b611c83838383611e08565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfd90612d38565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611def9190611eba565b60405180910390a3611e02848484611e0d565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e5482611e12565b611e5e8185611e1c565b9350611e6e818560208601611e2c565b611e7781611e3a565b840191505092915050565b5f6020820190508181035f830152611e9a8184611e4a565b905092915050565b5f819050919050565b611eb481611ea2565b82525050565b5f602082019050611ecd5f830184611eab565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0082611ed7565b9050919050565b611f1081611ef6565b8114611f1a575f80fd5b50565b5f81359050611f2b81611f07565b92915050565b611f3a81611ea2565b8114611f44575f80fd5b50565b5f81359050611f5581611f31565b92915050565b5f8060408385031215611f7157611f70611ed3565b5b5f611f7e85828601611f1d565b9250506020611f8f85828601611f47565b9150509250929050565b5f8115159050919050565b611fad81611f99565b82525050565b5f602082019050611fc65f830184611fa4565b92915050565b5f805f60608486031215611fe357611fe2611ed3565b5b5f611ff086828701611f1d565b935050602061200186828701611f1d565b925050604061201286828701611f47565b9150509250925092565b5f60ff82169050919050565b6120318161201c565b82525050565b5f60208201905061204a5f830184612028565b92915050565b61205981611ef6565b82525050565b5f6020820190506120725f830184612050565b92915050565b5f806040838503121561208e5761208d611ed3565b5b5f61209b85828601611f47565b92505060206120ac85828601611f47565b9150509250929050565b5f602082840312156120cb576120ca611ed3565b5b5f6120d884828501611f1d565b91505092915050565b5f602082840312156120f6576120f5611ed3565b5b5f61210384828501611f47565b91505092915050565b61211581611f99565b811461211f575f80fd5b50565b5f813590506121308161210c565b92915050565b5f806040838503121561214c5761214b611ed3565b5b5f61215985828601611f1d565b925050602061216a85828601612122565b9150509250929050565b5f806040838503121561218a57612189611ed3565b5b5f61219785828601611f1d565b92505060206121a885828601611f1d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806121f657607f821691505b602082108103612209576122086121b2565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224682611ea2565b915061225183611ea2565b92508282019050808211156122695761226861220f565b5b92915050565b5f8160011c9050919050565b5f808291508390505b60018511156122c4578086048111156122a05761229f61220f565b5b60018516156122af5780820291505b80810290506122bd8561226f565b9450612284565b94509492505050565b5f826122dc5760019050612397565b816122e9575f9050612397565b81600181146122ff576002811461230957612338565b6001915050612397565b60ff84111561231b5761231a61220f565b5b8360020a9150848211156123325761233161220f565b5b50612397565b5060208310610133831016604e8410600b841016171561236d5782820a9050838111156123685761236761220f565b5b612397565b61237a848484600161227b565b925090508184048111156123915761239061220f565b5b81810290505b9392505050565b5f6123a882611ea2565b91506123b38361201c565b92506123e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122cd565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61241f82611ea2565b915061242a83611ea2565b92508261243a576124396123e8565b5b828204905092915050565b5f8151905061245381611f07565b92915050565b5f6020828403121561246e5761246d611ed3565b5b5f61247b84828501612445565b91505092915050565b5f6040820190506124975f830185612050565b6124a46020830184612050565b9392505050565b5f6124b582611ea2565b91506124c083611ea2565b92508282026124ce81611ea2565b915082820484148315176124e5576124e461220f565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612546602583611e1c565b9150612551826124ec565b604082019050919050565b5f6020820190508181035f8301526125738161253a565b9050919050565b5f819050919050565b5f819050919050565b5f6125a66125a161259c8461257a565b612583565b611ea2565b9050919050565b6125b68161258c565b82525050565b5f60c0820190506125cf5f830189612050565b6125dc6020830188611eab565b6125e960408301876125ad565b6125f660608301866125ad565b6126036080830185612050565b61261060a0830184611eab565b979650505050505050565b5f8151905061262981611f31565b92915050565b5f805f6060848603121561264657612645611ed3565b5b5f6126538682870161261b565b93505060206126648682870161261b565b92505060406126758682870161261b565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6126d9602683611e1c565b91506126e48261267f565b604082019050919050565b5f6020820190508181035f830152612706816126cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612767602483611e1c565b91506127728261270d565b604082019050919050565b5f6020820190508181035f8301526127948161275b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6127f5602283611e1c565b91506128008261279b565b604082019050919050565b5f6020820190508181035f830152612822816127e9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61285d602083611e1c565b915061286882612829565b602082019050919050565b5f6020820190508181035f83015261288a81612851565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6128c5601d83611e1c565b91506128d082612891565b602082019050919050565b5f6020820190508181035f8301526128f2816128b9565b9050919050565b7f4d4158205458204c494d495400000000000000000000000000000000000000005f82015250565b5f61292d600c83611e1c565b9150612938826128f9565b602082019050919050565b5f6020820190508181035f83015261295a81612921565b9050919050565b5f61296b82611ea2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299d5761299c61220f565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f6129dc602083611e1c565b91506129e7826129a8565b602082019050919050565b5f6020820190508181035f830152612a09816129d0565b9050919050565b5f612a1a82611ea2565b9150612a2583611ea2565b9250828203905081811115612a3d57612a3c61220f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612acf81611ef6565b82525050565b5f612ae08383612ac6565b60208301905092915050565b5f602082019050919050565b5f612b0282612a9d565b612b0c8185612aa7565b9350612b1783612ab7565b805f5b83811015612b47578151612b2e8882612ad5565b9750612b3983612aec565b925050600181019050612b1a565b5085935050505092915050565b5f60a082019050612b675f830188611eab565b612b7460208301876125ad565b8181036040830152612b868186612af8565b9050612b956060830185612050565b612ba26080830184611eab565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c06602583611e1c565b9150612c1182612bac565b604082019050919050565b5f6020820190508181035f830152612c3381612bfa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c94602383611e1c565b9150612c9f82612c3a565b604082019050919050565b5f6020820190508181035f830152612cc181612c88565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612d22602683611e1c565b9150612d2d82612cc8565b604082019050919050565b5f6020820190508181035f830152612d4f81612d16565b905091905056fea2646970667358221220d63fc1a7cba2f007ef50c92c76153762b39b440b36939d7102f303b5f02af25864736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101e6575f3560e01c80639be67ca611610101578063c8c8ebe411610094578063da81a85a11610063578063da81a85a14610685578063db05e5cb1461069b578063dd62ed3e146106b1578063f2fde38b146106ed576101ed565b8063c8c8ebe414610607578063c9567bf914610631578063d579d4ed14610647578063d7acde1f1461065d576101ed565b8063a9e282b8116100d0578063a9e282b814610553578063aca2cd6e1461057b578063ad5dff73146105a3578063bc337182146105df576101ed565b80639be67ca61461049b578063a457c2d7146104b1578063a508de62146104ed578063a9059cbb14610517576101ed565b806349bd5a5e1161017957806370a082311161014857806370a08231146103f5578063715018a6146104315780638da5cb5b1461044757806395d89b4114610471576101ed565b806349bd5a5e146103635780634b203e1b1461038d5780634fab9e4c146103b7578063667f6526146103cd576101ed565b8063184619d3116101b5578063184619d3146102ab57806323b872dd146102c1578063313ce567146102fd5780633950935114610327576101ed565b806306fdde03146101f1578063084cf6151461021b578063095ea7b31461024557806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610715565b6040516102129190611e82565b60405180910390f35b348015610226575f80fd5b5061022f6107a5565b60405161023c9190611eba565b60405180910390f35b348015610250575f80fd5b5061026b60048036038101906102669190611f5b565b6107ab565b6040516102789190611fb3565b60405180910390f35b34801561028c575f80fd5b506102956107cd565b6040516102a29190611eba565b60405180910390f35b3480156102b6575f80fd5b506102bf6107d6565b005b3480156102cc575f80fd5b506102e760048036038101906102e29190611fcc565b6107fa565b6040516102f49190611fb3565b60405180910390f35b348015610308575f80fd5b50610311610828565b60405161031e9190612037565b60405180910390f35b348015610332575f80fd5b5061034d60048036038101906103489190611f5b565b610830565b60405161035a9190611fb3565b60405180910390f35b34801561036e575f80fd5b50610377610866565b604051610384919061205f565b60405180910390f35b348015610398575f80fd5b506103a161088b565b6040516103ae9190611eba565b60405180910390f35b3480156103c2575f80fd5b506103cb6108b2565b005b3480156103d8575f80fd5b506103f360048036038101906103ee9190612078565b610a90565b005b348015610400575f80fd5b5061041b600480360381019061041691906120b6565b610ac2565b6040516104289190611eba565b60405180910390f35b34801561043c575f80fd5b50610445610b07565b005b348015610452575f80fd5b5061045b610b1a565b604051610468919061205f565b60405180910390f35b34801561047c575f80fd5b50610485610b42565b6040516104929190611e82565b60405180910390f35b3480156104a6575f80fd5b506104af610bd2565b005b3480156104bc575f80fd5b506104d760048036038101906104d29190611f5b565b610c44565b6040516104e49190611fb3565b60405180910390f35b3480156104f8575f80fd5b50610501610cb9565b60405161050e9190611eba565b60405180910390f35b348015610522575f80fd5b5061053d60048036038101906105389190611f5b565b610ce0565b60405161054a9190611fb3565b60405180910390f35b34801561055e575f80fd5b50610579600480360381019061057491906120e1565b610d02565b005b348015610586575f80fd5b506105a1600480360381019061059c9190612136565b610d94565b005b3480156105ae575f80fd5b506105c960048036038101906105c491906120b6565b610df4565b6040516105d69190611fb3565b60405180910390f35b3480156105ea575f80fd5b50610605600480360381019061060091906120e1565b610e11565b005b348015610612575f80fd5b5061061b610e41565b6040516106289190611eba565b60405180910390f35b34801561063c575f80fd5b50610645610e47565b005b348015610652575f80fd5b5061065b610f7b565b005b348015610668575f80fd5b50610683600480360381019061067e91906120e1565b610fe2565b005b348015610690575f80fd5b50610699611074565b005b3480156106a6575f80fd5b506106af6110cb565b005b3480156106bc575f80fd5b506106d760048036038101906106d29190612174565b6110e3565b6040516106e49190611eba565b60405180910390f35b3480156106f8575f80fd5b50610713600480360381019061070e91906120b6565b611165565b005b606060038054610724906121df565b80601f0160208091040260200160405190810160405280929190818152602001828054610750906121df565b801561079b5780601f106107725761010080835404028352916020019161079b565b820191905f5260205f20905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b60105481565b5f806107b56111e7565b90506107c28185856111ee565b600191505092915050565b5f600254905090565b6107de6113b1565b5f601160016101000a81548160ff021916908315150217905550565b5f806108046111e7565b905061081185828561142f565b61081c8585856114ba565b60019150509392505050565b5f6012905090565b5f8061083a6111e7565b905061085b81858561084c85896110e3565b610856919061223c565b6111ee565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610894610828565b600a6108a0919061239e565b6015546108ad9190612415565b905090565b6108ba6113b1565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109489190612459565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f29190612459565b6040518363ffffffff1660e01b8152600401610a0f929190612484565b6020604051808303815f875af1158015610a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4f9190612459565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a986113b1565b601582108015610aa85750601581105b610ab0575f80fd5b80600781905550816006819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0f6113b1565b610b185f611837565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b51906121df565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7d906121df565b8015610bc85780601f10610b9f57610100808354040283529160200191610bc8565b820191905f5260205f20905b815481529060010190602001808311610bab57829003601f168201915b5050505050905090565b610bda6113b1565b5f6064603247610bea91906124ab565b610bf49190612415565b9050610bfe610b1a565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c40573d5f803e3d5ffd5b5050565b5f80610c4e6111e7565b90505f610c5b82866110e3565b905083811015610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c979061255c565b60405180910390fd5b610cad82868684036111ee565b60019250505092915050565b5f610cc2610828565b600a610cce919061239e565b601654610cdb9190612415565b905090565b5f80610cea6111e7565b9050610cf78185856114ba565b600191505092915050565b610d0a6113b1565b5f6103e86001610d186107cd565b610d2291906124ab565b610d2c9190612415565b90505f6127106005610d3c6107cd565b610d4691906124ab565b610d509190612415565b905081831115610d5e575f80fd5b80831015610d6a575f80fd5b610d72610828565b600a610d7e919061239e565b83610d8991906124ab565b601581905550505050565b610d9c6113b1565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610e196113b1565b610e21610828565b600a610e2d919061239e565b81610e3891906124ab565b600f8190555050565b600f5481565b610e4f6113b1565b5f60646050610e5d30610ac2565b610e6791906124ab565b610e719190612415565b9050610ea73060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ea230610ac2565b6111ee565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610ef1610b1a565b426040518863ffffffff1660e01b8152600401610f13969594939291906125bc565b60606040518083038185885af1158015610f2f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f54919061262f565b505050600160115f6101000a81548160ff0219169083151502179055504360128190555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fdf573d5f803e3d5ffd5b50565b610fea6113b1565b5f6103e86005610ff86107cd565b61100291906124ab565b61100c9190612415565b90505f6103e8600261101c6107cd565b61102691906124ab565b6110309190612415565b90508183111561103e575f80fd5b8083101561104a575f80fd5b611052610828565b600a61105e919061239e565b8361106991906124ab565b601681905550505050565b61107c6113b1565b60185f9054906101000a900460ff16156110ae575f60185f6101000a81548160ff0219169083151502179055506110c9565b600160185f6101000a81548160ff0219169083151502179055505b565b6110d36113b1565b6110db6107cd565b600f81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61116d6113b1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906126ef565b60405180910390fd5b6111e481611837565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112539061277d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c19061280b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113a49190611eba565b60405180910390a3505050565b6113b96111e7565b73ffffffffffffffffffffffffffffffffffffffff166113d7610b1a565b73ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612873565b60405180910390fd5b565b5f61143a84846110e3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114b457818110156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906128db565b60405180910390fd5b6114b384848484036111ee565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115585750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118265760115f9054906101000a900460ff16611574575f80fd5b5f601160019054906101000a900460ff16801561159357504360125414155b156115e2576010548211156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612943565b60405180910390fd5b611628565b600f54821115611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90612943565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170f5760075490505f61168b30610ac2565b9050601554811180156116aa575060185f9054906101000a900460ff16155b15611709576013544311156116c1575f6014819055505b600360145410156117085760145f8154809291906116de90612961565b9190505550436013819055506117076117026016546116fd86856118fa565b6118fa565b611912565b5b5b506117d5565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117d457600654905060125443036117d35760175f81548092919061178390612961565b919050555060149050600f60175411156117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c9906129f2565b60405180910390fd5b5b5b5b5f606482846117e491906124ab565b6117ee9190612415565b90505f81846117fd9190612a10565b90505f82111561181357611812863084611b9c565b5b61181e868683611b9c565b505050611832565b611831838383611b9c565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818311611908578261190a565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055506119583060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836111ee565b5f600267ffffffffffffffff81111561197457611973612a43565b5b6040519080825280602002602001820160405280156119a25781602001602082028036833780820191505090505b50905030815f815181106119b9576119b8612a70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a819190612459565b81600181518110611a9557611a94612a70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b52959493929190612b54565b5f604051808303815f87803b158015611b69575f80fd5b505af1158015611b7b573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0190612c1c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f90612caa565b60405180910390fd5b611c83838383611e08565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfd90612d38565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611def9190611eba565b60405180910390a3611e02848484611e0d565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e5482611e12565b611e5e8185611e1c565b9350611e6e818560208601611e2c565b611e7781611e3a565b840191505092915050565b5f6020820190508181035f830152611e9a8184611e4a565b905092915050565b5f819050919050565b611eb481611ea2565b82525050565b5f602082019050611ecd5f830184611eab565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0082611ed7565b9050919050565b611f1081611ef6565b8114611f1a575f80fd5b50565b5f81359050611f2b81611f07565b92915050565b611f3a81611ea2565b8114611f44575f80fd5b50565b5f81359050611f5581611f31565b92915050565b5f8060408385031215611f7157611f70611ed3565b5b5f611f7e85828601611f1d565b9250506020611f8f85828601611f47565b9150509250929050565b5f8115159050919050565b611fad81611f99565b82525050565b5f602082019050611fc65f830184611fa4565b92915050565b5f805f60608486031215611fe357611fe2611ed3565b5b5f611ff086828701611f1d565b935050602061200186828701611f1d565b925050604061201286828701611f47565b9150509250925092565b5f60ff82169050919050565b6120318161201c565b82525050565b5f60208201905061204a5f830184612028565b92915050565b61205981611ef6565b82525050565b5f6020820190506120725f830184612050565b92915050565b5f806040838503121561208e5761208d611ed3565b5b5f61209b85828601611f47565b92505060206120ac85828601611f47565b9150509250929050565b5f602082840312156120cb576120ca611ed3565b5b5f6120d884828501611f1d565b91505092915050565b5f602082840312156120f6576120f5611ed3565b5b5f61210384828501611f47565b91505092915050565b61211581611f99565b811461211f575f80fd5b50565b5f813590506121308161210c565b92915050565b5f806040838503121561214c5761214b611ed3565b5b5f61215985828601611f1d565b925050602061216a85828601612122565b9150509250929050565b5f806040838503121561218a57612189611ed3565b5b5f61219785828601611f1d565b92505060206121a885828601611f1d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806121f657607f821691505b602082108103612209576122086121b2565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224682611ea2565b915061225183611ea2565b92508282019050808211156122695761226861220f565b5b92915050565b5f8160011c9050919050565b5f808291508390505b60018511156122c4578086048111156122a05761229f61220f565b5b60018516156122af5780820291505b80810290506122bd8561226f565b9450612284565b94509492505050565b5f826122dc5760019050612397565b816122e9575f9050612397565b81600181146122ff576002811461230957612338565b6001915050612397565b60ff84111561231b5761231a61220f565b5b8360020a9150848211156123325761233161220f565b5b50612397565b5060208310610133831016604e8410600b841016171561236d5782820a9050838111156123685761236761220f565b5b612397565b61237a848484600161227b565b925090508184048111156123915761239061220f565b5b81810290505b9392505050565b5f6123a882611ea2565b91506123b38361201c565b92506123e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122cd565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61241f82611ea2565b915061242a83611ea2565b92508261243a576124396123e8565b5b828204905092915050565b5f8151905061245381611f07565b92915050565b5f6020828403121561246e5761246d611ed3565b5b5f61247b84828501612445565b91505092915050565b5f6040820190506124975f830185612050565b6124a46020830184612050565b9392505050565b5f6124b582611ea2565b91506124c083611ea2565b92508282026124ce81611ea2565b915082820484148315176124e5576124e461220f565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612546602583611e1c565b9150612551826124ec565b604082019050919050565b5f6020820190508181035f8301526125738161253a565b9050919050565b5f819050919050565b5f819050919050565b5f6125a66125a161259c8461257a565b612583565b611ea2565b9050919050565b6125b68161258c565b82525050565b5f60c0820190506125cf5f830189612050565b6125dc6020830188611eab565b6125e960408301876125ad565b6125f660608301866125ad565b6126036080830185612050565b61261060a0830184611eab565b979650505050505050565b5f8151905061262981611f31565b92915050565b5f805f6060848603121561264657612645611ed3565b5b5f6126538682870161261b565b93505060206126648682870161261b565b92505060406126758682870161261b565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6126d9602683611e1c565b91506126e48261267f565b604082019050919050565b5f6020820190508181035f830152612706816126cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612767602483611e1c565b91506127728261270d565b604082019050919050565b5f6020820190508181035f8301526127948161275b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6127f5602283611e1c565b91506128008261279b565b604082019050919050565b5f6020820190508181035f830152612822816127e9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61285d602083611e1c565b915061286882612829565b602082019050919050565b5f6020820190508181035f83015261288a81612851565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6128c5601d83611e1c565b91506128d082612891565b602082019050919050565b5f6020820190508181035f8301526128f2816128b9565b9050919050565b7f4d4158205458204c494d495400000000000000000000000000000000000000005f82015250565b5f61292d600c83611e1c565b9150612938826128f9565b602082019050919050565b5f6020820190508181035f83015261295a81612921565b9050919050565b5f61296b82611ea2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299d5761299c61220f565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f6129dc602083611e1c565b91506129e7826129a8565b602082019050919050565b5f6020820190508181035f830152612a09816129d0565b9050919050565b5f612a1a82611ea2565b9150612a2583611ea2565b9250828203905081811115612a3d57612a3c61220f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612acf81611ef6565b82525050565b5f612ae08383612ac6565b60208301905092915050565b5f602082019050919050565b5f612b0282612a9d565b612b0c8185612aa7565b9350612b1783612ab7565b805f5b83811015612b47578151612b2e8882612ad5565b9750612b3983612aec565b925050600181019050612b1a565b5085935050505092915050565b5f60a082019050612b675f830188611eab565b612b7460208301876125ad565b8181036040830152612b868186612af8565b9050612b956060830185612050565b612ba26080830184611eab565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c06602583611e1c565b9150612c1182612bac565b604082019050919050565b5f6020820190508181035f830152612c3381612bfa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c94602383611e1c565b9150612c9f82612c3a565b604082019050919050565b5f6020820190508181035f830152612cc181612c88565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612d22602683611e1c565b9150612d2d82612cc8565b604082019050919050565b5f6020820190508181035f830152612d4f81612d16565b905091905056fea2646970667358221220d63fc1a7cba2f007ef50c92c76153762b39b440b36939d7102f303b5f02af25864736f6c634300081a0033
Deployed Bytecode Sourcemap
9030:7947:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1889:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9642:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2873:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2204:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13370:88;;;;;;;;;;;;;:::i;:::-;;3105:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2105:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9192:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12243:256;;;;;;;;;;;;;:::i;:::-;;15983:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2318:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7658:103;;;;;;;;;;;;;:::i;:::-;;7427:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1995:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16427:168;;;;;;;;;;;;;:::i;:::-;;3675:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13466:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2467:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12855:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16717:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9227:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16186:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9600:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:763;;;;;;;;;;;;;:::i;:::-;;16603:106;;;;;;;;;;;;;:::i;:::-;;12507:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13202:160;;;;;;;;;;;;;:::i;:::-;;16318:101;;;;;;;;;;;;;:::i;:::-;;2691:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1889:100;1943:13;1976:5;1969:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1889:100;:::o;9642:26::-;;;;:::o;2873:226::-;2981:4;2998:13;3014:12;:10;:12::i;:::-;2998:28;;3037:32;3046:5;3053:7;3062:6;3037:8;:32::i;:::-;3087:4;3080:11;;;2873:226;;;;:::o;2204:108::-;2265:7;2292:12;;2285:19;;2204:108;:::o;13370:88::-;7388:13;:11;:13::i;:::-;13445:5:::1;13432:10;;:18;;;;;;;;;;;;;;;;;;13370:88::o:0;3105:295::-;3236:4;3253:15;3271:12;:10;:12::i;:::-;3253:30;;3294:38;3310:4;3316:7;3325:6;3294:15;:38::i;:::-;3343:27;3353:4;3359:2;3363:6;3343:9;:27::i;:::-;3388:4;3381:11;;;3105:295;;;;;:::o;2105:93::-;2163:5;2188:2;2181:9;;2105:93;:::o;3406:263::-;3519:4;3536:13;3552:12;:10;:12::i;:::-;3536:28;;3575:64;3584:5;3591:7;3628:10;3600:25;3610:5;3617:7;3600:9;:25::i;:::-;:38;;;;:::i;:::-;3575:8;:64::i;:::-;3657:4;3650:11;;;3406:263;;;;:::o;9192:28::-;;;;;;;;;;;;;:::o;12129:106::-;12174:7;12217:10;:8;:10::i;:::-;12211:2;:16;;;;:::i;:::-;12201:7;;:26;;;;:::i;:::-;12194:33;;12129:106;:::o;12243:256::-;7388:13;:11;:13::i;:::-;12355:15:::1;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12337:55;;;12419:4;12443:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12337:143;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12299:13;;:192;;;;;;;;;;;;;;;;;;12243:256::o:0;15983:195::-;7388:13;:11;:13::i;:::-;16088:2:::1;16076:9;:14;:33;;;;;16107:2;16094:10;:15;16076:33;16068:42;;;::::0;::::1;;16131:10;16121:7;:20;;;;16161:9;16152:6;:18;;;;15983:195:::0;;:::o;2318:143::-;2408:7;2435:9;:18;2445:7;2435:18;;;;;;;;;;;;;;;;2428:25;;2318:143;;;:::o;7658:103::-;7388:13;:11;:13::i;:::-;7723:30:::1;7750:1;7723:18;:30::i;:::-;7658:103::o:0;7427:87::-;7473:7;7500:6;;;;;;;;;;;7493:13;;7427:87;:::o;1995:104::-;2051:13;2084:7;2077:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1995:104;:::o;16427:168::-;7388:13;:11;:13::i;:::-;16490:15:::1;16539:3;16533:2;16509:21;:26;;;;:::i;:::-;16508:34;;;;:::i;:::-;16490:52;;16561:7;:5;:7::i;:::-;16553:25;;:34;16579:7;16553:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16479:116;16427:168::o:0;3675:498::-;3793:4;3810:13;3826:12;:10;:12::i;:::-;3810:28;;3849:24;3876:25;3886:5;3893:7;3876:9;:25::i;:::-;3849:52;;3954:15;3934:16;:35;;3912:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4070:60;4079:5;4086:7;4114:15;4095:16;:34;4070:8;:60::i;:::-;4161:4;4154:11;;;;3675:498;;;;:::o;13466:106::-;13511:7;13554:10;:8;:10::i;:::-;13548:2;:16;;;;:::i;:::-;13538:7;;:26;;;;:::i;:::-;13531:33;;13466:106;:::o;2467:218::-;2571:4;2588:13;2604:12;:10;:12::i;:::-;2588:28;;2627;2637:5;2644:2;2648:6;2627:9;:28::i;:::-;2673:4;2666:11;;;2467:218;;;;:::o;12855:339::-;7388:13;:11;:13::i;:::-;12923:12:::1;12960:4;12955:1;12939:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12938:26;;;;:::i;:::-;12923:41;;12999:12;13036:5;13031:1;13015:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13014:27;;;;:::i;:::-;12999:42;;13097:4;13085:8;:16;;13077:25;;;::::0;::::1;;13133:4;13121:8;:16;;13113:25;;;::::0;::::1;;13176:10;:8;:10::i;:::-;13170:2;:16;;;;:::i;:::-;13159:8;:27;;;;:::i;:::-;13149:7;:37;;;;12912:282;;12855:339:::0;:::o;16717:220::-;7388:13;:11;:13::i;:::-;16922:7:::1;16901:8;:18;16910:8;16901:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16717:220:::0;;:::o;9227:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;16186:124::-;7388:13;:11;:13::i;:::-;16292:10:::1;:8;:10::i;:::-;16286:2;:16;;;;:::i;:::-;16275:8;:27;;;;:::i;:::-;16252:20;:50;;;;16186:124:::0;:::o;9600:35::-;;;;:::o;11358:763::-;7388:13;:11;:13::i;:::-;11411:17:::1;11465:3;11459:2;11432:24;11450:4;11432:9;:24::i;:::-;:29;;;;:::i;:::-;11431:37;;;;:::i;:::-;11411:57;;11481:125;11512:4;11540:15;;;;;;;;;;;11571:24;11589:4;11571:9;:24::i;:::-;11481:8;:125::i;:::-;11842:15;;;;;;;;;;;:31;;;11881:21;11926:4;11946:9;11970:1;11986::::0;12002:7:::1;:5;:7::i;:::-;12024:15;11842:208;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12072:4;12063:6;;:13;;;;;;;;;;;;;;;;;;12101:12;12087:11;:26;;;;11400:721;11358:763::o:0;16603:106::-;16652:16;;;;;;;;;;;16644:34;;:57;16679:21;16644:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16603:106::o;12507:340::-;7388:13;:11;:13::i;:::-;12577:12:::1;12614:4;12609:1;12593:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12592:26;;;;:::i;:::-;12577:41;;12653:12;12690:4;12685:1;12669:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12668:26;;;;:::i;:::-;12653:41;;12750:4;12738:8;:16;;12730:25;;;::::0;::::1;;12786:4;12774:8;:16;;12766:25;;;::::0;::::1;;12829:10;:8;:10::i;:::-;12823:2;:16;;;;:::i;:::-;12812:8;:27;;;;:::i;:::-;12802:7;:37;;;;12566:281;;12507:340:::0;:::o;13202:160::-;7388:13;:11;:13::i;:::-;13260:6:::1;;;;;;;;;;;13256:99;;;13292:5;13283:6;;:14;;;;;;;;;;;;;;;;;;13256:99;;;13339:4;13330:6;;:13;;;;;;;;;;;;;;;;;;13256:99;13202:160::o:0;16318:101::-;7388:13;:11;:13::i;:::-;16398::::1;:11;:13::i;:::-;16375:20;:36;;;;16318:101::o:0;2691:176::-;2805:7;2832:11;:18;2844:5;2832:18;;;;;;;;;;;;;;;:27;2851:7;2832:27;;;;;;;;;;;;;;;;2825:34;;2691:176;;;;:::o;7767:238::-;7388:13;:11;:13::i;:::-;7890:1:::1;7870:22;;:8;:22;;::::0;7848:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7969:28;7988:8;7969:18;:28::i;:::-;7767:238:::0;:::o;1273:98::-;1326:7;1353:10;1346:17;;1273:98;:::o;5939:380::-;6092:1;6075:19;;:5;:19;;;6067:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6173:1;6154:21;;:7;:21;;;6146:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6257:6;6227:11;:18;6239:5;6227:18;;;;;;;;;;;;;;;:27;6246:7;6227:27;;;;;;;;;;;;;;;:36;;;;6295:7;6279:32;;6288:5;6279:32;;;6304:6;6279:32;;;;;;:::i;:::-;;;;;;;;5939:380;;;:::o;7520:132::-;7595:12;:10;:12::i;:::-;7584:23;;:7;:5;:7::i;:::-;:23;;;7576:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7520:132::o;6325:502::-;6460:24;6487:25;6497:5;6504:7;6487:9;:25::i;:::-;6460:52;;6547:17;6527:16;:37;6523:297;;6627:6;6607:16;:26;;6581:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;6742:51;6751:5;6758:7;6786:6;6767:16;:25;6742:8;:51::i;:::-;6523:297;6449:378;6325:502;;;:::o;14068:1792::-;14204:8;:14;14213:4;14204:14;;;;;;;;;;;;;;;;;;;;;;;;;14203:15;:32;;;;;14223:8;:12;14232:2;14223:12;;;;;;;;;;;;;;;;;;;;;;;;;14222:13;14203:32;14199:1611;;;14260:6;;;;;;;;;;;14252:15;;;;;;14282:11;14318:10;;;;;;;;;;;:41;;;;;14347:12;14332:11;;:27;;14318:41;14314:222;;;14397:11;;14388:5;:20;;14380:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14314:222;;;14483:20;;14474:5;:29;;14466:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14314:222;14562:13;;;;;;;;;;;14556:19;;:2;:19;;;14552:940;;14602:7;;14596:13;;14628:18;14649:24;14667:4;14649:9;:24::i;:::-;14628:45;;14709:7;;14696:10;:20;:31;;;;;14721:6;;;;;;;;;;;14720:7;14696:31;14692:413;;;14771:13;;14756:12;:28;14752:98;;;14825:1;14813:9;:13;;;;14752:98;14888:1;14876:9;;:13;14872:214;;;14918:9;;:11;;;;;;;;;:::i;:::-;;;;;;14972:12;14956:13;:28;;;;15011:51;15025:36;15029:7;;15038:22;15042:5;15049:10;15038:3;:22::i;:::-;15025:3;:36::i;:::-;15011:13;:51::i;:::-;14872:214;14692:413;14577:543;14552:940;;;15138:13;;;;;;;;;;;15130:21;;:4;:21;;;15126:366;;15178:6;;15172:12;;15223:11;;15207:12;:27;15203:274;;15259:9;;:11;;;;;;;;;:::i;:::-;;;;;;15299:2;15293:8;;15371:2;15358:9;;:15;;15324:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15203:274;15126:366;14552:940;15508:17;15544:3;15537;15529:5;:11;;;;:::i;:::-;15528:19;;;;:::i;:::-;15508:39;;15562:22;15595:9;15587:5;:17;;;;:::i;:::-;15562:42;;15637:1;15625:9;:13;15621:101;;;15659:47;15675:4;15689;15696:9;15659:15;:47::i;:::-;15621:101;15736:41;15752:4;15758:2;15762:14;15736:15;:41::i;:::-;15792:7;;;;;14199:1611;15820:32;15836:4;15842:2;15846:5;15820:15;:32::i;:::-;14068:1792;;;;:::o;8011:191::-;8085:16;8104:6;;;;;;;;;;;8085:25;;8130:8;8121:6;;:17;;;;;;;;;;;;;;;;;;8185:8;8154:40;;8175:8;8154:40;;;;;;;;;;;;8074:128;8011:191;:::o;15868:107::-;15925:7;15957:1;15953;:5;15952:15;;15966:1;15952:15;;;15962:1;15952:15;15945:22;;15868:107;;;;:::o;13580:480::-;10013:4;10004:6;;:13;;;;;;;;;;;;;;;;;;13656:62:::1;13673:4;13688:15;;;;;;;;;;;13706:11;13656:8;:62::i;:::-;13731:21;13769:1;13755:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13731:40;;13800:4;13782;13787:1;13782:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13826:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13816:4;13821:1;13816:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13859:15;;;;;;;;;;;:66;;;13940:11;13966:1;13982:4;14001:10;;;;;;;;;;;14026:15;13859:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13645:415;10049:5:::0;10040:6;;:14;;;;;;;;;;;;;;;;;;13580:480;:::o;4179:712::-;4326:1;4310:18;;:4;:18;;;4302:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4403:1;4389:16;;:2;:16;;;4381:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4458:38;4479:4;4485:2;4489:6;4458:20;:38::i;:::-;4509:19;4531:9;:15;4541:4;4531:15;;;;;;;;;;;;;;;;4509:37;;4594:6;4579:11;:21;;4557:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;4734:6;4720:11;:20;4702:9;:15;4712:4;4702:15;;;;;;;;;;;;;;;:38;;;;4772:6;4755:9;:13;4765:2;4755:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;4822:2;4807:26;;4816:4;4807:26;;;4826:6;4807:26;;;;;;:::i;:::-;;;;;;;;4846:37;4866:4;4872:2;4876:6;4846:19;:37::i;:::-;4291:600;4179:712;;;:::o;6833:125::-;;;;:::o;6964:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:77::-;1279:7;1308:5;1297:16;;1242:77;;;:::o;1325:118::-;1412:24;1430:5;1412:24;:::i;:::-;1407:3;1400:37;1325:118;;:::o;1449:222::-;1542:4;1580:2;1569:9;1565:18;1557:26;;1593:71;1661:1;1650:9;1646:17;1637:6;1593:71;:::i;:::-;1449:222;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:474::-;5166:6;5174;5223:2;5211:9;5202:7;5198:23;5194:32;5191:119;;;5229:79;;:::i;:::-;5191:119;5349:1;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5320:117;5476:2;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;:::i;:::-;5492:63;;5447:118;5098:474;;;;;:::o;5578:329::-;5637:6;5686:2;5674:9;5665:7;5661:23;5657:32;5654:119;;;5692:79;;:::i;:::-;5654:119;5812:1;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5783:117;5578:329;;;;:::o;5913:::-;5972:6;6021:2;6009:9;6000:7;5996:23;5992:32;5989:119;;;6027:79;;:::i;:::-;5989:119;6147:1;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6118:117;5913:329;;;;:::o;6248:116::-;6318:21;6333:5;6318:21;:::i;:::-;6311:5;6308:32;6298:60;;6354:1;6351;6344:12;6298:60;6248:116;:::o;6370:133::-;6413:5;6451:6;6438:20;6429:29;;6467:30;6491:5;6467:30;:::i;:::-;6370:133;;;;:::o;6509:468::-;6574:6;6582;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6884:2;6910:50;6952:7;6943:6;6932:9;6928:22;6910:50;:::i;:::-;6900:60;;6855:115;6509:468;;;;;:::o;6983:474::-;7051:6;7059;7108:2;7096:9;7087:7;7083:23;7079:32;7076:119;;;7114:79;;:::i;:::-;7076:119;7234:1;7259:53;7304:7;7295:6;7284:9;7280:22;7259:53;:::i;:::-;7249:63;;7205:117;7361:2;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7332:118;6983:474;;;;;:::o;7463:180::-;7511:77;7508:1;7501:88;7608:4;7605:1;7598:15;7632:4;7629:1;7622:15;7649:320;7693:6;7730:1;7724:4;7720:12;7710:22;;7777:1;7771:4;7767:12;7798:18;7788:81;;7854:4;7846:6;7842:17;7832:27;;7788:81;7916:2;7908:6;7905:14;7885:18;7882:38;7879:84;;7935:18;;:::i;:::-;7879:84;7700:269;7649:320;;;:::o;7975:180::-;8023:77;8020:1;8013:88;8120:4;8117:1;8110:15;8144:4;8141:1;8134:15;8161:191;8201:3;8220:20;8238:1;8220:20;:::i;:::-;8215:25;;8254:20;8272:1;8254:20;:::i;:::-;8249:25;;8297:1;8294;8290:9;8283:16;;8318:3;8315:1;8312:10;8309:36;;;8325:18;;:::i;:::-;8309:36;8161:191;;;;:::o;8358:102::-;8400:8;8447:5;8444:1;8440:13;8419:34;;8358:102;;;:::o;8466:848::-;8527:5;8534:4;8558:6;8549:15;;8582:5;8573:14;;8596:712;8617:1;8607:8;8604:15;8596:712;;;8712:4;8707:3;8703:14;8697:4;8694:24;8691:50;;;8721:18;;:::i;:::-;8691:50;8771:1;8761:8;8757:16;8754:451;;;9186:4;9179:5;9175:16;9166:25;;8754:451;9236:4;9230;9226:15;9218:23;;9266:32;9289:8;9266:32;:::i;:::-;9254:44;;8596:712;;;8466:848;;;;;;;:::o;9320:1073::-;9374:5;9565:8;9555:40;;9586:1;9577:10;;9588:5;;9555:40;9614:4;9604:36;;9631:1;9622:10;;9633:5;;9604:36;9700:4;9748:1;9743:27;;;;9784:1;9779:191;;;;9693:277;;9743:27;9761:1;9752:10;;9763:5;;;9779:191;9824:3;9814:8;9811:17;9808:43;;;9831:18;;:::i;:::-;9808:43;9880:8;9877:1;9873:16;9864:25;;9915:3;9908:5;9905:14;9902:40;;;9922:18;;:::i;:::-;9902:40;9955:5;;;9693:277;;10079:2;10069:8;10066:16;10060:3;10054:4;10051:13;10047:36;10029:2;10019:8;10016:16;10011:2;10005:4;10002:12;9998:35;9982:111;9979:246;;;10135:8;10129:4;10125:19;10116:28;;10170:3;10163:5;10160:14;10157:40;;;10177:18;;:::i;:::-;10157:40;10210:5;;9979:246;10250:42;10288:3;10278:8;10272:4;10269:1;10250:42;:::i;:::-;10235:57;;;;10324:4;10319:3;10315:14;10308:5;10305:25;10302:51;;;10333:18;;:::i;:::-;10302:51;10382:4;10375:5;10371:16;10362:25;;9320:1073;;;;;;:::o;10399:281::-;10457:5;10481:23;10499:4;10481:23;:::i;:::-;10473:31;;10525:25;10541:8;10525:25;:::i;:::-;10513:37;;10569:104;10606:66;10596:8;10590:4;10569:104;:::i;:::-;10560:113;;10399:281;;;;:::o;10686:180::-;10734:77;10731:1;10724:88;10831:4;10828:1;10821:15;10855:4;10852:1;10845:15;10872:185;10912:1;10929:20;10947:1;10929:20;:::i;:::-;10924:25;;10963:20;10981:1;10963:20;:::i;:::-;10958:25;;11002:1;10992:35;;11007:18;;:::i;:::-;10992:35;11049:1;11046;11042:9;11037:14;;10872:185;;;;:::o;11063:143::-;11120:5;11151:6;11145:13;11136:22;;11167:33;11194:5;11167:33;:::i;:::-;11063:143;;;;:::o;11212:351::-;11282:6;11331:2;11319:9;11310:7;11306:23;11302:32;11299:119;;;11337:79;;:::i;:::-;11299:119;11457:1;11482:64;11538:7;11529:6;11518:9;11514:22;11482:64;:::i;:::-;11472:74;;11428:128;11212:351;;;;:::o;11569:332::-;11690:4;11728:2;11717:9;11713:18;11705:26;;11741:71;11809:1;11798:9;11794:17;11785:6;11741:71;:::i;:::-;11822:72;11890:2;11879:9;11875:18;11866:6;11822:72;:::i;:::-;11569:332;;;;;:::o;11907:410::-;11947:7;11970:20;11988:1;11970:20;:::i;:::-;11965:25;;12004:20;12022:1;12004:20;:::i;:::-;11999:25;;12059:1;12056;12052:9;12081:30;12099:11;12081:30;:::i;:::-;12070:41;;12260:1;12251:7;12247:15;12244:1;12241:22;12221:1;12214:9;12194:83;12171:139;;12290:18;;:::i;:::-;12171:139;11955:362;11907:410;;;;:::o;12323:224::-;12463:34;12459:1;12451:6;12447:14;12440:58;12532:7;12527:2;12519:6;12515:15;12508:32;12323:224;:::o;12553:366::-;12695:3;12716:67;12780:2;12775:3;12716:67;:::i;:::-;12709:74;;12792:93;12881:3;12792:93;:::i;:::-;12910:2;12905:3;12901:12;12894:19;;12553:366;;;:::o;12925:419::-;13091:4;13129:2;13118:9;13114:18;13106:26;;13178:9;13172:4;13168:20;13164:1;13153:9;13149:17;13142:47;13206:131;13332:4;13206:131;:::i;:::-;13198:139;;12925:419;;;:::o;13350:85::-;13395:7;13424:5;13413:16;;13350:85;;;:::o;13441:60::-;13469:3;13490:5;13483:12;;13441:60;;;:::o;13507:158::-;13565:9;13598:61;13616:42;13625:32;13651:5;13625:32;:::i;:::-;13616:42;:::i;:::-;13598:61;:::i;:::-;13585:74;;13507:158;;;:::o;13671:147::-;13766:45;13805:5;13766:45;:::i;:::-;13761:3;13754:58;13671:147;;:::o;13824:807::-;14073:4;14111:3;14100:9;14096:19;14088:27;;14125:71;14193:1;14182:9;14178:17;14169:6;14125:71;:::i;:::-;14206:72;14274:2;14263:9;14259:18;14250:6;14206:72;:::i;:::-;14288:80;14364:2;14353:9;14349:18;14340:6;14288:80;:::i;:::-;14378;14454:2;14443:9;14439:18;14430:6;14378:80;:::i;:::-;14468:73;14536:3;14525:9;14521:19;14512:6;14468:73;:::i;:::-;14551;14619:3;14608:9;14604:19;14595:6;14551:73;:::i;:::-;13824:807;;;;;;;;;:::o;14637:143::-;14694:5;14725:6;14719:13;14710:22;;14741:33;14768:5;14741:33;:::i;:::-;14637:143;;;;:::o;14786:663::-;14874:6;14882;14890;14939:2;14927:9;14918:7;14914:23;14910:32;14907:119;;;14945:79;;:::i;:::-;14907:119;15065:1;15090:64;15146:7;15137:6;15126:9;15122:22;15090:64;:::i;:::-;15080:74;;15036:128;15203:2;15229:64;15285:7;15276:6;15265:9;15261:22;15229:64;:::i;:::-;15219:74;;15174:129;15342:2;15368:64;15424:7;15415:6;15404:9;15400:22;15368:64;:::i;:::-;15358:74;;15313:129;14786:663;;;;;:::o;15455:225::-;15595:34;15591:1;15583:6;15579:14;15572:58;15664:8;15659:2;15651:6;15647:15;15640:33;15455:225;:::o;15686:366::-;15828:3;15849:67;15913:2;15908:3;15849:67;:::i;:::-;15842:74;;15925:93;16014:3;15925:93;:::i;:::-;16043:2;16038:3;16034:12;16027:19;;15686:366;;;:::o;16058:419::-;16224:4;16262:2;16251:9;16247:18;16239:26;;16311:9;16305:4;16301:20;16297:1;16286:9;16282:17;16275:47;16339:131;16465:4;16339:131;:::i;:::-;16331:139;;16058:419;;;:::o;16483:223::-;16623:34;16619:1;16611:6;16607:14;16600:58;16692:6;16687:2;16679:6;16675:15;16668:31;16483:223;:::o;16712:366::-;16854:3;16875:67;16939:2;16934:3;16875:67;:::i;:::-;16868:74;;16951:93;17040:3;16951:93;:::i;:::-;17069:2;17064:3;17060:12;17053:19;;16712:366;;;:::o;17084:419::-;17250:4;17288:2;17277:9;17273:18;17265:26;;17337:9;17331:4;17327:20;17323:1;17312:9;17308:17;17301:47;17365:131;17491:4;17365:131;:::i;:::-;17357:139;;17084:419;;;:::o;17509:221::-;17649:34;17645:1;17637:6;17633:14;17626:58;17718:4;17713:2;17705:6;17701:15;17694:29;17509:221;:::o;17736:366::-;17878:3;17899:67;17963:2;17958:3;17899:67;:::i;:::-;17892:74;;17975:93;18064:3;17975:93;:::i;:::-;18093:2;18088:3;18084:12;18077:19;;17736:366;;;:::o;18108:419::-;18274:4;18312:2;18301:9;18297:18;18289:26;;18361:9;18355:4;18351:20;18347:1;18336:9;18332:17;18325:47;18389:131;18515:4;18389:131;:::i;:::-;18381:139;;18108:419;;;:::o;18533:182::-;18673:34;18669:1;18661:6;18657:14;18650:58;18533:182;:::o;18721:366::-;18863:3;18884:67;18948:2;18943:3;18884:67;:::i;:::-;18877:74;;18960:93;19049:3;18960:93;:::i;:::-;19078:2;19073:3;19069:12;19062:19;;18721:366;;;:::o;19093:419::-;19259:4;19297:2;19286:9;19282:18;19274:26;;19346:9;19340:4;19336:20;19332:1;19321:9;19317:17;19310:47;19374:131;19500:4;19374:131;:::i;:::-;19366:139;;19093:419;;;:::o;19518:179::-;19658:31;19654:1;19646:6;19642:14;19635:55;19518:179;:::o;19703:366::-;19845:3;19866:67;19930:2;19925:3;19866:67;:::i;:::-;19859:74;;19942:93;20031:3;19942:93;:::i;:::-;20060:2;20055:3;20051:12;20044:19;;19703:366;;;:::o;20075:419::-;20241:4;20279:2;20268:9;20264:18;20256:26;;20328:9;20322:4;20318:20;20314:1;20303:9;20299:17;20292:47;20356:131;20482:4;20356:131;:::i;:::-;20348:139;;20075:419;;;:::o;20500:162::-;20640:14;20636:1;20628:6;20624:14;20617:38;20500:162;:::o;20668:366::-;20810:3;20831:67;20895:2;20890:3;20831:67;:::i;:::-;20824:74;;20907:93;20996:3;20907:93;:::i;:::-;21025:2;21020:3;21016:12;21009:19;;20668:366;;;:::o;21040:419::-;21206:4;21244:2;21233:9;21229:18;21221:26;;21293:9;21287:4;21283:20;21279:1;21268:9;21264:17;21257:47;21321:131;21447:4;21321:131;:::i;:::-;21313:139;;21040:419;;;:::o;21465:233::-;21504:3;21527:24;21545:5;21527:24;:::i;:::-;21518:33;;21573:66;21566:5;21563:77;21560:103;;21643:18;;:::i;:::-;21560:103;21690:1;21683:5;21679:13;21672:20;;21465:233;;;:::o;21704:182::-;21844:34;21840:1;21832:6;21828:14;21821:58;21704:182;:::o;21892:366::-;22034:3;22055:67;22119:2;22114:3;22055:67;:::i;:::-;22048:74;;22131:93;22220:3;22131:93;:::i;:::-;22249:2;22244:3;22240:12;22233:19;;21892:366;;;:::o;22264:419::-;22430:4;22468:2;22457:9;22453:18;22445:26;;22517:9;22511:4;22507:20;22503:1;22492:9;22488:17;22481:47;22545:131;22671:4;22545:131;:::i;:::-;22537:139;;22264:419;;;:::o;22689:194::-;22729:4;22749:20;22767:1;22749:20;:::i;:::-;22744:25;;22783:20;22801:1;22783:20;:::i;:::-;22778:25;;22827:1;22824;22820:9;22812:17;;22851:1;22845:4;22842:11;22839:37;;;22856:18;;:::i;:::-;22839:37;22689:194;;;;:::o;22889:180::-;22937:77;22934:1;22927:88;23034:4;23031:1;23024:15;23058:4;23055:1;23048:15;23075:180;23123:77;23120:1;23113:88;23220:4;23217:1;23210:15;23244:4;23241:1;23234:15;23261:114;23328:6;23362:5;23356:12;23346:22;;23261:114;;;:::o;23381:184::-;23480:11;23514:6;23509:3;23502:19;23554:4;23549:3;23545:14;23530:29;;23381:184;;;;:::o;23571:132::-;23638:4;23661:3;23653:11;;23691:4;23686:3;23682:14;23674:22;;23571:132;;;:::o;23709:108::-;23786:24;23804:5;23786:24;:::i;:::-;23781:3;23774:37;23709:108;;:::o;23823:179::-;23892:10;23913:46;23955:3;23947:6;23913:46;:::i;:::-;23991:4;23986:3;23982:14;23968:28;;23823:179;;;;:::o;24008:113::-;24078:4;24110;24105:3;24101:14;24093:22;;24008:113;;;:::o;24157:732::-;24276:3;24305:54;24353:5;24305:54;:::i;:::-;24375:86;24454:6;24449:3;24375:86;:::i;:::-;24368:93;;24485:56;24535:5;24485:56;:::i;:::-;24564:7;24595:1;24580:284;24605:6;24602:1;24599:13;24580:284;;;24681:6;24675:13;24708:63;24767:3;24752:13;24708:63;:::i;:::-;24701:70;;24794:60;24847:6;24794:60;:::i;:::-;24784:70;;24640:224;24627:1;24624;24620:9;24615:14;;24580:284;;;24584:14;24880:3;24873:10;;24281:608;;;24157:732;;;;:::o;24895:831::-;25158:4;25196:3;25185:9;25181:19;25173:27;;25210:71;25278:1;25267:9;25263:17;25254:6;25210:71;:::i;:::-;25291:80;25367:2;25356:9;25352:18;25343:6;25291:80;:::i;:::-;25418:9;25412:4;25408:20;25403:2;25392:9;25388:18;25381:48;25446:108;25549:4;25540:6;25446:108;:::i;:::-;25438:116;;25564:72;25632:2;25621:9;25617:18;25608:6;25564:72;:::i;:::-;25646:73;25714:3;25703:9;25699:19;25690:6;25646:73;:::i;:::-;24895:831;;;;;;;;:::o;25732:224::-;25872:34;25868:1;25860:6;25856:14;25849:58;25941:7;25936:2;25928:6;25924:15;25917:32;25732:224;:::o;25962:366::-;26104:3;26125:67;26189:2;26184:3;26125:67;:::i;:::-;26118:74;;26201:93;26290:3;26201:93;:::i;:::-;26319:2;26314:3;26310:12;26303:19;;25962:366;;;:::o;26334:419::-;26500:4;26538:2;26527:9;26523:18;26515:26;;26587:9;26581:4;26577:20;26573:1;26562:9;26558:17;26551:47;26615:131;26741:4;26615:131;:::i;:::-;26607:139;;26334:419;;;:::o;26759:222::-;26899:34;26895:1;26887:6;26883:14;26876:58;26968:5;26963:2;26955:6;26951:15;26944:30;26759:222;:::o;26987:366::-;27129:3;27150:67;27214:2;27209:3;27150:67;:::i;:::-;27143:74;;27226:93;27315:3;27226:93;:::i;:::-;27344:2;27339:3;27335:12;27328:19;;26987:366;;;:::o;27359:419::-;27525:4;27563:2;27552:9;27548:18;27540:26;;27612:9;27606:4;27602:20;27598:1;27587:9;27583:17;27576:47;27640:131;27766:4;27640:131;:::i;:::-;27632:139;;27359:419;;;:::o;27784:225::-;27924:34;27920:1;27912:6;27908:14;27901:58;27993:8;27988:2;27980:6;27976:15;27969:33;27784:225;:::o;28015:366::-;28157:3;28178:67;28242:2;28237:3;28178:67;:::i;:::-;28171:74;;28254:93;28343:3;28254:93;:::i;:::-;28372:2;28367:3;28363:12;28356:19;;28015:366;;;:::o;28387:419::-;28553:4;28591:2;28580:9;28576:18;28568:26;;28640:9;28634:4;28630:20;28626:1;28615:9;28611:17;28604:47;28668:131;28794:4;28668:131;:::i;:::-;28660:139;;28387:419;;;:::o
Swarm Source
ipfs://d63fc1a7cba2f007ef50c92c76153762b39b440b36939d7102f303b5f02af258
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)