More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 37 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17976170 | 480 days ago | IN | 0 ETH | 0.00108802 | ||||
Transfer | 17976018 | 480 days ago | IN | 0 ETH | 0.00085425 | ||||
Approve | 17975846 | 480 days ago | IN | 0 ETH | 0.00072707 | ||||
Renounce Ownersh... | 17975836 | 480 days ago | IN | 0 ETH | 0.00029271 | ||||
Remove Limits | 17975819 | 480 days ago | IN | 0 ETH | 0.00065612 | ||||
Approve | 17975787 | 480 days ago | IN | 0 ETH | 0.00071317 | ||||
Approve | 17975748 | 480 days ago | IN | 0 ETH | 0.0006962 | ||||
Approve | 17975748 | 480 days ago | IN | 0 ETH | 0.00090478 | ||||
Approve | 17975745 | 480 days ago | IN | 0 ETH | 0.00081671 | ||||
Approve | 17975745 | 480 days ago | IN | 0 ETH | 0.00086392 | ||||
Approve | 17975744 | 480 days ago | IN | 0 ETH | 0.00078922 | ||||
Approve | 17975743 | 480 days ago | IN | 0 ETH | 0.00073369 | ||||
Approve | 17975742 | 480 days ago | IN | 0 ETH | 0.00081267 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 | ||||
Approve | 17975739 | 480 days ago | IN | 0 ETH | 0.00083269 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17972027 | 481 days ago | 1 ETH |
Loading...
Loading
Contract Name:
NOFRIENDS
Compiler Version
v0.8.2+commit.661d1103
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-08-22 */ /** Telegram: https://t.me/nofriendstecheth Twitter: https://twitter.com/nofriendstech Website: https://nofriends.tech/ */ // SPDX-License-Identifier: MIT pragma solidity >=0.8.2 <0.9.0; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract NOFRIENDS is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => uint256) private _holderLastTransferTimestamp; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 10000000 * 10**_decimals; string private constant _name = unicode"NOFRIENDS.tech"; string private constant _symbol = unicode"NOFRIENDS"; uint256 public _maxTxAmount = _tTotal.mul(5).div(100); // 5% of total supply intially uint256 public _maxWalletSize = _tTotal.mul(5).div(100); // 5% of total supply intially uint256 public _buyTax = 20; //intial buyTax uint256 public _sellTax = 20; //intial sellTax IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen=false; bool private inSwap = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier swapLock { inSwap = true; _; inSwap = false; } constructor () { _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; // The Uniswop router should not be subject to Tax uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _isExcludedFromFee[address(uniswapV2Router)] = true; //Marketing wallet receives 1.5% of total supply _balances[owner()] = _tTotal; emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private swapLock { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Check if trading is open, if it's the owner depositing tokens, or if it's a transfer to the Uniswap pair require(tradingOpen || (from == owner() && to == address(this)) || to == uniswapV2Pair, "Trading is not open yet"); // Check that the recipient's balance won't exceed the max wallet size require( _balances[to].add(amount) <= _maxWalletSize || (from == owner() && to == address(this)) || to == uniswapV2Pair || (from == address(this) && (to == owner() || to == uniswapV2Pair)), "New balance would exceed the max wallet size."); // Check that the sender has enough balance require(amount <= _balances[from], "Transfer amount exceeds balance"); // Check for underflows and overflows require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance"); require(_balances[to] + amount > _balances[to], "ERC20: addition overflow"); // Calculate tax amount uint256 taxAmount; if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { if (from == uniswapV2Pair && _buyTax > 0) { taxAmount = amount.mul(_buyTax).div(100); } else if (to == uniswapV2Pair && _sellTax > 0) { taxAmount = amount.mul(_sellTax).div(100); } } // Subtract tax from the amount uint256 sendAmount = amount.sub(taxAmount); // Update balances _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(sendAmount); emit Transfer(from, to, sendAmount); // Transfer the tax to the contract wallet and emit Transfer event only if taxAmount is not zero if (taxAmount > 0) { _balances[owner()] = _balances[owner()].add(taxAmount); emit Transfer(from, owner(), taxAmount); } } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; _buyTax = 1; _sellTax = 1; emit MaxTxAmountUpdated(_tTotal); } function manualSend() external onlyOwner { uint256 contractBalance = address(this).balance; require(contractBalance > 0, "Contract has no ETH to send"); // Transfer all ETH in the contract to the owner's wallet payable(owner()).transfer(contractBalance); } function checkBalanceAndAllowance() public view returns (uint256, uint256) { uint256 contractBalance = balanceOf(address(this)); uint256 routerAllowance = allowance(address(this), address(uniswapV2Router)); return (contractBalance, routerAllowance); } function addLiquidity() external onlyOwner() { require(!tradingOpen, "Trading is already open"); uint256 contractTokenBalance = balanceOf(address(this)); uint256 contractEthBalance = address(this).balance; // Check that the contract has enough tokens require(contractTokenBalance > 0, "Contract has no tokens to add as liquidity"); // Check that the contract has enough ETH require(contractEthBalance > 0, "Contract has no ETH to add as liquidity"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // create the pair on uniswop uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); // Approve the router to spend the tokens of this contract _approve(address(this), address(uniswapV2Router), contractTokenBalance); // Check that the router is approved to spend the tokens require(allowance(address(this), address(uniswapV2Router)) >= contractTokenBalance, "Router is not approved to spend tokens"); // Temporarily remove max wallet size for owner and Uniswap pair uint256 initialMaxWalletSize = _maxWalletSize; _maxWalletSize = _tTotal; // Add liquidity using the balance of tokens in the contract uniswapV2Router.addLiquidityETH{value: contractEthBalance}(address(this), contractTokenBalance, 0, 0, owner(), block.timestamp); // Restore max wallet size _maxWalletSize = initialMaxWalletSize; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max); } function openTrading() external onlyOwner() { require(!tradingOpen, "Trading is already open"); tradingOpen = true; } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ 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); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkBalanceAndAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200005860646200004460056009600a620000209190620005e0565b629896806200003091906200071d565b620004be60201b620012bc1790919060201c565b620004d660201b620012d21790919060201c565b600555620000af60646200009b60056009600a620000779190620005e0565b629896806200008791906200071d565b620004be60201b620012bc1790919060201c565b620004d660201b620012d21790919060201c565b600655601460075560146008556000600a60146101000a81548160ff0219169083151502179055506000600a60156101000a81548160ff021916908315150217905550348015620000ff57600080fd5b50600062000112620004ee60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001c09190620005e0565b62989680620001d091906200071d565b60016000620001e4620004ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000238620004f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a620003c09190620005e0565b62989680620003d091906200071d565b60016000620003e4620004f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000432620004f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004919190620005e0565b62989680620004a191906200071d565b604051620004b0919062000530565b60405180910390a362000800565b60008183620004ce91906200071d565b905092915050565b60008183620004e691906200054d565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200052a816200077e565b82525050565b60006020820190506200054760008301846200051f565b92915050565b60006200055a826200077e565b915062000567836200077e565b9250826200057a5762000579620007c4565b5b828204905092915050565b6000808291508390505b6001851115620005d757808604811115620005af57620005ae62000795565b5b6001851615620005bf5780820291505b8081029050620005cf85620007f3565b94506200058f565b94509492505050565b6000620005ed826200077e565b9150620005fa8362000788565b9250620006297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000631565b905092915050565b60008262000643576001905062000716565b8162000653576000905062000716565b81600181146200066c57600281146200067757620006ad565b600191505062000716565b60ff8411156200068c576200068b62000795565b5b8360020a915084821115620006a657620006a562000795565b5b5062000716565b5060208310610133831016604e8410600b8410161715620006e75782820a905083811115620006e157620006e062000795565b5b62000716565b620006f6848484600162000585565b9250905081840481111562000710576200070f62000795565b5b81810290505b9392505050565b60006200072a826200077e565b915062000737836200077e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000773576200077262000795565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b6130c180620008106000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c9567bf911610064578063c9567bf9146103d5578063ca9ec199146103ec578063dd62ed3e14610417578063e8078d9414610454578063f42938901461046b5761012a565b80638da5cb5b146102eb5780638f9a55c01461031657806390c547541461034157806395d89b411461036d578063a9059cbb146103985761012a565b806342a11095116100e757806342a110951461022a57806370a0823114610255578063715018a614610292578063751039fc146102a95780637d1db4a5146102c05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610482565b60405161015191906125d9565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612188565b6104bf565b60405161018e91906125be565b60405180910390f35b3480156101a357600080fd5b506101ac6104dd565b6040516101b991906127fb565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612139565b610500565b6040516101f691906125be565b60405180910390f35b34801561020b57600080fd5b506102146105d9565b604051610221919061283f565b60405180910390f35b34801561023657600080fd5b5061023f6105e2565b60405161024c91906127fb565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906120ab565b6105e8565b60405161028991906127fb565b60405180910390f35b34801561029e57600080fd5b506102a7610631565b005b3480156102b557600080fd5b506102be610784565b005b3480156102cc57600080fd5b506102d56108c1565b6040516102e291906127fb565b60405180910390f35b3480156102f757600080fd5b506103006108c7565b60405161030d91906124f0565b60405180910390f35b34801561032257600080fd5b5061032b6108f0565b60405161033891906127fb565b60405180910390f35b34801561034d57600080fd5b506103566108f6565b604051610364929190612816565b60405180910390f35b34801561037957600080fd5b50610382610942565b60405161038f91906125d9565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612188565b61097f565b6040516103cc91906125be565b60405180910390f35b3480156103e157600080fd5b506103ea61099d565b005b3480156103f857600080fd5b50610401610a9f565b60405161040e91906127fb565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906120fd565b610aa5565b60405161044b91906127fb565b60405180910390f35b34801561046057600080fd5b50610469610b2c565b005b34801561047757600080fd5b5061048061118e565b005b60606040518060400160405280600e81526020017f4e4f465249454e44532e74656368000000000000000000000000000000000000815250905090565b60006104d36104cc6112e8565b84846112f0565b6001905092915050565b60006009600a6104ed9190612950565b629896806104fb9190612a6e565b905090565b600061050d8484846114bb565b6105ce846105196112e8565b6105c98560405180606001604052806028815260200161306460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057f6112e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc19092919063ffffffff16565b6112f0565b600190509392505050565b60006009905090565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106396112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd9061273b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61078c6112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108109061273b565b60405180910390fd5b6009600a6108279190612950565b629896806108359190612a6e565b6005819055506009600a6108499190612950565b629896806108579190612a6e565b600681905550600160078190555060016008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61089c9190612950565b629896806108aa9190612a6e565b6040516108b791906127fb565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6000806000610904306105e8565b9050600061093430600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aa5565b905081819350935050509091565b60606040518060400160405280600981526020017f4e4f465249454e44530000000000000000000000000000000000000000000000815250905090565b600061099361098c6112e8565b84846114bb565b6001905092915050565b6109a56112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a299061273b565b60405180910390fd5b600a60149054906101000a900460ff1615610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a799061263b565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b346112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061273b565b60405180910390fd5b600a60149054906101000a900460ff1615610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c089061263b565b60405180910390fd5b6000610c1c306105e8565b9050600047905060008211610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d9061275b565b60405180910390fd5b60008111610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca09061279b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9e91906120d4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a91906120d4565b6040518363ffffffff1660e01b8152600401610e7792919061250b565b602060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec991906120d4565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f3630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f0565b81610f6330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aa5565b1015610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061265b565b60405180910390fd5b600060065490506009600a610fb99190612950565b62989680610fc79190612a6e565b600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000806110196108c7565b426040518863ffffffff1660e01b815260040161103b9695949392919061255d565b6060604051808303818588803b15801561105457600080fd5b505af1158015611068573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108d91906121ed565b50505080600681905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611136929190612534565b602060405180830381600087803b15801561115057600080fd5b505af1158015611164573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118891906121c4565b50505050565b6111966112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a9061273b565b60405180910390fd5b60004790506000811161126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906126fb565b60405180910390fd5b6112736108c7565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112b8573d6000803e3d6000fd5b5050565b600081836112ca9190612a6e565b905092915050565b600081836112e091906128cc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906127db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c79061261b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ae91906127fb565b60405180910390a3505050565b6001600a60156101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d906127bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906125fb565b60405180910390fd5b600081116115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f09061277b565b60405180910390fd5b600a60149054906101000a900460ff168061167d57506116176108c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116d55750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906126bb565b60405180910390fd5b60065461176982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b1115806117df57506117796108c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117de57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118375750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061190357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611902575061187b6108c7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806119015750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119399061271b565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb906126db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061267b565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad19190612876565b11611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b089061269b565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce057600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c1b57506000600754115b15611c4f57611c486064611c3a600754856112bc90919063ffffffff16565b6112d290919063ffffffff16565b9050611cdf565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cae57506000600854115b15611cde57611cdb6064611ccd600854856112bc90919063ffffffff16565b6112d290919063ffffffff16565b90505b5b5b6000611cf5828461202c90919063ffffffff16565b9050611d4983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202c90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dde81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7e91906127fb565b60405180910390a36000821115611f9f57611ee88260016000611e9f6108c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b60016000611ef46108c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3a6108c7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9691906127fb565b60405180910390a35b50506000600a60156101000a81548160ff021916908315150217905550505050565b6000838311158290612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200091906125d9565b60405180910390fd5b5082840390509392505050565b600081836120249190612876565b905092915050565b6000818361203a9190612ac8565b905092915050565b6000813590506120518161301e565b92915050565b6000815190506120668161301e565b92915050565b60008151905061207b81613035565b92915050565b6000813590506120908161304c565b92915050565b6000815190506120a58161304c565b92915050565b6000602082840312156120bd57600080fd5b60006120cb84828501612042565b91505092915050565b6000602082840312156120e657600080fd5b60006120f484828501612057565b91505092915050565b6000806040838503121561211057600080fd5b600061211e85828601612042565b925050602061212f85828601612042565b9150509250929050565b60008060006060848603121561214e57600080fd5b600061215c86828701612042565b935050602061216d86828701612042565b925050604061217e86828701612081565b9150509250925092565b6000806040838503121561219b57600080fd5b60006121a985828601612042565b92505060206121ba85828601612081565b9150509250929050565b6000602082840312156121d657600080fd5b60006121e48482850161206c565b91505092915050565b60008060006060848603121561220257600080fd5b600061221086828701612096565b935050602061222186828701612096565b925050604061223286828701612096565b9150509250925092565b61224581612afc565b82525050565b61225481612b0e565b82525050565b61226381612b51565b82525050565b60006122748261285a565b61227e8185612865565b935061228e818560208601612b63565b61229781612bf4565b840191505092915050565b60006122af602383612865565b91506122ba82612c12565b604082019050919050565b60006122d2602283612865565b91506122dd82612c61565b604082019050919050565b60006122f5601783612865565b915061230082612cb0565b602082019050919050565b6000612318602683612865565b915061232382612cd9565b604082019050919050565b600061233b602683612865565b915061234682612d28565b604082019050919050565b600061235e601883612865565b915061236982612d77565b602082019050919050565b6000612381601783612865565b915061238c82612da0565b602082019050919050565b60006123a4601f83612865565b91506123af82612dc9565b602082019050919050565b60006123c7601b83612865565b91506123d282612df2565b602082019050919050565b60006123ea602d83612865565b91506123f582612e1b565b604082019050919050565b600061240d602083612865565b915061241882612e6a565b602082019050919050565b6000612430602a83612865565b915061243b82612e93565b604082019050919050565b6000612453602983612865565b915061245e82612ee2565b604082019050919050565b6000612476602783612865565b915061248182612f31565b604082019050919050565b6000612499602583612865565b91506124a482612f80565b604082019050919050565b60006124bc602483612865565b91506124c782612fcf565b604082019050919050565b6124db81612b3a565b82525050565b6124ea81612b44565b82525050565b6000602082019050612505600083018461223c565b92915050565b6000604082019050612520600083018561223c565b61252d602083018461223c565b9392505050565b6000604082019050612549600083018561223c565b61255660208301846124d2565b9392505050565b600060c082019050612572600083018961223c565b61257f60208301886124d2565b61258c604083018761225a565b612599606083018661225a565b6125a6608083018561223c565b6125b360a08301846124d2565b979650505050505050565b60006020820190506125d3600083018461224b565b92915050565b600060208201905081810360008301526125f38184612269565b905092915050565b60006020820190508181036000830152612614816122a2565b9050919050565b60006020820190508181036000830152612634816122c5565b9050919050565b60006020820190508181036000830152612654816122e8565b9050919050565b600060208201905081810360008301526126748161230b565b9050919050565b600060208201905081810360008301526126948161232e565b9050919050565b600060208201905081810360008301526126b481612351565b9050919050565b600060208201905081810360008301526126d481612374565b9050919050565b600060208201905081810360008301526126f481612397565b9050919050565b60006020820190508181036000830152612714816123ba565b9050919050565b60006020820190508181036000830152612734816123dd565b9050919050565b6000602082019050818103600083015261275481612400565b9050919050565b6000602082019050818103600083015261277481612423565b9050919050565b6000602082019050818103600083015261279481612446565b9050919050565b600060208201905081810360008301526127b481612469565b9050919050565b600060208201905081810360008301526127d48161248c565b9050919050565b600060208201905081810360008301526127f4816124af565b9050919050565b600060208201905061281060008301846124d2565b92915050565b600060408201905061282b60008301856124d2565b61283860208301846124d2565b9392505050565b600060208201905061285460008301846124e1565b92915050565b600081519050919050565b600082825260208201905092915050565b600061288182612b3a565b915061288c83612b3a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128c1576128c0612b96565b5b828201905092915050565b60006128d782612b3a565b91506128e283612b3a565b9250826128f2576128f1612bc5565b5b828204905092915050565b6000808291508390505b60018511156129475780860481111561292357612922612b96565b5b60018516156129325780820291505b808102905061294085612c05565b9450612907565b94509492505050565b600061295b82612b3a565b915061296683612b44565b92506129937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461299b565b905092915050565b6000826129ab5760019050612a67565b816129b95760009050612a67565b81600181146129cf57600281146129d957612a08565b6001915050612a67565b60ff8411156129eb576129ea612b96565b5b8360020a915084821115612a0257612a01612b96565b5b50612a67565b5060208310610133831016604e8410600b8410161715612a3d5782820a905083811115612a3857612a37612b96565b5b612a67565b612a4a84848460016128fd565b92509050818404811115612a6157612a60612b96565b5b81810290505b9392505050565b6000612a7982612b3a565b9150612a8483612b3a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612abd57612abc612b96565b5b828202905092915050565b6000612ad382612b3a565b9150612ade83612b3a565b925082821015612af157612af0612b96565b5b828203905092915050565b6000612b0782612b1a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b5c82612b3a565b9050919050565b60005b83811015612b81578082015181840152602081019050612b66565b83811115612b90576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e642060008201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206164646974696f6e206f766572666c6f770000000000000000600082015250565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f436f6e747261637420686173206e6f2045544820746f2073656e640000000000600082015250565b7f4e65772062616c616e636520776f756c642065786365656420746865206d617860008201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2061646420617360008201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c6960008201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61302781612afc565b811461303257600080fd5b50565b61303e81612b0e565b811461304957600080fd5b50565b61305581612b3a565b811461306057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207084dd7348569f35c2c7c2050c40a399851c574e1f6f6a5d7f15e50f18d937df64736f6c63430008020033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c9567bf911610064578063c9567bf9146103d5578063ca9ec199146103ec578063dd62ed3e14610417578063e8078d9414610454578063f42938901461046b5761012a565b80638da5cb5b146102eb5780638f9a55c01461031657806390c547541461034157806395d89b411461036d578063a9059cbb146103985761012a565b806342a11095116100e757806342a110951461022a57806370a0823114610255578063715018a614610292578063751039fc146102a95780637d1db4a5146102c05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610482565b60405161015191906125d9565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612188565b6104bf565b60405161018e91906125be565b60405180910390f35b3480156101a357600080fd5b506101ac6104dd565b6040516101b991906127fb565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612139565b610500565b6040516101f691906125be565b60405180910390f35b34801561020b57600080fd5b506102146105d9565b604051610221919061283f565b60405180910390f35b34801561023657600080fd5b5061023f6105e2565b60405161024c91906127fb565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906120ab565b6105e8565b60405161028991906127fb565b60405180910390f35b34801561029e57600080fd5b506102a7610631565b005b3480156102b557600080fd5b506102be610784565b005b3480156102cc57600080fd5b506102d56108c1565b6040516102e291906127fb565b60405180910390f35b3480156102f757600080fd5b506103006108c7565b60405161030d91906124f0565b60405180910390f35b34801561032257600080fd5b5061032b6108f0565b60405161033891906127fb565b60405180910390f35b34801561034d57600080fd5b506103566108f6565b604051610364929190612816565b60405180910390f35b34801561037957600080fd5b50610382610942565b60405161038f91906125d9565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612188565b61097f565b6040516103cc91906125be565b60405180910390f35b3480156103e157600080fd5b506103ea61099d565b005b3480156103f857600080fd5b50610401610a9f565b60405161040e91906127fb565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906120fd565b610aa5565b60405161044b91906127fb565b60405180910390f35b34801561046057600080fd5b50610469610b2c565b005b34801561047757600080fd5b5061048061118e565b005b60606040518060400160405280600e81526020017f4e4f465249454e44532e74656368000000000000000000000000000000000000815250905090565b60006104d36104cc6112e8565b84846112f0565b6001905092915050565b60006009600a6104ed9190612950565b629896806104fb9190612a6e565b905090565b600061050d8484846114bb565b6105ce846105196112e8565b6105c98560405180606001604052806028815260200161306460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057f6112e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc19092919063ffffffff16565b6112f0565b600190509392505050565b60006009905090565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106396112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd9061273b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61078c6112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108109061273b565b60405180910390fd5b6009600a6108279190612950565b629896806108359190612a6e565b6005819055506009600a6108499190612950565b629896806108579190612a6e565b600681905550600160078190555060016008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61089c9190612950565b629896806108aa9190612a6e565b6040516108b791906127fb565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6000806000610904306105e8565b9050600061093430600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aa5565b905081819350935050509091565b60606040518060400160405280600981526020017f4e4f465249454e44530000000000000000000000000000000000000000000000815250905090565b600061099361098c6112e8565b84846114bb565b6001905092915050565b6109a56112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a299061273b565b60405180910390fd5b600a60149054906101000a900460ff1615610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a799061263b565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b346112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061273b565b60405180910390fd5b600a60149054906101000a900460ff1615610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c089061263b565b60405180910390fd5b6000610c1c306105e8565b9050600047905060008211610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d9061275b565b60405180910390fd5b60008111610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca09061279b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9e91906120d4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a91906120d4565b6040518363ffffffff1660e01b8152600401610e7792919061250b565b602060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec991906120d4565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f3630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f0565b81610f6330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aa5565b1015610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061265b565b60405180910390fd5b600060065490506009600a610fb99190612950565b62989680610fc79190612a6e565b600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000806110196108c7565b426040518863ffffffff1660e01b815260040161103b9695949392919061255d565b6060604051808303818588803b15801561105457600080fd5b505af1158015611068573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108d91906121ed565b50505080600681905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611136929190612534565b602060405180830381600087803b15801561115057600080fd5b505af1158015611164573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118891906121c4565b50505050565b6111966112e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a9061273b565b60405180910390fd5b60004790506000811161126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906126fb565b60405180910390fd5b6112736108c7565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112b8573d6000803e3d6000fd5b5050565b600081836112ca9190612a6e565b905092915050565b600081836112e091906128cc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906127db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c79061261b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ae91906127fb565b60405180910390a3505050565b6001600a60156101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d906127bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906125fb565b60405180910390fd5b600081116115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f09061277b565b60405180910390fd5b600a60149054906101000a900460ff168061167d57506116176108c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116d55750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906126bb565b60405180910390fd5b60065461176982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b1115806117df57506117796108c7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117de57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118375750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061190357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611902575061187b6108c7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806119015750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119399061271b565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb906126db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061267b565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad19190612876565b11611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b089061269b565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce057600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c1b57506000600754115b15611c4f57611c486064611c3a600754856112bc90919063ffffffff16565b6112d290919063ffffffff16565b9050611cdf565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cae57506000600854115b15611cde57611cdb6064611ccd600854856112bc90919063ffffffff16565b6112d290919063ffffffff16565b90505b5b5b6000611cf5828461202c90919063ffffffff16565b9050611d4983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202c90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dde81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7e91906127fb565b60405180910390a36000821115611f9f57611ee88260016000611e9f6108c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201690919063ffffffff16565b60016000611ef46108c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3a6108c7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9691906127fb565b60405180910390a35b50506000600a60156101000a81548160ff021916908315150217905550505050565b6000838311158290612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200091906125d9565b60405180910390fd5b5082840390509392505050565b600081836120249190612876565b905092915050565b6000818361203a9190612ac8565b905092915050565b6000813590506120518161301e565b92915050565b6000815190506120668161301e565b92915050565b60008151905061207b81613035565b92915050565b6000813590506120908161304c565b92915050565b6000815190506120a58161304c565b92915050565b6000602082840312156120bd57600080fd5b60006120cb84828501612042565b91505092915050565b6000602082840312156120e657600080fd5b60006120f484828501612057565b91505092915050565b6000806040838503121561211057600080fd5b600061211e85828601612042565b925050602061212f85828601612042565b9150509250929050565b60008060006060848603121561214e57600080fd5b600061215c86828701612042565b935050602061216d86828701612042565b925050604061217e86828701612081565b9150509250925092565b6000806040838503121561219b57600080fd5b60006121a985828601612042565b92505060206121ba85828601612081565b9150509250929050565b6000602082840312156121d657600080fd5b60006121e48482850161206c565b91505092915050565b60008060006060848603121561220257600080fd5b600061221086828701612096565b935050602061222186828701612096565b925050604061223286828701612096565b9150509250925092565b61224581612afc565b82525050565b61225481612b0e565b82525050565b61226381612b51565b82525050565b60006122748261285a565b61227e8185612865565b935061228e818560208601612b63565b61229781612bf4565b840191505092915050565b60006122af602383612865565b91506122ba82612c12565b604082019050919050565b60006122d2602283612865565b91506122dd82612c61565b604082019050919050565b60006122f5601783612865565b915061230082612cb0565b602082019050919050565b6000612318602683612865565b915061232382612cd9565b604082019050919050565b600061233b602683612865565b915061234682612d28565b604082019050919050565b600061235e601883612865565b915061236982612d77565b602082019050919050565b6000612381601783612865565b915061238c82612da0565b602082019050919050565b60006123a4601f83612865565b91506123af82612dc9565b602082019050919050565b60006123c7601b83612865565b91506123d282612df2565b602082019050919050565b60006123ea602d83612865565b91506123f582612e1b565b604082019050919050565b600061240d602083612865565b915061241882612e6a565b602082019050919050565b6000612430602a83612865565b915061243b82612e93565b604082019050919050565b6000612453602983612865565b915061245e82612ee2565b604082019050919050565b6000612476602783612865565b915061248182612f31565b604082019050919050565b6000612499602583612865565b91506124a482612f80565b604082019050919050565b60006124bc602483612865565b91506124c782612fcf565b604082019050919050565b6124db81612b3a565b82525050565b6124ea81612b44565b82525050565b6000602082019050612505600083018461223c565b92915050565b6000604082019050612520600083018561223c565b61252d602083018461223c565b9392505050565b6000604082019050612549600083018561223c565b61255660208301846124d2565b9392505050565b600060c082019050612572600083018961223c565b61257f60208301886124d2565b61258c604083018761225a565b612599606083018661225a565b6125a6608083018561223c565b6125b360a08301846124d2565b979650505050505050565b60006020820190506125d3600083018461224b565b92915050565b600060208201905081810360008301526125f38184612269565b905092915050565b60006020820190508181036000830152612614816122a2565b9050919050565b60006020820190508181036000830152612634816122c5565b9050919050565b60006020820190508181036000830152612654816122e8565b9050919050565b600060208201905081810360008301526126748161230b565b9050919050565b600060208201905081810360008301526126948161232e565b9050919050565b600060208201905081810360008301526126b481612351565b9050919050565b600060208201905081810360008301526126d481612374565b9050919050565b600060208201905081810360008301526126f481612397565b9050919050565b60006020820190508181036000830152612714816123ba565b9050919050565b60006020820190508181036000830152612734816123dd565b9050919050565b6000602082019050818103600083015261275481612400565b9050919050565b6000602082019050818103600083015261277481612423565b9050919050565b6000602082019050818103600083015261279481612446565b9050919050565b600060208201905081810360008301526127b481612469565b9050919050565b600060208201905081810360008301526127d48161248c565b9050919050565b600060208201905081810360008301526127f4816124af565b9050919050565b600060208201905061281060008301846124d2565b92915050565b600060408201905061282b60008301856124d2565b61283860208301846124d2565b9392505050565b600060208201905061285460008301846124e1565b92915050565b600081519050919050565b600082825260208201905092915050565b600061288182612b3a565b915061288c83612b3a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128c1576128c0612b96565b5b828201905092915050565b60006128d782612b3a565b91506128e283612b3a565b9250826128f2576128f1612bc5565b5b828204905092915050565b6000808291508390505b60018511156129475780860481111561292357612922612b96565b5b60018516156129325780820291505b808102905061294085612c05565b9450612907565b94509492505050565b600061295b82612b3a565b915061296683612b44565b92506129937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461299b565b905092915050565b6000826129ab5760019050612a67565b816129b95760009050612a67565b81600181146129cf57600281146129d957612a08565b6001915050612a67565b60ff8411156129eb576129ea612b96565b5b8360020a915084821115612a0257612a01612b96565b5b50612a67565b5060208310610133831016604e8410600b8410161715612a3d5782820a905083811115612a3857612a37612b96565b5b612a67565b612a4a84848460016128fd565b92509050818404811115612a6157612a60612b96565b5b81810290505b9392505050565b6000612a7982612b3a565b9150612a8483612b3a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612abd57612abc612b96565b5b828202905092915050565b6000612ad382612b3a565b9150612ade83612b3a565b925082821015612af157612af0612b96565b5b828203905092915050565b6000612b0782612b1a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b5c82612b3a565b9050919050565b60005b83811015612b81578082015181840152602081019050612b66565b83811115612b90576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e642060008201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206164646974696f6e206f766572666c6f770000000000000000600082015250565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f436f6e747261637420686173206e6f2045544820746f2073656e640000000000600082015250565b7f4e65772062616c616e636520776f756c642065786365656420746865206d617860008201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2061646420617360008201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c6960008201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61302781612afc565b811461303257600080fd5b50565b61303e81612b0e565b811461304957600080fd5b50565b61305581612b3a565b811461306057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207084dd7348569f35c2c7c2050c40a399851c574e1f6f6a5d7f15e50f18d937df64736f6c63430008020033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.