Overview
Max Total Supply
400,000,000 YDR
Holders
1,022 (0.00%)
Transfers
-
0
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$33,584.00
Circulating Supply Market Cap
$10,560.11
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
YDR
Compiler Version
v0.8.5+commit.a4f2e591
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-08-18
*/
// SPDX-License-Identifier: MIT
// File: contracts/LERC20.sol
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface ILosslessController {
function beforeTransfer(address sender, address recipient, uint256 amount) external;
function beforeTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;
function beforeApprove(address sender, address spender, uint256 amount) external;
function beforeIncreaseAllowance(address msgSender, address spender, uint256 addedValue) external;
function beforeDecreaseAllowance(address msgSender, address spender, uint256 subtractedValue) external;
function afterApprove(address sender, address spender, uint256 amount) external;
function afterTransfer(address sender, address recipient, uint256 amount) external;
function afterTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;
function afterIncreaseAllowance(address sender, address spender, uint256 addedValue) external;
function afterDecreaseAllowance(address sender, address spender, uint256 subtractedValue) external;
}
contract LERC20 is Context, IERC20 {
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
address public recoveryAdmin;
address private recoveryAdminCanditate;
bytes32 private recoveryAdminKeyHash;
address public admin;
uint256 public timelockPeriod;
uint256 public losslessTurnOffTimestamp;
bool public isLosslessTurnOffProposed;
bool public isLosslessOn = true;
ILosslessController private lossless;
event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
event RecoveryAdminChangeProposed(address indexed candidate);
event RecoveryAdminChanged(address indexed previousAdmin, address indexed newAdmin);
event LosslessTurnOffProposed(uint256 turnOffDate);
event LosslessTurnedOff();
event LosslessTurnedOn();
constructor(uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) {
_name = name_;
_symbol = symbol_;
admin = admin_;
_mint(admin, totalSupply_);
recoveryAdmin = recoveryAdmin_;
timelockPeriod = timelockPeriod_;
lossless = ILosslessController(lossless_);
}
// --- LOSSLESS modifiers ---
modifier lssAprove(address spender, uint256 amount) {
if (isLosslessOn) {
lossless.beforeApprove(_msgSender(), spender, amount);
_;
lossless.afterApprove(_msgSender(), spender, amount);
} else {
_;
}
}
modifier lssTransfer(address recipient, uint256 amount) {
if (isLosslessOn) {
lossless.beforeTransfer(_msgSender(), recipient, amount);
_;
lossless.afterTransfer(_msgSender(), recipient, amount);
} else {
_;
}
}
modifier lssTransferFrom(address sender, address recipient, uint256 amount) {
if (isLosslessOn) {
lossless.beforeTransferFrom(_msgSender(),sender, recipient, amount);
_;
lossless.afterTransferFrom(_msgSender(), sender, recipient, amount);
} else {
_;
}
}
modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
if (isLosslessOn) {
lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
_;
lossless.afterIncreaseAllowance(_msgSender(), spender, addedValue);
} else {
_;
}
}
modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
if (isLosslessOn) {
lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
_;
lossless.afterDecreaseAllowance(_msgSender(), spender, subtractedValue);
} else {
_;
}
}
modifier onlyRecoveryAdmin() {
require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin");
_;
}
// --- LOSSLESS management ---
function getAdmin() external view returns (address) {
return admin;
}
function transferOutBlacklistedFunds(address[] calldata from) external {
require(_msgSender() == address(lossless), "LERC20: Only lossless contract");
for (uint i = 0; i < from.length; i++) {
_transfer(from[i], address(lossless), balanceOf(from[i]));
}
}
function setLosslessAdmin(address newAdmin) public onlyRecoveryAdmin {
emit AdminChanged(admin, newAdmin);
admin = newAdmin;
}
function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) public onlyRecoveryAdmin {
recoveryAdminCanditate = candidate;
recoveryAdminKeyHash = keyHash;
emit RecoveryAdminChangeProposed(candidate);
}
function acceptRecoveryAdminOwnership(bytes memory key) external {
require(_msgSender() == recoveryAdminCanditate, "LERC20: Must be canditate");
require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key");
emit RecoveryAdminChanged(recoveryAdmin, recoveryAdminCanditate);
recoveryAdmin = recoveryAdminCanditate;
}
function proposeLosslessTurnOff() public onlyRecoveryAdmin {
losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
isLosslessTurnOffProposed = true;
emit LosslessTurnOffProposed(losslessTurnOffTimestamp);
}
function executeLosslessTurnOff() public onlyRecoveryAdmin {
require(isLosslessTurnOffProposed, "LERC20: TurnOff not proposed");
require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress");
isLosslessOn = false;
isLosslessTurnOffProposed = false;
emit LosslessTurnedOff();
}
function executeLosslessTurnOn() public onlyRecoveryAdmin {
isLosslessTurnOffProposed = false;
isLosslessOn = true;
emit LosslessTurnedOn();
}
// --- ERC20 methods ---
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override lssTransfer(recipient, amount) returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override lssAprove(spender, amount) returns (bool) {
require((amount == 0) || (_allowances[_msgSender()][spender] == 0), "LERC20: Cannot change non zero allowance");
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override lssTransferFrom(sender, recipient, amount) returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "LERC20: transfer amount exceeds allowance");
_approve(sender, _msgSender(), currentAllowance - amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual lssIncreaseAllowance(spender, addedValue) returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual lssDecreaseAllowance(spender, subtractedValue) returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "LERC20: decreased allowance below zero");
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "LERC20: transfer from the zero address");
require(recipient != address(0), "LERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "LERC20: transfer amount exceeds balance");
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "LERC20: mint to the zero address");
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
require(owner != address(0), "LERC20: approve from the zero address");
require(spender != address(0), "LERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
_balances[account] = accountBalance - amount;
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be to transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}
// File: contracts/external/UniswapV2Library.sol
pragma solidity ^0.8.0;
// Exempt from the original UniswapV2Library.
library UniswapV2Library {
// returns sorted token addresses, used to handle return values from pairs sorted in this order
function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');
(token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');
}
// calculates the CREATE2 address for a pair without making any external calls
function pairFor(bytes32 initCodeHash, address factory, address tokenA, address tokenB) internal pure returns (address pair) {
(address token0, address token1) = sortTokens(tokenA, tokenB);
pair = address(uint160(uint(keccak256(abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encodePacked(token0, token1)),
initCodeHash // init code hash
)))));
}
}
// File: contracts/external/UniswapV3Library.sol
pragma solidity ^0.8.0;
/// @notice based on https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/libraries/PoolAddress.sol
/// @notice changed compiler version and lib name.
/// @title Provides functions for deriving a pool address from the factory, tokens, and the fee
library UniswapV3Library {
bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
/// @notice The identifying key of the pool
struct PoolKey {
address token0;
address token1;
uint24 fee;
}
/// @notice Returns PoolKey: the ordered tokens with the matched fee levels
/// @param tokenA The first token of a pool, unsorted
/// @param tokenB The second token of a pool, unsorted
/// @param fee The fee level of the pool
/// @return Poolkey The pool details with ordered token0 and token1 assignments
function getPoolKey(
address tokenA,
address tokenB,
uint24 fee
) internal pure returns (PoolKey memory) {
if (tokenA > tokenB) (tokenA, tokenB) = (tokenB, tokenA);
return PoolKey({token0: tokenA, token1: tokenB, fee: fee});
}
/// @notice Deterministically computes the pool address given the factory and PoolKey
/// @param factory The Uniswap V3 factory contract address
/// @param key The PoolKey
/// @return pool The contract address of the V3 pool
function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {
require(key.token0 < key.token1);
pool = address(
uint160(
uint256(
keccak256(
abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encode(key.token0, key.token1, key.fee)),
POOL_INIT_CODE_HASH
)
)
)
)
);
}
}
// File: contracts/IPLPS.sol
pragma solidity ^0.8.0;
interface IPLPS {
function LiquidityProtection_beforeTokenTransfer(
address _pool, address _from, address _to, uint _amount) external;
function isBlocked(address _pool, address _who) external view returns(bool);
function unblock(address _pool, address _who) external;
}
// File: contracts/UsingLiquidityProtectionService.sol
pragma solidity ^0.8.0;
abstract contract UsingLiquidityProtectionService {
bool private unProtected = false;
IPLPS private plps;
uint64 internal constant HUNDRED_PERCENT = 1e18;
bytes32 internal constant UNISWAP = 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;
bytes32 internal constant PANCAKESWAP = 0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5;
bytes32 internal constant QUICKSWAP = 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;
enum UniswapVersion {
V2,
V3
}
enum UniswapV3Fees {
_005, // 0.05%
_03, // 0.3%
_1 // 1%
}
modifier onlyProtectionAdmin() {
protectionAdminCheck();
_;
}
constructor (address _plps) {
plps = IPLPS(_plps);
}
function LiquidityProtection_setLiquidityProtectionService(IPLPS _plps) external onlyProtectionAdmin() {
plps = _plps;
}
function token_transfer(address from, address to, uint amount) internal virtual;
function token_balanceOf(address holder) internal view virtual returns(uint);
function protectionAdminCheck() internal view virtual;
function uniswapVariety() internal pure virtual returns(bytes32);
function uniswapVersion() internal pure virtual returns(UniswapVersion);
function uniswapFactory() internal pure virtual returns(address);
function counterToken() internal pure virtual returns(address) {
return 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH
}
function uniswapV3Fee() internal pure virtual returns(UniswapV3Fees) {
return UniswapV3Fees._03;
}
function protectionChecker() internal view virtual returns(bool) {
return ProtectionSwitch_manual();
}
function lps() private view returns(IPLPS) {
return plps;
}
function LiquidityProtection_beforeTokenTransfer(address _from, address _to, uint _amount) internal virtual {
if (protectionChecker()) {
if (unProtected) {
return;
}
lps().LiquidityProtection_beforeTokenTransfer(getLiquidityPool(), _from, _to, _amount);
}
}
function revokeBlocked(address[] calldata _holders, address _revokeTo) external onlyProtectionAdmin() {
require(protectionChecker(), 'UsingLiquidityProtectionService: protection removed');
unProtected = true;
address pool = getLiquidityPool();
for (uint i = 0; i < _holders.length; i++) {
address holder = _holders[i];
if (lps().isBlocked(pool, holder)) {
token_transfer(holder, _revokeTo, token_balanceOf(holder));
}
}
unProtected = false;
}
function LiquidityProtection_unblock(address[] calldata _holders) external onlyProtectionAdmin() {
require(protectionChecker(), 'UsingLiquidityProtectionService: protection removed');
address pool = getLiquidityPool();
for (uint i = 0; i < _holders.length; i++) {
lps().unblock(pool, _holders[i]);
}
}
function disableProtection() external onlyProtectionAdmin() {
unProtected = true;
}
function isProtected() public view returns(bool) {
return not(unProtected);
}
function ProtectionSwitch_manual() internal view returns(bool) {
return isProtected();
}
function ProtectionSwitch_timestamp(uint _timestamp) internal view returns(bool) {
return not(passed(_timestamp));
}
function ProtectionSwitch_block(uint _block) internal view returns(bool) {
return not(blockPassed(_block));
}
function blockPassed(uint _block) internal view returns(bool) {
return _block < block.number;
}
function passed(uint _timestamp) internal view returns(bool) {
return _timestamp < block.timestamp;
}
function not(bool _condition) internal pure returns(bool) {
return !_condition;
}
function feeToUint24(UniswapV3Fees _fee) internal pure returns(uint24) {
if (_fee == UniswapV3Fees._03) return 3000;
if (_fee == UniswapV3Fees._005) return 500;
return 10000;
}
function getLiquidityPool() public view returns(address) {
if (uniswapVersion() == UniswapVersion.V2) {
return UniswapV2Library.pairFor(uniswapVariety(), uniswapFactory(), address(this), counterToken());
}
require(uniswapVariety() == UNISWAP, 'LiquidityProtection: uniswapVariety() can only be UNISWAP for V3.');
return UniswapV3Library.computeAddress(uniswapFactory(),
UniswapV3Library.getPoolKey(address(this), counterToken(), feeToUint24(uniswapV3Fee())));
}
}
// File: contracts/YDR.sol
pragma solidity ^0.8.0;
contract YDR is LERC20, UsingLiquidityProtectionService(0x5C3fB8fF925996da50f03836FD8734270f5016AC) {
constructor(uint256 totalSupply_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) LERC20(totalSupply_, "YDragon", "YDR", admin_, recoveryAdmin_, timelockPeriod_, lossless_) {
}
modifier onlyAdmin() {
require(admin == _msgSender(), "YDR: caller is not the admin");
_;
}
function burn(uint256 amount) external onlyAdmin {
_burn(_msgSender(), amount);
}
function token_transfer(address _from, address _to, uint _amount) internal override {
_transfer(_from, _to, _amount); // Expose low-level token transfer function.
}
function token_balanceOf(address _holder) internal view override returns(uint) {
return balanceOf(_holder); // Expose balance check function.
}
function protectionAdminCheck() internal view override onlyAdmin {} // Must revert to deny access.
function uniswapVariety() internal pure override returns(bytes32) {
return UNISWAP; // UNISWAP / PANCAKESWAP / QUICKSWAP.
}
function uniswapVersion() internal pure override returns(UniswapVersion) {
return UniswapVersion.V3; // V2 or V3.
}
function uniswapFactory() internal pure override returns(address) {
return 0x1F98431c8aD98523631AE4a59f267346ea31F984; // Replace with the correct address.
}
function _beforeTokenTransfer(address _from, address _to, uint _amount) internal override {
super._beforeTokenTransfer(_from, _to, _amount);
LiquidityProtection_beforeTokenTransfer(_from, _to, _amount);
}
// All the following overrides are optional, if you want to modify default behavior.
// How the protection gets disabled.
function protectionChecker() internal view override returns(bool) {
return ProtectionSwitch_timestamp(1630367999); // Switch off protection on Monday, August 30, 2021 11:59:59 PM GTM.
// return ProtectionSwitch_block(13000000); // Switch off protection on block 13000000.
// return ProtectionSwitch_manual(); // Switch off protection by calling disableProtection(); from owner. Default.
}
// This token will be pooled in pair with:
function counterToken() internal pure override returns(address) {
return 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposed","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"}],"name":"RecoveryAdminChangeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"RecoveryAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"contract IPLPS","name":"_plps","type":"address"}],"name":"LiquidityProtection_setLiquidityProtectionService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_holders","type":"address[]"}],"name":"LiquidityProtection_unblock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityPool","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":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLosslessTurnOffProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProtected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_holders","type":"address[]"},{"internalType":"address","name":"_revokeTo","type":"address"}],"name":"revokeBlocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052600b805461ff0060ff60b01b0119166101001790553480156200002657600080fd5b50604051620024e5380380620024e5833981016040819052620000499162000309565b735c3fb8ff925996da50f03836fd8734270f5016ac85604051806040016040528060078152602001662ca23930b3b7b760c91b815250604051806040016040528060038152602001622ca22960e91b815250878787878560039080519060200190620000b792919062000246565b508451620000cd90600490602088019062000246565b50600880546001600160a01b0319166001600160a01b038616908117909155620000f890886200015e565b600580546001600160a01b039485166001600160a01b031991821617909155600992909255600b8054918416620100000262010000600160b01b0319909216919091179055600c80549790921696169590951790945550620003cb975050505050505050565b6001600160a01b038216620001b95760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b8060026000828254620001cd919062000367565b90915550506001600160a01b03821660009081526020819052604081208054839290620001fc90849062000367565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000254906200038e565b90600052602060002090601f016020900481019282620002785760008555620002c3565b82601f106200029357805160ff1916838001178555620002c3565b82800160010185558215620002c3579182015b82811115620002c3578251825591602001919060010190620002a6565b50620002d1929150620002d5565b5090565b5b80821115620002d15760008155600101620002d6565b80516001600160a01b03811681146200030457600080fd5b919050565b600080600080600060a086880312156200032257600080fd5b855194506200033460208701620002ec565b93506200034460408701620002ec565b9250606086015191506200035b60808701620002ec565b90509295509295909350565b600082198211156200038957634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620003a357607f821691505b60208210811415620003c557634e487b7160e01b600052602260045260246000fd5b50919050565b61210a80620003db6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636e9960c31161010f578063a9059cbb116100a2578063d6e242b811610071578063d6e242b814610401578063dd62ed3e14610409578063efab831c14610442578063f851a4401461044f57600080fd5b8063a9059cbb146103c1578063b38fe957146103d4578063b5c22877146103dc578063ccfa214f146103ef57600080fd5b8063936af911116100de578063936af9111461038b57806395d89b411461039e57806395ddbe89146103a6578063a457c2d7146103ae57600080fd5b80636e9960c31461032b57806370a082311461033c57806375ee83891461036557806393310ffe1461037857600080fd5b806339509351116101875780635b8a194a116101565780635b8a194a146102dc5780635f6529a3146102e45780635fdb86f91461030f57806361086b001461032257600080fd5b8063395093511461029b578063421dd7c7146102ae57806342966c68146102b65780635300f82b146102c957600080fd5b806323b872dd116101c357806323b872dd1461025d5780632baa3c9e146102705780632ecaf67514610283578063313ce5671461028c57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd146102365780631f69fcb914610248575b600080fd5b6101fd610462565b60405161020a9190611e2c565b60405180910390f35b610226610221366004611c2d565b6104f4565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b610256366004611b8f565b6106ac565b005b61022661026b366004611bec565b6106d6565b61025b61027e366004611b8f565b61089f565b61023a60095481565b6040516012815260200161020a565b6102266102a9366004611c2d565b61092e565b61025b610a16565b61025b6102c4366004611dc5565b610a33565b600b54600160b01b900460ff1615610226565b61025b610a9f565b6005546102f7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b61025b61031d366004611c59565b610b0c565b61023a600a5481565b6008546001600160a01b03166102f7565b61023a61034a366004611b8f565b6001600160a01b031660009081526020819052604090205490565b61025b610373366004611c9b565b610c01565b61025b610386366004611c2d565b610d56565b61025b610399366004611c59565b610dd9565b6101fd610ecf565b6102f7610ede565b6102266103bc366004611c2d565b610f25565b6102266103cf366004611c2d565b61108c565b61025b61114a565b61025b6103ea366004611d14565b611257565b600b5461022690610100900460ff1681565b61025b61136b565b61023a610417366004611bb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b546102269060ff1681565b6008546102f7906001600160a01b031681565b60606003805461047190612011565b80601f016020809104026020016040519081016040528092919081815260200182805461049d90612011565b80156104ea5780601f106104bf576101008083540402835291602001916104ea565b820191906000526020600020905b8154815290600101906020018083116104cd57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561064c57600b546201000090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b815260040161054593929190611e08565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b5050505083600014806105a757503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6105cc5760405162461bcd60e51b81526004016105c390611f54565b60405180910390fd5b6105d8335b86866113f9565b600b54600193506201000090046001600160a01b031663900f66ef335b84846040518463ffffffff1660e01b815260040161061593929190611e08565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b505050506106a4565b83158061067a57503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6106965760405162461bcd60e51b81526004016105c390611f54565b61069f336105d1565b600192505b505092915050565b6106b4611521565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000838383600b60019054906101000a900460ff161561083657600b546201000090046001600160a01b031663379f5c69338585856040518563ffffffff1660e01b815260040161072a9493929190611dde565b600060405180830381600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b5050505061076787878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156107ab5760405162461bcd60e51b81526004016105c390611ed4565b6107c088335b6107bb8985611ffa565b6113f9565b50600b54600194506201000090046001600160a01b031663a56e8adf338585856040518563ffffffff1660e01b81526004016107ff9493929190611dde565b600060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b50505050610895565b61084187878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156108855760405162461bcd60e51b81526004016105c390611ed4565b61088f88336107b1565b60019450505b5050509392505050565b6005546001600160a01b0316336001600160a01b0316146108d25760405162461bcd60e51b81526004016105c390611f1d565b6008546040516001600160a01b038084169216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60008282600b60019054906101000a900460ff1615610a0d57600b546201000090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b815260040161097f93929190611e08565b600060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506109ec6109bb3390565b3360009081526001602090815260408083206001600160a01b038b16845290915290205487906107bb908890611fe2565b600b54600193506201000090046001600160a01b03166334d01aa8336105f5565b61069f336109bb565b610a1e611521565b600b805460ff60b01b1916600160b01b179055565b6008546001600160a01b03163314610a8d5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b610a973382611762565b50565b905090565b6005546001600160a01b0316336001600160a01b031614610ad25760405162461bcd60e51b81526004016105c390611f1d565b600b805461ffff19166101001790556040517fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7090600090a1565b610b14611521565b610b1c6118b1565b610b385760405162461bcd60e51b81526004016105c390611e81565b6000610b42610ede565b905060005b82811015610bfb57600c546001600160a01b0316630d8bd5e883868685818110610b7357610b73612093565b9050602002016020810190610b889190611b8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381600087803b158015610bd057600080fd5b505af1158015610be4573d6000803e3d6000fd5b505050508080610bf39061204c565b915050610b47565b50505050565b610c09611521565b610c116118b1565b610c2d5760405162461bcd60e51b81526004016105c390611e81565b600b805460ff60b01b1916600160b01b1790556000610c4a610ede565b905060005b83811015610d42576000858583818110610c6b57610c6b612093565b9050602002016020810190610c809190611b8f565b9050610c94600c546001600160a01b031690565b604051634362c69f60e11b81526001600160a01b038581166004830152838116602483015291909116906386c58d3e9060440160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d179190611cf2565b15610d2f57610d2f8185610d2a846118c0565b6118e0565b5080610d3a8161204c565b915050610c4f565b5050600b805460ff60b01b19169055505050565b6005546001600160a01b0316336001600160a01b031614610d895760405162461bcd60e51b81526004016105c390611f1d565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3690600090a25050565b600b546201000090046001600160a01b0316336001600160a01b031614610e425760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105c3565b60005b81811015610eca57610eb8838383818110610e6257610e62612093565b9050602002016020810190610e779190611b8f565b600b546201000090046001600160a01b0316610eb3868686818110610e9e57610e9e612093565b905060200201602081019061034a9190611b8f565b61157d565b80610ec28161204c565b915050610e45565b505050565b60606004805461047190612011565b6000610a9a731f98431c8ad98523631ae4a59f267346ea31f984610f203073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610f1b60016118eb565b61193c565b6119a7565b60008282600b60019054906101000a900460ff161561103357600b546201000090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610f7693929190611e08565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b50505050600060016000610fb53390565b6001600160a01b03908116825260208083019390935260409182016000908120918a16815292529020549050848110156110015760405162461bcd60e51b81526004016105c390611f9c565b611011335b876107bb8885611ffa565b50600b54600193506201000090046001600160a01b031663ded1f4d0336105f5565b3360009081526001602090815260408083206001600160a01b0389168452909152902054848110156110775760405162461bcd60e51b81526004016105c390611f9c565b61108033611006565b50600195945050505050565b60008282600b60019054906101000a900460ff161561114157600b546201000090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b81526004016110dd93929190611e08565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111206111193390565b868661157d565b600b54600193506201000090046001600160a01b031663f49062ca336105f5565b61069f33611119565b6005546001600160a01b0316336001600160a01b03161461117d5760405162461bcd60e51b81526004016105c390611f1d565b600b5460ff166111cf5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105c3565b42600a5411156112215760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105c3565b600b805461ffff191690556040517f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a90600090a1565b6006546001600160a01b0316336001600160a01b0316146112ba5760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105c3565b60075481516020830120146113075760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105c3565b6006546005546040516001600160a01b0392831692909116907f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb90600090a350600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b0316336001600160a01b03161461139e5760405162461bcd60e51b81526004016105c390611f1d565b6009546113ab9042611fe2565b600a819055600b805460ff191660011790556040517f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709916113ef9190815260200190565b60405180910390a1565b6001600160a01b03831661145d5760405162461bcd60e51b815260206004820152602560248201527f4c45524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152602360248201527f4c45524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546001600160a01b0316331461157b5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b565b6001600160a01b0383166115e25760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105c3565b6001600160a01b0382166116445760405162461bcd60e51b8152602060048201526024808201527f4c45524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b61164f838383611a90565b6001600160a01b038316600090815260208190526040902054818110156116c85760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105c3565b6116d28282611ffa565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611708908490611fe2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175491815260200190565b60405180910390a350505050565b6001600160a01b0382166117c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c3565b6001600160a01b038216600090815260208190526040902054818110156118365760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c3565b6118408282611ffa565b6001600160a01b0384166000908152602081905260408120919091556002805484929061186e908490611ffa565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611514565b6000610a9a63612d70ff611a9b565b6001600160a01b0381166000908152602081905260408120545b92915050565b610eca83838361157d565b600060018260028111156119015761190161207d565b14156119105750610bb8919050565b60008260028111156119245761192461207d565b141561193357506101f4919050565b50612710919050565b6040805160608101825260008082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611977579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600081602001516001600160a01b031682600001516001600160a01b0316106119cf57600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b610eca838383611ab4565b60006118da611aa983421190565b1590565b9250929050565b611abc6118b1565b15610eca57600b54600160b01b900460ff1615611ad857505050565b600c546001600160a01b0316630336a330611af1610ede565b8585856040518563ffffffff1660e01b8152600401611b139493929190611dde565b600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b50505050505050565b60008083601f840112611b5c57600080fd5b50813567ffffffffffffffff811115611b7457600080fd5b6020830191508360208260051b8501011115611aad57600080fd5b600060208284031215611ba157600080fd5b8135611bac816120bf565b9392505050565b60008060408385031215611bc657600080fd5b8235611bd1816120bf565b91506020830135611be1816120bf565b809150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c816120bf565b92506020840135611c1c816120bf565b929592945050506040919091013590565b60008060408385031215611c4057600080fd5b8235611c4b816120bf565b946020939093013593505050565b60008060208385031215611c6c57600080fd5b823567ffffffffffffffff811115611c8357600080fd5b611c8f85828601611b4a565b90969095509350505050565b600080600060408486031215611cb057600080fd5b833567ffffffffffffffff811115611cc757600080fd5b611cd386828701611b4a565b9094509250506020840135611ce7816120bf565b809150509250925092565b600060208284031215611d0457600080fd5b81518015158114611bac57600080fd5b600060208284031215611d2657600080fd5b813567ffffffffffffffff80821115611d3e57600080fd5b818401915084601f830112611d5257600080fd5b813581811115611d6457611d646120a9565b604051601f8201601f19908116603f01168101908382118183101715611d8c57611d8c6120a9565b81604052828152876020848701011115611da557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215611dd757600080fd5b5035919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208083528351808285015260005b81811015611e5957858101830151858201604001528201611e3d565b81811115611e6b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f5573696e674c697175696469747950726f74656374696f6e536572766963653a604082015272081c1c9bdd1958dd1a5bdb881c995b5bdd9959606a1b606082015260800190565b60208082526029908201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604082015268616c6c6f77616e636560b81b606082015260800190565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b60208082526028908201527f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526026908201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60408201526577207a65726f60d01b606082015260800190565b60008219821115611ff557611ff5612067565b500190565b60008282101561200c5761200c612067565b500390565b600181811c9082168061202557607f821691505b6020821081141561204657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561206057612060612067565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9757600080fdfea26469706673582212205fb65874f2ad8f1d24c0a1cdfde9076deafd1cd8113ff56a739aeca943ba67d264736f6c634300080500330000000000000000000000000000000000000000014adf4b7320334b90000000000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f7710500000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc0000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80636e9960c31161010f578063a9059cbb116100a2578063d6e242b811610071578063d6e242b814610401578063dd62ed3e14610409578063efab831c14610442578063f851a4401461044f57600080fd5b8063a9059cbb146103c1578063b38fe957146103d4578063b5c22877146103dc578063ccfa214f146103ef57600080fd5b8063936af911116100de578063936af9111461038b57806395d89b411461039e57806395ddbe89146103a6578063a457c2d7146103ae57600080fd5b80636e9960c31461032b57806370a082311461033c57806375ee83891461036557806393310ffe1461037857600080fd5b806339509351116101875780635b8a194a116101565780635b8a194a146102dc5780635f6529a3146102e45780635fdb86f91461030f57806361086b001461032257600080fd5b8063395093511461029b578063421dd7c7146102ae57806342966c68146102b65780635300f82b146102c957600080fd5b806323b872dd116101c357806323b872dd1461025d5780632baa3c9e146102705780632ecaf67514610283578063313ce5671461028c57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd146102365780631f69fcb914610248575b600080fd5b6101fd610462565b60405161020a9190611e2c565b60405180910390f35b610226610221366004611c2d565b6104f4565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b610256366004611b8f565b6106ac565b005b61022661026b366004611bec565b6106d6565b61025b61027e366004611b8f565b61089f565b61023a60095481565b6040516012815260200161020a565b6102266102a9366004611c2d565b61092e565b61025b610a16565b61025b6102c4366004611dc5565b610a33565b600b54600160b01b900460ff1615610226565b61025b610a9f565b6005546102f7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b61025b61031d366004611c59565b610b0c565b61023a600a5481565b6008546001600160a01b03166102f7565b61023a61034a366004611b8f565b6001600160a01b031660009081526020819052604090205490565b61025b610373366004611c9b565b610c01565b61025b610386366004611c2d565b610d56565b61025b610399366004611c59565b610dd9565b6101fd610ecf565b6102f7610ede565b6102266103bc366004611c2d565b610f25565b6102266103cf366004611c2d565b61108c565b61025b61114a565b61025b6103ea366004611d14565b611257565b600b5461022690610100900460ff1681565b61025b61136b565b61023a610417366004611bb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b546102269060ff1681565b6008546102f7906001600160a01b031681565b60606003805461047190612011565b80601f016020809104026020016040519081016040528092919081815260200182805461049d90612011565b80156104ea5780601f106104bf576101008083540402835291602001916104ea565b820191906000526020600020905b8154815290600101906020018083116104cd57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561064c57600b546201000090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b815260040161054593929190611e08565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b5050505083600014806105a757503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6105cc5760405162461bcd60e51b81526004016105c390611f54565b60405180910390fd5b6105d8335b86866113f9565b600b54600193506201000090046001600160a01b031663900f66ef335b84846040518463ffffffff1660e01b815260040161061593929190611e08565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b505050506106a4565b83158061067a57503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6106965760405162461bcd60e51b81526004016105c390611f54565b61069f336105d1565b600192505b505092915050565b6106b4611521565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000838383600b60019054906101000a900460ff161561083657600b546201000090046001600160a01b031663379f5c69338585856040518563ffffffff1660e01b815260040161072a9493929190611dde565b600060405180830381600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b5050505061076787878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156107ab5760405162461bcd60e51b81526004016105c390611ed4565b6107c088335b6107bb8985611ffa565b6113f9565b50600b54600194506201000090046001600160a01b031663a56e8adf338585856040518563ffffffff1660e01b81526004016107ff9493929190611dde565b600060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b50505050610895565b61084187878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156108855760405162461bcd60e51b81526004016105c390611ed4565b61088f88336107b1565b60019450505b5050509392505050565b6005546001600160a01b0316336001600160a01b0316146108d25760405162461bcd60e51b81526004016105c390611f1d565b6008546040516001600160a01b038084169216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60008282600b60019054906101000a900460ff1615610a0d57600b546201000090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b815260040161097f93929190611e08565b600060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506109ec6109bb3390565b3360009081526001602090815260408083206001600160a01b038b16845290915290205487906107bb908890611fe2565b600b54600193506201000090046001600160a01b03166334d01aa8336105f5565b61069f336109bb565b610a1e611521565b600b805460ff60b01b1916600160b01b179055565b6008546001600160a01b03163314610a8d5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b610a973382611762565b50565b905090565b6005546001600160a01b0316336001600160a01b031614610ad25760405162461bcd60e51b81526004016105c390611f1d565b600b805461ffff19166101001790556040517fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7090600090a1565b610b14611521565b610b1c6118b1565b610b385760405162461bcd60e51b81526004016105c390611e81565b6000610b42610ede565b905060005b82811015610bfb57600c546001600160a01b0316630d8bd5e883868685818110610b7357610b73612093565b9050602002016020810190610b889190611b8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381600087803b158015610bd057600080fd5b505af1158015610be4573d6000803e3d6000fd5b505050508080610bf39061204c565b915050610b47565b50505050565b610c09611521565b610c116118b1565b610c2d5760405162461bcd60e51b81526004016105c390611e81565b600b805460ff60b01b1916600160b01b1790556000610c4a610ede565b905060005b83811015610d42576000858583818110610c6b57610c6b612093565b9050602002016020810190610c809190611b8f565b9050610c94600c546001600160a01b031690565b604051634362c69f60e11b81526001600160a01b038581166004830152838116602483015291909116906386c58d3e9060440160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d179190611cf2565b15610d2f57610d2f8185610d2a846118c0565b6118e0565b5080610d3a8161204c565b915050610c4f565b5050600b805460ff60b01b19169055505050565b6005546001600160a01b0316336001600160a01b031614610d895760405162461bcd60e51b81526004016105c390611f1d565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3690600090a25050565b600b546201000090046001600160a01b0316336001600160a01b031614610e425760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105c3565b60005b81811015610eca57610eb8838383818110610e6257610e62612093565b9050602002016020810190610e779190611b8f565b600b546201000090046001600160a01b0316610eb3868686818110610e9e57610e9e612093565b905060200201602081019061034a9190611b8f565b61157d565b80610ec28161204c565b915050610e45565b505050565b60606004805461047190612011565b6000610a9a731f98431c8ad98523631ae4a59f267346ea31f984610f203073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610f1b60016118eb565b61193c565b6119a7565b60008282600b60019054906101000a900460ff161561103357600b546201000090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610f7693929190611e08565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b50505050600060016000610fb53390565b6001600160a01b03908116825260208083019390935260409182016000908120918a16815292529020549050848110156110015760405162461bcd60e51b81526004016105c390611f9c565b611011335b876107bb8885611ffa565b50600b54600193506201000090046001600160a01b031663ded1f4d0336105f5565b3360009081526001602090815260408083206001600160a01b0389168452909152902054848110156110775760405162461bcd60e51b81526004016105c390611f9c565b61108033611006565b50600195945050505050565b60008282600b60019054906101000a900460ff161561114157600b546201000090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b81526004016110dd93929190611e08565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111206111193390565b868661157d565b600b54600193506201000090046001600160a01b031663f49062ca336105f5565b61069f33611119565b6005546001600160a01b0316336001600160a01b03161461117d5760405162461bcd60e51b81526004016105c390611f1d565b600b5460ff166111cf5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105c3565b42600a5411156112215760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105c3565b600b805461ffff191690556040517f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a90600090a1565b6006546001600160a01b0316336001600160a01b0316146112ba5760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105c3565b60075481516020830120146113075760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105c3565b6006546005546040516001600160a01b0392831692909116907f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb90600090a350600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b0316336001600160a01b03161461139e5760405162461bcd60e51b81526004016105c390611f1d565b6009546113ab9042611fe2565b600a819055600b805460ff191660011790556040517f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709916113ef9190815260200190565b60405180910390a1565b6001600160a01b03831661145d5760405162461bcd60e51b815260206004820152602560248201527f4c45524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152602360248201527f4c45524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546001600160a01b0316331461157b5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b565b6001600160a01b0383166115e25760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105c3565b6001600160a01b0382166116445760405162461bcd60e51b8152602060048201526024808201527f4c45524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b61164f838383611a90565b6001600160a01b038316600090815260208190526040902054818110156116c85760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105c3565b6116d28282611ffa565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611708908490611fe2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175491815260200190565b60405180910390a350505050565b6001600160a01b0382166117c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c3565b6001600160a01b038216600090815260208190526040902054818110156118365760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c3565b6118408282611ffa565b6001600160a01b0384166000908152602081905260408120919091556002805484929061186e908490611ffa565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611514565b6000610a9a63612d70ff611a9b565b6001600160a01b0381166000908152602081905260408120545b92915050565b610eca83838361157d565b600060018260028111156119015761190161207d565b14156119105750610bb8919050565b60008260028111156119245761192461207d565b141561193357506101f4919050565b50612710919050565b6040805160608101825260008082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611977579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600081602001516001600160a01b031682600001516001600160a01b0316106119cf57600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b610eca838383611ab4565b60006118da611aa983421190565b1590565b9250929050565b611abc6118b1565b15610eca57600b54600160b01b900460ff1615611ad857505050565b600c546001600160a01b0316630336a330611af1610ede565b8585856040518563ffffffff1660e01b8152600401611b139493929190611dde565b600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b50505050505050565b60008083601f840112611b5c57600080fd5b50813567ffffffffffffffff811115611b7457600080fd5b6020830191508360208260051b8501011115611aad57600080fd5b600060208284031215611ba157600080fd5b8135611bac816120bf565b9392505050565b60008060408385031215611bc657600080fd5b8235611bd1816120bf565b91506020830135611be1816120bf565b809150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c816120bf565b92506020840135611c1c816120bf565b929592945050506040919091013590565b60008060408385031215611c4057600080fd5b8235611c4b816120bf565b946020939093013593505050565b60008060208385031215611c6c57600080fd5b823567ffffffffffffffff811115611c8357600080fd5b611c8f85828601611b4a565b90969095509350505050565b600080600060408486031215611cb057600080fd5b833567ffffffffffffffff811115611cc757600080fd5b611cd386828701611b4a565b9094509250506020840135611ce7816120bf565b809150509250925092565b600060208284031215611d0457600080fd5b81518015158114611bac57600080fd5b600060208284031215611d2657600080fd5b813567ffffffffffffffff80821115611d3e57600080fd5b818401915084601f830112611d5257600080fd5b813581811115611d6457611d646120a9565b604051601f8201601f19908116603f01168101908382118183101715611d8c57611d8c6120a9565b81604052828152876020848701011115611da557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215611dd757600080fd5b5035919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208083528351808285015260005b81811015611e5957858101830151858201604001528201611e3d565b81811115611e6b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f5573696e674c697175696469747950726f74656374696f6e536572766963653a604082015272081c1c9bdd1958dd1a5bdb881c995b5bdd9959606a1b606082015260800190565b60208082526029908201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604082015268616c6c6f77616e636560b81b606082015260800190565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b60208082526028908201527f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526026908201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60408201526577207a65726f60d01b606082015260800190565b60008219821115611ff557611ff5612067565b500190565b60008282101561200c5761200c612067565b500390565b600181811c9082168061202557607f821691505b6020821081141561204657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561206057612060612067565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9757600080fdfea26469706673582212205fb65874f2ad8f1d24c0a1cdfde9076deafd1cd8113ff56a739aeca943ba67d264736f6c63430008050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000014adf4b7320334b90000000000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f7710500000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc0000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4
-----Decoded View---------------
Arg [0] : totalSupply_ (uint256): 400000000000000000000000000
Arg [1] : admin_ (address): 0xcF24A2f86d75386e56eaEcEF9542784EC0f77105
Arg [2] : recoveryAdmin_ (address): 0x45cB38345018aD17e863751839f740b0ab5B8cCc
Arg [3] : timelockPeriod_ (uint256): 86400
Arg [4] : lossless_ (address): 0xe91D7cEBcE484070fc70777cB04F7e2EfAe31DB4
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000014adf4b7320334b90000000
Arg [1] : 000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f77105
Arg [2] : 00000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc
Arg [3] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [4] : 000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4
Deployed Bytecode Sourcemap
20933:2453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8402:318;;;;;;:::i;:::-;;:::i;:::-;;;7572:14:1;;7565:22;7547:41;;7535:2;7520:18;8402:318:0;7502:92:1;7778:108:0;7866:12;;7778:108;;;16559:25:1;;;16547:2;16532:18;7778:108:0;16514:76:1;16862:134:0;;;;;;:::i;:::-;;:::i;:::-;;8728:466;;;;;;:::i;:::-;;:::i;5872:149::-;;;;;;:::i;:::-;;:::i;2632:29::-;;;;;;7686:84;;;7760:2;16737:36:1;;16725:2;16710:18;7686:84:0;16692:87:1;9202:257:0;;;;;;:::i;:::-;;:::i;19193:97::-;;;:::i;21389:95::-;;;;;;:::i;:::-;;:::i;19298:91::-;19369:11;;-1:-1:-1;;;19369:11:0;;;;20092;19298:91;;7270:174;;;:::i;2482:28::-;;;;;-1:-1:-1;;;;;2482:28:0;;;;;;-1:-1:-1;;;;;5820:32:1;;;5802:51;;5790:2;5775:18;2482:28:0;5757:102:1;18830:355:0;;;;;;:::i;:::-;;:::i;2668:39::-;;;;;;5474:83;5544:5;;-1:-1:-1;;;;;5544:5:0;5474:83;;7894:127;;;;;;:::i;:::-;-1:-1:-1;;;;;7995:18:0;7968:7;7995:18;;;;;;;;;;;;7894:127;18265:557;;;;;;:::i;:::-;;:::i;6029:249::-;;;;;;:::i;:::-;;:::i;5565:299::-;;;;;;:::i;:::-;;:::i;7583:95::-;;;:::i;20335:528::-;;;:::i;9467:425::-;;;;;;:::i;:::-;;:::i;8029:206::-;;;;;;:::i;:::-;;:::i;6912:350::-;;;:::i;6286:365::-;;;;;;:::i;:::-;;:::i;2758:31::-;;;;;;;;;;;;6659:245;;;:::i;8243:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8359:18:0;;;8332:7;8359:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8243:151;2714:37;;;;;;;;;2605:20;;;;;-1:-1:-1;;;;;2605:20:0;;;7484:91;7529:13;7562:5;7555:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:91;:::o;8402:318::-;8512:4;8486:7;8495:6;3734:12;;;;;;;;;;;3730:215;;;3763:8;;;;;-1:-1:-1;;;;;3763:8:0;:22;208:10;3800:7;3809:6;3763:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8538:6:::1;8548:1;8538:11;8537:58;;;-1:-1:-1::0;208:10:0;8555:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8555:34:0;::::1;::::0;;;;;;;;:39;8537:58:::1;8529:111;;;;-1:-1:-1::0;;;8529:111:0::1;;;;;;;:::i;:::-;;;;;;;;;8651:39;208:10:::0;8660:12:::1;8674:7;8683:6;8651:8;:39::i;:::-;3847:8:::0;;8708:4:::1;::::0;-1:-1:-1;3847:8:0;;;-1:-1:-1;;;;;3847:8:0;:21;208:10;3869:12;3883:7;3892:6;3847:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3730:215;;;8538:11;;;8537:58:::1;;-1:-1:-1::0;208:10:0;8555:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8555:34:0;::::1;::::0;;;;;;;;:39;8537:58:::1;8529:111;;;;-1:-1:-1::0;;;8529:111:0::1;;;;;;;:::i;:::-;8651:39;208:10:::0;8660:12:::1;128:98:::0;8651:39:::1;8708:4;8701:11;;3932:1;8402:318:::0;;;;;;:::o;16862:134::-;16738:22;:20;:22::i;:::-;16976:4:::1;:12:::0;;-1:-1:-1;;;;;;16976:12:0::1;-1:-1:-1::0;;;;;16976:12:0;;;::::1;::::0;;;::::1;::::0;;16862:134::o;8728:466::-;8877:4;8841:6;8849:9;8860:6;4354:12;;;;;;;;;;;4350:244;;;4383:8;;;;;-1:-1:-1;;;;;4383:8:0;:27;208:10;4424:6;4432:9;4443:6;4383:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8894:36:::1;8904:6;8912:9;8923:6;8894:9;:36::i;:::-;-1:-1:-1::0;;;;;8970:19:0;::::1;8943:24;8970:19:::0;;;:11:::1;:19;::::0;;;;;;;208:10;8970:33;;;;;;;;9022:26;;::::1;;9014:80;;;;-1:-1:-1::0;;;9014:80:0::1;;;;;;;:::i;:::-;9105:57;9114:6:::0;208:10;9122:12:::1;9136:25;9155:6:::0;9136:16;:25:::1;:::i;:::-;9105:8;:57::i;:::-;-1:-1:-1::0;4481:8:0;;9182:4:::1;::::0;-1:-1:-1;4481:8:0;;;-1:-1:-1;;;;;4481:8:0;:26;208:10;4522:6;4530:9;4541:6;4481:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:244;;;8894:36:::1;8904:6;8912:9;8923:6;8894:9;:36::i;:::-;-1:-1:-1::0;;;;;8970:19:0;::::1;8943:24;8970:19:::0;;;:11:::1;:19;::::0;;;;;;;208:10;8970:33;;;;;;;;9022:26;;::::1;;9014:80;;;;-1:-1:-1::0;;;9014:80:0::1;;;;;;;:::i;:::-;9105:57;9114:6:::0;208:10;9122:12:::1;128:98:::0;9105:57:::1;9182:4;9175:11;;;4581:1;8728:466:::0;;;;;;;;:::o;5872:149::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;5970:5:::1;::::0;5957:29:::1;::::0;-1:-1:-1;;;;;5957:29:0;;::::1;::::0;5970:5:::1;::::0;5957:29:::1;::::0;5970:5:::1;::::0;5957:29:::1;5997:5;:16:::0;;-1:-1:-1;;;;;;5997:16:0::1;-1:-1:-1::0;;;;;5997:16:0;;;::::1;::::0;;;::::1;::::0;;5872:149::o;9202:257::-;9332:4;9302:7;9311:10;4691:12;;;;;;;;;;;4687:243;;;4720:8;;;;;-1:-1:-1;;;;;4720:8:0;:32;208:10;4767:7;4776:10;4720:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9349:80:::1;9358:12;208:10:::0;;128:98;9358:12:::1;208:10:::0;9381:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;9381:34:0;::::1;::::0;;;;;;;;9372:7;;9381:47:::1;::::0;9418:10;;9381:47:::1;:::i;9349:80::-;4818:8:::0;;9447:4:::1;::::0;-1:-1:-1;4818:8:0;;;-1:-1:-1;;;;;4818:8:0;:31;208:10;4850:12;128:98;4687:243;9349:80:::1;208:10:::0;9358:12:::1;128:98:::0;19193:97;16738:22;:20;:22::i;:::-;19264:11:::1;:18:::0;;-1:-1:-1;;;;19264:18:0::1;-1:-1:-1::0;;;19264:18:0::1;::::0;;19193:97::o;21389:95::-;21307:5;;-1:-1:-1;;;;;21307:5:0;208:10;21307:21;21299:62;;;;-1:-1:-1;;;21299:62:0;;15088:2:1;21299:62:0;;;15070:21:1;15127:2;15107:18;;;15100:30;15166;15146:18;;;15139:58;15214:18;;21299:62:0;15060:178:1;21299:62:0;21449:27:::1;208:10:::0;21469:6:::1;21449:5;:27::i;:::-;21389:95:::0;:::o;19365:16::-;19358:23;;19298:91;:::o;7270:174::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;7339:25:::1;:33:::0;;-1:-1:-1;;7383:19:0;7339:33:::1;7383:19;::::0;;7418:18:::1;::::0;::::1;::::0;7367:5:::1;::::0;7418:18:::1;7270:174::o:0;18830:355::-;16738:22;:20;:22::i;:::-;18946:19:::1;:17;:19::i;:::-;18938:83;;;;-1:-1:-1::0;;;18938:83:0::1;;;;;;;:::i;:::-;19032:12;19047:18;:16;:18::i;:::-;19032:33;;19081:6;19076:102;19093:19:::0;;::::1;19076:102;;;17901:4:::0;;-1:-1:-1;;;;;17901:4:0;19134:13:::1;19148:4:::0;19154:8;;19163:1;19154:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19134:32;::::0;-1:-1:-1;;;;;;19134:32:0::1;::::0;;;;;;-1:-1:-1;;;;;6094:15:1;;;19134:32:0::1;::::0;::::1;6076:34:1::0;6146:15;;6126:18;;;6119:43;6011:18;;19134:32:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19114:3;;;;;:::i;:::-;;;;19076:102;;;;18927:258;18830:355:::0;;:::o;18265:557::-;16738:22;:20;:22::i;:::-;18386:19:::1;:17;:19::i;:::-;18378:83;;;;-1:-1:-1::0;;;18378:83:0::1;;;;;;;:::i;:::-;18472:11;:18:::0;;-1:-1:-1;;;;18472:18:0::1;-1:-1:-1::0;;;18472:18:0::1;::::0;;;18516::::1;:16;:18::i;:::-;18501:33;;18550:6;18545:240;18562:19:::0;;::::1;18545:240;;;18603:14;18620:8;;18629:1;18620:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18603:28;;18650:5;17901:4:::0;;-1:-1:-1;;;;;17901:4:0;;17840:73;18650:5:::1;:29;::::0;-1:-1:-1;;;18650:29:0;;-1:-1:-1;;;;;6094:15:1;;;18650:29:0::1;::::0;::::1;6076:34:1::0;6146:15;;;6126:18;;;6119:43;18650:15:0;;;::::1;::::0;::::1;::::0;6011:18:1;;18650:29:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18646:128;;;18700:58;18715:6;18723:9;18734:23;18750:6;18734:15;:23::i;:::-;18700:14;:58::i;:::-;-1:-1:-1::0;18583:3:0;::::1;::::0;::::1;:::i;:::-;;;;18545:240;;;-1:-1:-1::0;;18795:11:0::1;:19:::0;;-1:-1:-1;;;;18795:19:0::1;::::0;;-1:-1:-1;;;18265:557:0:o;6029:249::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6141:22:::1;:34:::0;;-1:-1:-1;;;;;;6141:34:0::1;-1:-1:-1::0;;;;;6141:34:0;::::1;::::0;;::::1;::::0;;;6186:20:::1;:30:::0;;;6232:38:::1;::::0;::::1;::::0;-1:-1:-1;;6232:38:0::1;6029:249:::0;;:::o;5565:299::-;5679:8;;;;;-1:-1:-1;;;;;5679:8:0;208:10;-1:-1:-1;;;;;5655:33:0;;5647:76;;;;-1:-1:-1;;;5647:76:0;;13914:2:1;5647:76:0;;;13896:21:1;13953:2;13933:18;;;13926:30;13992:32;13972:18;;;13965:60;14042:18;;5647:76:0;13886:180:1;5647:76:0;5739:6;5734:123;5751:15;;;5734:123;;;5788:57;5798:4;;5803:1;5798:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5815:8;;;;;-1:-1:-1;;;;;5815:8:0;5826:18;5836:4;;5841:1;5836:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;5826:18::-;5788:9;:57::i;:::-;5768:3;;;;:::i;:::-;;;;5734:123;;;;5565:299;;:::o;7583:95::-;7630:13;7663:7;7656:14;;;;;:::i;20335:528::-;20383:7;20704:151;22305:42;20767:87;20803:4;23323:42;20826:27;22177:17;20826:11;:27::i;:::-;20767;:87::i;:::-;20704:31;:151::i;9467:425::-;9607:4;9572:7;9581:15;5032:12;;;;;;;;;;;5028:253;;;5061:8;;;;;-1:-1:-1;;;;;5061:8:0;:32;208:10;5108:7;5117:15;5061:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9624:24:::1;9651:11;:25;9663:12;208:10:::0;;128:98;9663:12:::1;-1:-1:-1::0;;;;;9651:25:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;9651:25:0;;;:34;;::::1;::::0;;;;;;;;-1:-1:-1;9704:35:0;;::::1;;9696:86;;;;-1:-1:-1::0;;;9696:86:0::1;;;;;;;:::i;:::-;9793:67;208:10:::0;9802:12:::1;9816:7:::0;9825:34:::1;9844:15:::0;9825:16;:34:::1;:::i;9793:67::-;-1:-1:-1::0;5164:8:0;;9880:4:::1;::::0;-1:-1:-1;5164:8:0;;;-1:-1:-1;;;;;5164:8:0;:31;208:10;5196:12;128:98;5028:253;208:10;9624:24:::1;9651:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;9651:34:0;::::1;::::0;;;;;;;;9704:35;;::::1;;9696:86;;;;-1:-1:-1::0;;;9696:86:0::1;;;;;;;:::i;:::-;9793:67;208:10:::0;9802:12:::1;128:98:::0;9793:67:::1;-1:-1:-1::0;9880:4:0::1;::::0;9467:425;-1:-1:-1;;;;;9467:425:0:o;8029:206::-;8146:4;8118:9;8129:6;4031:12;;;;;;;;;;;4027:221;;;4060:8;;;;;-1:-1:-1;;;;;4060:8:0;:23;208:10;4098:9;4109:6;4060:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8163:42:::1;8173:12;208:10:::0;;128:98;8173:12:::1;8187:9;8198:6;8163:9;:42::i;:::-;4147:8:::0;;8223:4:::1;::::0;-1:-1:-1;4147:8:0;;;-1:-1:-1;;;;;4147:8:0;:22;208:10;4170:12;128:98;4027:221;8163:42:::1;208:10:::0;8173:12:::1;128:98:::0;6912:350;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6990:25:::1;::::0;::::1;;6982:66;;;::::0;-1:-1:-1;;;6982:66:0;;12035:2:1;6982:66:0::1;::::0;::::1;12017:21:1::0;12074:2;12054:18;;;12047:30;12113;12093:18;;;12086:58;12161:18;;6982:66:0::1;12007:178:1::0;6982:66:0::1;7095:15;7067:24;;:43;;7059:85;;;::::0;-1:-1:-1;;;7059:85:0;;9631:2:1;7059:85:0::1;::::0;::::1;9613:21:1::0;9670:2;9650:18;;;9643:30;9709:31;9689:18;;;9682:59;9758:18;;7059:85:0::1;9603:179:1::0;7059:85:0::1;7155:12;:20:::0;;-1:-1:-1;;7186:33:0;;;7235:19:::1;::::0;::::1;::::0;7170:5:::1;::::0;7235:19:::1;6912:350::o:0;6286:365::-;6386:22;;-1:-1:-1;;;;;6386:22:0;208:10;-1:-1:-1;;;;;6370:38:0;;6362:76;;;;-1:-1:-1;;;6362:76:0;;12799:2:1;6362:76:0;;;12781:21:1;12838:2;12818:18;;;12811:30;12877:27;12857:18;;;12850:55;12922:18;;6362:76:0;12771:175:1;6362:76:0;6475:20;;6457:14;;;;;;:38;6449:70;;;;-1:-1:-1;;;6449:70:0;;11281:2:1;6449:70:0;;;11263:21:1;11320:2;11300:18;;;11293:30;-1:-1:-1;;;11339:18:1;;;11332:49;11398:18;;6449:70:0;11253:169:1;6449:70:0;6571:22;;6556:13;;6535:59;;-1:-1:-1;;;;;6571:22:0;;;;6556:13;;;;6535:59;;6571:22;;6535:59;-1:-1:-1;6621:22:0;;6605:13;:38;;-1:-1:-1;;;;;;6605:38:0;-1:-1:-1;;;;;6621:22:0;;;6605:38;;;;;;6286:365::o;6659:245::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6774:14:::1;::::0;6756:32:::1;::::0;:15:::1;:32;:::i;:::-;6729:24;:59:::0;;;6799:25:::1;:32:::0;;-1:-1:-1;;6799:32:0::1;6827:4;6799:32;::::0;;6847:49:::1;::::0;::::1;::::0;::::1;::::0;16559:25:1;;;16547:2;16532:18;;16514:76;6847:49:0::1;;;;;;;;6659:245::o:0;10800:348::-;-1:-1:-1;;;;;10902:19:0;;10894:69;;;;-1:-1:-1;;;10894:69:0;;14682:2:1;10894:69:0;;;14664:21:1;14721:2;14701:18;;;14694:30;14760:34;14740:18;;;14733:62;-1:-1:-1;;;14811:18:1;;;14804:35;14856:19;;10894:69:0;14654:227:1;10894:69:0;-1:-1:-1;;;;;10982:21:0;;10974:69;;;;-1:-1:-1;;;10974:69:0;;16211:2:1;10974:69:0;;;16193:21:1;16250:2;16230:18;;;16223:30;16289:34;16269:18;;;16262:62;-1:-1:-1;;;16340:18:1;;;16333:33;16383:19;;10974:69:0;16183:225:1;10974:69:0;-1:-1:-1;;;;;11056:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11108:32;;16559:25:1;;;11108:32:0;;16532:18:1;11108:32:0;;;;;;;;10800:348;;;:::o;21839:67::-;21307:5;;-1:-1:-1;;;;;21307:5:0;208:10;21307:21;21299:62;;;;-1:-1:-1;;;21299:62:0;;15088:2:1;21299:62:0;;;15070:21:1;15127:2;15107:18;;;15100:30;15166;15146:18;;;15139:58;15214:18;;21299:62:0;15060:178:1;21299:62:0;21839:67::o;9900:607::-;-1:-1:-1;;;;;10006:20:0;;9998:71;;;;-1:-1:-1;;;9998:71:0;;12392:2:1;9998:71:0;;;12374:21:1;12431:2;12411:18;;;12404:30;12470:34;12450:18;;;12443:62;-1:-1:-1;;;12521:18:1;;;12514:36;12567:19;;9998:71:0;12364:228:1;9998:71:0;-1:-1:-1;;;;;10088:23:0;;10080:72;;;;-1:-1:-1;;;10080:72:0;;9226:2:1;10080:72:0;;;9208:21:1;9265:2;9245:18;;;9238:30;9304:34;9284:18;;;9277:62;-1:-1:-1;;;9355:18:1;;;9348:34;9399:19;;10080:72:0;9198:226:1;10080:72:0;10165:47;10186:6;10194:9;10205:6;10165:20;:47::i;:::-;-1:-1:-1;;;;;10249:17:0;;10225:21;10249:17;;;;;;;;;;;10285:23;;;;10277:75;;;;-1:-1:-1;;;10277:75:0;;10463:2:1;10277:75:0;;;10445:21:1;10502:2;10482:18;;;10475:30;10541:34;10521:18;;;10514:62;-1:-1:-1;;;10592:18:1;;;10585:37;10639:19;;10277:75:0;10435:229:1;10277:75:0;10383:22;10399:6;10383:13;:22;:::i;:::-;-1:-1:-1;;;;;10363:17:0;;;:9;:17;;;;;;;;;;;:42;;;;10416:20;;;;;;;;:30;;10440:6;;10363:9;10416:30;;10440:6;;10416:30;:::i;:::-;;;;;;;;10481:9;-1:-1:-1;;;;;10464:35:0;10473:6;-1:-1:-1;;;;;10464:35:0;;10492:6;10464:35;;;;16559:25:1;;16547:2;16532:18;;16514:76;10464:35:0;;;;;;;;9987:520;9900:607;;;:::o;11156:432::-;-1:-1:-1;;;;;11240:21:0;;11232:67;;;;-1:-1:-1;;;11232:67:0;;13512:2:1;11232:67:0;;;13494:21:1;13551:2;13531:18;;;13524:30;13590:34;13570:18;;;13563:62;-1:-1:-1;;;13641:18:1;;;13634:31;13682:19;;11232:67:0;13484:223:1;11232:67:0;-1:-1:-1;;;;;11337:18:0;;11312:22;11337:18;;;;;;;;;;;11374:24;;;;11366:71;;;;-1:-1:-1;;;11366:71:0;;8823:2:1;11366:71:0;;;8805:21:1;8862:2;8842:18;;;8835:30;8901:34;8881:18;;;8874:62;-1:-1:-1;;;8952:18:1;;;8945:32;8994:19;;11366:71:0;8795:224:1;11366:71:0;11469:23;11486:6;11469:14;:23;:::i;:::-;-1:-1:-1;;;;;11448:18:0;;:9;:18;;;;;;;;;;:44;;;;11503:12;:22;;11519:6;;11448:9;11503:22;;11519:6;;11503:22;:::i;:::-;;;;-1:-1:-1;;11543:37:0;;16559:25:1;;;11569:1:0;;-1:-1:-1;;;;;11543:37:0;;;;;16547:2:1;16532:18;11543:37:0;16514:76:1;22765:420:0;22825:4;22850:38;22877:10;22850:26;:38::i;21676:157::-;-1:-1:-1;;;;;7995:18:0;;21749:4;7995:18;;;;;;;;;;;21773;21766:25;21676:157;-1:-1:-1;;21676:157:0:o;21492:178::-;21587:30;21597:5;21604:3;21609:7;21587:9;:30::i;20119:208::-;20182:6;20213:17;20205:4;:25;;;;;;;;:::i;:::-;;20201:42;;;-1:-1:-1;20239:4:0;;20119:208;-1:-1:-1;20119:208:0:o;20201:42::-;20266:18;20258:4;:26;;;;;;;;:::i;:::-;;20254:42;;;-1:-1:-1;20293:3:0;;20119:208;-1:-1:-1;20119:208:0:o;20254:42::-;-1:-1:-1;20314:5:0;;20119:208;-1:-1:-1;20119:208:0:o;14434:281::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;14595:6:0;-1:-1:-1;;;;;14586:15:0;:6;-1:-1:-1;;;;;14586:15:0;;14582:56;;;14623:6;;14631;14582:56;-1:-1:-1;14656:51:0;;;;;;;;-1:-1:-1;;;;;14656:51:0;;;;;;;;;;;;;;;;;;;;;;;14434:281::o;14968:603::-;15052:12;15098:3;:10;;;-1:-1:-1;;;;;15085:23:0;:3;:10;;;-1:-1:-1;;;;;15085:23:0;;15077:32;;;;;;15385:10;;15397;;;;;15409:7;;;;;15374:43;;-1:-1:-1;;;;;6890:15:1;;;15374:43:0;;;6872:34:1;6942:15;;;;6922:18;;;6915:43;7006:8;6994:21;;;6974:18;;;;6967:49;;;;15374:43:0;;;;;;;;;6807:18:1;;;15374:43:0;;;15364:54;;;;;;;-1:-1:-1;;;;;;15241:254:0;;;5434:26:1;5493:15;;;;-1:-1:-1;;5489:53:1;5476:11;;;5469:74;5559:12;;;5552:28;13877:66:0;5596:12:1;;;5589:28;5633:12;;15241:254:0;;;-1:-1:-1;;15241:254:0;;;;;;;;;15205:313;;15241:254;15205:313;;;;;14968:603;-1:-1:-1;;;14968:603:0:o;22398:227::-;22557:60;22597:5;22604:3;22609:7;22557:39;:60::i;19507:130::-;19582:4;19606:23;19610:18;19617:10;19985:15;-1:-1:-1;19972:28:0;19893:115;19610:18;20092:11;;20016:95;12827:63;12549:349;;;;;:::o;17921:336::-;18044:19;:17;:19::i;:::-;18040:210;;;18084:11;;-1:-1:-1;;;18084:11:0;;;;18080:58;;;17921:336;;;:::o;18080:58::-;17901:4;;-1:-1:-1;;;;;17901:4:0;18152:45;18198:18;:16;:18::i;:::-;18218:5;18225:3;18230:7;18152:86;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17921:336;;;:::o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;159:1;156;149:12;108:2;-1:-1:-1;182:20:1;;225:18;214:30;;211:2;;;257:1;254;247:12;211:2;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:2;;;371:1;368;361:12;386:247;445:6;498:2;486:9;477:7;473:23;469:32;466:2;;;514:1;511;504:12;466:2;553:9;540:23;572:31;597:5;572:31;:::i;:::-;622:5;456:177;-1:-1:-1;;;456:177:1:o;638:388::-;706:6;714;767:2;755:9;746:7;742:23;738:32;735:2;;;783:1;780;773:12;735:2;822:9;809:23;841:31;866:5;841:31;:::i;:::-;891:5;-1:-1:-1;948:2:1;933:18;;920:32;961:33;920:32;961:33;:::i;:::-;1013:7;1003:17;;;725:301;;;;;:::o;1031:456::-;1108:6;1116;1124;1177:2;1165:9;1156:7;1152:23;1148:32;1145:2;;;1193:1;1190;1183:12;1145:2;1232:9;1219:23;1251:31;1276:5;1251:31;:::i;:::-;1301:5;-1:-1:-1;1358:2:1;1343:18;;1330:32;1371:33;1330:32;1371:33;:::i;:::-;1135:352;;1423:7;;-1:-1:-1;;;1477:2:1;1462:18;;;;1449:32;;1135:352::o;1492:315::-;1560:6;1568;1621:2;1609:9;1600:7;1596:23;1592:32;1589:2;;;1637:1;1634;1627:12;1589:2;1676:9;1663:23;1695:31;1720:5;1695:31;:::i;:::-;1745:5;1797:2;1782:18;;;;1769:32;;-1:-1:-1;;;1579:228:1:o;2132:437::-;2218:6;2226;2279:2;2267:9;2258:7;2254:23;2250:32;2247:2;;;2295:1;2292;2285:12;2247:2;2335:9;2322:23;2368:18;2360:6;2357:30;2354:2;;;2400:1;2397;2390:12;2354:2;2439:70;2501:7;2492:6;2481:9;2477:22;2439:70;:::i;:::-;2528:8;;2413:96;;-1:-1:-1;2237:332:1;-1:-1:-1;;;;2237:332:1:o;2574:572::-;2669:6;2677;2685;2738:2;2726:9;2717:7;2713:23;2709:32;2706:2;;;2754:1;2751;2744:12;2706:2;2794:9;2781:23;2827:18;2819:6;2816:30;2813:2;;;2859:1;2856;2849:12;2813:2;2898:70;2960:7;2951:6;2940:9;2936:22;2898:70;:::i;:::-;2987:8;;-1:-1:-1;2872:96:1;-1:-1:-1;;3072:2:1;3057:18;;3044:32;3085:31;3044:32;3085:31;:::i;:::-;3135:5;3125:15;;;2696:450;;;;;:::o;3151:277::-;3218:6;3271:2;3259:9;3250:7;3246:23;3242:32;3239:2;;;3287:1;3284;3277:12;3239:2;3319:9;3313:16;3372:5;3365:13;3358:21;3351:5;3348:32;3338:2;;3394:1;3391;3384:12;3433:921;3501:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:2;;;3570:1;3567;3560:12;3522:2;3610:9;3597:23;3639:18;3680:2;3672:6;3669:14;3666:2;;;3696:1;3693;3686:12;3666:2;3734:6;3723:9;3719:22;3709:32;;3779:7;3772:4;3768:2;3764:13;3760:27;3750:2;;3801:1;3798;3791:12;3750:2;3837;3824:16;3859:2;3855;3852:10;3849:2;;;3865:18;;:::i;:::-;3940:2;3934:9;3908:2;3994:13;;-1:-1:-1;;3990:22:1;;;4014:2;3986:31;3982:40;3970:53;;;4038:18;;;4058:22;;;4035:46;4032:2;;;4084:18;;:::i;:::-;4124:10;4120:2;4113:22;4159:2;4151:6;4144:18;4199:7;4194:2;4189;4185;4181:11;4177:20;4174:33;4171:2;;;4220:1;4217;4210:12;4171:2;4276;4271;4267;4263:11;4258:2;4250:6;4246:15;4233:46;4321:1;4299:15;;;4316:2;4295:24;4288:35;;;;-1:-1:-1;4303:6:1;3512:842;-1:-1:-1;;;;;3512:842:1:o;4625:180::-;4684:6;4737:2;4725:9;4716:7;4712:23;4708:32;4705:2;;;4753:1;4750;4743:12;4705:2;-1:-1:-1;4776:23:1;;4695:110;-1:-1:-1;4695:110:1:o;6173:456::-;-1:-1:-1;;;;;6460:15:1;;;6442:34;;6512:15;;;6507:2;6492:18;;6485:43;6564:15;;6559:2;6544:18;;6537:43;6611:2;6596:18;;6589:34;;;;6391:3;6376:19;;6358:271::o;7027:375::-;-1:-1:-1;;;;;7285:15:1;;;7267:34;;7337:15;;;;7332:2;7317:18;;7310:43;7384:2;7369:18;;7362:34;;;;7217:2;7202:18;;7184:218::o;7599:597::-;7711:4;7740:2;7769;7758:9;7751:21;7801:6;7795:13;7844:6;7839:2;7828:9;7824:18;7817:34;7869:1;7879:140;7893:6;7890:1;7887:13;7879:140;;;7988:14;;;7984:23;;7978:30;7954:17;;;7973:2;7950:26;7943:66;7908:10;;7879:140;;;8037:6;8034:1;8031:13;8028:2;;;8107:1;8102:2;8093:6;8082:9;8078:22;8074:31;8067:42;8028:2;-1:-1:-1;8180:2:1;8159:15;-1:-1:-1;;8155:29:1;8140:45;;;;8187:2;8136:54;;7720:476;-1:-1:-1;;;7720:476:1:o;8201:415::-;8403:2;8385:21;;;8442:2;8422:18;;;8415:30;8481:34;8476:2;8461:18;;8454:62;-1:-1:-1;;;8547:2:1;8532:18;;8525:49;8606:3;8591:19;;8375:241::o;10669:405::-;10871:2;10853:21;;;10910:2;10890:18;;;10883:30;10949:34;10944:2;10929:18;;10922:62;-1:-1:-1;;;11015:2:1;11000:18;;10993:39;11064:3;11049:19;;10843:231::o;12951:354::-;13153:2;13135:21;;;13192:2;13172:18;;;13165:30;13231:32;13226:2;13211:18;;13204:60;13296:2;13281:18;;13125:180::o;14071:404::-;14273:2;14255:21;;;14312:2;14292:18;;;14285:30;14351:34;14346:2;14331:18;;14324:62;-1:-1:-1;;;14417:2:1;14402:18;;14395:38;14465:3;14450:19;;14245:230::o;15602:402::-;15804:2;15786:21;;;15843:2;15823:18;;;15816:30;15882:34;15877:2;15862:18;;15855:62;-1:-1:-1;;;15948:2:1;15933:18;;15926:36;15994:3;15979:19;;15776:228::o;16784:128::-;16824:3;16855:1;16851:6;16848:1;16845:13;16842:2;;;16861:18;;:::i;:::-;-1:-1:-1;16897:9:1;;16832:80::o;16917:125::-;16957:4;16985:1;16982;16979:8;16976:2;;;16990:18;;:::i;:::-;-1:-1:-1;17027:9:1;;16966:76::o;17047:380::-;17126:1;17122:12;;;;17169;;;17190:2;;17244:4;17236:6;17232:17;17222:27;;17190:2;17297;17289:6;17286:14;17266:18;17263:38;17260:2;;;17343:10;17338:3;17334:20;17331:1;17324:31;17378:4;17375:1;17368:15;17406:4;17403:1;17396:15;17260:2;;17102:325;;;:::o;17432:135::-;17471:3;-1:-1:-1;;17492:17:1;;17489:2;;;17512:18;;:::i;:::-;-1:-1:-1;17559:1:1;17548:13;;17479:88::o;17572:127::-;17633:10;17628:3;17624:20;17621:1;17614:31;17664:4;17661:1;17654:15;17688:4;17685:1;17678:15;17704:127;17765:10;17760:3;17756:20;17753:1;17746:31;17796:4;17793:1;17786:15;17820:4;17817:1;17810:15;17836:127;17897:10;17892:3;17888:20;17885:1;17878:31;17928:4;17925:1;17918:15;17952:4;17949:1;17942:15;17968:127;18029:10;18024:3;18020:20;18017:1;18010:31;18060:4;18057:1;18050:15;18084:4;18081:1;18074:15;18100:131;-1:-1:-1;;;;;18175:31:1;;18165:42;;18155:2;;18221:1;18218;18211:12
Swarm Source
ipfs://5fb65874f2ad8f1d24c0a1cdfde9076deafd1cd8113ff56a739aeca943ba67d2
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)