Overview
Max Total Supply
99,562,717.000235701323533814 BTAP
Holders
458 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,478.380381182417008609 BTAPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BTAP_Token
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-03-08 */ pragma solidity 0.8.1; // SPDX-License-Identifier: MIT /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal virtual view returns (address) { return msg.sender; } function _msgData() internal virtual view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the BEP20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts 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 mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message 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, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-block.timestamp/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract BTAP_Token is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "BTAP"; string private _symbol = "BTAP"; uint8 private _decimals = 18; mapping(address => uint256) internal _reflectionBalance; mapping(address => uint256) internal _tokenBalance; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private constant MAX = ~uint256(0); uint256 internal _tokenTotal = 100000000 *10**18; uint256 internal _reflectionTotal = (MAX - (MAX % _tokenTotal)); mapping(address => bool) isExcludedFromFee; mapping(address => bool) internal _isExcluded; address[] internal _excluded; uint256 public _taxFee = 50; uint256 public _taxFeeAfter50millionSupply = 75; uint256 public _burnFee = 25; uint256 public _charityFee = 25; uint256 public _rebalanceCallerFee = 100; uint256 public _taxFeeTotal; uint256 public _burnFeeTotal; uint256 public _charityFeeTotal; address public charityAddress = 0xdbbb0DF9E8e9CbB11cA7a886113fA43504598C75; event RewardsDistributed(uint256 amount); constructor() { isExcludedFromFee[_msgSender()] = true; isExcludedFromFee[address(this)] = true; _reflectionBalance[_msgSender()] = _reflectionTotal; emit Transfer(address(0), _msgSender(), _tokenTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public override view returns (uint256) { return _tokenTotal; } function balanceOf(address account) public override view returns (uint256) { if (_isExcluded[account]) return _tokenBalance[account]; return tokenFromReflection(_reflectionBalance[account]); } function transfer(address recipient, uint256 amount) public override virtual returns (bool) { _transfer(_msgSender(),recipient,amount); return true; } function allowance(address owner, address spender) public override view 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 virtual returns (bool) { _transfer(sender,recipient,amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub( amount,"ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tokenAmount, bool deductTransferFee) public view returns (uint256) { require(tokenAmount <= _tokenTotal, "Amount must be less than supply"); if (!deductTransferFee) { return tokenAmount.mul(_getReflectionRate()); } else { return tokenAmount.sub(tokenAmount.mul(_taxFee).div(10000)).mul( _getReflectionRate() ); } } function tokenFromReflection(uint256 reflectionAmount) public view returns (uint256) { require( reflectionAmount <= _reflectionTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getReflectionRate(); return reflectionAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,"BTAP: Uniswap router cannot be excluded."); require(account != address(this), 'BTAP: The contract it self cannot be excluded'); require(!_isExcluded[account], "BTAP: Account is already excluded"); if (_reflectionBalance[account] > 0) { _tokenBalance[account] = tokenFromReflection( _reflectionBalance[account] ); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "BTAP: Account is already included"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tokenBalance[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } 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 sender, address recipient, uint256 amount ) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 transferAmount = amount; uint256 rate = _getReflectionRate(); if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]){ transferAmount = collectFee(sender,amount,rate); } //@dev Transfer reflection _reflectionBalance[sender] = _reflectionBalance[sender].sub(amount.mul(rate)); _reflectionBalance[recipient] = _reflectionBalance[recipient].add(transferAmount.mul(rate)); //@dev If any account belongs to the excludedAccount transfer token if (_isExcluded[sender]) { _tokenBalance[sender] = _tokenBalance[sender].sub(amount); } if (_isExcluded[recipient]) { _tokenBalance[recipient] = _tokenBalance[recipient].add(transferAmount); } emit Transfer(sender, recipient, transferAmount); } function collectFee(address account, uint256 amount, uint256 rate) private returns (uint256) { uint256 transferAmount = amount; uint256 burnFee = amount.mul(_burnFee).div(10000); uint256 charityFee = amount.mul(_charityFee).div(10000); uint256 taxFee = amount.mul(_taxFee).div(10000); uint256 taxFeeAfter50millionSupply = amount.mul(_taxFeeAfter50millionSupply).div(10000); //@dev Tax fee if (_tokenTotal > 50000000 *10**18) { transferAmount = transferAmount.sub(taxFee); _reflectionTotal = _reflectionTotal.sub(taxFee.mul(rate)); _taxFeeTotal = _taxFeeTotal.add(taxFee); emit RewardsDistributed(taxFee); } if(_tokenTotal == 50000000 *10**18){ transferAmount = transferAmount.sub(taxFeeAfter50millionSupply); _reflectionTotal = _reflectionTotal.sub(taxFeeAfter50millionSupply.mul(rate)); _taxFeeTotal = _taxFeeTotal.add(taxFeeAfter50millionSupply); emit RewardsDistributed(taxFeeAfter50millionSupply); } //@dev charity fee if(_charityFee != 0){ transferAmount = transferAmount.sub(charityFee); _reflectionBalance[charityAddress] = _reflectionBalance[charityAddress].add(charityFee.mul(rate)); _charityFeeTotal = _charityFeeTotal.add(charityFee); emit Transfer(account,charityAddress,charityFee); } //@dev burn fee if (burnFee != 0) { if (_tokenTotal > 50000000 *10**18 && _tokenTotal < 50000000 *10**18 + burnFee) { uint256 lastBurnAmount = _tokenTotal - 50000000 *10**18; transferAmount = transferAmount.sub(lastBurnAmount); _tokenTotal = _tokenTotal.sub(lastBurnAmount); _burnFeeTotal = _burnFeeTotal.add(lastBurnAmount); emit Transfer(account,address(0),lastBurnAmount); } if (_tokenTotal >= 50000000 *10**18 + burnFee) { transferAmount = transferAmount.sub(burnFee); _tokenTotal = _tokenTotal.sub(burnFee); _burnFeeTotal = _burnFeeTotal.add(burnFee); emit Transfer(account,address(0),burnFee); } } return transferAmount; } function _getReflectionRate() private view returns (uint256) { uint256 reflectionSupply = _reflectionTotal; uint256 tokenSupply = _tokenTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _reflectionBalance[_excluded[i]] > reflectionSupply || _tokenBalance[_excluded[i]] > tokenSupply ) return _reflectionTotal.div(_tokenTotal); reflectionSupply = reflectionSupply.sub( _reflectionBalance[_excluded[i]] ); tokenSupply = tokenSupply.sub(_tokenBalance[_excluded[i]]); } if (reflectionSupply < _reflectionTotal.div(_tokenTotal)) return _reflectionTotal.div(_tokenTotal); return reflectionSupply.div(tokenSupply); } function setExcludedFromFee(address account, bool excluded) public onlyOwner { isExcludedFromFee[account] = excluded; } function setTaxFee(uint256 fee) public onlyOwner { _taxFee = fee; } function setBurnFee(uint256 fee) public onlyOwner { _burnFee = fee; } function setCharityFee(uint256 fee) public onlyOwner { _charityFee = fee; } function setRebalanceCallerFee(uint256 fee) public onlyOwner { _rebalanceCallerFee = fee; } receive() external payable {} }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","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":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rebalanceCallerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeAfter50millionSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"charityAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setCharityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setRebalanceCallerFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600481526020017f42544150000000000000000000000000000000000000000000000000000000008152506001908051906020019062000051929190620003b6565b506040518060400160405280600481526020017f4254415000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620003b6565b506012600360006101000a81548160ff021916908360ff1602179055506a52b7d2dcc80cd2e4000000600755600754600019620000dd91906200050f565b600019620000ec919062000494565b6008556032600c55604b600d556019600e556019600f55606460105573dbbb0df9e8e9cbb11ca7a886113fa43504598c75601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200016a57600080fd5b5060006200017d620003ae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060016009600062000231620003ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060085460046000620002f1620003ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200033f620003ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620003a0919062000477565b60405180910390a3620005d4565b600033905090565b828054620003c490620004d9565b90600052602060002090601f016020900481019282620003e8576000855562000434565b82601f106200040357805160ff191683800117855562000434565b8280016001018555821562000434579182015b828111156200043357825182559160200191906001019062000416565b5b50905062000443919062000447565b5090565b5b808211156200046257600081600090555060010162000448565b5090565b6200047181620004cf565b82525050565b60006020820190506200048e600083018462000466565b92915050565b6000620004a182620004cf565b9150620004ae83620004cf565b925082821015620004c457620004c362000547565b5b828203905092915050565b6000819050919050565b60006002820490506001821680620004f257607f821691505b60208210811415620005095762000508620005a5565b5b50919050565b60006200051c82620004cf565b91506200052983620004cf565b9250826200053c576200053b62000576565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613ea680620005e46000396000f3fe6080604052600436106101f25760003560e01c806370a082311161010d578063afcf2fc4116100a0578063cd980e561161006f578063cd980e5614610738578063dd62ed3e14610761578063f2cc0c181461079e578063f2fde38b146107c7578063f84354f1146107f0576101f9565b8063afcf2fc41461067c578063c0b0fda2146106a7578063c4081a4c146106d2578063cba0e996146106fb576101f9565b806395d89b41116100dc57806395d89b41146105ac578063a457c2d7146105d7578063a9059cbb14610614578063ac80b7e814610651576101f9565b806370a0823114610502578063715018a61461053f5780637e64c7aa146105565780638da5cb5b14610581576101f9565b8063355bc60b1161018557806340f8007a1161015457806340f8007a146104485780634549b039146104735780634bf2c7c9146104b05780636612e66f146104d9576101f9565b8063355bc60b1461038a57806335837f9e146103b557806339509351146103e05780633b124fe71461041d576101f9565b806320c7c596116101c157806320c7c596146102bc57806323b872dd146102e55780632d83811914610322578063313ce5671461035f576101f9565b806306fdde03146101fe578063095ea7b3146102295780630d9a52191461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610819565b60405161022091906134a5565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b919061314c565b6108ab565b60405161025d919061348a565b60405180910390f35b34801561027257600080fd5b5061027b6108c9565b60405161028891906136a7565b60405180910390f35b34801561029d57600080fd5b506102a66108cf565b6040516102b391906136a7565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613188565b6108d9565b005b3480156102f157600080fd5b5061030c600480360381019061030791906130c1565b610978565b604051610319919061348a565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190613188565b610a51565b60405161035691906136a7565b60405180910390f35b34801561036b57600080fd5b50610374610abf565b60405161038191906136c2565b60405180910390f35b34801561039657600080fd5b5061039f610ad6565b6040516103ac91906136a7565b60405180910390f35b3480156103c157600080fd5b506103ca610adc565b6040516103d791906136a7565b60405180910390f35b3480156103ec57600080fd5b506104076004803603810190610402919061314c565b610ae2565b604051610414919061348a565b60405180910390f35b34801561042957600080fd5b50610432610b95565b60405161043f91906136a7565b60405180910390f35b34801561045457600080fd5b5061045d610b9b565b60405161046a91906136a7565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906131b1565b610ba1565b6040516104a791906136a7565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613188565b610c6b565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190613110565b610d0a565b005b34801561050e57600080fd5b506105296004803603810190610524919061305c565b610dfa565b60405161053691906136a7565b60405180910390f35b34801561054b57600080fd5b50610554610ee5565b005b34801561056257600080fd5b5061056b611038565b60405161057891906136a7565b60405180910390f35b34801561058d57600080fd5b5061059661103e565b6040516105a3919061346f565b60405180910390f35b3480156105b857600080fd5b506105c1611067565b6040516105ce91906134a5565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f9919061314c565b6110f9565b60405161060b919061348a565b60405180910390f35b34801561062057600080fd5b5061063b6004803603810190610636919061314c565b6111c6565b604051610648919061348a565b60405180910390f35b34801561065d57600080fd5b506106666111e4565b60405161067391906136a7565b60405180910390f35b34801561068857600080fd5b506106916111ea565b60405161069e919061346f565b60405180910390f35b3480156106b357600080fd5b506106bc611210565b6040516106c991906136a7565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613188565b611216565b005b34801561070757600080fd5b50610722600480360381019061071d919061305c565b6112b5565b60405161072f919061348a565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a9190613188565b61130b565b005b34801561076d57600080fd5b5061078860048036038101906107839190613085565b6113aa565b60405161079591906136a7565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c0919061305c565b611431565b005b3480156107d357600080fd5b506107ee60048036038101906107e9919061305c565b6117d7565b005b3480156107fc57600080fd5b506108176004803603810190610812919061305c565b611999565b005b60606001805461082890613896565b80601f016020809104026020016040519081016040528092919081815260200182805461085490613896565b80156108a15780601f10610876576101008083540402835291602001916108a1565b820191906000526020600020905b81548152906001019060200180831161088457829003601f168201915b5050505050905090565b60006108bf6108b8611d80565b8484611d88565b6001905092915050565b60125481565b6000600754905090565b6108e1611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590613607565b60405180910390fd5b80600f8190555050565b6000610985848484611f53565b610a4684610991611d80565b610a4185604051806060016040528060288152602001613e2460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109f7611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c89092919063ffffffff16565b611d88565b600190509392505050565b6000600854821115610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f90613507565b60405180910390fd5b6000610aa261252c565b9050610ab781846128a190919063ffffffff16565b915050919050565b6000600360009054906101000a900460ff16905090565b60115481565b60135481565b6000610b8b610aef611d80565b84610b868560066000610b00611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b611d88565b6001905092915050565b600c5481565b600f5481565b6000600754831115610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90613587565b60405180910390fd5b81610c0e57610c07610bf861252c565b8461294990919063ffffffff16565b9050610c65565b610c62610c1961252c565b610c54610c45612710610c37600c548961294990919063ffffffff16565b6128a190919063ffffffff16565b866129c490919063ffffffff16565b61294990919063ffffffff16565b90505b92915050565b610c73611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790613607565b60405180910390fd5b80600e8190555050565b610d12611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690613607565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e9557600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ee0565b610edd600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a51565b90505b919050565b610eed611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461107690613896565b80601f01602080910402602001604051908101604052809291908181526020018280546110a290613896565b80156110ef5780601f106110c4576101008083540402835291602001916110ef565b820191906000526020600020905b8154815290600101906020018083116110d257829003601f168201915b5050505050905090565b60006111bc611106611d80565b846111b785604051806060016040528060258152602001613e4c6025913960066000611130611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c89092919063ffffffff16565b611d88565b6001905092915050565b60006111da6111d3611d80565b8484611f53565b6001905092915050565b600d5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61121e611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a290613607565b60405180910390fd5b80600c8190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611313611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790613607565b60405180910390fd5b8060108190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611439611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613607565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906135a7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906134e7565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c906135e7565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611719576116d5600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a51565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117df611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d390613527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119a1611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2590613607565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190613687565b60405180910390fd5b60005b600b80549050811015611d7c578173ffffffffffffffffffffffffffffffffffffffff16600b8281548110611b1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d6957600b6001600b80549050611b7691906137da565b81548110611bad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b8281548110611c12577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b805480611d2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d7c565b8080611d74906138c8565b915050611abd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90613667565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613547565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f4691906136a7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613647565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a906134c7565b60405180910390fd5b60008111612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90613627565b60405180910390fd5b6000819050600061208561252c565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561212b5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561213e5761213b858483612a0e565b91505b6121a2612154828561294990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c490919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122496121fb828461294990919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123745761233083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c490919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561245c5761241882600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b991906136a7565b60405180910390a35050505050565b6000838311158290612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250791906134a5565b60405180910390fd5b506000838561251f91906137da565b9050809150509392505050565b60008060085490506000600754905060005b600b80549050811015612847578260046000600b848154811061258a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061269e57508160056000600b8481548110612636577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156126c4576126ba6007546008546128a190919063ffffffff16565b935050505061289e565b61277a60046000600b8481548110612705577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846129c490919063ffffffff16565b925061283260056000600b84815481106127bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836129c490919063ffffffff16565b9150808061283f906138c8565b91505061253e565b5061285f6007546008546128a190919063ffffffff16565b8210156128865761287d6007546008546128a190919063ffffffff16565b9250505061289e565b61289981836128a190919063ffffffff16565b925050505b90565b60006128e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fba565b905092915050565b60008082846128fa91906136f9565b90508381101561293f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293690613567565b60405180910390fd5b8091505092915050565b60008083141561295c57600090506129be565b6000828461296a9190613780565b9050828482612979919061374f565b146129b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b0906135c7565b60405180910390fd5b809150505b92915050565b6000612a0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124c8565b905092915050565b6000808390506000612a3f612710612a31600e548861294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612a6c612710612a5e600f548961294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612a99612710612a8b600c548a61294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612ac6612710612ab8600d548b61294990919063ffffffff16565b6128a190919063ffffffff16565b90506a295be96e640669720000006007541115612b7257612af082866129c490919063ffffffff16565b9450612b19612b08888461294990919063ffffffff16565b6008546129c490919063ffffffff16565b600881905550612b34826011546128eb90919063ffffffff16565b6011819055507f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44282604051612b6991906136a7565b60405180910390a15b6a295be96e640669720000006007541415612c1c57612b9a81866129c490919063ffffffff16565b9450612bc3612bb2888361294990919063ffffffff16565b6008546129c490919063ffffffff16565b600881905550612bde816011546128eb90919063ffffffff16565b6011819055507f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44281604051612c1391906136a7565b60405180910390a15b6000600f5414612dc957612c3983866129c490919063ffffffff16565b9450612cc1612c51888561294990919063ffffffff16565b60046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b60046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3b836013546128eb90919063ffffffff16565b601381905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dc091906136a7565b60405180910390a35b60008414612fab576a295be96e64066972000000600754118015612e045750836a295be96e64066972000000612dff91906136f9565b600754105b15612ed95760006a295be96e64066972000000600754612e2491906137da565b9050612e3981876129c490919063ffffffff16565b9550612e50816007546129c490919063ffffffff16565b600781905550612e6b816012546128eb90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecf91906136a7565b60405180910390a3505b836a295be96e64066972000000612ef091906136f9565b60075410612faa57612f0b84866129c490919063ffffffff16565b9450612f22846007546129c490919063ffffffff16565b600781905550612f3d846012546128eb90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612fa191906136a7565b60405180910390a35b5b84955050505050509392505050565b60008083118290613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff891906134a5565b60405180910390fd5b5060008385613010919061374f565b9050809150509392505050565b60008135905061302c81613dde565b92915050565b60008135905061304181613df5565b92915050565b60008135905061305681613e0c565b92915050565b60006020828403121561306e57600080fd5b600061307c8482850161301d565b91505092915050565b6000806040838503121561309857600080fd5b60006130a68582860161301d565b92505060206130b78582860161301d565b9150509250929050565b6000806000606084860312156130d657600080fd5b60006130e48682870161301d565b93505060206130f58682870161301d565b925050604061310686828701613047565b9150509250925092565b6000806040838503121561312357600080fd5b60006131318582860161301d565b925050602061314285828601613032565b9150509250929050565b6000806040838503121561315f57600080fd5b600061316d8582860161301d565b925050602061317e85828601613047565b9150509250929050565b60006020828403121561319a57600080fd5b60006131a884828501613047565b91505092915050565b600080604083850312156131c457600080fd5b60006131d285828601613047565b92505060206131e385828601613032565b9150509250929050565b6131f68161380e565b82525050565b61320581613820565b82525050565b6000613216826136dd565b61322081856136e8565b9350613230818560208601613863565b6132398161399e565b840191505092915050565b60006132516023836136e8565b915061325c826139af565b604082019050919050565b6000613274602d836136e8565b915061327f826139fe565b604082019050919050565b6000613297602a836136e8565b91506132a282613a4d565b604082019050919050565b60006132ba6026836136e8565b91506132c582613a9c565b604082019050919050565b60006132dd6022836136e8565b91506132e882613aeb565b604082019050919050565b6000613300601b836136e8565b915061330b82613b3a565b602082019050919050565b6000613323601f836136e8565b915061332e82613b63565b602082019050919050565b60006133466028836136e8565b915061335182613b8c565b604082019050919050565b60006133696021836136e8565b915061337482613bdb565b604082019050919050565b600061338c6021836136e8565b915061339782613c2a565b604082019050919050565b60006133af6020836136e8565b91506133ba82613c79565b602082019050919050565b60006133d26029836136e8565b91506133dd82613ca2565b604082019050919050565b60006133f56025836136e8565b915061340082613cf1565b604082019050919050565b60006134186024836136e8565b915061342382613d40565b604082019050919050565b600061343b6021836136e8565b915061344682613d8f565b604082019050919050565b61345a8161384c565b82525050565b61346981613856565b82525050565b600060208201905061348460008301846131ed565b92915050565b600060208201905061349f60008301846131fc565b92915050565b600060208201905081810360008301526134bf818461320b565b905092915050565b600060208201905081810360008301526134e081613244565b9050919050565b6000602082019050818103600083015261350081613267565b9050919050565b600060208201905081810360008301526135208161328a565b9050919050565b60006020820190508181036000830152613540816132ad565b9050919050565b60006020820190508181036000830152613560816132d0565b9050919050565b60006020820190508181036000830152613580816132f3565b9050919050565b600060208201905081810360008301526135a081613316565b9050919050565b600060208201905081810360008301526135c081613339565b9050919050565b600060208201905081810360008301526135e08161335c565b9050919050565b600060208201905081810360008301526136008161337f565b9050919050565b60006020820190508181036000830152613620816133a2565b9050919050565b60006020820190508181036000830152613640816133c5565b9050919050565b60006020820190508181036000830152613660816133e8565b9050919050565b600060208201905081810360008301526136808161340b565b9050919050565b600060208201905081810360008301526136a08161342e565b9050919050565b60006020820190506136bc6000830184613451565b92915050565b60006020820190506136d76000830184613460565b92915050565b600081519050919050565b600082825260208201905092915050565b60006137048261384c565b915061370f8361384c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561374457613743613911565b5b828201905092915050565b600061375a8261384c565b91506137658361384c565b92508261377557613774613940565b5b828204905092915050565b600061378b8261384c565b91506137968361384c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137cf576137ce613911565b5b828202905092915050565b60006137e58261384c565b91506137f08361384c565b92508282101561380357613802613911565b5b828203905092915050565b60006138198261382c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613881578082015181840152602081019050613866565b83811115613890576000848401525b50505050565b600060028204905060018216806138ae57607f821691505b602082108114156138c2576138c161396f565b5b50919050565b60006138d38261384c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561390657613905613911565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a2054686520636f6e74726163742069742073656c662063616e6e6f60008201527f74206265206578636c7564656400000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f425441503a20556e697377617020726f757465722063616e6e6f74206265206560008201527f78636c756465642e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a204163636f756e7420697320616c7265616479206578636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a204163636f756e7420697320616c726561647920696e636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b613de78161380e565b8114613df257600080fd5b50565b613dfe81613820565b8114613e0957600080fd5b50565b613e158161384c565b8114613e2057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220688e56ebeddea3f2f47c3c5e6edb3658d00b12de90f1a1ead5ff17e9661d903d64736f6c63430008010033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806370a082311161010d578063afcf2fc4116100a0578063cd980e561161006f578063cd980e5614610738578063dd62ed3e14610761578063f2cc0c181461079e578063f2fde38b146107c7578063f84354f1146107f0576101f9565b8063afcf2fc41461067c578063c0b0fda2146106a7578063c4081a4c146106d2578063cba0e996146106fb576101f9565b806395d89b41116100dc57806395d89b41146105ac578063a457c2d7146105d7578063a9059cbb14610614578063ac80b7e814610651576101f9565b806370a0823114610502578063715018a61461053f5780637e64c7aa146105565780638da5cb5b14610581576101f9565b8063355bc60b1161018557806340f8007a1161015457806340f8007a146104485780634549b039146104735780634bf2c7c9146104b05780636612e66f146104d9576101f9565b8063355bc60b1461038a57806335837f9e146103b557806339509351146103e05780633b124fe71461041d576101f9565b806320c7c596116101c157806320c7c596146102bc57806323b872dd146102e55780632d83811914610322578063313ce5671461035f576101f9565b806306fdde03146101fe578063095ea7b3146102295780630d9a52191461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610819565b60405161022091906134a5565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b919061314c565b6108ab565b60405161025d919061348a565b60405180910390f35b34801561027257600080fd5b5061027b6108c9565b60405161028891906136a7565b60405180910390f35b34801561029d57600080fd5b506102a66108cf565b6040516102b391906136a7565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613188565b6108d9565b005b3480156102f157600080fd5b5061030c600480360381019061030791906130c1565b610978565b604051610319919061348a565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190613188565b610a51565b60405161035691906136a7565b60405180910390f35b34801561036b57600080fd5b50610374610abf565b60405161038191906136c2565b60405180910390f35b34801561039657600080fd5b5061039f610ad6565b6040516103ac91906136a7565b60405180910390f35b3480156103c157600080fd5b506103ca610adc565b6040516103d791906136a7565b60405180910390f35b3480156103ec57600080fd5b506104076004803603810190610402919061314c565b610ae2565b604051610414919061348a565b60405180910390f35b34801561042957600080fd5b50610432610b95565b60405161043f91906136a7565b60405180910390f35b34801561045457600080fd5b5061045d610b9b565b60405161046a91906136a7565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906131b1565b610ba1565b6040516104a791906136a7565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613188565b610c6b565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190613110565b610d0a565b005b34801561050e57600080fd5b506105296004803603810190610524919061305c565b610dfa565b60405161053691906136a7565b60405180910390f35b34801561054b57600080fd5b50610554610ee5565b005b34801561056257600080fd5b5061056b611038565b60405161057891906136a7565b60405180910390f35b34801561058d57600080fd5b5061059661103e565b6040516105a3919061346f565b60405180910390f35b3480156105b857600080fd5b506105c1611067565b6040516105ce91906134a5565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f9919061314c565b6110f9565b60405161060b919061348a565b60405180910390f35b34801561062057600080fd5b5061063b6004803603810190610636919061314c565b6111c6565b604051610648919061348a565b60405180910390f35b34801561065d57600080fd5b506106666111e4565b60405161067391906136a7565b60405180910390f35b34801561068857600080fd5b506106916111ea565b60405161069e919061346f565b60405180910390f35b3480156106b357600080fd5b506106bc611210565b6040516106c991906136a7565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613188565b611216565b005b34801561070757600080fd5b50610722600480360381019061071d919061305c565b6112b5565b60405161072f919061348a565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a9190613188565b61130b565b005b34801561076d57600080fd5b5061078860048036038101906107839190613085565b6113aa565b60405161079591906136a7565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c0919061305c565b611431565b005b3480156107d357600080fd5b506107ee60048036038101906107e9919061305c565b6117d7565b005b3480156107fc57600080fd5b506108176004803603810190610812919061305c565b611999565b005b60606001805461082890613896565b80601f016020809104026020016040519081016040528092919081815260200182805461085490613896565b80156108a15780601f10610876576101008083540402835291602001916108a1565b820191906000526020600020905b81548152906001019060200180831161088457829003601f168201915b5050505050905090565b60006108bf6108b8611d80565b8484611d88565b6001905092915050565b60125481565b6000600754905090565b6108e1611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590613607565b60405180910390fd5b80600f8190555050565b6000610985848484611f53565b610a4684610991611d80565b610a4185604051806060016040528060288152602001613e2460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109f7611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c89092919063ffffffff16565b611d88565b600190509392505050565b6000600854821115610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f90613507565b60405180910390fd5b6000610aa261252c565b9050610ab781846128a190919063ffffffff16565b915050919050565b6000600360009054906101000a900460ff16905090565b60115481565b60135481565b6000610b8b610aef611d80565b84610b868560066000610b00611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b611d88565b6001905092915050565b600c5481565b600f5481565b6000600754831115610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90613587565b60405180910390fd5b81610c0e57610c07610bf861252c565b8461294990919063ffffffff16565b9050610c65565b610c62610c1961252c565b610c54610c45612710610c37600c548961294990919063ffffffff16565b6128a190919063ffffffff16565b866129c490919063ffffffff16565b61294990919063ffffffff16565b90505b92915050565b610c73611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790613607565b60405180910390fd5b80600e8190555050565b610d12611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690613607565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e9557600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ee0565b610edd600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a51565b90505b919050565b610eed611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461107690613896565b80601f01602080910402602001604051908101604052809291908181526020018280546110a290613896565b80156110ef5780601f106110c4576101008083540402835291602001916110ef565b820191906000526020600020905b8154815290600101906020018083116110d257829003601f168201915b5050505050905090565b60006111bc611106611d80565b846111b785604051806060016040528060258152602001613e4c6025913960066000611130611d80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c89092919063ffffffff16565b611d88565b6001905092915050565b60006111da6111d3611d80565b8484611f53565b6001905092915050565b600d5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61121e611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a290613607565b60405180910390fd5b80600c8190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611313611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790613607565b60405180910390fd5b8060108190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611439611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613607565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906135a7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906134e7565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c906135e7565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611719576116d5600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a51565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117df611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d390613527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119a1611d80565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2590613607565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190613687565b60405180910390fd5b60005b600b80549050811015611d7c578173ffffffffffffffffffffffffffffffffffffffff16600b8281548110611b1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d6957600b6001600b80549050611b7691906137da565b81548110611bad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b8281548110611c12577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b805480611d2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d7c565b8080611d74906138c8565b915050611abd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90613667565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613547565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f4691906136a7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613647565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a906134c7565b60405180910390fd5b60008111612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90613627565b60405180910390fd5b6000819050600061208561252c565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561212b5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561213e5761213b858483612a0e565b91505b6121a2612154828561294990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c490919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122496121fb828461294990919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123745761233083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c490919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561245c5761241882600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b991906136a7565b60405180910390a35050505050565b6000838311158290612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250791906134a5565b60405180910390fd5b506000838561251f91906137da565b9050809150509392505050565b60008060085490506000600754905060005b600b80549050811015612847578260046000600b848154811061258a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061269e57508160056000600b8481548110612636577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156126c4576126ba6007546008546128a190919063ffffffff16565b935050505061289e565b61277a60046000600b8481548110612705577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846129c490919063ffffffff16565b925061283260056000600b84815481106127bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836129c490919063ffffffff16565b9150808061283f906138c8565b91505061253e565b5061285f6007546008546128a190919063ffffffff16565b8210156128865761287d6007546008546128a190919063ffffffff16565b9250505061289e565b61289981836128a190919063ffffffff16565b925050505b90565b60006128e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fba565b905092915050565b60008082846128fa91906136f9565b90508381101561293f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293690613567565b60405180910390fd5b8091505092915050565b60008083141561295c57600090506129be565b6000828461296a9190613780565b9050828482612979919061374f565b146129b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b0906135c7565b60405180910390fd5b809150505b92915050565b6000612a0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124c8565b905092915050565b6000808390506000612a3f612710612a31600e548861294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612a6c612710612a5e600f548961294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612a99612710612a8b600c548a61294990919063ffffffff16565b6128a190919063ffffffff16565b90506000612ac6612710612ab8600d548b61294990919063ffffffff16565b6128a190919063ffffffff16565b90506a295be96e640669720000006007541115612b7257612af082866129c490919063ffffffff16565b9450612b19612b08888461294990919063ffffffff16565b6008546129c490919063ffffffff16565b600881905550612b34826011546128eb90919063ffffffff16565b6011819055507f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44282604051612b6991906136a7565b60405180910390a15b6a295be96e640669720000006007541415612c1c57612b9a81866129c490919063ffffffff16565b9450612bc3612bb2888361294990919063ffffffff16565b6008546129c490919063ffffffff16565b600881905550612bde816011546128eb90919063ffffffff16565b6011819055507f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44281604051612c1391906136a7565b60405180910390a15b6000600f5414612dc957612c3983866129c490919063ffffffff16565b9450612cc1612c51888561294990919063ffffffff16565b60046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128eb90919063ffffffff16565b60046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3b836013546128eb90919063ffffffff16565b601381905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dc091906136a7565b60405180910390a35b60008414612fab576a295be96e64066972000000600754118015612e045750836a295be96e64066972000000612dff91906136f9565b600754105b15612ed95760006a295be96e64066972000000600754612e2491906137da565b9050612e3981876129c490919063ffffffff16565b9550612e50816007546129c490919063ffffffff16565b600781905550612e6b816012546128eb90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecf91906136a7565b60405180910390a3505b836a295be96e64066972000000612ef091906136f9565b60075410612faa57612f0b84866129c490919063ffffffff16565b9450612f22846007546129c490919063ffffffff16565b600781905550612f3d846012546128eb90919063ffffffff16565b601281905550600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612fa191906136a7565b60405180910390a35b5b84955050505050509392505050565b60008083118290613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff891906134a5565b60405180910390fd5b5060008385613010919061374f565b9050809150509392505050565b60008135905061302c81613dde565b92915050565b60008135905061304181613df5565b92915050565b60008135905061305681613e0c565b92915050565b60006020828403121561306e57600080fd5b600061307c8482850161301d565b91505092915050565b6000806040838503121561309857600080fd5b60006130a68582860161301d565b92505060206130b78582860161301d565b9150509250929050565b6000806000606084860312156130d657600080fd5b60006130e48682870161301d565b93505060206130f58682870161301d565b925050604061310686828701613047565b9150509250925092565b6000806040838503121561312357600080fd5b60006131318582860161301d565b925050602061314285828601613032565b9150509250929050565b6000806040838503121561315f57600080fd5b600061316d8582860161301d565b925050602061317e85828601613047565b9150509250929050565b60006020828403121561319a57600080fd5b60006131a884828501613047565b91505092915050565b600080604083850312156131c457600080fd5b60006131d285828601613047565b92505060206131e385828601613032565b9150509250929050565b6131f68161380e565b82525050565b61320581613820565b82525050565b6000613216826136dd565b61322081856136e8565b9350613230818560208601613863565b6132398161399e565b840191505092915050565b60006132516023836136e8565b915061325c826139af565b604082019050919050565b6000613274602d836136e8565b915061327f826139fe565b604082019050919050565b6000613297602a836136e8565b91506132a282613a4d565b604082019050919050565b60006132ba6026836136e8565b91506132c582613a9c565b604082019050919050565b60006132dd6022836136e8565b91506132e882613aeb565b604082019050919050565b6000613300601b836136e8565b915061330b82613b3a565b602082019050919050565b6000613323601f836136e8565b915061332e82613b63565b602082019050919050565b60006133466028836136e8565b915061335182613b8c565b604082019050919050565b60006133696021836136e8565b915061337482613bdb565b604082019050919050565b600061338c6021836136e8565b915061339782613c2a565b604082019050919050565b60006133af6020836136e8565b91506133ba82613c79565b602082019050919050565b60006133d26029836136e8565b91506133dd82613ca2565b604082019050919050565b60006133f56025836136e8565b915061340082613cf1565b604082019050919050565b60006134186024836136e8565b915061342382613d40565b604082019050919050565b600061343b6021836136e8565b915061344682613d8f565b604082019050919050565b61345a8161384c565b82525050565b61346981613856565b82525050565b600060208201905061348460008301846131ed565b92915050565b600060208201905061349f60008301846131fc565b92915050565b600060208201905081810360008301526134bf818461320b565b905092915050565b600060208201905081810360008301526134e081613244565b9050919050565b6000602082019050818103600083015261350081613267565b9050919050565b600060208201905081810360008301526135208161328a565b9050919050565b60006020820190508181036000830152613540816132ad565b9050919050565b60006020820190508181036000830152613560816132d0565b9050919050565b60006020820190508181036000830152613580816132f3565b9050919050565b600060208201905081810360008301526135a081613316565b9050919050565b600060208201905081810360008301526135c081613339565b9050919050565b600060208201905081810360008301526135e08161335c565b9050919050565b600060208201905081810360008301526136008161337f565b9050919050565b60006020820190508181036000830152613620816133a2565b9050919050565b60006020820190508181036000830152613640816133c5565b9050919050565b60006020820190508181036000830152613660816133e8565b9050919050565b600060208201905081810360008301526136808161340b565b9050919050565b600060208201905081810360008301526136a08161342e565b9050919050565b60006020820190506136bc6000830184613451565b92915050565b60006020820190506136d76000830184613460565b92915050565b600081519050919050565b600082825260208201905092915050565b60006137048261384c565b915061370f8361384c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561374457613743613911565b5b828201905092915050565b600061375a8261384c565b91506137658361384c565b92508261377557613774613940565b5b828204905092915050565b600061378b8261384c565b91506137968361384c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137cf576137ce613911565b5b828202905092915050565b60006137e58261384c565b91506137f08361384c565b92508282101561380357613802613911565b5b828203905092915050565b60006138198261382c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613881578082015181840152602081019050613866565b83811115613890576000848401525b50505050565b600060028204905060018216806138ae57607f821691505b602082108114156138c2576138c161396f565b5b50919050565b60006138d38261384c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561390657613905613911565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a2054686520636f6e74726163742069742073656c662063616e6e6f60008201527f74206265206578636c7564656400000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f425441503a20556e697377617020726f757465722063616e6e6f74206265206560008201527f78636c756465642e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a204163636f756e7420697320616c7265616479206578636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f425441503a204163636f756e7420697320616c726561647920696e636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b613de78161380e565b8114613df257600080fd5b50565b613dfe81613820565b8114613e0957600080fd5b50565b613e158161384c565b8114613e2057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220688e56ebeddea3f2f47c3c5e6edb3658d00b12de90f1a1ead5ff17e9661d903d64736f6c63430008010033
Deployed Bytecode Sourcemap
18051:11399:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19545:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20565:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19056:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19822:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29200:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20766:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22489;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19731:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19022:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19091:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21142:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18806:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18929:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21976:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29105:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28867:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19929:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17460:148;;;;;;;;;;;;;:::i;:::-;;18969:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16818:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19636:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21450:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20152:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18840:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19135:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18894:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29012:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21858:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29301:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20373:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22865:608;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17763:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23481:490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19545:83;19582:13;19615:5;19608:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19545:83;:::o;20565:193::-;20667:4;20689:39;20698:12;:10;:12::i;:::-;20712:7;20721:6;20689:8;:39::i;:::-;20746:4;20739:11;;20565:193;;;;:::o;19056:28::-;;;;:::o;19822:99::-;19875:7;19902:11;;19895:18;;19822:99;:::o;29200:89::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29278:3:::1;29264:11;:17;;;;29200:89:::0;:::o;20766:368::-;20906:4;20923:34;20933:6;20940:9;20950:6;20923:9;:34::i;:::-;20985:119;20994:6;21001:12;:10;:12::i;:::-;21014:89;21053:6;21014:89;;;;;;;;;;;;;;;;;:11;:19;21026:6;21014:19;;;;;;;;;;;;;;;:33;21034:12;:10;:12::i;:::-;21014:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20985:8;:119::i;:::-;21122:4;21115:11;;20766:368;;;;;:::o;22489:::-;22592:7;22659:16;;22639;:36;;22617:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;22756:19;22778:20;:18;:20::i;:::-;22756:42;;22816:33;22837:11;22816:16;:20;;:33;;;;:::i;:::-;22809:40;;;22489:368;;;:::o;19731:83::-;19772:5;19797:9;;;;;;;;;;;19790:16;;19731:83;:::o;19022:27::-;;;;:::o;19091:31::-;;;;:::o;21142:300::-;21257:4;21279:133;21302:12;:10;:12::i;:::-;21329:7;21351:50;21390:10;21351:11;:25;21363:12;:10;:12::i;:::-;21351:25;;;;;;;;;;;;;;;:34;21377:7;21351:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21279:8;:133::i;:::-;21430:4;21423:11;;21142:300;;;;:::o;18806:27::-;;;;:::o;18929:31::-;;;;:::o;21976:505::-;22098:7;22146:11;;22131;:26;;22123:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22209:17;22204:270;;22250:37;22266:20;:18;:20::i;:::-;22250:11;:15;;:37;;;;:::i;:::-;22243:44;;;;22204:270;22344:118;22423:20;:18;:20::i;:::-;22344:52;22360:35;22389:5;22360:24;22376:7;;22360:11;:15;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;22344:11;:15;;:52;;;;:::i;:::-;:56;;:118;;;;:::i;:::-;22320:142;;21976:505;;;;;:::o;29105:83::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29177:3:::1;29166:8;:14;;;;29105:83:::0;:::o;28867:133::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28984:8:::1;28955:17;:26;28973:7;28955:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;28867:133:::0;;:::o;19929:215::-;19995:7;20019:11;:20;20031:7;20019:20;;;;;;;;;;;;;;;;;;;;;;;;;20015:55;;;20048:13;:22;20062:7;20048:22;;;;;;;;;;;;;;;;20041:29;;;;20015:55;20088:48;20108:18;:27;20127:7;20108:27;;;;;;;;;;;;;;;;20088:19;:48::i;:::-;20081:55;;19929:215;;;;:::o;17460:148::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17567:1:::1;17530:40;;17551:6;::::0;::::1;;;;;;;;17530:40;;;;;;;;;;;;17598:1;17581:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17460:148::o:0;18969:40::-;;;;:::o;16818:79::-;16856:7;16883:6;;;;;;;;;;;16876:13;;16818:79;:::o;19636:87::-;19675:13;19708:7;19701:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19636:87;:::o;21450:400::-;21570:4;21592:228;21615:12;:10;:12::i;:::-;21642:7;21664:145;21721:15;21664:145;;;;;;;;;;;;;;;;;:11;:25;21676:12;:10;:12::i;:::-;21664:25;;;;;;;;;;;;;;;:34;21690:7;21664:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;21592:8;:228::i;:::-;21838:4;21831:11;;21450:400;;;;:::o;20152:213::-;20274:4;20295:40;20305:12;:10;:12::i;:::-;20318:9;20328:6;20295:9;:40::i;:::-;20353:4;20346:11;;20152:213;;;;:::o;18840:47::-;;;;:::o;19135:74::-;;;;;;;;;;;;;:::o;18894:28::-;;;;:::o;29012:81::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29082:3:::1;29072:7;:13;;;;29012:81:::0;:::o;21858:110::-;21916:4;21940:11;:20;21952:7;21940:20;;;;;;;;;;;;;;;;;;;;;;;;;21933:27;;21858:110;;;:::o;29301:105::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29395:3:::1;29373:19;:25;;;;29301:105:::0;:::o;20373:184::-;20490:7;20522:11;:18;20534:5;20522:18;;;;;;;;;;;;;;;:27;20541:7;20522:27;;;;;;;;;;;;;;;;20515:34;;20373:184;;;;:::o;22865:608::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22957:42:::1;22946:53;;:7;:53;;;;22938:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;23081:4;23062:24;;:7;:24;;;;23054:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;23156:11;:20;23168:7;23156:20;;;;;;;;;;;;;;;;;;;;;;;;;23155:21;23147:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23259:1;23229:18;:27;23248:7;23229:27;;;;;;;;;;;;;;;;:31;23225:169;;;23302:80;23340:18;:27;23359:7;23340:27;;;;;;;;;;;;;;;;23302:19;:80::i;:::-;23277:13;:22;23291:7;23277:22;;;;;;;;;;;;;;;:105;;;;23225:169;23427:4;23404:11;:20;23416:7;23404:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23442:9;23457:7;23442:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22865:608:::0;:::o;17763:281::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17886:1:::1;17866:22;;:8;:22;;;;17844:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;17999:8;17970:38;;17991:6;::::0;::::1;;;;;;;;17970:38;;;;;;;;;;;;18028:8;18019:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17763:281:::0;:::o;23481:490::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23562:11:::1;:20;23574:7;23562:20;;;;;;;;;;;;;;;;;;;;;;;;;23554:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23636:9;23631:333;23655:9;:16;;;;23651:1;:20;23631:333;;;23713:7;23697:23;;:9;23707:1;23697:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;23693:260;;;23756:9;23785:1;23766:9;:16;;;;:20;;;;:::i;:::-;23756:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23741:9;23751:1;23741:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23831:1;23806:13;:22;23820:7;23806:22;;;;;;;;;;;;;;;:26;;;;23874:5;23851:11;:20;23863:7;23851:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23898:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23932:5;;23693:260;23673:3;;;;;:::i;:::-;;;;23631:333;;;;23481:490:::0;:::o;604:98::-;657:7;684:10;677:17;;604:98;:::o;23979:371::-;24123:1;24106:19;;:5;:19;;;;24098:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24204:1;24185:21;;:7;:21;;;;24177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24288:6;24258:11;:18;24270:5;24258:18;;;;;;;;;;;;;;;:27;24277:7;24258:27;;;;;;;;;;;;;;;:36;;;;24326:7;24310:32;;24319:5;24310:32;;;24335:6;24310:32;;;;;;:::i;:::-;;;;;;;;23979:371;;;:::o;24358:1228::-;24507:1;24489:20;;:6;:20;;;;24481:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24591:1;24570:23;;:9;:23;;;;24562:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24661:1;24652:6;:10;24644:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24729:22;24754:6;24729:31;;24771:12;24786:20;:18;:20::i;:::-;24771:35;;24823:17;:25;24841:6;24823:25;;;;;;;;;;;;;;;;;;;;;;;;;24822:26;:59;;;;;24853:17;:28;24871:9;24853:28;;;;;;;;;;;;;;;;;;;;;;;;;24852:29;24822:59;24819:137;;;24914:30;24925:6;24932;24939:4;24914:10;:30::i;:::-;24897:47;;24819:137;25033:48;25064:16;25075:4;25064:6;:10;;:16;;;;:::i;:::-;25033:18;:26;25052:6;25033:26;;;;;;;;;;;;;;;;:30;;:48;;;;:::i;:::-;25004:18;:26;25023:6;25004:26;;;;;;;;;;;;;;;:77;;;;25124:59;25158:24;25177:4;25158:14;:18;;:24;;;;:::i;:::-;25124:18;:29;25143:9;25124:29;;;;;;;;;;;;;;;;:33;;:59;;;;:::i;:::-;25092:18;:29;25111:9;25092:29;;;;;;;;;;;;;;;:91;;;;25277:11;:19;25289:6;25277:19;;;;;;;;;;;;;;;;;;;;;;;;;25273:109;;;25337:33;25363:6;25337:13;:21;25351:6;25337:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;25313:13;:21;25327:6;25313:21;;;;;;;;;;;;;;;:57;;;;25273:109;25396:11;:22;25408:9;25396:22;;;;;;;;;;;;;;;;;;;;;;;;;25392:126;;;25462:44;25491:14;25462:13;:24;25476:9;25462:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;25435:13;:24;25449:9;25435:24;;;;;;;;;;;;;;;:71;;;;25392:126;25552:9;25535:43;;25544:6;25535:43;;;25563:14;25535:43;;;;;;:::i;:::-;;;;;;;;24358:1228;;;;;:::o;5519:226::-;5639:7;5672:1;5667;:6;;5675:12;5659:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5699:9;5715:1;5711;:5;;;;:::i;:::-;5699:17;;5736:1;5729:8;;;5519:226;;;;;:::o;28047:808::-;28099:7;28119:24;28146:16;;28119:43;;28173:19;28195:11;;28173:33;;28222:9;28217:458;28241:9;:16;;;;28237:1;:20;28217:458;;;28336:16;28301:18;:32;28320:9;28330:1;28320:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28301:32;;;;;;;;;;;;;;;;:51;:113;;;;28403:11;28373:13;:27;28387:9;28397:1;28387:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28373:27;;;;;;;;;;;;;;;;:41;28301:113;28279:191;;;28437:33;28458:11;;28437:16;;:20;;:33;;;;:::i;:::-;28430:40;;;;;;;28279:191;28504:86;28543:18;:32;28562:9;28572:1;28562:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28543:32;;;;;;;;;;;;;;;;28504:16;:20;;:86;;;;:::i;:::-;28485:105;;28619:44;28635:13;:27;28649:9;28659:1;28649:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28635:27;;;;;;;;;;;;;;;;28619:11;:15;;:44;;;;:::i;:::-;28605:58;;28259:3;;;;;:::i;:::-;;;;28217:458;;;;28708:33;28729:11;;28708:16;;:20;;:33;;;;:::i;:::-;28689:16;:52;28685:111;;;28763:33;28784:11;;28763:16;;:20;;:33;;;;:::i;:::-;28756:40;;;;;;28685:111;28814:33;28835:11;28814:16;:20;;:33;;;;:::i;:::-;28807:40;;;;28047:808;;:::o;6951:132::-;7009:7;7036:39;7040:1;7043;7036:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7029:46;;6951:132;;;;:::o;4616:181::-;4674:7;4694:9;4710:1;4706;:5;;;;:::i;:::-;4694:17;;4735:1;4730;:6;;4722:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4788:1;4781:8;;;4616:181;;;;:::o;6004:471::-;6062:7;6312:1;6307;:6;6303:47;;;6337:1;6330:8;;;;6303:47;6362:9;6378:1;6374;:5;;;;:::i;:::-;6362:17;;6407:1;6402;6398;:5;;;;:::i;:::-;:10;6390:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6466:1;6459:8;;;6004:471;;;;;:::o;5080:136::-;5138:7;5165:43;5169:1;5172;5165:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5158:50;;5080:136;;;;:::o;25598:2441::-;25682:7;25712:22;25737:6;25712:31;;25754:15;25772:31;25797:5;25772:20;25783:8;;25772:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;25754:49;;25814:18;25835:34;25863:5;25835:23;25846:11;;25835:6;:10;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;25814:55;;25880:14;25897:30;25921:5;25897:19;25908:7;;25897:6;:10;;:19;;;;:::i;:::-;:23;;:30;;;;:::i;:::-;25880:47;;25938:34;25975:50;26019:5;25975:39;25986:27;;25975:6;:10;;:39;;;;:::i;:::-;:43;;:50;;;;:::i;:::-;25938:87;;26088:16;26074:11;;:30;26070:292;;;26138:26;26157:6;26138:14;:18;;:26;;;;:::i;:::-;26121:43;;26198:38;26219:16;26230:4;26219:6;:10;;:16;;;;:::i;:::-;26198;;:20;;:38;;;;:::i;:::-;26179:16;:57;;;;26266:24;26283:6;26266:12;;:16;;:24;;;;:::i;:::-;26251:12;:39;;;;26310:26;26329:6;26310:26;;;;;;:::i;:::-;;;;;;;;26070:292;26400:16;26385:11;;:31;26382:357;;;26449:46;26468:26;26449:14;:18;;:46;;;;:::i;:::-;26432:63;;26529:58;26550:36;26581:4;26550:26;:30;;:36;;;;:::i;:::-;26529:16;;:20;;:58;;;;:::i;:::-;26510:16;:77;;;;26617:44;26634:26;26617:12;;:16;;:44;;;;:::i;:::-;26602:12;:59;;;;26681:46;26700:26;26681:46;;;;;;:::i;:::-;;;;;;;;26382:357;26797:1;26782:11;;:16;26779:335;;26831:30;26850:10;26831:14;:18;;:30;;;;:::i;:::-;26814:47;;26913:60;26952:20;26967:4;26952:10;:14;;:20;;;;:::i;:::-;26913:18;:34;26932:14;;;;;;;;;;;26913:34;;;;;;;;;;;;;;;;:38;;:60;;;;:::i;:::-;26876:18;:34;26895:14;;;;;;;;;;;26876:34;;;;;;;;;;;;;;;:97;;;;27007:32;27028:10;27007:16;;:20;;:32;;;;:::i;:::-;26988:16;:51;;;;27076:14;;;;;;;;;;;27059:43;;27068:7;27059:43;;;27091:10;27059:43;;;;;;:::i;:::-;;;;;;;;26779:335;27174:1;27163:7;:12;27159:831;;27210:16;27196:11;;:30;:74;;;;;27263:7;27244:16;:26;;;;:::i;:::-;27230:11;;:40;27196:74;27192:453;;;27291:22;27330:16;27316:11;;:30;;;;:::i;:::-;27291:55;;27400:34;27419:14;27400;:18;;:34;;;;:::i;:::-;27383:51;;27467:31;27483:14;27467:11;;:15;;:31;;;;:::i;:::-;27453:11;:45;;;;27533:33;27551:14;27533:13;;:17;;:33;;;;:::i;:::-;27517:13;:49;;;;27615:1;27590:43;;27599:7;27590:43;;;27618:14;27590:43;;;;;;:::i;:::-;;;;;;;;27192:453;;27703:7;27684:16;:26;;;;:::i;:::-;27669:11;;:41;27665:304;;27748:27;27767:7;27748:14;:18;;:27;;;;:::i;:::-;27731:44;;27808:24;27824:7;27808:11;;:15;;:24;;;;:::i;:::-;27794:11;:38;;;;27867:26;27885:7;27867:13;;:17;;:26;;;;:::i;:::-;27851:13;:42;;;;27942:1;27917:36;;27926:7;27917:36;;;27945:7;27917:36;;;;;;:::i;:::-;;;;;;;;27665:304;27159:831;28017:14;28010:21;;;;;;;25598:2441;;;;;:::o;7579:312::-;7699:7;7731:1;7727;:5;7734:12;7719:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7758:9;7774:1;7770;:5;;;;:::i;:::-;7758:17;;7882:1;7875:8;;;7579:312;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;;;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;;;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:262::-;;2603:2;2591:9;2582:7;2578:23;2574:32;2571:2;;;2619:1;2616;2609:12;2571:2;2662:1;2687:53;2732:7;2723:6;2712:9;2708:22;2687:53;:::i;:::-;2677:63;;2633:117;2561:196;;;;:::o;2763:401::-;;;2885:2;2873:9;2864:7;2860:23;2856:32;2853:2;;;2901:1;2898;2891:12;2853:2;2944:1;2969:53;3014:7;3005:6;2994:9;2990:22;2969:53;:::i;:::-;2959:63;;2915:117;3071:2;3097:50;3139:7;3130:6;3119:9;3115:22;3097:50;:::i;:::-;3087:60;;3042:115;2843:321;;;;;:::o;3170:118::-;3257:24;3275:5;3257:24;:::i;:::-;3252:3;3245:37;3235:53;;:::o;3294:109::-;3375:21;3390:5;3375:21;:::i;:::-;3370:3;3363:34;3353:50;;:::o;3409:364::-;;3525:39;3558:5;3525:39;:::i;:::-;3580:71;3644:6;3639:3;3580:71;:::i;:::-;3573:78;;3660:52;3705:6;3700:3;3693:4;3686:5;3682:16;3660:52;:::i;:::-;3737:29;3759:6;3737:29;:::i;:::-;3732:3;3728:39;3721:46;;3501:272;;;;;:::o;3779:366::-;;3942:67;4006:2;4001:3;3942:67;:::i;:::-;3935:74;;4018:93;4107:3;4018:93;:::i;:::-;4136:2;4131:3;4127:12;4120:19;;3925:220;;;:::o;4151:366::-;;4314:67;4378:2;4373:3;4314:67;:::i;:::-;4307:74;;4390:93;4479:3;4390:93;:::i;:::-;4508:2;4503:3;4499:12;4492:19;;4297:220;;;:::o;4523:366::-;;4686:67;4750:2;4745:3;4686:67;:::i;:::-;4679:74;;4762:93;4851:3;4762:93;:::i;:::-;4880:2;4875:3;4871:12;4864:19;;4669:220;;;:::o;4895:366::-;;5058:67;5122:2;5117:3;5058:67;:::i;:::-;5051:74;;5134:93;5223:3;5134:93;:::i;:::-;5252:2;5247:3;5243:12;5236:19;;5041:220;;;:::o;5267:366::-;;5430:67;5494:2;5489:3;5430:67;:::i;:::-;5423:74;;5506:93;5595:3;5506:93;:::i;:::-;5624:2;5619:3;5615:12;5608:19;;5413:220;;;:::o;5639:366::-;;5802:67;5866:2;5861:3;5802:67;:::i;:::-;5795:74;;5878:93;5967:3;5878:93;:::i;:::-;5996:2;5991:3;5987:12;5980:19;;5785:220;;;:::o;6011:366::-;;6174:67;6238:2;6233:3;6174:67;:::i;:::-;6167:74;;6250:93;6339:3;6250:93;:::i;:::-;6368:2;6363:3;6359:12;6352:19;;6157:220;;;:::o;6383:366::-;;6546:67;6610:2;6605:3;6546:67;:::i;:::-;6539:74;;6622:93;6711:3;6622:93;:::i;:::-;6740:2;6735:3;6731:12;6724:19;;6529:220;;;:::o;6755:366::-;;6918:67;6982:2;6977:3;6918:67;:::i;:::-;6911:74;;6994:93;7083:3;6994:93;:::i;:::-;7112:2;7107:3;7103:12;7096:19;;6901:220;;;:::o;7127:366::-;;7290:67;7354:2;7349:3;7290:67;:::i;:::-;7283:74;;7366:93;7455:3;7366:93;:::i;:::-;7484:2;7479:3;7475:12;7468:19;;7273:220;;;:::o;7499:366::-;;7662:67;7726:2;7721:3;7662:67;:::i;:::-;7655:74;;7738:93;7827:3;7738:93;:::i;:::-;7856:2;7851:3;7847:12;7840:19;;7645:220;;;:::o;7871:366::-;;8034:67;8098:2;8093:3;8034:67;:::i;:::-;8027:74;;8110:93;8199:3;8110:93;:::i;:::-;8228:2;8223:3;8219:12;8212:19;;8017:220;;;:::o;8243:366::-;;8406:67;8470:2;8465:3;8406:67;:::i;:::-;8399:74;;8482:93;8571:3;8482:93;:::i;:::-;8600:2;8595:3;8591:12;8584:19;;8389:220;;;:::o;8615:366::-;;8778:67;8842:2;8837:3;8778:67;:::i;:::-;8771:74;;8854:93;8943:3;8854:93;:::i;:::-;8972:2;8967:3;8963:12;8956:19;;8761:220;;;:::o;8987:366::-;;9150:67;9214:2;9209:3;9150:67;:::i;:::-;9143:74;;9226:93;9315:3;9226:93;:::i;:::-;9344:2;9339:3;9335:12;9328:19;;9133:220;;;:::o;9359:118::-;9446:24;9464:5;9446:24;:::i;:::-;9441:3;9434:37;9424:53;;:::o;9483:112::-;9566:22;9582:5;9566:22;:::i;:::-;9561:3;9554:35;9544:51;;:::o;9601:222::-;;9732:2;9721:9;9717:18;9709:26;;9745:71;9813:1;9802:9;9798:17;9789:6;9745:71;:::i;:::-;9699:124;;;;:::o;9829:210::-;;9954:2;9943:9;9939:18;9931:26;;9967:65;10029:1;10018:9;10014:17;10005:6;9967:65;:::i;:::-;9921:118;;;;:::o;10045:313::-;;10196:2;10185:9;10181:18;10173:26;;10245:9;10239:4;10235:20;10231:1;10220:9;10216:17;10209:47;10273:78;10346:4;10337:6;10273:78;:::i;:::-;10265:86;;10163:195;;;;:::o;10364:419::-;;10568:2;10557:9;10553:18;10545:26;;10617:9;10611:4;10607:20;10603:1;10592:9;10588:17;10581:47;10645:131;10771:4;10645:131;:::i;:::-;10637:139;;10535:248;;;:::o;10789:419::-;;10993:2;10982:9;10978:18;10970:26;;11042:9;11036:4;11032:20;11028:1;11017:9;11013:17;11006:47;11070:131;11196:4;11070:131;:::i;:::-;11062:139;;10960:248;;;:::o;11214:419::-;;11418:2;11407:9;11403:18;11395:26;;11467:9;11461:4;11457:20;11453:1;11442:9;11438:17;11431:47;11495:131;11621:4;11495:131;:::i;:::-;11487:139;;11385:248;;;:::o;11639:419::-;;11843:2;11832:9;11828:18;11820:26;;11892:9;11886:4;11882:20;11878:1;11867:9;11863:17;11856:47;11920:131;12046:4;11920:131;:::i;:::-;11912:139;;11810:248;;;:::o;12064:419::-;;12268:2;12257:9;12253:18;12245:26;;12317:9;12311:4;12307:20;12303:1;12292:9;12288:17;12281:47;12345:131;12471:4;12345:131;:::i;:::-;12337:139;;12235:248;;;:::o;12489:419::-;;12693:2;12682:9;12678:18;12670:26;;12742:9;12736:4;12732:20;12728:1;12717:9;12713:17;12706:47;12770:131;12896:4;12770:131;:::i;:::-;12762:139;;12660:248;;;:::o;12914:419::-;;13118:2;13107:9;13103:18;13095:26;;13167:9;13161:4;13157:20;13153:1;13142:9;13138:17;13131:47;13195:131;13321:4;13195:131;:::i;:::-;13187:139;;13085:248;;;:::o;13339:419::-;;13543:2;13532:9;13528:18;13520:26;;13592:9;13586:4;13582:20;13578:1;13567:9;13563:17;13556:47;13620:131;13746:4;13620:131;:::i;:::-;13612:139;;13510:248;;;:::o;13764:419::-;;13968:2;13957:9;13953:18;13945:26;;14017:9;14011:4;14007:20;14003:1;13992:9;13988:17;13981:47;14045:131;14171:4;14045:131;:::i;:::-;14037:139;;13935:248;;;:::o;14189:419::-;;14393:2;14382:9;14378:18;14370:26;;14442:9;14436:4;14432:20;14428:1;14417:9;14413:17;14406:47;14470:131;14596:4;14470:131;:::i;:::-;14462:139;;14360:248;;;:::o;14614:419::-;;14818:2;14807:9;14803:18;14795:26;;14867:9;14861:4;14857:20;14853:1;14842:9;14838:17;14831:47;14895:131;15021:4;14895:131;:::i;:::-;14887:139;;14785:248;;;:::o;15039:419::-;;15243:2;15232:9;15228:18;15220:26;;15292:9;15286:4;15282:20;15278:1;15267:9;15263:17;15256:47;15320:131;15446:4;15320:131;:::i;:::-;15312:139;;15210:248;;;:::o;15464:419::-;;15668:2;15657:9;15653:18;15645:26;;15717:9;15711:4;15707:20;15703:1;15692:9;15688:17;15681:47;15745:131;15871:4;15745:131;:::i;:::-;15737:139;;15635:248;;;:::o;15889:419::-;;16093:2;16082:9;16078:18;16070:26;;16142:9;16136:4;16132:20;16128:1;16117:9;16113:17;16106:47;16170:131;16296:4;16170:131;:::i;:::-;16162:139;;16060:248;;;:::o;16314:419::-;;16518:2;16507:9;16503:18;16495:26;;16567:9;16561:4;16557:20;16553:1;16542:9;16538:17;16531:47;16595:131;16721:4;16595:131;:::i;:::-;16587:139;;16485:248;;;:::o;16739:222::-;;16870:2;16859:9;16855:18;16847:26;;16883:71;16951:1;16940:9;16936:17;16927:6;16883:71;:::i;:::-;16837:124;;;;:::o;16967:214::-;;17094:2;17083:9;17079:18;17071:26;;17107:67;17171:1;17160:9;17156:17;17147:6;17107:67;:::i;:::-;17061:120;;;;:::o;17187:99::-;;17273:5;17267:12;17257:22;;17246:40;;;:::o;17292:169::-;;17410:6;17405:3;17398:19;17450:4;17445:3;17441:14;17426:29;;17388:73;;;;:::o;17467:305::-;;17526:20;17544:1;17526:20;:::i;:::-;17521:25;;17560:20;17578:1;17560:20;:::i;:::-;17555:25;;17714:1;17646:66;17642:74;17639:1;17636:81;17633:2;;;17720:18;;:::i;:::-;17633:2;17764:1;17761;17757:9;17750:16;;17511:261;;;;:::o;17778:185::-;;17835:20;17853:1;17835:20;:::i;:::-;17830:25;;17869:20;17887:1;17869:20;:::i;:::-;17864:25;;17908:1;17898:2;;17913:18;;:::i;:::-;17898:2;17955:1;17952;17948:9;17943:14;;17820:143;;;;:::o;17969:348::-;;18032:20;18050:1;18032:20;:::i;:::-;18027:25;;18066:20;18084:1;18066:20;:::i;:::-;18061:25;;18254:1;18186:66;18182:74;18179:1;18176:81;18171:1;18164:9;18157:17;18153:105;18150:2;;;18261:18;;:::i;:::-;18150:2;18309:1;18306;18302:9;18291:20;;18017:300;;;;:::o;18323:191::-;;18383:20;18401:1;18383:20;:::i;:::-;18378:25;;18417:20;18435:1;18417:20;:::i;:::-;18412:25;;18456:1;18453;18450:8;18447:2;;;18461:18;;:::i;:::-;18447:2;18506:1;18503;18499:9;18491:17;;18368:146;;;;:::o;18520:96::-;;18586:24;18604:5;18586:24;:::i;:::-;18575:35;;18565:51;;;:::o;18622:90::-;;18699:5;18692:13;18685:21;18674:32;;18664:48;;;:::o;18718:126::-;;18795:42;18788:5;18784:54;18773:65;;18763:81;;;:::o;18850:77::-;;18916:5;18905:16;;18895:32;;;:::o;18933:86::-;;19008:4;19001:5;18997:16;18986:27;;18976:43;;;:::o;19025:307::-;19093:1;19103:113;19117:6;19114:1;19111:13;19103:113;;;19202:1;19197:3;19193:11;19187:18;19183:1;19178:3;19174:11;19167:39;19139:2;19136:1;19132:10;19127:15;;19103:113;;;19234:6;19231:1;19228:13;19225:2;;;19314:1;19305:6;19300:3;19296:16;19289:27;19225:2;19074:258;;;;:::o;19338:320::-;;19419:1;19413:4;19409:12;19399:22;;19466:1;19460:4;19456:12;19487:18;19477:2;;19543:4;19535:6;19531:17;19521:27;;19477:2;19605;19597:6;19594:14;19574:18;19571:38;19568:2;;;19624:18;;:::i;:::-;19568:2;19389:269;;;;:::o;19664:233::-;;19726:24;19744:5;19726:24;:::i;:::-;19717:33;;19772:66;19765:5;19762:77;19759:2;;;19842:18;;:::i;:::-;19759:2;19889:1;19882:5;19878:13;19871:20;;19707:190;;;:::o;19903:180::-;19951:77;19948:1;19941:88;20048:4;20045:1;20038:15;20072:4;20069:1;20062:15;20089:180;20137:77;20134:1;20127:88;20234:4;20231:1;20224:15;20258:4;20255:1;20248:15;20275:180;20323:77;20320:1;20313:88;20420:4;20417:1;20410:15;20444:4;20441:1;20434:15;20461:102;;20553:2;20549:7;20544:2;20537:5;20533:14;20529:28;20519:38;;20509:54;;;:::o;20569:222::-;20709:34;20705:1;20697:6;20693:14;20686:58;20778:5;20773:2;20765:6;20761:15;20754:30;20675:116;:::o;20797:232::-;20937:34;20933:1;20925:6;20921:14;20914:58;21006:15;21001:2;20993:6;20989:15;20982:40;20903:126;:::o;21035:229::-;21175:34;21171:1;21163:6;21159:14;21152:58;21244:12;21239:2;21231:6;21227:15;21220:37;21141:123;:::o;21270:225::-;21410:34;21406:1;21398:6;21394:14;21387:58;21479:8;21474:2;21466:6;21462:15;21455:33;21376:119;:::o;21501:221::-;21641:34;21637:1;21629:6;21625:14;21618:58;21710:4;21705:2;21697:6;21693:15;21686:29;21607:115;:::o;21728:177::-;21868:29;21864:1;21856:6;21852:14;21845:53;21834:71;:::o;21911:181::-;22051:33;22047:1;22039:6;22035:14;22028:57;22017:75;:::o;22098:227::-;22238:34;22234:1;22226:6;22222:14;22215:58;22307:10;22302:2;22294:6;22290:15;22283:35;22204:121;:::o;22331:220::-;22471:34;22467:1;22459:6;22455:14;22448:58;22540:3;22535:2;22527:6;22523:15;22516:28;22437:114;:::o;22557:220::-;22697:34;22693:1;22685:6;22681:14;22674:58;22766:3;22761:2;22753:6;22749:15;22742:28;22663:114;:::o;22783:182::-;22923:34;22919:1;22911:6;22907:14;22900:58;22889:76;:::o;22971:228::-;23111:34;23107:1;23099:6;23095:14;23088:58;23180:11;23175:2;23167:6;23163:15;23156:36;23077:122;:::o;23205:224::-;23345:34;23341:1;23333:6;23329:14;23322:58;23414:7;23409:2;23401:6;23397:15;23390:32;23311:118;:::o;23435:223::-;23575:34;23571:1;23563:6;23559:14;23552:58;23644:6;23639:2;23631:6;23627:15;23620:31;23541:117;:::o;23664:220::-;23804:34;23800:1;23792:6;23788:14;23781:58;23873:3;23868:2;23860:6;23856:15;23849:28;23770:114;:::o;23890:122::-;23963:24;23981:5;23963:24;:::i;:::-;23956:5;23953:35;23943:2;;24002:1;23999;23992:12;23943:2;23933:79;:::o;24018:116::-;24088:21;24103:5;24088:21;:::i;:::-;24081:5;24078:32;24068:2;;24124:1;24121;24114:12;24068:2;24058:76;:::o;24140:122::-;24213:24;24231:5;24213:24;:::i;:::-;24206:5;24203:35;24193:2;;24252:1;24249;24242:12;24193:2;24183:79;:::o
Swarm Source
ipfs://688e56ebeddea3f2f47c3c5e6edb3658d00b12de90f1a1ead5ff17e9661d903d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.