ERC-20
Overview
Max Total Supply
1,000,000 ALFA
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 Source Code Verified (Exact Match)
Contract Name:
AlfaVision
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-09-29
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
/*
Alfavision
Robotic AI vision spotting potential ALFA before the crowd on the Ethereum Mainnet.
Web: https://alfavisions.tech
Docs: https://alfavision.gitbook.io/product-docs/
X: https://x.com/alfavisioneth
TG: https://t.me/alfavisioneth
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint 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);
}
contract AlfaVision is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public _isExcludedFromFee;
uint8 private constant _decimals = 18;
uint256 private constant _tTotal = 1000000 * 10**_decimals;
string private constant _name = unicode"Alfavision";
string private constant _symbol = unicode"ALFA";
uint256 public maxTokensPerWallet = 20000 * 10 ** decimals();
uint256 public _taxSwapThreshold= 5000 * 10**_decimals;
uint256 public _AlfaBuy = 15;
uint256 public _AlfaSell = 20;
address payable public _AlfaWallet = payable(0x0498E4421f2cA6f0d9f948D7fE5f3d45072A0FAa);
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private inSwap = false;
bool private swapEnabled = true;
bool public AlfaEnabled = false;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
// IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
// Create a uniswap pair for this new token
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
// set the rest of the contract variables
uniswapV2Router = _uniswapV2Router;
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_AlfaWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
require(AlfaEnabled, "Alfavision to be enabled");
if(to != uniswapV2Pair){
require(balanceOf(to) + amount <= maxTokensPerWallet, "Cannot exceed Alfavision max wallet amount");
}
if(_AlfaBuy > 0) {
if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
taxAmount = amount.mul(_AlfaBuy).div(100);
}
}
if(_AlfaSell > 0) {
if(to == uniswapV2Pair){
taxAmount = amount.mul(_AlfaSell).div(100);
}
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
if(tokenAmount==0){return;}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function sendETHToFee(uint256 amount) private {
(bool callSuccess, ) = payable(_AlfaWallet).call{value: amount}("");
if (!callSuccess) {
emit TaxWalletPaymentRevert(_AlfaWallet, amount);
}
}
receive() external payable {}
function manualSwap() external {
require(_msgSender()==_AlfaWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function enableAlfa() public onlyOwner {
require(AlfaEnabled != true, "Alfavision enabled already");
AlfaEnabled = true;
}
function updateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner{
require(_taxLimit > 0, "Threshold cannot be 0");
_taxSwapThreshold = _taxLimit;
}
function updateAlfaTaxes(uint256 buyFee, uint256 sellFee) public onlyOwner {
_AlfaBuy = buyFee;
_AlfaSell = sellFee;
}
function includeInTaxes(address account) public onlyOwner {
_isExcludedFromFee[account] = false;
}
function updateAlfaMaxWallet(uint256 _maxLimit) public onlyOwner{
require(_maxLimit > totalSupply().div(200),"Limit cannot be too low");
maxTokensPerWallet = _maxLimit;
}
function excludeFromTaxes(address account) public onlyOwner {
_isExcludedFromFee[account] = true;
}
}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":"taxWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxWalletPaymentRevert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AlfaEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AlfaBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AlfaSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AlfaWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableAlfa","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTokensPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"updateAlfaMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"updateAlfaTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"updateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405261001261053560201b60201c565b600a61001e919061079d565b614e2061002b91906107e7565b6004556012600a61003c919061079d565b61138861004991906107e7565b600555600f6006556014600755730498e4421f2ca6f0d9f948d7fe5f3d45072a0faa60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055505f600a60166101000a81548160ff021916908315150217905550348015610104575f80fd5b5061012161011661053d60201b60201c565b61054460201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610182573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a69190610886565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f9190610886565b6040518363ffffffff1660e01b815260040161024c9291906108c0565b6020604051808303815f875af1158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c9190610886565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a610319919061079d565b620f424061032791906107e7565b60015f61033861053d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038861060560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b061053d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050c919061079d565b620f424061051a91906107e7565b60405161052791906108f6565b60405180910390a35061090f565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106ae5780860481111561068a5761068961062c565b5b60018516156106995780820291505b80810290506106a785610659565b945061066e565b94509492505050565b5f826106c65760019050610781565b816106d3575f9050610781565b81600181146106e957600281146106f357610722565b6001915050610781565b60ff8411156107055761070461062c565b5b8360020a91508482111561071c5761071b61062c565b5b50610781565b5060208310610133831016604e8410600b84101617156107575782820a9050838111156107525761075161062c565b5b610781565b6107648484846001610665565b9250905081840481111561077b5761077a61062c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107a782610788565b91506107b283610791565b92506107df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106b7565b905092915050565b5f6107f182610788565b91506107fc83610788565b925082820261080a81610788565b915082820484148315176108215761082061062c565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108558261082c565b9050919050565b6108658161084b565b811461086f575f80fd5b50565b5f815190506108808161085c565b92915050565b5f6020828403121561089b5761089a610828565b5b5f6108a884828501610872565b91505092915050565b6108ba8161084b565b82525050565b5f6040820190506108d35f8301856108b1565b6108e060208301846108b1565b9392505050565b6108f081610788565b82525050565b5f6020820190506109095f8301846108e7565b92915050565b612c118061091c5f395ff3fe608060405260043610610184575f3560e01c80638da5cb5b116100d0578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e14610541578063f04c0a761461057d578063f2fde38b146105a5578063f39f0fac146105cd5761018b565b8063a9059cbb146104b1578063aeb1d7c3146104ed578063bf474bed146105175761018b565b80638da5cb5b146103cb578063913dfe29146103f557806394c9c45b1461041f57806395d89b4114610435578063983e91581461045f5780639db51f97146104875761018b565b8063313ce5671161013d578063557e577811610117578063557e57781461031557806370a082311461033d578063715018a614610379578063768dc7101461038f5761018b565b8063313ce567146102ab578063469132ce146102d557806351bc3c85146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e1578063131e00b71461021d57806318160ddd1461024557806323b872dd1461026f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cc4565b6105f7565b005b3480156101c2575f80fd5b506101cb61064b565b6040516101d89190611d5f565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dd9565b610688565b6040516102149190611e31565b60405180910390f35b348015610228575f80fd5b50610243600480360381019061023e9190611e4a565b6106a5565b005b348015610250575f80fd5b50610259610705565b6040516102669190611e84565b60405180910390f35b34801561027a575f80fd5b5061029560048036038101906102909190611e9d565b610727565b6040516102a29190611e31565b60405180910390f35b3480156102b6575f80fd5b506102bf6107fb565b6040516102cc9190611f08565b60405180910390f35b3480156102e0575f80fd5b506102e9610803565b6040516102f69190611e84565b60405180910390f35b34801561030a575f80fd5b50610313610809565b005b348015610320575f80fd5b5061033b60048036038101906103369190611cc4565b6108a0565b005b348015610348575f80fd5b50610363600480360381019061035e9190611e4a565b61090e565b6040516103709190611e84565b60405180910390f35b348015610384575f80fd5b5061038d610954565b005b34801561039a575f80fd5b506103b560048036038101906103b09190611e4a565b610967565b6040516103c29190611e31565b60405180910390f35b3480156103d6575f80fd5b506103df610984565b6040516103ec9190611f30565b60405180910390f35b348015610400575f80fd5b506104096109ab565b6040516104169190611e31565b60405180910390f35b34801561042a575f80fd5b506104336109be565b005b348015610440575f80fd5b50610449610a39565b6040516104569190611d5f565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611e4a565b610a76565b005b348015610492575f80fd5b5061049b610ad5565b6040516104a89190611e84565b60405180910390f35b3480156104bc575f80fd5b506104d760048036038101906104d29190611dd9565b610adb565b6040516104e49190611e31565b60405180910390f35b3480156104f8575f80fd5b50610501610af8565b60405161050e9190611f69565b60405180910390f35b348015610522575f80fd5b5061052b610b1d565b6040516105389190611e84565b60405180910390f35b34801561054c575f80fd5b5061056760048036038101906105629190611f82565b610b23565b6040516105749190611e84565b60405180910390f35b348015610588575f80fd5b506105a3600480360381019061059e9190611fc0565b610ba5565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190611e4a565b610bbf565b005b3480156105d8575f80fd5b506105e1610c41565b6040516105ee9190611e84565b60405180910390f35b6105ff610c47565b5f8111610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063890612048565b60405180910390fd5b8060058190555050565b60606040518060400160405280600a81526020017f416c6661766973696f6e00000000000000000000000000000000000000000000815250905090565b5f61069b610694610cc5565b8484610ccc565b6001905092915050565b6106ad610c47565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6012600a61071491906121c2565b620f4240610722919061220c565b905090565b5f610733848484610e8f565b6107f08461073f610cc5565b6107eb85604051806060016040528060288152602001612bb46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a2610cc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162d9092919063ffffffff16565b610ccc565b600190509392505050565b5f6012905090565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610849610cc5565b73ffffffffffffffffffffffffffffffffffffffff1614610868575f80fd5b5f6108723061090e565b90505f811115610886576108858161168f565b5b5f4790505f81111561089c5761089b81611903565b5b5050565b6108a8610c47565b6108c360c86108b5610705565b611a0590919063ffffffff16565b8111610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612297565b60405180910390fd5b8060048190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095c610c47565b6109655f611a4e565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60169054906101000a900460ff1681565b6109c6610c47565b60011515600a60169054906101000a900460ff16151503610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a13906122ff565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b60606040518060400160405280600481526020017f414c464100000000000000000000000000000000000000000000000000000000815250905090565b610a7e610c47565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065481565b5f610aee610ae7610cc5565b8484610e8f565b6001905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bad610c47565b81600681905550806007819055505050565b610bc7610c47565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c9061238d565b60405180910390fd5b610c3e81611a4e565b50565b60075481565b610c4f610cc5565b73ffffffffffffffffffffffffffffffffffffffff16610c6d610984565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906123f5565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612511565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e829190611e84565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061259f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061262d565b60405180910390fd5b5f8111610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126bb565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561104c575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561137d57600a60169054906101000a900460ff166110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612723565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461114d57600454826111018561090e565b61110b9190612741565b111561114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906127e4565b60405180910390fd5b5b5f600654111561123157600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611200575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112305761122d606461121f60065485611b0f90919063ffffffff16565b611a0590919063ffffffff16565b90505b5b5f60075411156112bb57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ba576112b760646112a960075485611b0f90919063ffffffff16565b611a0590919063ffffffff16565b90505b5b5f6112c53061090e565b9050600a60149054906101000a900460ff161580156113305750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113485750600a60159054906101000a900460ff165b8015611355575060055481115b1561137b576113638161168f565b5f4790505f8111156113795761137847611903565b5b505b505b5f81111561147c576113d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114739190611e84565b60405180910390a35b6114cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061156f6115238284611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116128486611be390919063ffffffff16565b60405161161f9190611e84565b60405180910390a350505050565b5f838311158290611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9190611d5f565b60405180910390fd5b505f83856116829190612802565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156118e6575f600267ffffffffffffffff8111156116ce576116cd612835565b5b6040519080825280602002602001820160405280156116fc5781602001602082028036833780820191505090505b50905030815f8151811061171357611712612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db91906128a3565b816001815181106117ef576117ee612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118553060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ccc565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118b79594939291906129c7565b5f604051808303815f87803b1580156118ce575f80fd5b505af11580156118e0573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161194990612a4c565b5f6040518083038185875af1925050503d805f8114611983576040519150601f19603f3d011682016040523d82523d5f602084013e611988565b606091505b5050905080611a015760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516119f89190611e84565b60405180910390a25b5050565b5f611a4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2c565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611b1f575f9050611b80565b5f8284611b2c919061220c565b9050828482611b3b9190612a8d565b14611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290612b2d565b60405180910390fd5b809150505b92915050565b5f808284611b949190612741565b905083811015611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090612b95565b60405180910390fd5b8091505092915050565b5f611c2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162d565b905092915050565b5f8083118290611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c699190611d5f565b60405180910390fd5b505f8385611c809190612a8d565b9050809150509392505050565b5f80fd5b5f819050919050565b611ca381611c91565b8114611cad575f80fd5b50565b5f81359050611cbe81611c9a565b92915050565b5f60208284031215611cd957611cd8611c8d565b5b5f611ce684828501611cb0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d3182611cef565b611d3b8185611cf9565b9350611d4b818560208601611d09565b611d5481611d17565b840191505092915050565b5f6020820190508181035f830152611d778184611d27565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611da882611d7f565b9050919050565b611db881611d9e565b8114611dc2575f80fd5b50565b5f81359050611dd381611daf565b92915050565b5f8060408385031215611def57611dee611c8d565b5b5f611dfc85828601611dc5565b9250506020611e0d85828601611cb0565b9150509250929050565b5f8115159050919050565b611e2b81611e17565b82525050565b5f602082019050611e445f830184611e22565b92915050565b5f60208284031215611e5f57611e5e611c8d565b5b5f611e6c84828501611dc5565b91505092915050565b611e7e81611c91565b82525050565b5f602082019050611e975f830184611e75565b92915050565b5f805f60608486031215611eb457611eb3611c8d565b5b5f611ec186828701611dc5565b9350506020611ed286828701611dc5565b9250506040611ee386828701611cb0565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b611f2a81611d9e565b82525050565b5f602082019050611f435f830184611f21565b92915050565b5f611f5382611d7f565b9050919050565b611f6381611f49565b82525050565b5f602082019050611f7c5f830184611f5a565b92915050565b5f8060408385031215611f9857611f97611c8d565b5b5f611fa585828601611dc5565b9250506020611fb685828601611dc5565b9150509250929050565b5f8060408385031215611fd657611fd5611c8d565b5b5f611fe385828601611cb0565b9250506020611ff485828601611cb0565b9150509250929050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f612032601583611cf9565b915061203d82611ffe565b602082019050919050565b5f6020820190508181035f83015261205f81612026565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120e8578086048111156120c4576120c3612066565b5b60018516156120d35780820291505b80810290506120e185612093565b94506120a8565b94509492505050565b5f8261210057600190506121bb565b8161210d575f90506121bb565b8160018114612123576002811461212d5761215c565b60019150506121bb565b60ff84111561213f5761213e612066565b5b8360020a91508482111561215657612155612066565b5b506121bb565b5060208310610133831016604e8410600b84101617156121915782820a90508381111561218c5761218b612066565b5b6121bb565b61219e848484600161209f565b925090508184048111156121b5576121b4612066565b5b81810290505b9392505050565b5f6121cc82611c91565b91506121d783611eed565b92506122047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120f1565b905092915050565b5f61221682611c91565b915061222183611c91565b925082820261222f81611c91565b9150828204841483151761224657612245612066565b5b5092915050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f612281601783611cf9565b915061228c8261224d565b602082019050919050565b5f6020820190508181035f8301526122ae81612275565b9050919050565b7f416c6661766973696f6e20656e61626c656420616c72656164790000000000005f82015250565b5f6122e9601a83611cf9565b91506122f4826122b5565b602082019050919050565b5f6020820190508181035f830152612316816122dd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612377602683611cf9565b91506123828261231d565b604082019050919050565b5f6020820190508181035f8301526123a48161236b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123df602083611cf9565b91506123ea826123ab565b602082019050919050565b5f6020820190508181035f83015261240c816123d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61246d602483611cf9565b915061247882612413565b604082019050919050565b5f6020820190508181035f83015261249a81612461565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124fb602283611cf9565b9150612506826124a1565b604082019050919050565b5f6020820190508181035f830152612528816124ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612589602583611cf9565b91506125948261252f565b604082019050919050565b5f6020820190508181035f8301526125b68161257d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612617602383611cf9565b9150612622826125bd565b604082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126a5602983611cf9565b91506126b08261264b565b604082019050919050565b5f6020820190508181035f8301526126d281612699565b9050919050565b7f416c6661766973696f6e20746f20626520656e61626c656400000000000000005f82015250565b5f61270d601883611cf9565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f61274b82611c91565b915061275683611c91565b925082820190508082111561276e5761276d612066565b5b92915050565b7f43616e6e6f742065786365656420416c6661766973696f6e206d61782077616c5f8201527f6c657420616d6f756e7400000000000000000000000000000000000000000000602082015250565b5f6127ce602a83611cf9565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f61280c82611c91565b915061281783611c91565b925082820390508181111561282f5761282e612066565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061289d81611daf565b92915050565b5f602082840312156128b8576128b7611c8d565b5b5f6128c58482850161288f565b91505092915050565b5f819050919050565b5f819050919050565b5f6128fa6128f56128f0846128ce565b6128d7565b611c91565b9050919050565b61290a816128e0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61294281611d9e565b82525050565b5f6129538383612939565b60208301905092915050565b5f602082019050919050565b5f61297582612910565b61297f818561291a565b935061298a8361292a565b805f5b838110156129ba5781516129a18882612948565b97506129ac8361295f565b92505060018101905061298d565b5085935050505092915050565b5f60a0820190506129da5f830188611e75565b6129e76020830187612901565b81810360408301526129f9818661296b565b9050612a086060830185611f21565b612a156080830184611e75565b9695505050505050565b5f81905092915050565b50565b5f612a375f83612a1f565b9150612a4282612a29565b5f82019050919050565b5f612a5682612a2c565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a9782611c91565b9150612aa283611c91565b925082612ab257612ab1612a60565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602183611cf9565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b7f601b83611cf9565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220032265e608ef1814d736bc98a22991afa7bfd26ea78ecc8c8094f381eb46f0e464736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c80638da5cb5b116100d0578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e14610541578063f04c0a761461057d578063f2fde38b146105a5578063f39f0fac146105cd5761018b565b8063a9059cbb146104b1578063aeb1d7c3146104ed578063bf474bed146105175761018b565b80638da5cb5b146103cb578063913dfe29146103f557806394c9c45b1461041f57806395d89b4114610435578063983e91581461045f5780639db51f97146104875761018b565b8063313ce5671161013d578063557e577811610117578063557e57781461031557806370a082311461033d578063715018a614610379578063768dc7101461038f5761018b565b8063313ce567146102ab578063469132ce146102d557806351bc3c85146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e1578063131e00b71461021d57806318160ddd1461024557806323b872dd1461026f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cc4565b6105f7565b005b3480156101c2575f80fd5b506101cb61064b565b6040516101d89190611d5f565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dd9565b610688565b6040516102149190611e31565b60405180910390f35b348015610228575f80fd5b50610243600480360381019061023e9190611e4a565b6106a5565b005b348015610250575f80fd5b50610259610705565b6040516102669190611e84565b60405180910390f35b34801561027a575f80fd5b5061029560048036038101906102909190611e9d565b610727565b6040516102a29190611e31565b60405180910390f35b3480156102b6575f80fd5b506102bf6107fb565b6040516102cc9190611f08565b60405180910390f35b3480156102e0575f80fd5b506102e9610803565b6040516102f69190611e84565b60405180910390f35b34801561030a575f80fd5b50610313610809565b005b348015610320575f80fd5b5061033b60048036038101906103369190611cc4565b6108a0565b005b348015610348575f80fd5b50610363600480360381019061035e9190611e4a565b61090e565b6040516103709190611e84565b60405180910390f35b348015610384575f80fd5b5061038d610954565b005b34801561039a575f80fd5b506103b560048036038101906103b09190611e4a565b610967565b6040516103c29190611e31565b60405180910390f35b3480156103d6575f80fd5b506103df610984565b6040516103ec9190611f30565b60405180910390f35b348015610400575f80fd5b506104096109ab565b6040516104169190611e31565b60405180910390f35b34801561042a575f80fd5b506104336109be565b005b348015610440575f80fd5b50610449610a39565b6040516104569190611d5f565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611e4a565b610a76565b005b348015610492575f80fd5b5061049b610ad5565b6040516104a89190611e84565b60405180910390f35b3480156104bc575f80fd5b506104d760048036038101906104d29190611dd9565b610adb565b6040516104e49190611e31565b60405180910390f35b3480156104f8575f80fd5b50610501610af8565b60405161050e9190611f69565b60405180910390f35b348015610522575f80fd5b5061052b610b1d565b6040516105389190611e84565b60405180910390f35b34801561054c575f80fd5b5061056760048036038101906105629190611f82565b610b23565b6040516105749190611e84565b60405180910390f35b348015610588575f80fd5b506105a3600480360381019061059e9190611fc0565b610ba5565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190611e4a565b610bbf565b005b3480156105d8575f80fd5b506105e1610c41565b6040516105ee9190611e84565b60405180910390f35b6105ff610c47565b5f8111610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063890612048565b60405180910390fd5b8060058190555050565b60606040518060400160405280600a81526020017f416c6661766973696f6e00000000000000000000000000000000000000000000815250905090565b5f61069b610694610cc5565b8484610ccc565b6001905092915050565b6106ad610c47565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6012600a61071491906121c2565b620f4240610722919061220c565b905090565b5f610733848484610e8f565b6107f08461073f610cc5565b6107eb85604051806060016040528060288152602001612bb46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a2610cc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162d9092919063ffffffff16565b610ccc565b600190509392505050565b5f6012905090565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610849610cc5565b73ffffffffffffffffffffffffffffffffffffffff1614610868575f80fd5b5f6108723061090e565b90505f811115610886576108858161168f565b5b5f4790505f81111561089c5761089b81611903565b5b5050565b6108a8610c47565b6108c360c86108b5610705565b611a0590919063ffffffff16565b8111610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612297565b60405180910390fd5b8060048190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095c610c47565b6109655f611a4e565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60169054906101000a900460ff1681565b6109c6610c47565b60011515600a60169054906101000a900460ff16151503610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a13906122ff565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b60606040518060400160405280600481526020017f414c464100000000000000000000000000000000000000000000000000000000815250905090565b610a7e610c47565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065481565b5f610aee610ae7610cc5565b8484610e8f565b6001905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bad610c47565b81600681905550806007819055505050565b610bc7610c47565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c9061238d565b60405180910390fd5b610c3e81611a4e565b50565b60075481565b610c4f610cc5565b73ffffffffffffffffffffffffffffffffffffffff16610c6d610984565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906123f5565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612511565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e829190611e84565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061259f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061262d565b60405180910390fd5b5f8111610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126bb565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561104c575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561137d57600a60169054906101000a900460ff166110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612723565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461114d57600454826111018561090e565b61110b9190612741565b111561114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906127e4565b60405180910390fd5b5b5f600654111561123157600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611200575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112305761122d606461121f60065485611b0f90919063ffffffff16565b611a0590919063ffffffff16565b90505b5b5f60075411156112bb57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ba576112b760646112a960075485611b0f90919063ffffffff16565b611a0590919063ffffffff16565b90505b5b5f6112c53061090e565b9050600a60149054906101000a900460ff161580156113305750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113485750600a60159054906101000a900460ff165b8015611355575060055481115b1561137b576113638161168f565b5f4790505f8111156113795761137847611903565b5b505b505b5f81111561147c576113d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114739190611e84565b60405180910390a35b6114cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061156f6115238284611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116128486611be390919063ffffffff16565b60405161161f9190611e84565b60405180910390a350505050565b5f838311158290611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9190611d5f565b60405180910390fd5b505f83856116829190612802565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156118e6575f600267ffffffffffffffff8111156116ce576116cd612835565b5b6040519080825280602002602001820160405280156116fc5781602001602082028036833780820191505090505b50905030815f8151811061171357611712612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db91906128a3565b816001815181106117ef576117ee612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118553060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ccc565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118b79594939291906129c7565b5f604051808303815f87803b1580156118ce575f80fd5b505af11580156118e0573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161194990612a4c565b5f6040518083038185875af1925050503d805f8114611983576040519150601f19603f3d011682016040523d82523d5f602084013e611988565b606091505b5050905080611a015760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516119f89190611e84565b60405180910390a25b5050565b5f611a4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2c565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611b1f575f9050611b80565b5f8284611b2c919061220c565b9050828482611b3b9190612a8d565b14611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290612b2d565b60405180910390fd5b809150505b92915050565b5f808284611b949190612741565b905083811015611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090612b95565b60405180910390fd5b8091505092915050565b5f611c2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162d565b905092915050565b5f8083118290611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c699190611d5f565b60405180910390fd5b505f8385611c809190612a8d565b9050809150509392505050565b5f80fd5b5f819050919050565b611ca381611c91565b8114611cad575f80fd5b50565b5f81359050611cbe81611c9a565b92915050565b5f60208284031215611cd957611cd8611c8d565b5b5f611ce684828501611cb0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d3182611cef565b611d3b8185611cf9565b9350611d4b818560208601611d09565b611d5481611d17565b840191505092915050565b5f6020820190508181035f830152611d778184611d27565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611da882611d7f565b9050919050565b611db881611d9e565b8114611dc2575f80fd5b50565b5f81359050611dd381611daf565b92915050565b5f8060408385031215611def57611dee611c8d565b5b5f611dfc85828601611dc5565b9250506020611e0d85828601611cb0565b9150509250929050565b5f8115159050919050565b611e2b81611e17565b82525050565b5f602082019050611e445f830184611e22565b92915050565b5f60208284031215611e5f57611e5e611c8d565b5b5f611e6c84828501611dc5565b91505092915050565b611e7e81611c91565b82525050565b5f602082019050611e975f830184611e75565b92915050565b5f805f60608486031215611eb457611eb3611c8d565b5b5f611ec186828701611dc5565b9350506020611ed286828701611dc5565b9250506040611ee386828701611cb0565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b611f2a81611d9e565b82525050565b5f602082019050611f435f830184611f21565b92915050565b5f611f5382611d7f565b9050919050565b611f6381611f49565b82525050565b5f602082019050611f7c5f830184611f5a565b92915050565b5f8060408385031215611f9857611f97611c8d565b5b5f611fa585828601611dc5565b9250506020611fb685828601611dc5565b9150509250929050565b5f8060408385031215611fd657611fd5611c8d565b5b5f611fe385828601611cb0565b9250506020611ff485828601611cb0565b9150509250929050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f612032601583611cf9565b915061203d82611ffe565b602082019050919050565b5f6020820190508181035f83015261205f81612026565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120e8578086048111156120c4576120c3612066565b5b60018516156120d35780820291505b80810290506120e185612093565b94506120a8565b94509492505050565b5f8261210057600190506121bb565b8161210d575f90506121bb565b8160018114612123576002811461212d5761215c565b60019150506121bb565b60ff84111561213f5761213e612066565b5b8360020a91508482111561215657612155612066565b5b506121bb565b5060208310610133831016604e8410600b84101617156121915782820a90508381111561218c5761218b612066565b5b6121bb565b61219e848484600161209f565b925090508184048111156121b5576121b4612066565b5b81810290505b9392505050565b5f6121cc82611c91565b91506121d783611eed565b92506122047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120f1565b905092915050565b5f61221682611c91565b915061222183611c91565b925082820261222f81611c91565b9150828204841483151761224657612245612066565b5b5092915050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f612281601783611cf9565b915061228c8261224d565b602082019050919050565b5f6020820190508181035f8301526122ae81612275565b9050919050565b7f416c6661766973696f6e20656e61626c656420616c72656164790000000000005f82015250565b5f6122e9601a83611cf9565b91506122f4826122b5565b602082019050919050565b5f6020820190508181035f830152612316816122dd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612377602683611cf9565b91506123828261231d565b604082019050919050565b5f6020820190508181035f8301526123a48161236b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123df602083611cf9565b91506123ea826123ab565b602082019050919050565b5f6020820190508181035f83015261240c816123d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61246d602483611cf9565b915061247882612413565b604082019050919050565b5f6020820190508181035f83015261249a81612461565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124fb602283611cf9565b9150612506826124a1565b604082019050919050565b5f6020820190508181035f830152612528816124ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612589602583611cf9565b91506125948261252f565b604082019050919050565b5f6020820190508181035f8301526125b68161257d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612617602383611cf9565b9150612622826125bd565b604082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126a5602983611cf9565b91506126b08261264b565b604082019050919050565b5f6020820190508181035f8301526126d281612699565b9050919050565b7f416c6661766973696f6e20746f20626520656e61626c656400000000000000005f82015250565b5f61270d601883611cf9565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f61274b82611c91565b915061275683611c91565b925082820190508082111561276e5761276d612066565b5b92915050565b7f43616e6e6f742065786365656420416c6661766973696f6e206d61782077616c5f8201527f6c657420616d6f756e7400000000000000000000000000000000000000000000602082015250565b5f6127ce602a83611cf9565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f61280c82611c91565b915061281783611c91565b925082820390508181111561282f5761282e612066565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061289d81611daf565b92915050565b5f602082840312156128b8576128b7611c8d565b5b5f6128c58482850161288f565b91505092915050565b5f819050919050565b5f819050919050565b5f6128fa6128f56128f0846128ce565b6128d7565b611c91565b9050919050565b61290a816128e0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61294281611d9e565b82525050565b5f6129538383612939565b60208301905092915050565b5f602082019050919050565b5f61297582612910565b61297f818561291a565b935061298a8361292a565b805f5b838110156129ba5781516129a18882612948565b97506129ac8361295f565b92505060018101905061298d565b5085935050505092915050565b5f60a0820190506129da5f830188611e75565b6129e76020830187612901565b81810360408301526129f9818661296b565b9050612a086060830185611f21565b612a156080830184611e75565b9695505050505050565b5f81905092915050565b50565b5f612a375f83612a1f565b9150612a4282612a29565b5f82019050919050565b5f612a5682612a2c565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a9782611c91565b9150612aa283611c91565b925082612ab257612ab1612a60565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602183611cf9565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b7f601b83611cf9565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220032265e608ef1814d736bc98a22991afa7bfd26ea78ecc8c8094f381eb46f0e464736f6c634300081a0033
Deployed Bytecode Sourcemap
5072:7692:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7065:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7898:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7342:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8067:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7251:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5575:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11463:349;;;;;;;;;;;;;:::i;:::-;;12436:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7445:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3493:103;;;;;;;;;;;;;:::i;:::-;;5291:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2852:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6038:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11829:145;;;;;;;;;;;;;:::i;:::-;;7156:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12316:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5709:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7572:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5780:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5642:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7747:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12163:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3751:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5744:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11982:173;2738:13;:11;:13::i;:::-;12080:1:::1;12068:9;:13;12060:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12138:9;12118:17;:29;;;;11982:173:::0;:::o;7065:83::-;7102:13;7135:5;;;;;;;;;;;;;;;;;7128:12;;7065:83;:::o;7898:161::-;7973:4;7990:39;7999:12;:10;:12::i;:::-;8013:7;8022:6;7990:8;:39::i;:::-;8047:4;8040:11;;7898:161;;;;:::o;12638:113::-;2738:13;:11;:13::i;:::-;12739:4:::1;12709:18;:27;12728:7;12709:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12638:113:::0;:::o;7342:95::-;7395:7;5389:2;5443;:13;;;;:::i;:::-;5433:7;:23;;;;:::i;:::-;7415:14;;7342:95;:::o;8067:313::-;8165:4;8182:36;8192:6;8200:9;8211:6;8182:9;:36::i;:::-;8229:121;8238:6;8246:12;:10;:12::i;:::-;8260:89;8298:6;8260:89;;;;;;;;;;;;;;;;;:11;:19;8272:6;8260:19;;;;;;;;;;;;;;;:33;8280:12;:10;:12::i;:::-;8260:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8229:8;:121::i;:::-;8368:4;8361:11;;8067:313;;;;;:::o;7251:83::-;7292:5;5389:2;7310:16;;7251:83;:::o;5575:60::-;;;;:::o;11463:349::-;11527:11;;;;;;;;;;;11513:25;;:12;:10;:12::i;:::-;:25;;;11505:34;;;;;;11550:20;11571:24;11589:4;11571:9;:24::i;:::-;11550:45;;11622:1;11609:12;:14;11606:73;;;11637:30;11654:12;11637:16;:30::i;:::-;11606:73;11689:18;11708:21;11689:40;;11754:1;11743:10;:12;11740:65;;;11769:24;11782:10;11769:12;:24::i;:::-;11740:65;11494:318;;11463:349::o;12436:193::-;2738:13;:11;:13::i;:::-;12531:22:::1;12549:3;12531:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;12519:9;:34;12511:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12612:9;12591:18;:30;;;;12436:193:::0;:::o;7445:119::-;7511:7;7538:9;:18;7548:7;7538:18;;;;;;;;;;;;;;;;7531:25;;7445:119;;;:::o;3493:103::-;2738:13;:11;:13::i;:::-;3558:30:::1;3585:1;3558:18;:30::i;:::-;3493:103::o:0;5291:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2852:87::-;2898:7;2925:6;;;;;;;;;;;2918:13;;2852:87;:::o;6038:31::-;;;;;;;;;;;;;:::o;11829:145::-;2738:13;:11;:13::i;:::-;11902:4:::1;11887:19;;:11;;;;;;;;;;;:19;;::::0;11879:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11962:4;11948:11;;:18;;;;;;;;;;;;;;;;;;11829:145::o:0;7156:87::-;7195:13;7228:7;;;;;;;;;;;;;;;;;7221:14;;7156:87;:::o;12316:112::-;2738:13;:11;:13::i;:::-;12415:5:::1;12385:18;:27;12404:7;12385:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12316:112:::0;:::o;5709:28::-;;;;:::o;7572:167::-;7650:4;7667:42;7677:12;:10;:12::i;:::-;7691:9;7702:6;7667:9;:42::i;:::-;7727:4;7720:11;;7572:167;;;;:::o;5780:88::-;;;;;;;;;;;;;:::o;5642:54::-;;;;:::o;7747:143::-;7828:7;7855:11;:18;7867:5;7855:18;;;;;;;;;;;;;;;:27;7874:7;7855:27;;;;;;;;;;;;;;;;7848:34;;7747:143;;;;:::o;12163:141::-;2738:13;:11;:13::i;:::-;12260:6:::1;12249:8;:17;;;;12289:7;12277:9;:19;;;;12163:141:::0;;:::o;3751:201::-;2738:13;:11;:13::i;:::-;3860:1:::1;3840:22;;:8;:22;;::::0;3832:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3916:28;3935:8;3916:18;:28::i;:::-;3751:201:::0;:::o;5744:29::-;;;;:::o;3017:132::-;3092:12;:10;:12::i;:::-;3081:23;;:7;:5;:7::i;:::-;:23;;;3073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3017:132::o;355:98::-;408:7;435:10;428:17;;355:98;:::o;8388:335::-;8498:1;8481:19;;:5;:19;;;8473:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8579:1;8560:21;;:7;:21;;;8552:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8661:6;8631:11;:18;8643:5;8631:18;;;;;;;;;;;;;;;:27;8650:7;8631:27;;;;;;;;;;;;;;;:36;;;;8699:7;8683:32;;8692:5;8683:32;;;8708:6;8683:32;;;;;;:::i;:::-;;;;;;;;8388:335;;;:::o;8731:1810::-;8835:1;8819:18;;:4;:18;;;8811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8912:1;8898:16;;:2;:16;;;8890:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8982:1;8973:6;:10;8965:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9040:17;9075:18;:24;9094:4;9075:24;;;;;;;;;;;;;;;;;;;;;;;;;9074:25;:52;;;;;9104:18;:22;9123:2;9104:22;;;;;;;;;;;;;;;;;;;;;;;;;9103:23;9074:52;9070:1115;;;9153:11;;;;;;;;;;;9145:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9219:13;;;;;;;;;;;9213:19;;:2;:19;;;9210:156;;9285:18;;9275:6;9259:13;9269:2;9259:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;9251:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;9210:156;9396:1;9385:8;;:12;9382:184;;;9426:13;;;;;;;;;;;9418:21;;:4;:21;;;:55;;;;;9457:15;;;;;;;;;;;9443:30;;:2;:30;;;;9418:55;9414:137;;;9506:29;9531:3;9506:20;9517:8;;9506:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9494:41;;9414:137;9382:184;9597:1;9585:9;;:13;9582:148;;;9624:13;;;;;;;;;;;9618:19;;:2;:19;;;9615:100;;9669:30;9695:3;9669:21;9680:9;;9669:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;9657:42;;9615:100;9582:148;9746:28;9777:24;9795:4;9777:9;:24::i;:::-;9746:55;;9821:6;;;;;;;;;;;9820:7;:30;;;;;9837:13;;;;;;;;;;;9831:19;;:2;:19;;;9820:30;:45;;;;;9854:11;;;;;;;;;;;9820:45;:87;;;;;9890:17;;9869:20;:38;9820:87;9816:358;;;9928:38;9945:20;9928:16;:38::i;:::-;9985:26;10014:21;9985:50;;10078:1;10057:18;:22;10054:105;;;10104:35;10117:21;10104:12;:35::i;:::-;10054:105;9909:265;9816:358;9128:1057;9070:1115;10210:1;10200:9;:11;10197:161;;;10250:39;10279:9;10250;:24;10268:4;10250:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10225:9;:24;10243:4;10225:24;;;;;;;;;;;;;;;:64;;;;10330:4;10307:39;;10316:4;10307:39;;;10336:9;10307:39;;;;;;:::i;:::-;;;;;;;;10197:161;10384:27;10404:6;10384:9;:15;10394:4;10384:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10368:9;:15;10378:4;10368:15;;;;;;;;;;;;;;;:43;;;;10436:40;10454:21;10465:9;10454:6;:10;;:21;;;;:::i;:::-;10436:9;:13;10446:2;10436:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10422:9;:13;10432:2;10422:13;;;;;;;;;;;;;;;:54;;;;10507:2;10492:41;;10501:4;10492:41;;;10511:21;10522:9;10511:6;:10;;:21;;;;:::i;:::-;10492:41;;;;;;:::i;:::-;;;;;;;;8800:1741;8731:1810;;;:::o;1492:190::-;1578:7;1611:1;1606;:6;;1614:12;1598:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1638:9;1654:1;1650;:5;;;;:::i;:::-;1638:17;;1673:1;1666:8;;;1492:190;;;;;:::o;10657:520::-;6119:4;6110:6;;:13;;;;;;;;;;;;;;;;;;10751:1:::1;10738:11;:14:::0;10735:27;10754:7:::1;10735:27;10772:21;10810:1;10796:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10772:40;;10841:4;10823;10828:1;10823:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10867:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10857:4;10862:1;10857:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10900:62;10917:4;10932:15;;;;;;;;;;;10950:11;10900:8;:62::i;:::-;10973:15;;;;;;;;;;;:66;;;11054:11;11080:1;11096:4;11123;11143:15;10973:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10724:453;6134:1;6155:5:::0;6146:6;;:14;;;;;;;;;;;;;;;;;;10657:520;:::o;11185:231::-;11243:16;11273:11;;;;;;;;;;;11265:25;;11298:6;11265:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11242:67;;;11327:11;11322:85;;11379:11;;;;;;;;;;;11356:43;;;11392:6;11356:43;;;;;;:::i;:::-;;;;;;;;11322:85;11231:185;11185:231;:::o;1944:132::-;2002:7;2029:39;2033:1;2036;2029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2022:46;;1944:132;;;;:::o;4112:191::-;4186:16;4205:6;;;;;;;;;;;4186:25;;4231:8;4222:6;;:17;;;;;;;;;;;;;;;;;;4286:8;4255:40;;4276:8;4255:40;;;;;;;;;;;;4175:128;4112:191;:::o;1690:246::-;1748:7;1777:1;1772;:6;1768:47;;1802:1;1795:8;;;;1768:47;1825:9;1841:1;1837;:5;;;;:::i;:::-;1825:17;;1870:1;1865;1861;:5;;;;:::i;:::-;:10;1853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:1;1920:8;;;1690:246;;;;;:::o;1161:179::-;1219:7;1239:9;1255:1;1251;:5;;;;:::i;:::-;1239:17;;1280:1;1275;:6;;1267:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1331:1;1324:8;;;1161:179;;;;:::o;1348:136::-;1406:7;1433:43;1437:1;1440;1433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1426:50;;1348:136;;;;:::o;2084:189::-;2170:7;2202:1;2198;:5;2205:12;2190:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2229:9;2245:1;2241;:5;;;;:::i;:::-;2229:17;;2264:1;2257:8;;;2084:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:329::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:118::-;4096:24;4114:5;4096:24;:::i;:::-;4091:3;4084:37;4009:118;;:::o;4133:222::-;4226:4;4264:2;4253:9;4249:18;4241:26;;4277:71;4345:1;4334:9;4330:17;4321:6;4277:71;:::i;:::-;4133:222;;;;:::o;4361:619::-;4438:6;4446;4454;4503:2;4491:9;4482:7;4478:23;4474:32;4471:119;;;4509:79;;:::i;:::-;4471:119;4629:1;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4600:117;4756:2;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4727:118;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4361:619;;;;;:::o;4986:86::-;5021:7;5061:4;5054:5;5050:16;5039:27;;4986:86;;;:::o;5078:112::-;5161:22;5177:5;5161:22;:::i;:::-;5156:3;5149:35;5078:112;;:::o;5196:214::-;5285:4;5323:2;5312:9;5308:18;5300:26;;5336:67;5400:1;5389:9;5385:17;5376:6;5336:67;:::i;:::-;5196:214;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:104::-;5813:7;5842:24;5860:5;5842:24;:::i;:::-;5831:35;;5768:104;;;:::o;5878:142::-;5981:32;6007:5;5981:32;:::i;:::-;5976:3;5969:45;5878:142;;:::o;6026:254::-;6135:4;6173:2;6162:9;6158:18;6150:26;;6186:87;6270:1;6259:9;6255:17;6246:6;6186:87;:::i;:::-;6026:254;;;;:::o;6286:474::-;6354:6;6362;6411:2;6399:9;6390:7;6386:23;6382:32;6379:119;;;6417:79;;:::i;:::-;6379:119;6537:1;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6508:117;6664:2;6690:53;6735:7;6726:6;6715:9;6711:22;6690:53;:::i;:::-;6680:63;;6635:118;6286:474;;;;;:::o;6766:::-;6834:6;6842;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7017:1;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6988:117;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;6766:474;;;;;:::o;7246:171::-;7386:23;7382:1;7374:6;7370:14;7363:47;7246:171;:::o;7423:366::-;7565:3;7586:67;7650:2;7645:3;7586:67;:::i;:::-;7579:74;;7662:93;7751:3;7662:93;:::i;:::-;7780:2;7775:3;7771:12;7764:19;;7423:366;;;:::o;7795:419::-;7961:4;7999:2;7988:9;7984:18;7976:26;;8048:9;8042:4;8038:20;8034:1;8023:9;8019:17;8012:47;8076:131;8202:4;8076:131;:::i;:::-;8068:139;;7795:419;;;:::o;8220:180::-;8268:77;8265:1;8258:88;8365:4;8362:1;8355:15;8389:4;8386:1;8379:15;8406:102;8448:8;8495:5;8492:1;8488:13;8467:34;;8406:102;;;:::o;8514:848::-;8575:5;8582:4;8606:6;8597:15;;8630:5;8621:14;;8644:712;8665:1;8655:8;8652:15;8644:712;;;8760:4;8755:3;8751:14;8745:4;8742:24;8739:50;;;8769:18;;:::i;:::-;8739:50;8819:1;8809:8;8805:16;8802:451;;;9234:4;9227:5;9223:16;9214:25;;8802:451;9284:4;9278;9274:15;9266:23;;9314:32;9337:8;9314:32;:::i;:::-;9302:44;;8644:712;;;8514:848;;;;;;;:::o;9368:1073::-;9422:5;9613:8;9603:40;;9634:1;9625:10;;9636:5;;9603:40;9662:4;9652:36;;9679:1;9670:10;;9681:5;;9652:36;9748:4;9796:1;9791:27;;;;9832:1;9827:191;;;;9741:277;;9791:27;9809:1;9800:10;;9811:5;;;9827:191;9872:3;9862:8;9859:17;9856:43;;;9879:18;;:::i;:::-;9856:43;9928:8;9925:1;9921:16;9912:25;;9963:3;9956:5;9953:14;9950:40;;;9970:18;;:::i;:::-;9950:40;10003:5;;;9741:277;;10127:2;10117:8;10114:16;10108:3;10102:4;10099:13;10095:36;10077:2;10067:8;10064:16;10059:2;10053:4;10050:12;10046:35;10030:111;10027:246;;;10183:8;10177:4;10173:19;10164:28;;10218:3;10211:5;10208:14;10205:40;;;10225:18;;:::i;:::-;10205:40;10258:5;;10027:246;10298:42;10336:3;10326:8;10320:4;10317:1;10298:42;:::i;:::-;10283:57;;;;10372:4;10367:3;10363:14;10356:5;10353:25;10350:51;;;10381:18;;:::i;:::-;10350:51;10430:4;10423:5;10419:16;10410:25;;9368:1073;;;;;;:::o;10447:281::-;10505:5;10529:23;10547:4;10529:23;:::i;:::-;10521:31;;10573:25;10589:8;10573:25;:::i;:::-;10561:37;;10617:104;10654:66;10644:8;10638:4;10617:104;:::i;:::-;10608:113;;10447:281;;;;:::o;10734:410::-;10774:7;10797:20;10815:1;10797:20;:::i;:::-;10792:25;;10831:20;10849:1;10831:20;:::i;:::-;10826:25;;10886:1;10883;10879:9;10908:30;10926:11;10908:30;:::i;:::-;10897:41;;11087:1;11078:7;11074:15;11071:1;11068:22;11048:1;11041:9;11021:83;10998:139;;11117:18;;:::i;:::-;10998:139;10782:362;10734:410;;;;:::o;11150:173::-;11290:25;11286:1;11278:6;11274:14;11267:49;11150:173;:::o;11329:366::-;11471:3;11492:67;11556:2;11551:3;11492:67;:::i;:::-;11485:74;;11568:93;11657:3;11568:93;:::i;:::-;11686:2;11681:3;11677:12;11670:19;;11329:366;;;:::o;11701:419::-;11867:4;11905:2;11894:9;11890:18;11882:26;;11954:9;11948:4;11944:20;11940:1;11929:9;11925:17;11918:47;11982:131;12108:4;11982:131;:::i;:::-;11974:139;;11701:419;;;:::o;12126:176::-;12266:28;12262:1;12254:6;12250:14;12243:52;12126:176;:::o;12308:366::-;12450:3;12471:67;12535:2;12530:3;12471:67;:::i;:::-;12464:74;;12547:93;12636:3;12547:93;:::i;:::-;12665:2;12660:3;12656:12;12649:19;;12308:366;;;:::o;12680:419::-;12846:4;12884:2;12873:9;12869:18;12861:26;;12933:9;12927:4;12923:20;12919:1;12908:9;12904:17;12897:47;12961:131;13087:4;12961:131;:::i;:::-;12953:139;;12680:419;;;:::o;13105:225::-;13245:34;13241:1;13233:6;13229:14;13222:58;13314:8;13309:2;13301:6;13297:15;13290:33;13105:225;:::o;13336:366::-;13478:3;13499:67;13563:2;13558:3;13499:67;:::i;:::-;13492:74;;13575:93;13664:3;13575:93;:::i;:::-;13693:2;13688:3;13684:12;13677:19;;13336:366;;;:::o;13708:419::-;13874:4;13912:2;13901:9;13897:18;13889:26;;13961:9;13955:4;13951:20;13947:1;13936:9;13932:17;13925:47;13989:131;14115:4;13989:131;:::i;:::-;13981:139;;13708:419;;;:::o;14133:182::-;14273:34;14269:1;14261:6;14257:14;14250:58;14133:182;:::o;14321:366::-;14463:3;14484:67;14548:2;14543:3;14484:67;:::i;:::-;14477:74;;14560:93;14649:3;14560:93;:::i;:::-;14678:2;14673:3;14669:12;14662:19;;14321:366;;;:::o;14693:419::-;14859:4;14897:2;14886:9;14882:18;14874:26;;14946:9;14940:4;14936:20;14932:1;14921:9;14917:17;14910:47;14974:131;15100:4;14974:131;:::i;:::-;14966:139;;14693:419;;;:::o;15118:223::-;15258:34;15254:1;15246:6;15242:14;15235:58;15327:6;15322:2;15314:6;15310:15;15303:31;15118:223;:::o;15347:366::-;15489:3;15510:67;15574:2;15569:3;15510:67;:::i;:::-;15503:74;;15586:93;15675:3;15586:93;:::i;:::-;15704:2;15699:3;15695:12;15688:19;;15347:366;;;:::o;15719:419::-;15885:4;15923:2;15912:9;15908:18;15900:26;;15972:9;15966:4;15962:20;15958:1;15947:9;15943:17;15936:47;16000:131;16126:4;16000:131;:::i;:::-;15992:139;;15719:419;;;:::o;16144:221::-;16284:34;16280:1;16272:6;16268:14;16261:58;16353:4;16348:2;16340:6;16336:15;16329:29;16144:221;:::o;16371:366::-;16513:3;16534:67;16598:2;16593:3;16534:67;:::i;:::-;16527:74;;16610:93;16699:3;16610:93;:::i;:::-;16728:2;16723:3;16719:12;16712:19;;16371:366;;;:::o;16743:419::-;16909:4;16947:2;16936:9;16932:18;16924:26;;16996:9;16990:4;16986:20;16982:1;16971:9;16967:17;16960:47;17024:131;17150:4;17024:131;:::i;:::-;17016:139;;16743:419;;;:::o;17168:224::-;17308:34;17304:1;17296:6;17292:14;17285:58;17377:7;17372:2;17364:6;17360:15;17353:32;17168:224;:::o;17398:366::-;17540:3;17561:67;17625:2;17620:3;17561:67;:::i;:::-;17554:74;;17637:93;17726:3;17637:93;:::i;:::-;17755:2;17750:3;17746:12;17739:19;;17398:366;;;:::o;17770:419::-;17936:4;17974:2;17963:9;17959:18;17951:26;;18023:9;18017:4;18013:20;18009:1;17998:9;17994:17;17987:47;18051:131;18177:4;18051:131;:::i;:::-;18043:139;;17770:419;;;:::o;18195:222::-;18335:34;18331:1;18323:6;18319:14;18312:58;18404:5;18399:2;18391:6;18387:15;18380:30;18195:222;:::o;18423:366::-;18565:3;18586:67;18650:2;18645:3;18586:67;:::i;:::-;18579:74;;18662:93;18751:3;18662:93;:::i;:::-;18780:2;18775:3;18771:12;18764:19;;18423:366;;;:::o;18795:419::-;18961:4;18999:2;18988:9;18984:18;18976:26;;19048:9;19042:4;19038:20;19034:1;19023:9;19019:17;19012:47;19076:131;19202:4;19076:131;:::i;:::-;19068:139;;18795:419;;;:::o;19220:228::-;19360:34;19356:1;19348:6;19344:14;19337:58;19429:11;19424:2;19416:6;19412:15;19405:36;19220:228;:::o;19454:366::-;19596:3;19617:67;19681:2;19676:3;19617:67;:::i;:::-;19610:74;;19693:93;19782:3;19693:93;:::i;:::-;19811:2;19806:3;19802:12;19795:19;;19454:366;;;:::o;19826:419::-;19992:4;20030:2;20019:9;20015:18;20007:26;;20079:9;20073:4;20069:20;20065:1;20054:9;20050:17;20043:47;20107:131;20233:4;20107:131;:::i;:::-;20099:139;;19826:419;;;:::o;20251:174::-;20391:26;20387:1;20379:6;20375:14;20368:50;20251:174;:::o;20431:366::-;20573:3;20594:67;20658:2;20653:3;20594:67;:::i;:::-;20587:74;;20670:93;20759:3;20670:93;:::i;:::-;20788:2;20783:3;20779:12;20772:19;;20431:366;;;:::o;20803:419::-;20969:4;21007:2;20996:9;20992:18;20984:26;;21056:9;21050:4;21046:20;21042:1;21031:9;21027:17;21020:47;21084:131;21210:4;21084:131;:::i;:::-;21076:139;;20803:419;;;:::o;21228:191::-;21268:3;21287:20;21305:1;21287:20;:::i;:::-;21282:25;;21321:20;21339:1;21321:20;:::i;:::-;21316:25;;21364:1;21361;21357:9;21350:16;;21385:3;21382:1;21379:10;21376:36;;;21392:18;;:::i;:::-;21376:36;21228:191;;;;:::o;21425:229::-;21565:34;21561:1;21553:6;21549:14;21542:58;21634:12;21629:2;21621:6;21617:15;21610:37;21425:229;:::o;21660:366::-;21802:3;21823:67;21887:2;21882:3;21823:67;:::i;:::-;21816:74;;21899:93;21988:3;21899:93;:::i;:::-;22017:2;22012:3;22008:12;22001:19;;21660:366;;;:::o;22032:419::-;22198:4;22236:2;22225:9;22221:18;22213:26;;22285:9;22279:4;22275:20;22271:1;22260:9;22256:17;22249:47;22313:131;22439:4;22313:131;:::i;:::-;22305:139;;22032:419;;;:::o;22457:194::-;22497:4;22517:20;22535:1;22517:20;:::i;:::-;22512:25;;22551:20;22569:1;22551:20;:::i;:::-;22546:25;;22595:1;22592;22588:9;22580:17;;22619:1;22613:4;22610:11;22607:37;;;22624:18;;:::i;:::-;22607:37;22457:194;;;;:::o;22657:180::-;22705:77;22702:1;22695:88;22802:4;22799:1;22792:15;22826:4;22823:1;22816:15;22843:180;22891:77;22888:1;22881:88;22988:4;22985:1;22978:15;23012:4;23009:1;23002:15;23029:143;23086:5;23117:6;23111:13;23102:22;;23133:33;23160:5;23133:33;:::i;:::-;23029:143;;;;:::o;23178:351::-;23248:6;23297:2;23285:9;23276:7;23272:23;23268:32;23265:119;;;23303:79;;:::i;:::-;23265:119;23423:1;23448:64;23504:7;23495:6;23484:9;23480:22;23448:64;:::i;:::-;23438:74;;23394:128;23178:351;;;;:::o;23535:85::-;23580:7;23609:5;23598:16;;23535:85;;;:::o;23626:60::-;23654:3;23675:5;23668:12;;23626:60;;;:::o;23692:158::-;23750:9;23783:61;23801:42;23810:32;23836:5;23810:32;:::i;:::-;23801:42;:::i;:::-;23783:61;:::i;:::-;23770:74;;23692:158;;;:::o;23856:147::-;23951:45;23990:5;23951:45;:::i;:::-;23946:3;23939:58;23856:147;;:::o;24009:114::-;24076:6;24110:5;24104:12;24094:22;;24009:114;;;:::o;24129:184::-;24228:11;24262:6;24257:3;24250:19;24302:4;24297:3;24293:14;24278:29;;24129:184;;;;:::o;24319:132::-;24386:4;24409:3;24401:11;;24439:4;24434:3;24430:14;24422:22;;24319:132;;;:::o;24457:108::-;24534:24;24552:5;24534:24;:::i;:::-;24529:3;24522:37;24457:108;;:::o;24571:179::-;24640:10;24661:46;24703:3;24695:6;24661:46;:::i;:::-;24739:4;24734:3;24730:14;24716:28;;24571:179;;;;:::o;24756:113::-;24826:4;24858;24853:3;24849:14;24841:22;;24756:113;;;:::o;24905:732::-;25024:3;25053:54;25101:5;25053:54;:::i;:::-;25123:86;25202:6;25197:3;25123:86;:::i;:::-;25116:93;;25233:56;25283:5;25233:56;:::i;:::-;25312:7;25343:1;25328:284;25353:6;25350:1;25347:13;25328:284;;;25429:6;25423:13;25456:63;25515:3;25500:13;25456:63;:::i;:::-;25449:70;;25542:60;25595:6;25542:60;:::i;:::-;25532:70;;25388:224;25375:1;25372;25368:9;25363:14;;25328:284;;;25332:14;25628:3;25621:10;;25029:608;;;24905:732;;;;:::o;25643:831::-;25906:4;25944:3;25933:9;25929:19;25921:27;;25958:71;26026:1;26015:9;26011:17;26002:6;25958:71;:::i;:::-;26039:80;26115:2;26104:9;26100:18;26091:6;26039:80;:::i;:::-;26166:9;26160:4;26156:20;26151:2;26140:9;26136:18;26129:48;26194:108;26297:4;26288:6;26194:108;:::i;:::-;26186:116;;26312:72;26380:2;26369:9;26365:18;26356:6;26312:72;:::i;:::-;26394:73;26462:3;26451:9;26447:19;26438:6;26394:73;:::i;:::-;25643:831;;;;;;;;:::o;26480:147::-;26581:11;26618:3;26603:18;;26480:147;;;;:::o;26633:114::-;;:::o;26753:398::-;26912:3;26933:83;27014:1;27009:3;26933:83;:::i;:::-;26926:90;;27025:93;27114:3;27025:93;:::i;:::-;27143:1;27138:3;27134:11;27127:18;;26753:398;;;:::o;27157:379::-;27341:3;27363:147;27506:3;27363:147;:::i;:::-;27356:154;;27527:3;27520:10;;27157:379;;;:::o;27542:180::-;27590:77;27587:1;27580:88;27687:4;27684:1;27677:15;27711:4;27708:1;27701:15;27728:185;27768:1;27785:20;27803:1;27785:20;:::i;:::-;27780:25;;27819:20;27837:1;27819:20;:::i;:::-;27814:25;;27858:1;27848:35;;27863:18;;:::i;:::-;27848:35;27905:1;27902;27898:9;27893:14;;27728:185;;;;:::o;27919:220::-;28059:34;28055:1;28047:6;28043:14;28036:58;28128:3;28123:2;28115:6;28111:15;28104:28;27919:220;:::o;28145:366::-;28287:3;28308:67;28372:2;28367:3;28308:67;:::i;:::-;28301:74;;28384:93;28473:3;28384:93;:::i;:::-;28502:2;28497:3;28493:12;28486:19;;28145:366;;;:::o;28517:419::-;28683:4;28721:2;28710:9;28706:18;28698:26;;28770:9;28764:4;28760:20;28756:1;28745:9;28741:17;28734:47;28798:131;28924:4;28798:131;:::i;:::-;28790:139;;28517:419;;;:::o;28942:177::-;29082:29;29078:1;29070:6;29066:14;29059:53;28942:177;:::o;29125:366::-;29267:3;29288:67;29352:2;29347:3;29288:67;:::i;:::-;29281:74;;29364:93;29453:3;29364:93;:::i;:::-;29482:2;29477:3;29473:12;29466:19;;29125:366;;;:::o;29497:419::-;29663:4;29701:2;29690:9;29686:18;29678:26;;29750:9;29744:4;29740:20;29736:1;29725:9;29721:17;29714:47;29778:131;29904:4;29778:131;:::i;:::-;29770:139;;29497:419;;;:::o
Swarm Source
ipfs://032265e608ef1814d736bc98a22991afa7bfd26ea78ecc8c8094f381eb46f0e4
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)