Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 344 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 24296305 | 48 days ago | IN | 0 ETH | 0.00001364 | ||||
| Approve | 24226958 | 58 days ago | IN | 0 ETH | 0.00002383 | ||||
| Approve | 23844343 | 112 days ago | IN | 0 ETH | 0.00006539 | ||||
| Transfer | 23792856 | 119 days ago | IN | 0 ETH | 0.00013324 | ||||
| Approve | 23788014 | 120 days ago | IN | 0 ETH | 0.0000072 | ||||
| Transfer | 23777774 | 121 days ago | IN | 0 ETH | 0.00003867 | ||||
| Approve | 23772173 | 122 days ago | IN | 0 ETH | 0.00009945 | ||||
| Approve | 23753664 | 124 days ago | IN | 0 ETH | 0.00000816 | ||||
| Approve | 23749120 | 125 days ago | IN | 0 ETH | 0.00021483 | ||||
| Approve | 23737274 | 127 days ago | IN | 0 ETH | 0.00001763 | ||||
| Approve | 23737273 | 127 days ago | IN | 0 ETH | 0.00001704 | ||||
| Approve | 23727528 | 128 days ago | IN | 0 ETH | 0.00036844 | ||||
| Approve | 23727309 | 128 days ago | IN | 0 ETH | 0.00085616 | ||||
| Approve | 23698869 | 132 days ago | IN | 0 ETH | 0.0001215 | ||||
| Approve | 23688747 | 133 days ago | IN | 0 ETH | 0.00001327 | ||||
| Approve | 23682914 | 134 days ago | IN | 0 ETH | 0.00000803 | ||||
| Approve | 23682748 | 134 days ago | IN | 0 ETH | 0.00004613 | ||||
| Approve | 23681314 | 135 days ago | IN | 0 ETH | 0.00000863 | ||||
| Approve | 23678921 | 135 days ago | IN | 0 ETH | 0.00004849 | ||||
| Approve | 23678426 | 135 days ago | IN | 0 ETH | 0.00002314 | ||||
| Transfer | 23677815 | 135 days ago | IN | 0 ETH | 0.00004347 | ||||
| Approve | 23674704 | 135 days ago | IN | 0 ETH | 0.00003035 | ||||
| Approve | 23671022 | 136 days ago | IN | 0 ETH | 0.00005399 | ||||
| Approve | 23670252 | 136 days ago | IN | 0 ETH | 0.00006683 | ||||
| Approve | 23669388 | 136 days ago | IN | 0 ETH | 0.00016031 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23645211 | 140 days ago | 0.12922811 ETH | ||||
| Transfer | 23645211 | 140 days ago | 0.12922811 ETH | ||||
| Transfer | 23642174 | 140 days ago | 0.0193466 ETH | ||||
| Transfer | 23642174 | 140 days ago | 0.0193466 ETH | ||||
| Transfer | 23633395 | 141 days ago | 0.02147008 ETH | ||||
| Transfer | 23633395 | 141 days ago | 0.02147008 ETH | ||||
| Transfer | 23633061 | 141 days ago | 0.02595971 ETH | ||||
| Transfer | 23633061 | 141 days ago | 0.02595971 ETH | ||||
| Transfer | 23630102 | 142 days ago | 0.02191925 ETH | ||||
| Transfer | 23630102 | 142 days ago | 0.02191925 ETH | ||||
| Transfer | 23628317 | 142 days ago | 0.01684224 ETH | ||||
| Transfer | 23628317 | 142 days ago | 0.01684224 ETH | ||||
| Transfer | 23627912 | 142 days ago | 0.05119138 ETH | ||||
| Transfer | 23627912 | 142 days ago | 0.05119138 ETH | ||||
| Transfer | 23626022 | 142 days ago | 0.01576888 ETH | ||||
| Transfer | 23626022 | 142 days ago | 0.01576888 ETH | ||||
| Transfer | 23625011 | 142 days ago | 0.02199378 ETH | ||||
| Transfer | 23625011 | 142 days ago | 0.02199378 ETH | ||||
| Transfer | 23619014 | 143 days ago | 0.02289902 ETH | ||||
| Transfer | 23619014 | 143 days ago | 0.02289902 ETH | ||||
| Transfer | 23614526 | 144 days ago | 0.04793732 ETH | ||||
| Transfer | 23614526 | 144 days ago | 0.04793732 ETH | ||||
| Transfer | 23606928 | 145 days ago | 0.02036831 ETH | ||||
| Transfer | 23606928 | 145 days ago | 0.02036831 ETH | ||||
| Transfer | 23606926 | 145 days ago | 0.02036831 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Vision
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-10-15
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
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 Vision 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 = 100000000 * 10**_decimals;
string private constant _name = unicode"Vision";
string private constant _symbol = unicode"VSN";
uint256 public maxTokensPerWallet = 2000000 * 10 ** decimals();
uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
uint256 public _visionBuy = 5;
uint256 public _visionSell = 5;
address payable public _visionWallet = payable(0xDc616d934fE34049cccAd06b175302F9cD962670);
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private inSwap = false;
bool private swapEnabled = true;
bool public visionEnabled = false;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
// IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test router address
// 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[_visionWallet] = 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(visionEnabled, "Vision to be enabled");
if(to != uniswapV2Pair){
require(balanceOf(to) + amount <= maxTokensPerWallet, "Cannot exceed vision max wallet amount");
}
if(_visionBuy > 0) {
if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
taxAmount = amount.mul(_visionBuy).div(100);
}
}
if(_visionSell > 0) {
if(to == uniswapV2Pair){
taxAmount = amount.mul(_visionSell).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(_visionWallet).call{value: amount}("");
if (!callSuccess) {
// Log the failure but do not revert the transaction
emit TaxWalletPaymentRevert(_visionWallet, amount);
}
}
receive() external payable {}
function updateVisionTaxes(uint256 buyFee, uint256 sellFee) public onlyOwner {
_visionBuy = buyFee;
_visionSell = sellFee;
}
function enableVision() public onlyOwner {
require(visionEnabled != true, "Vision enabled already");
visionEnabled = true;
}
function updateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner{
require(_taxLimit > 0, "Threshold cannot be 0");
_taxSwapThreshold = _taxLimit;
}
function excludeFromTaxes(address account) public onlyOwner {
_isExcludedFromFee[account] = true;
}
function includeInTaxes(address account) public onlyOwner {
_isExcludedFromFee[account] = false;
}
function updateVisionMaxWallet(uint256 _maxLimit) public onlyOwner{
require(_maxLimit > totalSupply().div(200),"Limit cannot be too low");
maxTokensPerWallet = _maxLimit;
}
function manualSwap() external {
require(_msgSender()==_visionWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
}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":[{"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":[],"name":"_visionBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_visionSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_visionWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"enableVision","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":"_taxLimit","type":"uint256"}],"name":"updateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"updateVisionMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"updateVisionTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"visionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405261001261053960201b60201c565b600a61001e91906107a1565b621e848061002c91906107eb565b6004556012600a61003d91906107a1565b620186a061004b91906107eb565b6005556005600655600560075573dc616d934fe34049cccad06b175302f9cd96267060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055505f600a60166101000a81548160ff021916908315150217905550348015610106575f80fd5b5061012361011861054160201b60201c565b61054860201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a8919061088a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610231919061088a565b6040518363ffffffff1660e01b815260040161024e9291906108c4565b6020604051808303815f875af115801561026a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028e919061088a565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a61031b91906107a1565b6305f5e10061032a91906107eb565b60015f61033b61054160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038b61060960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b361054160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050f91906107a1565b6305f5e10061051e91906107eb565b60405161052b91906108fa565b60405180910390a350610913565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106b25780860481111561068e5761068d610630565b5b600185161561069d5780820291505b80810290506106ab8561065d565b9450610672565b94509492505050565b5f826106ca5760019050610785565b816106d7575f9050610785565b81600181146106ed57600281146106f757610726565b6001915050610785565b60ff84111561070957610708610630565b5b8360020a9150848211156107205761071f610630565b5b50610785565b5060208310610133831016604e8410600b841016171561075b5782820a90508381111561075657610755610630565b5b610785565b6107688484846001610669565b9250905081840481111561077f5761077e610630565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107ab8261078c565b91506107b683610795565b92506107e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106bb565b905092915050565b5f6107f58261078c565b91506108008361078c565b925082820261080e8161078c565b9150828204841483151761082557610824610630565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61085982610830565b9050919050565b6108698161084f565b8114610873575f80fd5b50565b5f8151905061088481610860565b92915050565b5f6020828403121561089f5761089e61082c565b5b5f6108ac84828501610876565b91505092915050565b6108be8161084f565b82525050565b5f6040820190506108d75f8301856108b5565b6108e460208301846108b5565b9392505050565b6108f48161078c565b82525050565b5f60208201905061090d5f8301846108eb565b92915050565b612c11806109205f395ff3fe608060405260043610610183575f3560e01c806370a08231116100d0578063983e915811610089578063bf474bed11610063578063bf474bed1461053e578063dd62ed3e14610568578063f2fde38b146105a4578063f716abc5146105cc5761018a565b8063983e9158146104b2578063a9059cbb146104da578063b3120574146105165761018a565b806370a08231146103a8578063715018a6146103e4578063768dc710146103fa5780638da5cb5b146104365780639547d12d1461046057806395d89b41146104885761018a565b806318160ddd1161013d578063313ce56711610117578063313ce56714610328578063469132ce1461035257806351bc3c851461037c57806355f2f981146103925761018a565b806318160ddd1461029857806323b872dd146102c257806325ee2f50146102fe5761018a565b806238cf301461018e578063034832bd146101b857806306fdde03146101e0578063095ea7b31461020a5780630fbf4e0014610246578063131e00b7146102705761018a565b3661018a57005b5f80fd5b348015610199575f80fd5b506101a26105f6565b6040516101af9190611ca5565b60405180910390f35b3480156101c3575f80fd5b506101de60048036038101906101d99190611cec565b6105fc565b005b3480156101eb575f80fd5b506101f4610650565b6040516102019190611d87565b60405180910390f35b348015610215575f80fd5b50610230600480360381019061022b9190611e01565b61068d565b60405161023d9190611e59565b60405180910390f35b348015610251575f80fd5b5061025a6106aa565b6040516102679190611ca5565b60405180910390f35b34801561027b575f80fd5b5061029660048036038101906102919190611e72565b6106b0565b005b3480156102a3575f80fd5b506102ac610710565b6040516102b99190611ca5565b60405180910390f35b3480156102cd575f80fd5b506102e860048036038101906102e39190611e9d565b610733565b6040516102f59190611e59565b60405180910390f35b348015610309575f80fd5b50610312610807565b60405161031f9190611e59565b60405180910390f35b348015610333575f80fd5b5061033c61081a565b6040516103499190611f08565b60405180910390f35b34801561035d575f80fd5b50610366610822565b6040516103739190611ca5565b60405180910390f35b348015610387575f80fd5b50610390610828565b005b34801561039d575f80fd5b506103a66108bf565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190611e72565b61093a565b6040516103db9190611ca5565b60405180910390f35b3480156103ef575f80fd5b506103f8610980565b005b348015610405575f80fd5b50610420600480360381019061041b9190611e72565b610993565b60405161042d9190611e59565b60405180910390f35b348015610441575f80fd5b5061044a6109b0565b6040516104579190611f30565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190611cec565b6109d7565b005b348015610493575f80fd5b5061049c610a45565b6040516104a99190611d87565b60405180910390f35b3480156104bd575f80fd5b506104d860048036038101906104d39190611e72565b610a82565b005b3480156104e5575f80fd5b5061050060048036038101906104fb9190611e01565b610ae1565b60405161050d9190611e59565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190611f49565b610afe565b005b348015610549575f80fd5b50610552610b18565b60405161055f9190611ca5565b60405180910390f35b348015610573575f80fd5b5061058e60048036038101906105899190611f87565b610b1e565b60405161059b9190611ca5565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611e72565b610ba0565b005b3480156105d7575f80fd5b506105e0610c22565b6040516105ed9190611fe5565b60405180910390f35b60065481565b610604610c47565b5f8111610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90612048565b60405180910390fd5b8060058190555050565b60606040518060400160405280600681526020017f566973696f6e0000000000000000000000000000000000000000000000000000815250905090565b5f6106a0610699610cc5565b8484610ccc565b6001905092915050565b60075481565b6106b8610c47565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6012600a61071f91906121c2565b6305f5e10061072e919061220c565b905090565b5f61073f848484610e8f565b6107fc8461074b610cc5565b6107f785604051806060016040528060288152602001612bb46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ae610cc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162d9092919063ffffffff16565b610ccc565b600190509392505050565b600a60169054906101000a900460ff1681565b5f6012905090565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610868610cc5565b73ffffffffffffffffffffffffffffffffffffffff1614610887575f80fd5b5f6108913061093a565b90505f8111156108a5576108a48161168f565b5b5f4790505f8111156108bb576108ba81611903565b5b5050565b6108c7610c47565b60011515600a60169054906101000a900460ff1615150361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490612297565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610988610c47565b6109915f611a05565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109df610c47565b6109fa60c86109ec610710565b611ac690919063ffffffff16565b8111610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906122ff565b60405180910390fd5b8060048190555050565b60606040518060400160405280600381526020017f56534e0000000000000000000000000000000000000000000000000000000000815250905090565b610a8a610c47565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610af4610aed610cc5565b8484610e8f565b6001905092915050565b610b06610c47565b81600681905550806007819055505050565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ba8610c47565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d9061238d565b60405180910390fd5b610c1f81611a05565b50565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c4f610cc5565b73ffffffffffffffffffffffffffffffffffffffff16610c6d6109b0565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906123f5565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612511565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e829190611ca5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061259f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061262d565b60405180910390fd5b5f8111610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126bb565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561104c575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561137d57600a60169054906101000a900460ff166110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612723565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461114d57600454826111018561093a565b61110b9190612741565b111561114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906127e4565b60405180910390fd5b5b5f600654111561123157600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611200575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112305761122d606461121f60065485611b0f90919063ffffffff16565b611ac690919063ffffffff16565b90505b5b5f60075411156112bb57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ba576112b760646112a960075485611b0f90919063ffffffff16565b611ac690919063ffffffff16565b90505b5b5f6112c53061093a565b9050600a60149054906101000a900460ff161580156113305750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113485750600a60159054906101000a900460ff165b8015611355575060055481115b1561137b576113638161168f565b5f4790505f8111156113795761137847611903565b5b505b505b5f81111561147c576113d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114739190611ca5565b60405180910390a35b6114cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061156f6115238284611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116128486611be390919063ffffffff16565b60405161161f9190611ca5565b60405180910390a350505050565b5f838311158290611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9190611d87565b60405180910390fd5b505f83856116829190612802565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156118e6575f600267ffffffffffffffff8111156116ce576116cd612835565b5b6040519080825280602002602001820160405280156116fc5781602001602082028036833780820191505090505b50905030815f8151811061171357611712612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db91906128a3565b816001815181106117ef576117ee612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118553060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ccc565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118b79594939291906129c7565b5f604051808303815f87803b1580156118ce575f80fd5b505af11580156118e0573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161194990612a4c565b5f6040518083038185875af1925050503d805f8114611983576040519150601f19603f3d011682016040523d82523d5f602084013e611988565b606091505b5050905080611a015760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516119f89190611ca5565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2c565b905092915050565b5f808303611b1f575f9050611b80565b5f8284611b2c919061220c565b9050828482611b3b9190612a8d565b14611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290612b2d565b60405180910390fd5b809150505b92915050565b5f808284611b949190612741565b905083811015611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090612b95565b60405180910390fd5b8091505092915050565b5f611c2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162d565b905092915050565b5f8083118290611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c699190611d87565b60405180910390fd5b505f8385611c809190612a8d565b9050809150509392505050565b5f819050919050565b611c9f81611c8d565b82525050565b5f602082019050611cb85f830184611c96565b92915050565b5f80fd5b611ccb81611c8d565b8114611cd5575f80fd5b50565b5f81359050611ce681611cc2565b92915050565b5f60208284031215611d0157611d00611cbe565b5b5f611d0e84828501611cd8565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d5982611d17565b611d638185611d21565b9350611d73818560208601611d31565b611d7c81611d3f565b840191505092915050565b5f6020820190508181035f830152611d9f8184611d4f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd082611da7565b9050919050565b611de081611dc6565b8114611dea575f80fd5b50565b5f81359050611dfb81611dd7565b92915050565b5f8060408385031215611e1757611e16611cbe565b5b5f611e2485828601611ded565b9250506020611e3585828601611cd8565b9150509250929050565b5f8115159050919050565b611e5381611e3f565b82525050565b5f602082019050611e6c5f830184611e4a565b92915050565b5f60208284031215611e8757611e86611cbe565b5b5f611e9484828501611ded565b91505092915050565b5f805f60608486031215611eb457611eb3611cbe565b5b5f611ec186828701611ded565b9350506020611ed286828701611ded565b9250506040611ee386828701611cd8565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b611f2a81611dc6565b82525050565b5f602082019050611f435f830184611f21565b92915050565b5f8060408385031215611f5f57611f5e611cbe565b5b5f611f6c85828601611cd8565b9250506020611f7d85828601611cd8565b9150509250929050565b5f8060408385031215611f9d57611f9c611cbe565b5b5f611faa85828601611ded565b9250506020611fbb85828601611ded565b9150509250929050565b5f611fcf82611da7565b9050919050565b611fdf81611fc5565b82525050565b5f602082019050611ff85f830184611fd6565b92915050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f612032601583611d21565b915061203d82611ffe565b602082019050919050565b5f6020820190508181035f83015261205f81612026565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120e8578086048111156120c4576120c3612066565b5b60018516156120d35780820291505b80810290506120e185612093565b94506120a8565b94509492505050565b5f8261210057600190506121bb565b8161210d575f90506121bb565b8160018114612123576002811461212d5761215c565b60019150506121bb565b60ff84111561213f5761213e612066565b5b8360020a91508482111561215657612155612066565b5b506121bb565b5060208310610133831016604e8410600b84101617156121915782820a90508381111561218c5761218b612066565b5b6121bb565b61219e848484600161209f565b925090508184048111156121b5576121b4612066565b5b81810290505b9392505050565b5f6121cc82611c8d565b91506121d783611eed565b92506122047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120f1565b905092915050565b5f61221682611c8d565b915061222183611c8d565b925082820261222f81611c8d565b9150828204841483151761224657612245612066565b5b5092915050565b7f566973696f6e20656e61626c656420616c7265616479000000000000000000005f82015250565b5f612281601683611d21565b915061228c8261224d565b602082019050919050565b5f6020820190508181035f8301526122ae81612275565b9050919050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f6122e9601783611d21565b91506122f4826122b5565b602082019050919050565b5f6020820190508181035f830152612316816122dd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612377602683611d21565b91506123828261231d565b604082019050919050565b5f6020820190508181035f8301526123a48161236b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123df602083611d21565b91506123ea826123ab565b602082019050919050565b5f6020820190508181035f83015261240c816123d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61246d602483611d21565b915061247882612413565b604082019050919050565b5f6020820190508181035f83015261249a81612461565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124fb602283611d21565b9150612506826124a1565b604082019050919050565b5f6020820190508181035f830152612528816124ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612589602583611d21565b91506125948261252f565b604082019050919050565b5f6020820190508181035f8301526125b68161257d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612617602383611d21565b9150612622826125bd565b604082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126a5602983611d21565b91506126b08261264b565b604082019050919050565b5f6020820190508181035f8301526126d281612699565b9050919050565b7f566973696f6e20746f20626520656e61626c65640000000000000000000000005f82015250565b5f61270d601483611d21565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f61274b82611c8d565b915061275683611c8d565b925082820190508082111561276e5761276d612066565b5b92915050565b7f43616e6e6f742065786365656420766973696f6e206d61782077616c6c6574205f8201527f616d6f756e740000000000000000000000000000000000000000000000000000602082015250565b5f6127ce602683611d21565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f61280c82611c8d565b915061281783611c8d565b925082820390508181111561282f5761282e612066565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061289d81611dd7565b92915050565b5f602082840312156128b8576128b7611cbe565b5b5f6128c58482850161288f565b91505092915050565b5f819050919050565b5f819050919050565b5f6128fa6128f56128f0846128ce565b6128d7565b611c8d565b9050919050565b61290a816128e0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61294281611dc6565b82525050565b5f6129538383612939565b60208301905092915050565b5f602082019050919050565b5f61297582612910565b61297f818561291a565b935061298a8361292a565b805f5b838110156129ba5781516129a18882612948565b97506129ac8361295f565b92505060018101905061298d565b5085935050505092915050565b5f60a0820190506129da5f830188611c96565b6129e76020830187612901565b81810360408301526129f9818661296b565b9050612a086060830185611f21565b612a156080830184611c96565b9695505050505050565b5f81905092915050565b50565b5f612a375f83612a1f565b9150612a4282612a29565b5f82019050919050565b5f612a5682612a2c565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a9782611c8d565b9150612aa283611c8d565b925082612ab257612ab1612a60565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602183611d21565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b7f601b83611d21565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220479ca990b63db06f572f6064ea417c02b9d3ea479a7e503acfd6781ee15d8e8764736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610183575f3560e01c806370a08231116100d0578063983e915811610089578063bf474bed11610063578063bf474bed1461053e578063dd62ed3e14610568578063f2fde38b146105a4578063f716abc5146105cc5761018a565b8063983e9158146104b2578063a9059cbb146104da578063b3120574146105165761018a565b806370a08231146103a8578063715018a6146103e4578063768dc710146103fa5780638da5cb5b146104365780639547d12d1461046057806395d89b41146104885761018a565b806318160ddd1161013d578063313ce56711610117578063313ce56714610328578063469132ce1461035257806351bc3c851461037c57806355f2f981146103925761018a565b806318160ddd1461029857806323b872dd146102c257806325ee2f50146102fe5761018a565b806238cf301461018e578063034832bd146101b857806306fdde03146101e0578063095ea7b31461020a5780630fbf4e0014610246578063131e00b7146102705761018a565b3661018a57005b5f80fd5b348015610199575f80fd5b506101a26105f6565b6040516101af9190611ca5565b60405180910390f35b3480156101c3575f80fd5b506101de60048036038101906101d99190611cec565b6105fc565b005b3480156101eb575f80fd5b506101f4610650565b6040516102019190611d87565b60405180910390f35b348015610215575f80fd5b50610230600480360381019061022b9190611e01565b61068d565b60405161023d9190611e59565b60405180910390f35b348015610251575f80fd5b5061025a6106aa565b6040516102679190611ca5565b60405180910390f35b34801561027b575f80fd5b5061029660048036038101906102919190611e72565b6106b0565b005b3480156102a3575f80fd5b506102ac610710565b6040516102b99190611ca5565b60405180910390f35b3480156102cd575f80fd5b506102e860048036038101906102e39190611e9d565b610733565b6040516102f59190611e59565b60405180910390f35b348015610309575f80fd5b50610312610807565b60405161031f9190611e59565b60405180910390f35b348015610333575f80fd5b5061033c61081a565b6040516103499190611f08565b60405180910390f35b34801561035d575f80fd5b50610366610822565b6040516103739190611ca5565b60405180910390f35b348015610387575f80fd5b50610390610828565b005b34801561039d575f80fd5b506103a66108bf565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190611e72565b61093a565b6040516103db9190611ca5565b60405180910390f35b3480156103ef575f80fd5b506103f8610980565b005b348015610405575f80fd5b50610420600480360381019061041b9190611e72565b610993565b60405161042d9190611e59565b60405180910390f35b348015610441575f80fd5b5061044a6109b0565b6040516104579190611f30565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190611cec565b6109d7565b005b348015610493575f80fd5b5061049c610a45565b6040516104a99190611d87565b60405180910390f35b3480156104bd575f80fd5b506104d860048036038101906104d39190611e72565b610a82565b005b3480156104e5575f80fd5b5061050060048036038101906104fb9190611e01565b610ae1565b60405161050d9190611e59565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190611f49565b610afe565b005b348015610549575f80fd5b50610552610b18565b60405161055f9190611ca5565b60405180910390f35b348015610573575f80fd5b5061058e60048036038101906105899190611f87565b610b1e565b60405161059b9190611ca5565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611e72565b610ba0565b005b3480156105d7575f80fd5b506105e0610c22565b6040516105ed9190611fe5565b60405180910390f35b60065481565b610604610c47565b5f8111610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90612048565b60405180910390fd5b8060058190555050565b60606040518060400160405280600681526020017f566973696f6e0000000000000000000000000000000000000000000000000000815250905090565b5f6106a0610699610cc5565b8484610ccc565b6001905092915050565b60075481565b6106b8610c47565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6012600a61071f91906121c2565b6305f5e10061072e919061220c565b905090565b5f61073f848484610e8f565b6107fc8461074b610cc5565b6107f785604051806060016040528060288152602001612bb46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ae610cc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162d9092919063ffffffff16565b610ccc565b600190509392505050565b600a60169054906101000a900460ff1681565b5f6012905090565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610868610cc5565b73ffffffffffffffffffffffffffffffffffffffff1614610887575f80fd5b5f6108913061093a565b90505f8111156108a5576108a48161168f565b5b5f4790505f8111156108bb576108ba81611903565b5b5050565b6108c7610c47565b60011515600a60169054906101000a900460ff1615150361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490612297565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610988610c47565b6109915f611a05565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109df610c47565b6109fa60c86109ec610710565b611ac690919063ffffffff16565b8111610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906122ff565b60405180910390fd5b8060048190555050565b60606040518060400160405280600381526020017f56534e0000000000000000000000000000000000000000000000000000000000815250905090565b610a8a610c47565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610af4610aed610cc5565b8484610e8f565b6001905092915050565b610b06610c47565b81600681905550806007819055505050565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ba8610c47565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d9061238d565b60405180910390fd5b610c1f81611a05565b50565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c4f610cc5565b73ffffffffffffffffffffffffffffffffffffffff16610c6d6109b0565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906123f5565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612511565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e829190611ca5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061259f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061262d565b60405180910390fd5b5f8111610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126bb565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561104c575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561137d57600a60169054906101000a900460ff166110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612723565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461114d57600454826111018561093a565b61110b9190612741565b111561114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906127e4565b60405180910390fd5b5b5f600654111561123157600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611200575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112305761122d606461121f60065485611b0f90919063ffffffff16565b611ac690919063ffffffff16565b90505b5b5f60075411156112bb57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ba576112b760646112a960075485611b0f90919063ffffffff16565b611ac690919063ffffffff16565b90505b5b5f6112c53061093a565b9050600a60149054906101000a900460ff161580156113305750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113485750600a60159054906101000a900460ff165b8015611355575060055481115b1561137b576113638161168f565b5f4790505f8111156113795761137847611903565b5b505b505b5f81111561147c576113d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114739190611ca5565b60405180910390a35b6114cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061156f6115238284611be390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116128486611be390919063ffffffff16565b60405161161f9190611ca5565b60405180910390a350505050565b5f838311158290611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9190611d87565b60405180910390fd5b505f83856116829190612802565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156118e6575f600267ffffffffffffffff8111156116ce576116cd612835565b5b6040519080825280602002602001820160405280156116fc5781602001602082028036833780820191505090505b50905030815f8151811061171357611712612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db91906128a3565b816001815181106117ef576117ee612862565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118553060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ccc565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118b79594939291906129c7565b5f604051808303815f87803b1580156118ce575f80fd5b505af11580156118e0573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161194990612a4c565b5f6040518083038185875af1925050503d805f8114611983576040519150601f19603f3d011682016040523d82523d5f602084013e611988565b606091505b5050905080611a015760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516119f89190611ca5565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2c565b905092915050565b5f808303611b1f575f9050611b80565b5f8284611b2c919061220c565b9050828482611b3b9190612a8d565b14611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290612b2d565b60405180910390fd5b809150505b92915050565b5f808284611b949190612741565b905083811015611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090612b95565b60405180910390fd5b8091505092915050565b5f611c2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162d565b905092915050565b5f8083118290611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c699190611d87565b60405180910390fd5b505f8385611c809190612a8d565b9050809150509392505050565b5f819050919050565b611c9f81611c8d565b82525050565b5f602082019050611cb85f830184611c96565b92915050565b5f80fd5b611ccb81611c8d565b8114611cd5575f80fd5b50565b5f81359050611ce681611cc2565b92915050565b5f60208284031215611d0157611d00611cbe565b5b5f611d0e84828501611cd8565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d5982611d17565b611d638185611d21565b9350611d73818560208601611d31565b611d7c81611d3f565b840191505092915050565b5f6020820190508181035f830152611d9f8184611d4f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd082611da7565b9050919050565b611de081611dc6565b8114611dea575f80fd5b50565b5f81359050611dfb81611dd7565b92915050565b5f8060408385031215611e1757611e16611cbe565b5b5f611e2485828601611ded565b9250506020611e3585828601611cd8565b9150509250929050565b5f8115159050919050565b611e5381611e3f565b82525050565b5f602082019050611e6c5f830184611e4a565b92915050565b5f60208284031215611e8757611e86611cbe565b5b5f611e9484828501611ded565b91505092915050565b5f805f60608486031215611eb457611eb3611cbe565b5b5f611ec186828701611ded565b9350506020611ed286828701611ded565b9250506040611ee386828701611cd8565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b611f2a81611dc6565b82525050565b5f602082019050611f435f830184611f21565b92915050565b5f8060408385031215611f5f57611f5e611cbe565b5b5f611f6c85828601611cd8565b9250506020611f7d85828601611cd8565b9150509250929050565b5f8060408385031215611f9d57611f9c611cbe565b5b5f611faa85828601611ded565b9250506020611fbb85828601611ded565b9150509250929050565b5f611fcf82611da7565b9050919050565b611fdf81611fc5565b82525050565b5f602082019050611ff85f830184611fd6565b92915050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f612032601583611d21565b915061203d82611ffe565b602082019050919050565b5f6020820190508181035f83015261205f81612026565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120e8578086048111156120c4576120c3612066565b5b60018516156120d35780820291505b80810290506120e185612093565b94506120a8565b94509492505050565b5f8261210057600190506121bb565b8161210d575f90506121bb565b8160018114612123576002811461212d5761215c565b60019150506121bb565b60ff84111561213f5761213e612066565b5b8360020a91508482111561215657612155612066565b5b506121bb565b5060208310610133831016604e8410600b84101617156121915782820a90508381111561218c5761218b612066565b5b6121bb565b61219e848484600161209f565b925090508184048111156121b5576121b4612066565b5b81810290505b9392505050565b5f6121cc82611c8d565b91506121d783611eed565b92506122047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120f1565b905092915050565b5f61221682611c8d565b915061222183611c8d565b925082820261222f81611c8d565b9150828204841483151761224657612245612066565b5b5092915050565b7f566973696f6e20656e61626c656420616c7265616479000000000000000000005f82015250565b5f612281601683611d21565b915061228c8261224d565b602082019050919050565b5f6020820190508181035f8301526122ae81612275565b9050919050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f6122e9601783611d21565b91506122f4826122b5565b602082019050919050565b5f6020820190508181035f830152612316816122dd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612377602683611d21565b91506123828261231d565b604082019050919050565b5f6020820190508181035f8301526123a48161236b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123df602083611d21565b91506123ea826123ab565b602082019050919050565b5f6020820190508181035f83015261240c816123d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61246d602483611d21565b915061247882612413565b604082019050919050565b5f6020820190508181035f83015261249a81612461565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124fb602283611d21565b9150612506826124a1565b604082019050919050565b5f6020820190508181035f830152612528816124ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612589602583611d21565b91506125948261252f565b604082019050919050565b5f6020820190508181035f8301526125b68161257d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612617602383611d21565b9150612622826125bd565b604082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126a5602983611d21565b91506126b08261264b565b604082019050919050565b5f6020820190508181035f8301526126d281612699565b9050919050565b7f566973696f6e20746f20626520656e61626c65640000000000000000000000005f82015250565b5f61270d601483611d21565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f61274b82611c8d565b915061275683611c8d565b925082820190508082111561276e5761276d612066565b5b92915050565b7f43616e6e6f742065786365656420766973696f6e206d61782077616c6c6574205f8201527f616d6f756e740000000000000000000000000000000000000000000000000000602082015250565b5f6127ce602683611d21565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f61280c82611c8d565b915061281783611c8d565b925082820390508181111561282f5761282e612066565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061289d81611dd7565b92915050565b5f602082840312156128b8576128b7611cbe565b5b5f6128c58482850161288f565b91505092915050565b5f819050919050565b5f819050919050565b5f6128fa6128f56128f0846128ce565b6128d7565b611c8d565b9050919050565b61290a816128e0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61294281611dc6565b82525050565b5f6129538383612939565b60208301905092915050565b5f602082019050919050565b5f61297582612910565b61297f818561291a565b935061298a8361292a565b805f5b838110156129ba5781516129a18882612948565b97506129ac8361295f565b92505060018101905061298d565b5085935050505092915050565b5f60a0820190506129da5f830188611c96565b6129e76020830187612901565b81810360408301526129f9818661296b565b9050612a086060830185611f21565b612a156080830184611c96565b9695505050505050565b5f81905092915050565b50565b5f612a375f83612a1f565b9150612a4282612a29565b5f82019050919050565b5f612a5682612a2c565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a9782611c8d565b9150612aa283611c8d565b925082612ab257612ab1612a60565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602183611d21565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b7f601b83611d21565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220479ca990b63db06f572f6064ea417c02b9d3ea479a7e503acfd6781ee15d8e8764736f6c634300081a0033
Deployed Bytecode Sourcemap
4812:7810:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5446:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11633:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6857:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7690:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5482:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11814:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7134:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7859:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5779:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7043:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5308:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12258:351;;;;;;;;;;;;;:::i;:::-;;11478:147;;;;;;;;;;;;;:::i;:::-;;7237:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3233:103;;;;;;;;;;;;;:::i;:::-;;5027:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2592:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12055:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6948:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11935:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7364:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11323:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5377:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7539:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3491:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5519:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5446:29;;;;:::o;11633:173::-;2478:13;:11;:13::i;:::-;11731:1:::1;11719:9;:13;11711:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11789:9;11769:17;:29;;;;11633:173:::0;:::o;6857:83::-;6894:13;6927:5;;;;;;;;;;;;;;;;;6920:12;;6857:83;:::o;7690:161::-;7765:4;7782:39;7791:12;:10;:12::i;:::-;7805:7;7814:6;7782:8;:39::i;:::-;7839:4;7832:11;;7690:161;;;;:::o;5482:30::-;;;;:::o;11814:113::-;2478:13;:11;:13::i;:::-;11915:4:::1;11885:18;:27;11904:7;11885:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11814:113:::0;:::o;7134:95::-;7187:7;5125:2;5181;:13;;;;:::i;:::-;5169:9;:25;;;;:::i;:::-;7207:14;;7134:95;:::o;7859:313::-;7957:4;7974:36;7984:6;7992:9;8003:6;7974:9;:36::i;:::-;8021:121;8030:6;8038:12;:10;:12::i;:::-;8052:89;8090:6;8052:89;;;;;;;;;;;;;;;;;:11;:19;8064:6;8052:19;;;;;;;;;;;;;;;:33;8072:12;:10;:12::i;:::-;8052:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8021:8;:121::i;:::-;8160:4;8153:11;;7859:313;;;;;:::o;5779:33::-;;;;;;;;;;;;;:::o;7043:83::-;7084:5;5125:2;7102:16;;7043:83;:::o;5308:62::-;;;;:::o;12258:351::-;12322:13;;;;;;;;;;;12308:27;;:12;:10;:12::i;:::-;:27;;;12300:36;;;;;;12347:20;12368:24;12386:4;12368:9;:24::i;:::-;12347:45;;12419:1;12406:12;:14;12403:73;;;12434:30;12451:12;12434:16;:30::i;:::-;12403:73;12486:18;12505:21;12486:40;;12551:1;12540:10;:12;12537:65;;;12566:24;12579:10;12566:12;:24::i;:::-;12537:65;12289:320;;12258:351::o;11478:147::-;2478:13;:11;:13::i;:::-;11555:4:::1;11538:21;;:13;;;;;;;;;;;:21;;::::0;11530:56:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11613:4;11597:13;;:20;;;;;;;;;;;;;;;;;;11478:147::o:0;7237:119::-;7303:7;7330:9;:18;7340:7;7330:18;;;;;;;;;;;;;;;;7323:25;;7237:119;;;:::o;3233:103::-;2478:13;:11;:13::i;:::-;3298:30:::1;3325:1;3298:18;:30::i;:::-;3233:103::o:0;5027:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2592:87::-;2638:7;2665:6;;;;;;;;;;;2658:13;;2592:87;:::o;12055:195::-;2478:13;:11;:13::i;:::-;12152:22:::1;12170:3;12152:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;12140:9;:34;12132:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12233:9;12212:18;:30;;;;12055:195:::0;:::o;6948:87::-;6987:13;7020:7;;;;;;;;;;;;;;;;;7013:14;;6948:87;:::o;11935:112::-;2478:13;:11;:13::i;:::-;12034:5:::1;12004:18;:27;12023:7;12004:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11935:112:::0;:::o;7364:167::-;7442:4;7459:42;7469:12;:10;:12::i;:::-;7483:9;7494:6;7459:9;:42::i;:::-;7519:4;7512:11;;7364:167;;;;:::o;11323:147::-;2478:13;:11;:13::i;:::-;11424:6:::1;11411:10;:19;;;;11455:7;11441:11;:21;;;;11323:147:::0;;:::o;5377:56::-;;;;:::o;7539:143::-;7620:7;7647:11;:18;7659:5;7647:18;;;;;;;;;;;;;;;:27;7666:7;7647:27;;;;;;;;;;;;;;;;7640:34;;7539:143;;;;:::o;3491:201::-;2478:13;:11;:13::i;:::-;3600:1:::1;3580:22;;:8;:22;;::::0;3572:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3656:28;3675:8;3656:18;:28::i;:::-;3491:201:::0;:::o;5519:90::-;;;;;;;;;;;;;:::o;2757:132::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2757:132::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;8180:335::-;8290:1;8273:19;;:5;:19;;;8265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8371:1;8352:21;;:7;:21;;;8344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8453:6;8423:11;:18;8435:5;8423:18;;;;;;;;;;;;;;;:27;8442:7;8423:27;;;;;;;;;;;;;;;:36;;;;8491:7;8475:32;;8484:5;8475:32;;;8500:6;8475:32;;;;;;:::i;:::-;;;;;;;;8180:335;;;:::o;8523:1812::-;8627:1;8611:18;;:4;:18;;;8603:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8704:1;8690:16;;:2;:16;;;8682:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8774:1;8765:6;:10;8757:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8832:17;8867:18;:24;8886:4;8867:24;;;;;;;;;;;;;;;;;;;;;;;;;8866:25;:52;;;;;8896:18;:22;8915:2;8896:22;;;;;;;;;;;;;;;;;;;;;;;;;8895:23;8866:52;8862:1117;;;8945:13;;;;;;;;;;;8937:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9009:13;;;;;;;;;;;9003:19;;:2;:19;;;9000:152;;9075:18;;9065:6;9049:13;9059:2;9049:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;9041:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;9000:152;9184:1;9171:10;;:14;9168:188;;;9214:13;;;;;;;;;;;9206:21;;:4;:21;;;:55;;;;;9245:15;;;;;;;;;;;9231:30;;:2;:30;;;;9206:55;9202:139;;;9294:31;9321:3;9294:22;9305:10;;9294:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;9282:43;;9202:139;9168:188;9389:1;9375:11;;:15;9372:152;;;9416:13;;;;;;;;;;;9410:19;;:2;:19;;;9407:102;;9461:32;9489:3;9461:23;9472:11;;9461:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9449:44;;9407:102;9372:152;9540:28;9571:24;9589:4;9571:9;:24::i;:::-;9540:55;;9615:6;;;;;;;;;;;9614:7;:30;;;;;9631:13;;;;;;;;;;;9625:19;;:2;:19;;;9614:30;:45;;;;;9648:11;;;;;;;;;;;9614:45;:87;;;;;9684:17;;9663:20;:38;9614:87;9610:358;;;9722:38;9739:20;9722:16;:38::i;:::-;9779:26;9808:21;9779:50;;9872:1;9851:18;:22;9848:105;;;9898:35;9911:21;9898:12;:35::i;:::-;9848:105;9703:265;9610:358;8920:1059;8862:1117;10004:1;9994:9;:11;9991:161;;;10044:39;10073:9;10044;:24;10062:4;10044:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10019:9;:24;10037:4;10019:24;;;;;;;;;;;;;;;:64;;;;10124:4;10101:39;;10110:4;10101:39;;;10130:9;10101:39;;;;;;:::i;:::-;;;;;;;;9991:161;10178:27;10198:6;10178:9;:15;10188:4;10178:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10162:9;:15;10172:4;10162:15;;;;;;;;;;;;;;;:43;;;;10230:40;10248:21;10259:9;10248:6;:10;;:21;;;;:::i;:::-;10230:9;:13;10240:2;10230:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10216:9;:13;10226:2;10216:13;;;;;;;;;;;;;;;:54;;;;10301:2;10286:41;;10295:4;10286:41;;;10305:21;10316:9;10305:6;:10;;:21;;;;:::i;:::-;10286:41;;;;;;:::i;:::-;;;;;;;;8592:1743;8523:1812;;;:::o;1232:190::-;1318:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1378:9;1394:1;1390;:5;;;;:::i;:::-;1378:17;;1413:1;1406:8;;;1232:190;;;;;:::o;10451:520::-;5862:4;5853:6;;:13;;;;;;;;;;;;;;;;;;10545:1:::1;10532:11;:14:::0;10529:27;10548:7:::1;10529:27;10566:21;10604:1;10590:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10566:40;;10635:4;10617;10622:1;10617:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10661:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10651:4;10656:1;10651:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10694:62;10711:4;10726:15;;;;;;;;;;;10744:11;10694:8;:62::i;:::-;10767:15;;;;;;;;;;;:66;;;10848:11;10874:1;10890:4;10917;10937:15;10767:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10518:453;5877:1;5898:5:::0;5889:6;;:14;;;;;;;;;;;;;;;;;;10451:520;:::o;10979:297::-;11037:16;11067:13;;;;;;;;;;;11059:27;;11094:6;11059:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11036:69;;;11123:11;11118:149;;11237:13;;;;;;;;;;;11214:45;;;11252:6;11214:45;;;;;;:::i;:::-;;;;;;;;11118:149;11025:251;10979:297;:::o;3852:191::-;3926:16;3945:6;;;;;;;;;;;3926:25;;3971:8;3962:6;;:17;;;;;;;;;;;;;;;;;;4026:8;3995:40;;4016:8;3995:40;;;;;;;;;;;;3915:128;3852:191;:::o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1762:46;;1684:132;;;;:::o;1430:246::-;1488:7;1517:1;1512;:6;1508:47;;1542:1;1535:8;;;;1508:47;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1610:1;1605;1601;:5;;;;:::i;:::-;:10;1593:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:1;1660:8;;;1430:246;;;;;:::o;901:179::-;959:7;979:9;995:1;991;:5;;;;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;901:179;;;;:::o;1088:136::-;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1166:50;;1088:136;;;;:::o;1824:189::-;1910:7;1942:1;1938;:5;1945:12;1930:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1969:9;1985:1;1981;:5;;;;:::i;:::-;1969:17;;2004:1;1997:8;;;1824:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:139::-;1746:6;1741:3;1736;1730:23;1787:1;1778:6;1773:3;1769:16;1762:27;1657:139;;;:::o;1802:102::-;1843:6;1894:2;1890:7;1885:2;1878:5;1874:14;1870:28;1860:38;;1802:102;;;:::o;1910:377::-;1998:3;2026:39;2059:5;2026:39;:::i;:::-;2081:71;2145:6;2140:3;2081:71;:::i;:::-;2074:78;;2161:65;2219:6;2214:3;2207:4;2200:5;2196:16;2161:65;:::i;:::-;2251:29;2273:6;2251:29;:::i;:::-;2246:3;2242:39;2235:46;;2002:285;1910:377;;;;:::o;2293:313::-;2406:4;2444:2;2433:9;2429:18;2421:26;;2493:9;2487:4;2483:20;2479:1;2468:9;2464:17;2457:47;2521:78;2594:4;2585:6;2521:78;:::i;:::-;2513:86;;2293:313;;;;:::o;2612:126::-;2649:7;2689:42;2682:5;2678:54;2667:65;;2612:126;;;:::o;2744:96::-;2781:7;2810:24;2828:5;2810:24;:::i;:::-;2799:35;;2744:96;;;:::o;2846:122::-;2919:24;2937:5;2919:24;:::i;:::-;2912:5;2909:35;2899:63;;2958:1;2955;2948:12;2899:63;2846:122;:::o;2974:139::-;3020:5;3058:6;3045:20;3036:29;;3074:33;3101:5;3074:33;:::i;:::-;2974:139;;;;:::o;3119:474::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3468:118;3119:474;;;;;:::o;3599:90::-;3633:7;3676:5;3669:13;3662:21;3651:32;;3599:90;;;:::o;3695:109::-;3776:21;3791:5;3776:21;:::i;:::-;3771:3;3764:34;3695:109;;:::o;3810:210::-;3897:4;3935:2;3924:9;3920:18;3912:26;;3948:65;4010:1;3999:9;3995:17;3986:6;3948:65;:::i;:::-;3810:210;;;;:::o;4026:329::-;4085:6;4134:2;4122:9;4113:7;4109:23;4105:32;4102:119;;;4140:79;;:::i;:::-;4102:119;4260:1;4285:53;4330:7;4321:6;4310:9;4306:22;4285:53;:::i;:::-;4275:63;;4231:117;4026:329;;;;:::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:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:::-;6316:6;6324;6373:2;6361:9;6352:7;6348:23;6344:32;6341:119;;;6379:79;;:::i;:::-;6341:119;6499:1;6524:53;6569:7;6560:6;6549:9;6545:22;6524:53;:::i;:::-;6514:63;;6470:117;6626:2;6652:53;6697:7;6688:6;6677:9;6673:22;6652:53;:::i;:::-;6642:63;;6597:118;6248:474;;;;;:::o;6728:104::-;6773:7;6802:24;6820:5;6802:24;:::i;:::-;6791:35;;6728:104;;;:::o;6838:142::-;6941:32;6967:5;6941:32;:::i;:::-;6936:3;6929:45;6838:142;;:::o;6986:254::-;7095:4;7133:2;7122:9;7118:18;7110:26;;7146:87;7230:1;7219:9;7215:17;7206:6;7146:87;:::i;:::-;6986:254;;;;:::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:172::-;11290:24;11286:1;11278:6;11274:14;11267:48;11150:172;:::o;11328:366::-;11470:3;11491:67;11555:2;11550:3;11491:67;:::i;:::-;11484:74;;11567:93;11656:3;11567:93;:::i;:::-;11685:2;11680:3;11676:12;11669:19;;11328:366;;;:::o;11700:419::-;11866:4;11904:2;11893:9;11889:18;11881:26;;11953:9;11947:4;11943:20;11939:1;11928:9;11924:17;11917:47;11981:131;12107:4;11981:131;:::i;:::-;11973:139;;11700:419;;;:::o;12125:173::-;12265:25;12261:1;12253:6;12249:14;12242:49;12125:173;:::o;12304:366::-;12446:3;12467:67;12531:2;12526:3;12467:67;:::i;:::-;12460:74;;12543:93;12632:3;12543:93;:::i;:::-;12661:2;12656:3;12652:12;12645:19;;12304:366;;;:::o;12676:419::-;12842:4;12880:2;12869:9;12865:18;12857:26;;12929:9;12923:4;12919:20;12915:1;12904:9;12900:17;12893:47;12957:131;13083:4;12957:131;:::i;:::-;12949:139;;12676:419;;;:::o;13101:225::-;13241:34;13237:1;13229:6;13225:14;13218:58;13310:8;13305:2;13297:6;13293:15;13286:33;13101:225;:::o;13332:366::-;13474:3;13495:67;13559:2;13554:3;13495:67;:::i;:::-;13488:74;;13571:93;13660:3;13571:93;:::i;:::-;13689:2;13684:3;13680:12;13673:19;;13332:366;;;:::o;13704:419::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13957:9;13951:4;13947:20;13943:1;13932:9;13928:17;13921:47;13985:131;14111:4;13985:131;:::i;:::-;13977:139;;13704:419;;;:::o;14129:182::-;14269:34;14265:1;14257:6;14253:14;14246:58;14129:182;:::o;14317:366::-;14459:3;14480:67;14544:2;14539:3;14480:67;:::i;:::-;14473:74;;14556:93;14645:3;14556:93;:::i;:::-;14674:2;14669:3;14665:12;14658:19;;14317:366;;;:::o;14689:419::-;14855:4;14893:2;14882:9;14878:18;14870:26;;14942:9;14936:4;14932:20;14928:1;14917:9;14913:17;14906:47;14970:131;15096:4;14970:131;:::i;:::-;14962:139;;14689:419;;;:::o;15114:223::-;15254:34;15250:1;15242:6;15238:14;15231:58;15323:6;15318:2;15310:6;15306:15;15299:31;15114:223;:::o;15343:366::-;15485:3;15506:67;15570:2;15565:3;15506:67;:::i;:::-;15499:74;;15582:93;15671:3;15582:93;:::i;:::-;15700:2;15695:3;15691:12;15684:19;;15343:366;;;:::o;15715:419::-;15881:4;15919:2;15908:9;15904:18;15896:26;;15968:9;15962:4;15958:20;15954:1;15943:9;15939:17;15932:47;15996:131;16122:4;15996:131;:::i;:::-;15988:139;;15715:419;;;:::o;16140:221::-;16280:34;16276:1;16268:6;16264:14;16257:58;16349:4;16344:2;16336:6;16332:15;16325:29;16140:221;:::o;16367:366::-;16509:3;16530:67;16594:2;16589:3;16530:67;:::i;:::-;16523:74;;16606:93;16695:3;16606:93;:::i;:::-;16724:2;16719:3;16715:12;16708:19;;16367:366;;;:::o;16739:419::-;16905:4;16943:2;16932:9;16928:18;16920:26;;16992:9;16986:4;16982:20;16978:1;16967:9;16963:17;16956:47;17020:131;17146:4;17020:131;:::i;:::-;17012:139;;16739:419;;;:::o;17164:224::-;17304:34;17300:1;17292:6;17288:14;17281:58;17373:7;17368:2;17360:6;17356:15;17349:32;17164:224;:::o;17394:366::-;17536:3;17557:67;17621:2;17616:3;17557:67;:::i;:::-;17550:74;;17633:93;17722:3;17633:93;:::i;:::-;17751:2;17746:3;17742:12;17735:19;;17394:366;;;:::o;17766:419::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:222::-;18331:34;18327:1;18319:6;18315:14;18308:58;18400:5;18395:2;18387:6;18383:15;18376:30;18191:222;:::o;18419:366::-;18561:3;18582:67;18646:2;18641:3;18582:67;:::i;:::-;18575:74;;18658:93;18747:3;18658:93;:::i;:::-;18776:2;18771:3;18767:12;18760:19;;18419:366;;;:::o;18791:419::-;18957:4;18995:2;18984:9;18980:18;18972:26;;19044:9;19038:4;19034:20;19030:1;19019:9;19015:17;19008:47;19072:131;19198:4;19072:131;:::i;:::-;19064:139;;18791:419;;;:::o;19216:228::-;19356:34;19352:1;19344:6;19340:14;19333:58;19425:11;19420:2;19412:6;19408:15;19401:36;19216:228;:::o;19450:366::-;19592:3;19613:67;19677:2;19672:3;19613:67;:::i;:::-;19606:74;;19689:93;19778:3;19689:93;:::i;:::-;19807:2;19802:3;19798:12;19791:19;;19450:366;;;:::o;19822:419::-;19988:4;20026:2;20015:9;20011:18;20003:26;;20075:9;20069:4;20065:20;20061:1;20050:9;20046:17;20039:47;20103:131;20229:4;20103:131;:::i;:::-;20095:139;;19822:419;;;:::o;20247:170::-;20387:22;20383:1;20375:6;20371:14;20364:46;20247:170;:::o;20423:366::-;20565:3;20586:67;20650:2;20645:3;20586:67;:::i;:::-;20579:74;;20662:93;20751:3;20662:93;:::i;:::-;20780:2;20775:3;20771:12;20764:19;;20423:366;;;:::o;20795:419::-;20961:4;20999:2;20988:9;20984:18;20976:26;;21048:9;21042:4;21038:20;21034:1;21023:9;21019:17;21012:47;21076:131;21202:4;21076:131;:::i;:::-;21068:139;;20795:419;;;:::o;21220:191::-;21260:3;21279:20;21297:1;21279:20;:::i;:::-;21274:25;;21313:20;21331:1;21313:20;:::i;:::-;21308:25;;21356:1;21353;21349:9;21342:16;;21377:3;21374:1;21371:10;21368:36;;;21384:18;;:::i;:::-;21368:36;21220:191;;;;:::o;21417:225::-;21557:34;21553:1;21545:6;21541:14;21534:58;21626:8;21621:2;21613:6;21609:15;21602:33;21417:225;:::o;21648:366::-;21790:3;21811:67;21875:2;21870:3;21811:67;:::i;:::-;21804:74;;21887:93;21976:3;21887:93;:::i;:::-;22005:2;22000:3;21996:12;21989:19;;21648:366;;;:::o;22020:419::-;22186:4;22224:2;22213:9;22209:18;22201:26;;22273:9;22267:4;22263:20;22259:1;22248:9;22244:17;22237:47;22301:131;22427:4;22301:131;:::i;:::-;22293:139;;22020:419;;;:::o;22445:194::-;22485:4;22505:20;22523:1;22505:20;:::i;:::-;22500:25;;22539:20;22557:1;22539:20;:::i;:::-;22534:25;;22583:1;22580;22576:9;22568:17;;22607:1;22601:4;22598:11;22595:37;;;22612:18;;:::i;:::-;22595:37;22445:194;;;;:::o;22645:180::-;22693:77;22690:1;22683:88;22790:4;22787:1;22780:15;22814:4;22811:1;22804:15;22831:180;22879:77;22876:1;22869:88;22976:4;22973:1;22966:15;23000:4;22997:1;22990:15;23017:143;23074:5;23105:6;23099:13;23090:22;;23121:33;23148:5;23121:33;:::i;:::-;23017:143;;;;:::o;23166:351::-;23236:6;23285:2;23273:9;23264:7;23260:23;23256:32;23253:119;;;23291:79;;:::i;:::-;23253:119;23411:1;23436:64;23492:7;23483:6;23472:9;23468:22;23436:64;:::i;:::-;23426:74;;23382:128;23166:351;;;;:::o;23523:85::-;23568:7;23597:5;23586:16;;23523:85;;;:::o;23614:60::-;23642:3;23663:5;23656:12;;23614:60;;;:::o;23680:158::-;23738:9;23771:61;23789:42;23798:32;23824:5;23798:32;:::i;:::-;23789:42;:::i;:::-;23771:61;:::i;:::-;23758:74;;23680:158;;;:::o;23844:147::-;23939:45;23978:5;23939:45;:::i;:::-;23934:3;23927:58;23844:147;;:::o;23997:114::-;24064:6;24098:5;24092:12;24082:22;;23997:114;;;:::o;24117:184::-;24216:11;24250:6;24245:3;24238:19;24290:4;24285:3;24281:14;24266:29;;24117:184;;;;:::o;24307:132::-;24374:4;24397:3;24389:11;;24427:4;24422:3;24418:14;24410:22;;24307:132;;;:::o;24445:108::-;24522:24;24540:5;24522:24;:::i;:::-;24517:3;24510:37;24445:108;;:::o;24559:179::-;24628:10;24649:46;24691:3;24683:6;24649:46;:::i;:::-;24727:4;24722:3;24718:14;24704:28;;24559:179;;;;:::o;24744:113::-;24814:4;24846;24841:3;24837:14;24829:22;;24744:113;;;:::o;24893:732::-;25012:3;25041:54;25089:5;25041:54;:::i;:::-;25111:86;25190:6;25185:3;25111:86;:::i;:::-;25104:93;;25221:56;25271:5;25221:56;:::i;:::-;25300:7;25331:1;25316:284;25341:6;25338:1;25335:13;25316:284;;;25417:6;25411:13;25444:63;25503:3;25488:13;25444:63;:::i;:::-;25437:70;;25530:60;25583:6;25530:60;:::i;:::-;25520:70;;25376:224;25363:1;25360;25356:9;25351:14;;25316:284;;;25320:14;25616:3;25609:10;;25017:608;;;24893:732;;;;:::o;25631:831::-;25894:4;25932:3;25921:9;25917:19;25909:27;;25946:71;26014:1;26003:9;25999:17;25990:6;25946:71;:::i;:::-;26027:80;26103:2;26092:9;26088:18;26079:6;26027:80;:::i;:::-;26154:9;26148:4;26144:20;26139:2;26128:9;26124:18;26117:48;26182:108;26285:4;26276:6;26182:108;:::i;:::-;26174:116;;26300:72;26368:2;26357:9;26353:18;26344:6;26300:72;:::i;:::-;26382:73;26450:3;26439:9;26435:19;26426:6;26382:73;:::i;:::-;25631:831;;;;;;;;:::o;26468:147::-;26569:11;26606:3;26591:18;;26468:147;;;;:::o;26621:114::-;;:::o;26741:398::-;26900:3;26921:83;27002:1;26997:3;26921:83;:::i;:::-;26914:90;;27013:93;27102:3;27013:93;:::i;:::-;27131:1;27126:3;27122:11;27115:18;;26741:398;;;:::o;27145:379::-;27329:3;27351:147;27494:3;27351:147;:::i;:::-;27344:154;;27515:3;27508:10;;27145:379;;;:::o;27530:180::-;27578:77;27575:1;27568:88;27675:4;27672:1;27665:15;27699:4;27696:1;27689:15;27716:185;27756:1;27773:20;27791:1;27773:20;:::i;:::-;27768:25;;27807:20;27825:1;27807:20;:::i;:::-;27802:25;;27846:1;27836:35;;27851:18;;:::i;:::-;27836:35;27893:1;27890;27886:9;27881:14;;27716:185;;;;:::o;27907:220::-;28047:34;28043:1;28035:6;28031:14;28024:58;28116:3;28111:2;28103:6;28099:15;28092:28;27907:220;:::o;28133:366::-;28275:3;28296:67;28360:2;28355:3;28296:67;:::i;:::-;28289:74;;28372:93;28461:3;28372:93;:::i;:::-;28490:2;28485:3;28481:12;28474:19;;28133:366;;;:::o;28505:419::-;28671:4;28709:2;28698:9;28694:18;28686:26;;28758:9;28752:4;28748:20;28744:1;28733:9;28729:17;28722:47;28786:131;28912:4;28786:131;:::i;:::-;28778:139;;28505:419;;;:::o;28930:177::-;29070:29;29066:1;29058:6;29054:14;29047:53;28930:177;:::o;29113:366::-;29255:3;29276:67;29340:2;29335:3;29276:67;:::i;:::-;29269:74;;29352:93;29441:3;29352:93;:::i;:::-;29470:2;29465:3;29461:12;29454:19;;29113:366;;;:::o;29485:419::-;29651:4;29689:2;29678:9;29674:18;29666:26;;29738:9;29732:4;29728:20;29724:1;29713:9;29709:17;29702:47;29766:131;29892:4;29766:131;:::i;:::-;29758:139;;29485:419;;;:::o
Swarm Source
ipfs://479ca990b63db06f572f6064ea417c02b9d3ea479a7e503acfd6781ee15d8e87
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.