Overview
Max Total Supply
337,500,000 DOP
Holders
1,309 (0.00%)
Total Transfers
-
Market
Price
$0.0243 @ 0.039300 POL (+0.10%)
Onchain Market Cap
$8,201,371.50
Circulating Supply Market Cap
$4,257,263.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Dop
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT // D-Drops official token contract // Date: 8-7-2023 pragma solidity ^0.8.3; import "./IUniswapV2Factory.sol"; import "./IUniswapV2Router02.sol"; import "./IUniswapV2Pair.sol"; import "./SafeMath.sol"; import "./IERC20.sol"; import "./Ownable.sol"; contract Dop is Ownable, IERC20 { using SafeMath for uint256; mapping(address => uint) private _balances; mapping(address => mapping(address => uint)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isBlacklisted; bool private _canBurn = false; bool private _blacklistMode = true; string private constant _name = "DDrops"; string private constant _symbol = "DOP"; uint8 private constant _decimals = 18; uint private constant _totalSupply = 3375 * 10 ** 5 * 10 ** _decimals; receive() external payable {} uint private _buyContributionFee; uint private _sellContributionFee; uint private _previousBuyContributionFee; uint private _previousSellContributionFee; uint private _maxTrxAmount = _totalSupply; address private _treasureWalletAddress; address private _developementWalletAddress; address public uniswapV2RouterAddress; address[] public uniswapV2Pairs; mapping(address => bool) public isUniswapV2Pair; bool private _lock; function isBlackListMode() public view returns (bool) { return _blacklistMode; } function getTreasureWallet() public view returns (address) { return _treasureWalletAddress; } function getBuyContributionFee() public view returns (uint) { return _buyContributionFee; } function getSellContributionFee() public view returns (uint) { return _sellContributionFee; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function getMaxTrxAmount() public view returns (uint) { return _maxTrxAmount; } /***** onlyOwner functions to change private parameters *****/ //Enable burn through dxSale function setCanBurn(bool _value) external onlyOwner { _canBurn = _value; } //Enable blacklisting function setBlacklistMode(bool _value) external onlyOwner { _blacklistMode = _value; } //Add or remove one or more addresses from the black list, make sure to send enough gas function manage_blacklist( address[] calldata _addresses, bool _value ) external onlyOwner { for (uint256 i; i < _addresses.length; ++i) { _isBlacklisted[_addresses[i]] = _value; } } // Set uniswapV2RouterAddress function setRouterAddress(address _newRouterAddress) external onlyOwner { uniswapV2RouterAddress = _newRouterAddress; } function createUniswapV2Pair( address _WETH ) external onlyOwner returns (address) { IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02( uniswapV2RouterAddress ); address _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), _WETH); uniswapV2Pairs.push(_uniswapV2Pair); isUniswapV2Pair[address(_uniswapV2Pair)] = true; return _uniswapV2Pair; } // Set total amount of tokens that can be traded per transaction function setMaxTrxAmount( uint _newMaxTrxAmount ) external onlyOwner returns (bool) { _maxTrxAmount = _newMaxTrxAmount; return true; } // Set the amount of BUY contribution fee, limited to max 15% function setBuyContributionFee( uint _newBuyContributionFee ) external onlyOwner returns (bool) { require(_newBuyContributionFee <= 50); _buyContributionFee = _newBuyContributionFee; return true; } // Set the amount of SELL contribution fee, limited to max 20% function setSellContributionFee( uint _newSellContributionFee ) external onlyOwner returns (bool) { require(_newSellContributionFee <= 50); _sellContributionFee = _newSellContributionFee; return true; } function setDevelopementWallet( address _newDevelopementWallet ) external onlyOwner returns (bool) { _developementWalletAddress = _newDevelopementWallet; return true; } function setTreasureWallet( address _newTreasureWallet ) external onlyOwner returns (bool) { _treasureWalletAddress = _newTreasureWallet; return true; } function excludeFromFee(address _account) external onlyOwner { _isExcludedFromFee[_account] = true; } function includeInFee(address _account) external onlyOwner { _isExcludedFromFee[_account] = false; } /******************* End of onlyOwner functions*********************/ modifier noReEntry() { _lock = true; _; _lock = false; } constructor() { _maxTrxAmount = 10000000 * 10 ** _decimals; _balances[_msgSender()] = 3375 * 10 ** 5 * 10 ** _decimals; _buyContributionFee = 5; //this is also the normal transaction fee _sellContributionFee = 5; _treasureWalletAddress = 0xD6EB8Eeb7403714E1f2074BAF9EBDBBBEfcB9400; _developementWalletAddress = 0x1518b9Dfe74f46443b1cAEb3aeF96903b015c005; uniswapV2RouterAddress = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff; //exclude owner,and this contract form fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[uniswapV2RouterAddress] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function burn(uint _amount) public { require(_amount > 0, "Burn amount must be greater than zero"); require( _amount <= _balances[msg.sender], "Not enough fonds to complete the transaction" ); _balances[msg.sender] = _balances[msg.sender].sub(_amount); _balances[0x000000000000000000000000000000000000dEaD] = _balances[ 0x000000000000000000000000000000000000dEaD ].add(_amount); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function transfer( address _recipient, uint256 _amount ) public override returns (bool) { _transfer(_msgSender(), _recipient, _amount); return true; } function transferFrom( address _sender, address _recipient, uint256 _amount ) public override returns (bool) { _transfer(_sender, _recipient, _amount); _approve( _sender, _msgSender(), _allowances[_sender][_msgSender()].sub( _amount, "ERC20: Transfer amount exceeds allowance" ) ); return true; } function _transfer(address _from, address _to, uint _amount) internal { require(_from != address(0), "ERC20: transfer from the zero address"); if (_canBurn == false) { require(_to != address(0), "ERC20: transfer to the zero address"); } require(_amount > 0, "Transfer amount must be greater than zero"); require(_amount <= _balances[_from], "Insufficient funds"); if (_from != owner() && _to != owner()) { require( _amount <= _maxTrxAmount, "Transfer amount exceeds the maxTrxAmount." ); } // Check for blacklist if (_blacklistMode) { require( !_isBlacklisted[_from] && !_isBlacklisted[_to], "Transaction between these two accounts is blacklisted" ); } //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFee[_from] || _isExcludedFromFee[_to]) { takeFee = false; } //Here we initiate the transfer fuction _transferToken(_from, _to, _amount, takeFee); } function _transferToken( address _from, address _to, uint _amount, bool takeFee ) private { if (!takeFee) removeAllFee(); uint _takeContribution; //Code Below: decide if its a buy or sell order and adjust tax accoirdingly if (_isIncludedInV2Pairs(_to)) { _takeContribution = _calculateAbsoluteSellContributionFee(_amount); } else if (_isIncludedInV2Pairs(_from)) { _takeContribution = _calculateAbsoluteBuyContributionFee(_amount); } else { _takeContribution = 0; } uint trAmountToRecipient = _amount.sub(_takeContribution); uint trAmountToContract = _takeContribution; _balances[_from] = _balances[_from].sub(_amount); _balances[_to] = _balances[_to].add(trAmountToRecipient); _balances[address(this)] = _balances[address(this)].add( trAmountToContract ); if (!takeFee) { restoreAllFee(); } emit Transfer(_from, _to, _amount); } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve( address _owner, address _spender, uint256 _amount ) internal { 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 payOut() external { uint256 contractBalance = balanceOf(address(this)); uint256 _developementWalletAmount = contractBalance.mul(50).div(100); uint256 _treasureWalletAmount = contractBalance - _developementWalletAmount; _transfer( address(this), _developementWalletAddress, _developementWalletAmount ); _transfer(address(this), _treasureWalletAddress, _treasureWalletAmount); } function removeAllFee() internal { if ((_buyContributionFee == 0) && (_sellContributionFee == 0)) return; _previousBuyContributionFee = _buyContributionFee; _previousSellContributionFee = _sellContributionFee; _buyContributionFee = _sellContributionFee = 0; } function restoreAllFee() internal { _buyContributionFee = _previousBuyContributionFee; _sellContributionFee = _previousSellContributionFee; } //Note buyContributionFee is the same as reqular transaction fee function _calculateAbsoluteBuyContributionFee( uint amount ) internal view returns (uint) { return amount.mul(_buyContributionFee).div(10 ** 2); } function _calculateAbsoluteSellContributionFee( uint amount ) internal view returns (uint) { return amount.mul(_sellContributionFee).div(10 ** 2); } function _isIncludedInV2Pairs( address candidate ) internal view returns (bool) { return isUniswapV2Pair[candidate]; } }
// SPDX-License-Identifier: MIT pragma solidity >= 0.4.22 <0.9.0; library console { address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); function _sendLogPayload(bytes memory payload) private view { uint256 payloadLength = payload.length; address consoleAddress = CONSOLE_ADDRESS; assembly { let payloadStart := add(payload, 32) let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) } } function log() internal view { _sendLogPayload(abi.encodeWithSignature("log()")); } function logInt(int256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(int256)", p0)); } function logUint(uint256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); } function logString(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function logBool(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function logAddress(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function logBytes(bytes memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); } function logBytes1(bytes1 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); } function logBytes2(bytes2 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); } function logBytes3(bytes3 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); } function logBytes4(bytes4 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); } function logBytes5(bytes5 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); } function logBytes6(bytes6 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); } function logBytes7(bytes7 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); } function logBytes8(bytes8 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); } function logBytes9(bytes9 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); } function logBytes10(bytes10 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); } function logBytes11(bytes11 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); } function logBytes12(bytes12 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); } function logBytes13(bytes13 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); } function logBytes14(bytes14 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); } function logBytes15(bytes15 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); } function logBytes16(bytes16 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); } function logBytes17(bytes17 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); } function logBytes18(bytes18 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); } function logBytes19(bytes19 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); } function logBytes20(bytes20 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); } function logBytes21(bytes21 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); } function logBytes22(bytes22 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); } function logBytes23(bytes23 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); } function logBytes24(bytes24 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); } function logBytes25(bytes25 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); } function logBytes26(bytes26 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); } function logBytes27(bytes27 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); } function logBytes28(bytes28 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); } function logBytes29(bytes29 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); } function logBytes30(bytes30 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); } function logBytes31(bytes31 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); } function logBytes32(bytes32 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); } function log(uint256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); } function log(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function log(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function log(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function log(uint256 p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256)", p0, p1)); } function log(uint256 p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string)", p0, p1)); } function log(uint256 p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool)", p0, p1)); } function log(uint256 p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address)", p0, p1)); } function log(string memory p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256)", p0, p1)); } function log(string memory p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); } function log(string memory p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); } function log(string memory p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); } function log(bool p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256)", p0, p1)); } function log(bool p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); } function log(bool p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); } function log(bool p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); } function log(address p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256)", p0, p1)); } function log(address p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); } function log(address p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); } function log(address p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); } function log(uint256 p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address)", p0, p1, p2)); } function log(uint256 p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256)", p0, p1, p2)); } function log(uint256 p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string)", p0, p1, p2)); } function log(uint256 p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool)", p0, p1, p2)); } function log(uint256 p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address)", p0, p1, p2)); } function log(uint256 p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256)", p0, p1, p2)); } function log(uint256 p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string)", p0, p1, p2)); } function log(uint256 p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool)", p0, p1, p2)); } function log(uint256 p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address)", p0, p1, p2)); } function log(uint256 p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256)", p0, p1, p2)); } function log(uint256 p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string)", p0, p1, p2)); } function log(uint256 p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool)", p0, p1, p2)); } function log(uint256 p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address)", p0, p1, p2)); } function log(string memory p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256)", p0, p1, p2)); } function log(string memory p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string)", p0, p1, p2)); } function log(string memory p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool)", p0, p1, p2)); } function log(string memory p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address)", p0, p1, p2)); } function log(string memory p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256)", p0, p1, p2)); } function log(string memory p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); } function log(string memory p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); } function log(string memory p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); } function log(string memory p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256)", p0, p1, p2)); } function log(string memory p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); } function log(string memory p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); } function log(string memory p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); } function log(string memory p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256)", p0, p1, p2)); } function log(string memory p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); } function log(string memory p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); } function log(string memory p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); } function log(bool p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256)", p0, p1, p2)); } function log(bool p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string)", p0, p1, p2)); } function log(bool p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool)", p0, p1, p2)); } function log(bool p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address)", p0, p1, p2)); } function log(bool p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256)", p0, p1, p2)); } function log(bool p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); } function log(bool p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); } function log(bool p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); } function log(bool p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256)", p0, p1, p2)); } function log(bool p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); } function log(bool p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); } function log(bool p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); } function log(bool p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256)", p0, p1, p2)); } function log(bool p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); } function log(bool p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); } function log(bool p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); } function log(address p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256)", p0, p1, p2)); } function log(address p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string)", p0, p1, p2)); } function log(address p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool)", p0, p1, p2)); } function log(address p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address)", p0, p1, p2)); } function log(address p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256)", p0, p1, p2)); } function log(address p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); } function log(address p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); } function log(address p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); } function log(address p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256)", p0, p1, p2)); } function log(address p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); } function log(address p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); } function log(address p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); } function log(address p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256)", p0, p1, p2)); } function log(address p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); } function log(address p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); } function log(address p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,string)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,address)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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 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 view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
pragma solidity >=0.6.2; import "./IUniswapV2Router01.sol"; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "./Context.sol"; /** * @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. */ abstract 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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_WETH","type":"address"}],"name":"createUniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyContributionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTrxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellContributionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasureWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBlackListMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isUniswapV2Pair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setBlacklistMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyContributionFee","type":"uint256"}],"name":"setBuyContributionFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setCanBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDevelopementWallet","type":"address"}],"name":"setDevelopementWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxTrxAmount","type":"uint256"}],"name":"setMaxTrxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouterAddress","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSellContributionFee","type":"uint256"}],"name":"setSellContributionFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasureWallet","type":"address"}],"name":"setTreasureWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uniswapV2Pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2RouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600560006101000a81548160ff0219169083151502179055506001600560016101000a81548160ff0219169083151502179055506012600a6200004a919062000699565b63141dd7606200005b9190620006ea565b600a553480156200006b57600080fd5b506200008c620000806200040a60201b60201c565b6200041260201b60201c565b6012600a6200009c919062000699565b62989680620000ac9190620006ea565b600a819055506012600a620000c2919062000699565b63141dd760620000d39190620006ea565b60016000620000e76200040a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506005600681905550600560078190555073d6eb8eeb7403714e1f2074baf9ebdbbbefcb9400600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731518b9dfe74f46443b1caeb3aef96903b015c005600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a5e0829caced8ffdd4de3c43696c57f7d7a678ff600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200024a620004d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200037d6200040a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003dc919062000699565b63141dd760620003ed9190620006ea565b604051620003fc919062000746565b60405180910390a362000763565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200058d57808604811115620005655762000564620004ff565b5b6001851615620005755780820291505b808102905062000585856200052e565b945062000545565b94509492505050565b600082620005a857600190506200067b565b81620005b857600090506200067b565b8160018114620005d15760028114620005dc5762000612565b60019150506200067b565b60ff841115620005f157620005f0620004ff565b5b8360020a9150848211156200060b576200060a620004ff565b5b506200067b565b5060208310610133831016604e8410600b84101617156200064c5782820a905083811115620006465762000645620004ff565b5b6200067b565b6200065b84848460016200053b565b92509050818404811115620006755762000674620004ff565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006a68262000682565b9150620006b3836200068c565b9250620006e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000596565b905092915050565b6000620006f78262000682565b9150620007048362000682565b9250828202620007148162000682565b915082820484148315176200072e576200072d620004ff565b5b5092915050565b620007408162000682565b82525050565b60006020820190506200075d600083018462000735565b92915050565b612f6580620007736000396000f3fe6080604052600436106102085760003560e01c80635342acb411610118578063ab8439dd116100a0578063c9cd00741161006f578063c9cd0074146107c2578063dd62ed3e146107ed578063ea2f0b371461082a578063f2fde38b14610853578063f5f7b9621461087c5761020f565b8063ab8439dd146106f4578063bc08600514610731578063c20524031461076e578063c7b122b1146107855761020f565b80638da5cb5b116100e75780638da5cb5b1461060d5780638e2eee841461063857806395d89b4114610661578063a0c2e32d1461068c578063a9059cbb146106b75761020f565b80635342acb41461053f57806368c488b31461057c57806370a08231146105b9578063715018a6146105f65761020f565b80632c61beaf1161019b57806342966c681161016a57806342966c681461046e578063437823ec146104975780634553e9c0146104c05780634935d92a146104eb5780634a377e1d146105145761020f565b80632c61beaf146103b4578063313ce567146103f1578063386c69f21461041c57806341cb87fc146104455761020f565b806318160ddd116101d757806318160ddd146102f65780631ef706041461032157806323b872dd1461034c57806325b09d46146103895761020f565b806306fdde0314610214578063095ea7b31461023f5780630eeaa8b71461027c578063177c5013146102b95761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108b9565b6040516102369190612116565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906121d6565b6108f6565b6040516102739190612231565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061224c565b610914565b6040516102b09190612231565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db919061224c565b61092e565b6040516102ed9190612231565b60405180910390f35b34801561030257600080fd5b5061030b610956565b6040516103189190612288565b60405180910390f35b34801561032d57600080fd5b5061033661097a565b6040516103439190612288565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e91906122a3565b610984565b6040516103809190612231565b60405180910390f35b34801561039557600080fd5b5061039e610a5d565b6040516103ab9190612288565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d6919061224c565b610a67565b6040516103e89190612305565b60405180910390f35b3480156103fd57600080fd5b50610406610aa6565b604051610413919061233c565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612383565b610aaf565b005b34801561045157600080fd5b5061046c600480360381019061046791906123b0565b610ad4565b005b34801561047a57600080fd5b506104956004803603810190610490919061224c565b610b20565b005b3480156104a357600080fd5b506104be60048036038101906104b991906123b0565b610d16565b005b3480156104cc57600080fd5b506104d5610d79565b6040516104e29190612305565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190612383565b610da3565b005b34801561052057600080fd5b50610529610dc8565b6040516105369190612305565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906123b0565b610dee565b6040516105739190612231565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906123b0565b610e44565b6040516105b09190612305565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db91906123b0565b61102a565b6040516105ed9190612288565b60405180910390f35b34801561060257600080fd5b5061060b611073565b005b34801561061957600080fd5b50610622611087565b60405161062f9190612305565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190612442565b6110b0565b005b34801561066d57600080fd5b5061067661115b565b6040516106839190612116565b60405180910390f35b34801561069857600080fd5b506106a1611198565b6040516106ae9190612231565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906121d6565b6111af565b6040516106eb9190612231565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906123b0565b6111cd565b6040516107289190612231565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061224c565b611221565b6040516107659190612231565b60405180910390f35b34801561077a57600080fd5b50610783611249565b005b34801561079157600080fd5b506107ac60048036038101906107a791906123b0565b6112f0565b6040516107b99190612231565b60405180910390f35b3480156107ce57600080fd5b506107d7611310565b6040516107e49190612288565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f91906124a2565b61131a565b6040516108219190612288565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c91906123b0565b6113a1565b005b34801561085f57600080fd5b5061087a600480360381019061087591906123b0565b611404565b005b34801561088857600080fd5b506108a3600480360381019061089e91906123b0565b611487565b6040516108b09190612231565b60405180910390f35b60606040518060400160405280600681526020017f4444726f70730000000000000000000000000000000000000000000000000000815250905090565b600061090a6109036114db565b84846114e3565b6001905092915050565b600061091e6116ac565b81600a8190555060019050919050565b60006109386116ac565b603282111561094657600080fd5b8160078190555060019050919050565b60006012600a6109669190612644565b63141dd760610975919061268f565b905090565b6000600654905090565b600061099184848461172a565b610a528461099d6114db565b610a4d85604051806060016040528060288152602001612f0860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a036114db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b669092919063ffffffff16565b6114e3565b600190509392505050565b6000600754905090565b600e8181548110610a7757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b610ab76116ac565b80600560006101000a81548160ff02191690831515021790555050565b610adc6116ac565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008111610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90612743565b60405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc906127d5565b60405180910390fd5b610c3781600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cce816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b610d1e6116ac565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dab6116ac565b80600560016101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610e4e6116ac565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee6919061280a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630866040518363ffffffff1660e01b8152600401610f20929190612837565b6020604051808303816000875af1158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f63919061280a565b9050600e819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508092505050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61107b6116ac565b6110856000611be7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110b86116ac565b60005b838390508110156111555781600460008686858181106110de576110dd612860565b5b90506020020160208101906110f391906123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061114e9061288f565b90506110bb565b50505050565b60606040518060400160405280600381526020017f444f500000000000000000000000000000000000000000000000000000000000815250905090565b6000600560019054906101000a900460ff16905090565b60006111c36111bc6114db565b848461172a565b6001905092915050565b60006111d76116ac565b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600061122b6116ac565b603282111561123957600080fd5b8160068190555060019050919050565b60006112543061102a565b9050600061127f6064611271603285611cab90919063ffffffff16565b611cc190919063ffffffff16565b90506000818361128f91906128d7565b90506112be30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461172a565b6112eb30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361172a565b505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113a96116ac565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61140c6116ac565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114729061297d565b60405180910390fd5b61148481611be7565b50565b60006114916116ac565b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990612a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612aa1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169f9190612288565b60405180910390a3505050565b6116b46114db565b73ffffffffffffffffffffffffffffffffffffffff166116d2611087565b73ffffffffffffffffffffffffffffffffffffffff1614611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f90612b0d565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090612b9f565b60405180910390fd5b60001515600560009054906101000a900460ff1615150361182457600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90612c31565b60405180910390fd5b5b60008111611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612cc3565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090612d2f565b60405180910390fd5b6118f1611087565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195f575061192f611087565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119aa57600a548111156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612dc1565b60405180910390fd5b5b600560019054906101000a900460ff1615611aa357600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a635750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990612e53565b60405180910390fd5b5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b4a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5457600090505b611b6084848484611cd7565b50505050565b6000838311158290611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba59190612116565b60405180910390fd5b5082840390509392505050565b60008183611bc991906128d7565b905092915050565b60008183611bdf9190612e73565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183611cb9919061268f565b905092915050565b60008183611ccf9190612ed6565b905092915050565b80611ce557611ce4611f80565b5b6000611cf084611fba565b15611d0557611cfe83612010565b9050611d29565b611d0e85611fba565b15611d2357611d1c83612041565b9050611d28565b600090505b5b6000611d3e8285611bbb90919063ffffffff16565b90506000829050611d9785600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e2c82600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083611f1257611f11612072565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611f6f9190612288565b60405180910390a350505050505050565b6000600654148015611f9457506000600754145b611fb857600654600881905550600754600981905550600060078190556006819055505b565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061203a606461202c60075485611cab90919063ffffffff16565b611cc190919063ffffffff16565b9050919050565b600061206b606461205d60065485611cab90919063ffffffff16565b611cc190919063ffffffff16565b9050919050565b600854600681905550600954600781905550565b600081519050919050565b600082825260208201905092915050565b60005b838110156120c05780820151818401526020810190506120a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006120e882612086565b6120f28185612091565b93506121028185602086016120a2565b61210b816120cc565b840191505092915050565b6000602082019050818103600083015261213081846120dd565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061216d82612142565b9050919050565b61217d81612162565b811461218857600080fd5b50565b60008135905061219a81612174565b92915050565b6000819050919050565b6121b3816121a0565b81146121be57600080fd5b50565b6000813590506121d0816121aa565b92915050565b600080604083850312156121ed576121ec612138565b5b60006121fb8582860161218b565b925050602061220c858286016121c1565b9150509250929050565b60008115159050919050565b61222b81612216565b82525050565b60006020820190506122466000830184612222565b92915050565b60006020828403121561226257612261612138565b5b6000612270848285016121c1565b91505092915050565b612282816121a0565b82525050565b600060208201905061229d6000830184612279565b92915050565b6000806000606084860312156122bc576122bb612138565b5b60006122ca8682870161218b565b93505060206122db8682870161218b565b92505060406122ec868287016121c1565b9150509250925092565b6122ff81612162565b82525050565b600060208201905061231a60008301846122f6565b92915050565b600060ff82169050919050565b61233681612320565b82525050565b6000602082019050612351600083018461232d565b92915050565b61236081612216565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b60006020828403121561239957612398612138565b5b60006123a78482850161236e565b91505092915050565b6000602082840312156123c6576123c5612138565b5b60006123d48482850161218b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612402576124016123dd565b5b8235905067ffffffffffffffff81111561241f5761241e6123e2565b5b60208301915083602082028301111561243b5761243a6123e7565b5b9250929050565b60008060006040848603121561245b5761245a612138565b5b600084013567ffffffffffffffff8111156124795761247861213d565b5b612485868287016123ec565b935093505060206124988682870161236e565b9150509250925092565b600080604083850312156124b9576124b8612138565b5b60006124c78582860161218b565b92505060206124d88582860161218b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561256857808604811115612544576125436124e2565b5b60018516156125535780820291505b808102905061256185612511565b9450612528565b94509492505050565b600082612581576001905061263d565b8161258f576000905061263d565b81600181146125a557600281146125af576125de565b600191505061263d565b60ff8411156125c1576125c06124e2565b5b8360020a9150848211156125d8576125d76124e2565b5b5061263d565b5060208310610133831016604e8410600b84101617156126135782820a90508381111561260e5761260d6124e2565b5b61263d565b612620848484600161251e565b92509050818404811115612637576126366124e2565b5b81810290505b9392505050565b600061264f826121a0565b915061265a83612320565b92506126877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612571565b905092915050565b600061269a826121a0565b91506126a5836121a0565b92508282026126b3816121a0565b915082820484148315176126ca576126c96124e2565b5b5092915050565b7f4275726e20616d6f756e74206d7573742062652067726561746572207468616e60008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061272d602583612091565b9150612738826126d1565b604082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f4e6f7420656e6f75676820666f6e647320746f20636f6d706c6574652074686560008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b60006127bf602c83612091565b91506127ca82612763565b604082019050919050565b600060208201905081810360008301526127ee816127b2565b9050919050565b60008151905061280481612174565b92915050565b6000602082840312156128205761281f612138565b5b600061282e848285016127f5565b91505092915050565b600060408201905061284c60008301856122f6565b61285960208301846122f6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061289a826121a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128cc576128cb6124e2565b5b600182019050919050565b60006128e2826121a0565b91506128ed836121a0565b9250828203905081811115612905576129046124e2565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612967602683612091565b91506129728261290b565b604082019050919050565b600060208201905081810360008301526129968161295a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129f9602483612091565b9150612a048261299d565b604082019050919050565b60006020820190508181036000830152612a28816129ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8b602283612091565b9150612a9682612a2f565b604082019050919050565b60006020820190508181036000830152612aba81612a7e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612af7602083612091565b9150612b0282612ac1565b602082019050919050565b60006020820190508181036000830152612b2681612aea565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b89602583612091565b9150612b9482612b2d565b604082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1b602383612091565b9150612c2682612bbf565b604082019050919050565b60006020820190508181036000830152612c4a81612c0e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cad602983612091565b9150612cb882612c51565b604082019050919050565b60006020820190508181036000830152612cdc81612ca0565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000612d19601283612091565b9150612d2482612ce3565b602082019050919050565b60006020820190508181036000830152612d4881612d0c565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f7278416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b6000612dab602983612091565b9150612db682612d4f565b604082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f5472616e73616374696f6e206265747765656e2074686573652074776f20616360008201527f636f756e747320697320626c61636b6c69737465640000000000000000000000602082015250565b6000612e3d603583612091565b9150612e4882612de1565b604082019050919050565b60006020820190508181036000830152612e6c81612e30565b9050919050565b6000612e7e826121a0565b9150612e89836121a0565b9250828201905080821115612ea157612ea06124e2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ee1826121a0565b9150612eec836121a0565b925082612efc57612efb612ea7565b5b82820490509291505056fe45524332303a205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c402b8800d254e9dcfd5c67b06d557dcca42fdf749e00fe59e6bf8eabf981f1664736f6c63430008120033
Deployed Bytecode
0x6080604052600436106102085760003560e01c80635342acb411610118578063ab8439dd116100a0578063c9cd00741161006f578063c9cd0074146107c2578063dd62ed3e146107ed578063ea2f0b371461082a578063f2fde38b14610853578063f5f7b9621461087c5761020f565b8063ab8439dd146106f4578063bc08600514610731578063c20524031461076e578063c7b122b1146107855761020f565b80638da5cb5b116100e75780638da5cb5b1461060d5780638e2eee841461063857806395d89b4114610661578063a0c2e32d1461068c578063a9059cbb146106b75761020f565b80635342acb41461053f57806368c488b31461057c57806370a08231146105b9578063715018a6146105f65761020f565b80632c61beaf1161019b57806342966c681161016a57806342966c681461046e578063437823ec146104975780634553e9c0146104c05780634935d92a146104eb5780634a377e1d146105145761020f565b80632c61beaf146103b4578063313ce567146103f1578063386c69f21461041c57806341cb87fc146104455761020f565b806318160ddd116101d757806318160ddd146102f65780631ef706041461032157806323b872dd1461034c57806325b09d46146103895761020f565b806306fdde0314610214578063095ea7b31461023f5780630eeaa8b71461027c578063177c5013146102b95761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108b9565b6040516102369190612116565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906121d6565b6108f6565b6040516102739190612231565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061224c565b610914565b6040516102b09190612231565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db919061224c565b61092e565b6040516102ed9190612231565b60405180910390f35b34801561030257600080fd5b5061030b610956565b6040516103189190612288565b60405180910390f35b34801561032d57600080fd5b5061033661097a565b6040516103439190612288565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e91906122a3565b610984565b6040516103809190612231565b60405180910390f35b34801561039557600080fd5b5061039e610a5d565b6040516103ab9190612288565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d6919061224c565b610a67565b6040516103e89190612305565b60405180910390f35b3480156103fd57600080fd5b50610406610aa6565b604051610413919061233c565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612383565b610aaf565b005b34801561045157600080fd5b5061046c600480360381019061046791906123b0565b610ad4565b005b34801561047a57600080fd5b506104956004803603810190610490919061224c565b610b20565b005b3480156104a357600080fd5b506104be60048036038101906104b991906123b0565b610d16565b005b3480156104cc57600080fd5b506104d5610d79565b6040516104e29190612305565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190612383565b610da3565b005b34801561052057600080fd5b50610529610dc8565b6040516105369190612305565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906123b0565b610dee565b6040516105739190612231565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906123b0565b610e44565b6040516105b09190612305565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db91906123b0565b61102a565b6040516105ed9190612288565b60405180910390f35b34801561060257600080fd5b5061060b611073565b005b34801561061957600080fd5b50610622611087565b60405161062f9190612305565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190612442565b6110b0565b005b34801561066d57600080fd5b5061067661115b565b6040516106839190612116565b60405180910390f35b34801561069857600080fd5b506106a1611198565b6040516106ae9190612231565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906121d6565b6111af565b6040516106eb9190612231565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906123b0565b6111cd565b6040516107289190612231565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061224c565b611221565b6040516107659190612231565b60405180910390f35b34801561077a57600080fd5b50610783611249565b005b34801561079157600080fd5b506107ac60048036038101906107a791906123b0565b6112f0565b6040516107b99190612231565b60405180910390f35b3480156107ce57600080fd5b506107d7611310565b6040516107e49190612288565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f91906124a2565b61131a565b6040516108219190612288565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c91906123b0565b6113a1565b005b34801561085f57600080fd5b5061087a600480360381019061087591906123b0565b611404565b005b34801561088857600080fd5b506108a3600480360381019061089e91906123b0565b611487565b6040516108b09190612231565b60405180910390f35b60606040518060400160405280600681526020017f4444726f70730000000000000000000000000000000000000000000000000000815250905090565b600061090a6109036114db565b84846114e3565b6001905092915050565b600061091e6116ac565b81600a8190555060019050919050565b60006109386116ac565b603282111561094657600080fd5b8160078190555060019050919050565b60006012600a6109669190612644565b63141dd760610975919061268f565b905090565b6000600654905090565b600061099184848461172a565b610a528461099d6114db565b610a4d85604051806060016040528060288152602001612f0860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a036114db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b669092919063ffffffff16565b6114e3565b600190509392505050565b6000600754905090565b600e8181548110610a7757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b610ab76116ac565b80600560006101000a81548160ff02191690831515021790555050565b610adc6116ac565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008111610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90612743565b60405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc906127d5565b60405180910390fd5b610c3781600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cce816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b610d1e6116ac565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dab6116ac565b80600560016101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610e4e6116ac565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee6919061280a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630866040518363ffffffff1660e01b8152600401610f20929190612837565b6020604051808303816000875af1158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f63919061280a565b9050600e819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508092505050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61107b6116ac565b6110856000611be7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110b86116ac565b60005b838390508110156111555781600460008686858181106110de576110dd612860565b5b90506020020160208101906110f391906123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061114e9061288f565b90506110bb565b50505050565b60606040518060400160405280600381526020017f444f500000000000000000000000000000000000000000000000000000000000815250905090565b6000600560019054906101000a900460ff16905090565b60006111c36111bc6114db565b848461172a565b6001905092915050565b60006111d76116ac565b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600061122b6116ac565b603282111561123957600080fd5b8160068190555060019050919050565b60006112543061102a565b9050600061127f6064611271603285611cab90919063ffffffff16565b611cc190919063ffffffff16565b90506000818361128f91906128d7565b90506112be30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461172a565b6112eb30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361172a565b505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113a96116ac565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61140c6116ac565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114729061297d565b60405180910390fd5b61148481611be7565b50565b60006114916116ac565b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990612a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612aa1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169f9190612288565b60405180910390a3505050565b6116b46114db565b73ffffffffffffffffffffffffffffffffffffffff166116d2611087565b73ffffffffffffffffffffffffffffffffffffffff1614611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f90612b0d565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090612b9f565b60405180910390fd5b60001515600560009054906101000a900460ff1615150361182457600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90612c31565b60405180910390fd5b5b60008111611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612cc3565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090612d2f565b60405180910390fd5b6118f1611087565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195f575061192f611087565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119aa57600a548111156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612dc1565b60405180910390fd5b5b600560019054906101000a900460ff1615611aa357600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a635750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990612e53565b60405180910390fd5b5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b4a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5457600090505b611b6084848484611cd7565b50505050565b6000838311158290611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba59190612116565b60405180910390fd5b5082840390509392505050565b60008183611bc991906128d7565b905092915050565b60008183611bdf9190612e73565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183611cb9919061268f565b905092915050565b60008183611ccf9190612ed6565b905092915050565b80611ce557611ce4611f80565b5b6000611cf084611fba565b15611d0557611cfe83612010565b9050611d29565b611d0e85611fba565b15611d2357611d1c83612041565b9050611d28565b600090505b5b6000611d3e8285611bbb90919063ffffffff16565b90506000829050611d9785600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e2c82600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083611f1257611f11612072565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611f6f9190612288565b60405180910390a350505050505050565b6000600654148015611f9457506000600754145b611fb857600654600881905550600754600981905550600060078190556006819055505b565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061203a606461202c60075485611cab90919063ffffffff16565b611cc190919063ffffffff16565b9050919050565b600061206b606461205d60065485611cab90919063ffffffff16565b611cc190919063ffffffff16565b9050919050565b600854600681905550600954600781905550565b600081519050919050565b600082825260208201905092915050565b60005b838110156120c05780820151818401526020810190506120a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006120e882612086565b6120f28185612091565b93506121028185602086016120a2565b61210b816120cc565b840191505092915050565b6000602082019050818103600083015261213081846120dd565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061216d82612142565b9050919050565b61217d81612162565b811461218857600080fd5b50565b60008135905061219a81612174565b92915050565b6000819050919050565b6121b3816121a0565b81146121be57600080fd5b50565b6000813590506121d0816121aa565b92915050565b600080604083850312156121ed576121ec612138565b5b60006121fb8582860161218b565b925050602061220c858286016121c1565b9150509250929050565b60008115159050919050565b61222b81612216565b82525050565b60006020820190506122466000830184612222565b92915050565b60006020828403121561226257612261612138565b5b6000612270848285016121c1565b91505092915050565b612282816121a0565b82525050565b600060208201905061229d6000830184612279565b92915050565b6000806000606084860312156122bc576122bb612138565b5b60006122ca8682870161218b565b93505060206122db8682870161218b565b92505060406122ec868287016121c1565b9150509250925092565b6122ff81612162565b82525050565b600060208201905061231a60008301846122f6565b92915050565b600060ff82169050919050565b61233681612320565b82525050565b6000602082019050612351600083018461232d565b92915050565b61236081612216565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b60006020828403121561239957612398612138565b5b60006123a78482850161236e565b91505092915050565b6000602082840312156123c6576123c5612138565b5b60006123d48482850161218b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612402576124016123dd565b5b8235905067ffffffffffffffff81111561241f5761241e6123e2565b5b60208301915083602082028301111561243b5761243a6123e7565b5b9250929050565b60008060006040848603121561245b5761245a612138565b5b600084013567ffffffffffffffff8111156124795761247861213d565b5b612485868287016123ec565b935093505060206124988682870161236e565b9150509250925092565b600080604083850312156124b9576124b8612138565b5b60006124c78582860161218b565b92505060206124d88582860161218b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561256857808604811115612544576125436124e2565b5b60018516156125535780820291505b808102905061256185612511565b9450612528565b94509492505050565b600082612581576001905061263d565b8161258f576000905061263d565b81600181146125a557600281146125af576125de565b600191505061263d565b60ff8411156125c1576125c06124e2565b5b8360020a9150848211156125d8576125d76124e2565b5b5061263d565b5060208310610133831016604e8410600b84101617156126135782820a90508381111561260e5761260d6124e2565b5b61263d565b612620848484600161251e565b92509050818404811115612637576126366124e2565b5b81810290505b9392505050565b600061264f826121a0565b915061265a83612320565b92506126877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612571565b905092915050565b600061269a826121a0565b91506126a5836121a0565b92508282026126b3816121a0565b915082820484148315176126ca576126c96124e2565b5b5092915050565b7f4275726e20616d6f756e74206d7573742062652067726561746572207468616e60008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061272d602583612091565b9150612738826126d1565b604082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f4e6f7420656e6f75676820666f6e647320746f20636f6d706c6574652074686560008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b60006127bf602c83612091565b91506127ca82612763565b604082019050919050565b600060208201905081810360008301526127ee816127b2565b9050919050565b60008151905061280481612174565b92915050565b6000602082840312156128205761281f612138565b5b600061282e848285016127f5565b91505092915050565b600060408201905061284c60008301856122f6565b61285960208301846122f6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061289a826121a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128cc576128cb6124e2565b5b600182019050919050565b60006128e2826121a0565b91506128ed836121a0565b9250828203905081811115612905576129046124e2565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612967602683612091565b91506129728261290b565b604082019050919050565b600060208201905081810360008301526129968161295a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129f9602483612091565b9150612a048261299d565b604082019050919050565b60006020820190508181036000830152612a28816129ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8b602283612091565b9150612a9682612a2f565b604082019050919050565b60006020820190508181036000830152612aba81612a7e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612af7602083612091565b9150612b0282612ac1565b602082019050919050565b60006020820190508181036000830152612b2681612aea565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b89602583612091565b9150612b9482612b2d565b604082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1b602383612091565b9150612c2682612bbf565b604082019050919050565b60006020820190508181036000830152612c4a81612c0e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cad602983612091565b9150612cb882612c51565b604082019050919050565b60006020820190508181036000830152612cdc81612ca0565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000612d19601283612091565b9150612d2482612ce3565b602082019050919050565b60006020820190508181036000830152612d4881612d0c565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f7278416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b6000612dab602983612091565b9150612db682612d4f565b604082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f5472616e73616374696f6e206265747765656e2074686573652074776f20616360008201527f636f756e747320697320626c61636b6c69737465640000000000000000000000602082015250565b6000612e3d603583612091565b9150612e4882612de1565b604082019050919050565b60006020820190508181036000830152612e6c81612e30565b9050919050565b6000612e7e826121a0565b9150612e89836121a0565b9250828201905080821115612ea157612ea06124e2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ee1826121a0565b9150612eec836121a0565b925082612efc57612efb612ea7565b5b82820490509291505056fe45524332303a205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c402b8800d254e9dcfd5c67b06d557dcca42fdf749e00fe59e6bf8eabf981f1664736f6c63430008120033
Deployed Bytecode Sourcemap
283:11663:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9853:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3402:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3950:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6496:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1584:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7088:440;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1693:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1259:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6409:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2130:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2718:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5757:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4594:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1473:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2248:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1216:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1804:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2855:472;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1839:101:6;;;;;;;;;;;;;:::i;:::-;;1216:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2444:234:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6318:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1375:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6892:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4198:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3640:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10418:485;;;;;;;;;;;;;:::i;:::-;;1296:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1932:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6723:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4713:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2089:232:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4404:184:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6231:81;6268:13;6300:5;;;;;;;;;;;;;;;;;6293:12;;6231:81;:::o;9853:180::-;9950:4;9966:39;9975:12;:10;:12::i;:::-;9989:7;9998:6;9966:8;:39::i;:::-;10022:4;10015:11;;9853:180;;;;:::o;3402:166::-;3492:4;1109:13:6;:11;:13::i;:::-;3524:16:9::1;3508:13;:32;;;;3557:4;3550:11;;3402:166:::0;;;:::o;3950:242::-;4054:4;1109:13:6;:11;:13::i;:::-;4105:2:9::1;4078:23;:29;;4070:38;;;::::0;::::1;;4141:23;4118:20;:46;;;;4181:4;4174:11;;3950:242:::0;;;:::o;6496:98::-;6549:7;785:2;847;:15;;;;:::i;:::-;830:14;:32;;;;:::i;:::-;6568:19;;6496:98;:::o;1584:103::-;1638:4;1661:19;;1654:26;;1584:103;:::o;7088:440::-;7219:4;7235:39;7245:7;7254:10;7266:7;7235:9;:39::i;:::-;7284:216;7306:7;7327:12;:10;:12::i;:::-;7353:137;7409:7;7353:137;;;;;;;;;;;;;;;;;:11;:20;7365:7;7353:20;;;;;;;;;;;;;;;:34;7374:12;:10;:12::i;:::-;7353:34;;;;;;;;;;;;;;;;:38;;:137;;;;;:::i;:::-;7284:8;:216::i;:::-;7517:4;7510:11;;7088:440;;;;;:::o;1693:105::-;1748:4;1771:20;;1764:27;;1693:105;:::o;1259:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6409:81::-;6450:5;785:2;6467:16;;6409:81;:::o;2130:86::-;1109:13:6;:11;:13::i;:::-;2203:6:9::1;2192:8;;:17;;;;;;;;;;;;;;;;;;2130:86:::0;:::o;2718:131::-;1109:13:6;:11;:13::i;:::-;2825:17:9::1;2800:22;;:42;;;;;;;;;;;;;;;;;;2718:131:::0;:::o;5757:468::-;5820:1;5810:7;:11;5802:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;5905:9;:21;5915:10;5905:21;;;;;;;;;;;;;;;;5894:7;:32;;5873:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;6030:34;6056:7;6030:9;:21;6040:10;6030:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;6006:9;:21;6016:10;6006:21;;;;;;;;;;;;;;;:58;;;;6130:88;6210:7;6130:9;:75;6153:42;6130:75;;;;;;;;;;;;;;;;:79;;:88;;;;:::i;:::-;6074:9;:53;6084:42;6074:53;;;;;;;;;;;;;;;:144;;;;5757:468;:::o;4594:113::-;1109:13:6;:11;:13::i;:::-;4696:4:9::1;4665:18;:28;4684:8;4665:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4594:113:::0;:::o;1473:105::-;1523:7;1549:22;;;;;;;;;;;1542:29;;1473:105;:::o;2248:98::-;1109:13:6;:11;:13::i;:::-;2333:6:9::1;2316:14;;:23;;;;;;;;;;;;;;;;;;2248:98:::0;:::o;1216:37::-;;;;;;;;;;;;;:::o;1804:122::-;1869:4;1892:18;:27;1911:7;1892:27;;;;;;;;;;;;;;;;;;;;;;;;;1885:34;;1804:122;;;:::o;2855:472::-;2941:7;1109:13:6;:11;:13::i;:::-;2960:34:9::1;3029:22;;;;;;;;;;;2960:101;;3071:22;3114:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3096:68;;;3173:4;3180:5;3096:90;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3071:115;;3197:14;3217;3197:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:4;3242:15;:40;3266:14;3242:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;3306:14;3299:21;;;;2855:472:::0;;;:::o;6600:117::-;6666:7;6692:9;:18;6702:7;6692:18;;;;;;;;;;;;;;;;6685:25;;6600:117;;;:::o;1839:101:6:-;1109:13;:11;:13::i;:::-;1903:30:::1;1930:1;1903:18;:30::i;:::-;1839:101::o:0;1216:85::-;1262:7;1288:6;;;;;;;;;;;1281:13;;1216:85;:::o;2444:234:9:-;1109:13:6;:11;:13::i;:::-;2570:9:9::1;2565:107;2585:10;;:17;;2581:1;:21;2565:107;;;2655:6;2623:14;:29;2638:10;;2649:1;2638:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2623:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2604:3;;;;:::i;:::-;;;2565:107;;;;2444:234:::0;;;:::o;6318:85::-;6357:13;6389:7;;;;;;;;;;;;;;;;;6382:14;;6318:85;:::o;1375:92::-;1423:4;1446:14;;;;;;;;;;;1439:21;;1375:92;:::o;6892:190::-;6994:4;7010:44;7020:12;:10;:12::i;:::-;7034:10;7046:7;7010:9;:44::i;:::-;7071:4;7064:11;;6892:190;;;;:::o;4198:200::-;4303:4;1109:13:6;:11;:13::i;:::-;4348:22:9::1;4319:26;;:51;;;;;;;;;;;;;;;;;;4387:4;4380:11;;4198:200:::0;;;:::o;3640:237::-;3742:4;1109:13:6;:11;:13::i;:::-;3792:2:9::1;3766:22;:28;;3758:37;;;::::0;::::1;;3827:22;3805:19;:44;;;;3866:4;3859:11;;3640:237:::0;;;:::o;10418:485::-;10455:23;10481:24;10499:4;10481:9;:24::i;:::-;10455:50;;10515:33;10551:32;10579:3;10551:23;10571:2;10551:15;:19;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10515:68;;10593:29;10655:25;10625:15;:55;;;;:::i;:::-;10593:87;;10690:125;10721:4;10740:26;;;;;;;;;;;10780:25;10690:9;:125::i;:::-;10825:71;10843:4;10850:22;;;;;;;;;;;10874:21;10825:9;:71::i;:::-;10445:458;;;10418:485::o;1296:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;1932:91::-;1980:4;2003:13;;1996:20;;1932:91;:::o;6723:163::-;6826:7;6852:11;:18;6864:5;6852:18;;;;;;;;;;;;;;;:27;6871:7;6852:27;;;;;;;;;;;;;;;;6845:34;;6723:163;;;;:::o;4713:112::-;1109:13:6;:11;:13::i;:::-;4813:5:9::1;4782:18;:28;4801:8;4782:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;4713:112:::0;:::o;2089:232:6:-;1109:13;:11;:13::i;:::-;2210:1:::1;2190:22;;:8;:22;;::::0;2169:107:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2286:28;2305:8;2286:18;:28::i;:::-;2089:232:::0;:::o;4404:184:9:-;4501:4;1109:13:6;:11;:13::i;:::-;4542:18:9::1;4517:22;;:43;;;;;;;;;;;;;;;;;;4577:4;4570:11;;4404:184:::0;;;:::o;640:96:0:-;693:7;719:10;712:17;;640:96;:::o;10039:373:9:-;10183:1;10165:20;;:6;:20;;;10157:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:1;10244:22;;:8;:22;;;10236:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10348:7;10316:11;:19;10328:6;10316:19;;;;;;;;;;;;;;;:29;10336:8;10316:29;;;;;;;;;;;;;;;:39;;;;10387:8;10370:35;;10379:6;10370:35;;;10397:7;10370:35;;;;;;:::i;:::-;;;;;;;;10039:373;;;:::o;1374:130:6:-;1448:12;:10;:12::i;:::-;1437:23;;:7;:5;:7::i;:::-;:23;;;1429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1374:130::o;7534:1246:9:-;7639:1;7622:19;;:5;:19;;;7614:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7709:5;7697:17;;:8;;;;;;;;;;;:17;;;7693:113;;7753:1;7738:17;;:3;:17;;;7730:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7693:113;7833:1;7823:7;:11;7815:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7909:9;:16;7919:5;7909:16;;;;;;;;;;;;;;;;7898:7;:27;;7890:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;7972:7;:5;:7::i;:::-;7963:16;;:5;:16;;;;:34;;;;;7990:7;:5;:7::i;:::-;7983:14;;:3;:14;;;;7963:34;7959:189;;;8049:13;;8038:7;:24;;8013:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;7959:189;8193:14;;;;;;;;;;;8189:203;;;8249:14;:21;8264:5;8249:21;;;;;;;;;;;;;;;;;;;;;;;;;8248:22;:46;;;;;8275:14;:19;8290:3;8275:19;;;;;;;;;;;;;;;;;;;;;;;;;8274:20;8248:46;8223:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;8189:203;8461:12;8476:4;8461:19;;8578:18;:25;8597:5;8578:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;8607:18;:23;8626:3;8607:23;;;;;;;;;;;;;;;;;;;;;;;;;8578:52;8574:98;;;8656:5;8646:15;;8574:98;8729:44;8744:5;8751:3;8756:7;8765;8729:14;:44::i;:::-;7604:1176;7534:1246;;;:::o;4959:201:7:-;5045:7;5101:1;5096;:6;;5104:12;5088:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5142:1;5138;:5;5131:12;;4959:201;;;;;:::o;3122:96::-;3180:7;3210:1;3206;:5;;;;:::i;:::-;3199:12;;3122:96;;;;:::o;2755:::-;2813:7;2843:1;2839;:5;;;;:::i;:::-;2832:12;;2755:96;;;;:::o;2475:187:6:-;2548:16;2567:6;;;;;;;;;;;2548:25;;2592:8;2583:6;;:17;;;;;;;;;;;;;;;;;;2646:8;2615:40;;2636:8;2615:40;;;;;;;;;;;;2538:124;2475:187;:::o;3465:96:7:-;3523:7;3553:1;3549;:5;;;;:::i;:::-;3542:12;;3465:96;;;;:::o;3850:::-;3908:7;3938:1;3934;:5;;;;:::i;:::-;3927:12;;3850:96;;;;:::o;8786:1061:9:-;8927:7;8922:28;;8936:14;:12;:14::i;:::-;8922:28;8961:22;9081:25;9102:3;9081:20;:25::i;:::-;9077:303;;;9142:46;9180:7;9142:37;:46::i;:::-;9122:66;;9077:303;;;9209:27;9230:5;9209:20;:27::i;:::-;9205:175;;;9272:45;9309:7;9272:36;:45::i;:::-;9252:65;;9205:175;;;9368:1;9348:21;;9205:175;9077:303;9389:24;9416:30;9428:17;9416:7;:11;;:30;;;;:::i;:::-;9389:57;;9456:23;9482:17;9456:43;;9529:29;9550:7;9529:9;:16;9539:5;9529:16;;;;;;;;;;;;;;;;:20;;:29;;;;:::i;:::-;9510:9;:16;9520:5;9510:16;;;;;;;;;;;;;;;:48;;;;9585:39;9604:19;9585:9;:14;9595:3;9585:14;;;;;;;;;;;;;;;;:18;;:39;;;;:::i;:::-;9568:9;:14;9578:3;9568:14;;;;;;;;;;;;;;;:56;;;;9661:70;9703:18;9661:9;:24;9679:4;9661:24;;;;;;;;;;;;;;;;:28;;:70;;;;:::i;:::-;9634:9;:24;9652:4;9634:24;;;;;;;;;;;;;;;:97;;;;9747:7;9742:54;;9770:15;:13;:15::i;:::-;9742:54;9827:3;9811:29;;9820:5;9811:29;;;9832:7;9811:29;;;;;;:::i;:::-;;;;;;;;8912:935;;;8786:1061;;;;:::o;10909:297::-;10980:1;10957:19;;:24;10956:57;;;;;11011:1;10987:20;;:25;10956:57;11015:7;10952:70;11062:19;;11032:27;:49;;;;11122:20;;11091:28;:51;;;;11198:1;11175:20;:24;;;11153:19;:46;;;;10909:297;:::o;11802:142::-;11888:4;11911:15;:26;11927:9;11911:26;;;;;;;;;;;;;;;;;;;;;;;;;11904:33;;11802:142;;;:::o;11624:172::-;11721:4;11744:45;11781:7;11744:32;11755:20;;11744:6;:10;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;11737:52;;11624:172;;;:::o;11448:170::-;11544:4;11567:44;11603:7;11567:31;11578:19;;11567:6;:10;;:31;;;;:::i;:::-;:35;;:44;;;;:::i;:::-;11560:51;;11448:170;;;:::o;11212:161::-;11278:27;;11256:19;:49;;;;11338:28;;11315:20;:51;;;;11212:161::o;7:99:10:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:118::-;4845:24;4863:5;4845:24;:::i;:::-;4840:3;4833:37;4758:118;;:::o;4882:222::-;4975:4;5013:2;5002:9;4998:18;4990:26;;5026:71;5094:1;5083:9;5079:17;5070:6;5026:71;:::i;:::-;4882:222;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:323::-;5857:6;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:50;6099:7;6090:6;6079:9;6075:22;6057:50;:::i;:::-;6047:60;;6003:114;5801:323;;;;:::o;6130:329::-;6189:6;6238:2;6226:9;6217:7;6213:23;6209:32;6206:119;;;6244:79;;:::i;:::-;6206:119;6364:1;6389:53;6434:7;6425:6;6414:9;6410:22;6389:53;:::i;:::-;6379:63;;6335:117;6130:329;;;;:::o;6465:117::-;6574:1;6571;6564:12;6588:117;6697:1;6694;6687:12;6711:117;6820:1;6817;6810:12;6851:568;6924:8;6934:6;6984:3;6977:4;6969:6;6965:17;6961:27;6951:122;;6992:79;;:::i;:::-;6951:122;7105:6;7092:20;7082:30;;7135:18;7127:6;7124:30;7121:117;;;7157:79;;:::i;:::-;7121:117;7271:4;7263:6;7259:17;7247:29;;7325:3;7317:4;7309:6;7305:17;7295:8;7291:32;7288:41;7285:128;;;7332:79;;:::i;:::-;7285:128;6851:568;;;;;:::o;7425:698::-;7517:6;7525;7533;7582:2;7570:9;7561:7;7557:23;7553:32;7550:119;;;7588:79;;:::i;:::-;7550:119;7736:1;7725:9;7721:17;7708:31;7766:18;7758:6;7755:30;7752:117;;;7788:79;;:::i;:::-;7752:117;7901:80;7973:7;7964:6;7953:9;7949:22;7901:80;:::i;:::-;7883:98;;;;7679:312;8030:2;8056:50;8098:7;8089:6;8078:9;8074:22;8056:50;:::i;:::-;8046:60;;8001:115;7425:698;;;;;:::o;8129:474::-;8197:6;8205;8254:2;8242:9;8233:7;8229:23;8225:32;8222:119;;;8260:79;;:::i;:::-;8222:119;8380:1;8405:53;8450:7;8441:6;8430:9;8426:22;8405:53;:::i;:::-;8395:63;;8351:117;8507:2;8533:53;8578:7;8569:6;8558:9;8554:22;8533:53;:::i;:::-;8523:63;;8478:118;8129:474;;;;;:::o;8609:180::-;8657:77;8654:1;8647:88;8754:4;8751:1;8744:15;8778:4;8775:1;8768:15;8795:102;8837:8;8884:5;8881:1;8877:13;8856:34;;8795:102;;;:::o;8903:848::-;8964:5;8971:4;8995:6;8986:15;;9019:5;9010:14;;9033:712;9054:1;9044:8;9041:15;9033:712;;;9149:4;9144:3;9140:14;9134:4;9131:24;9128:50;;;9158:18;;:::i;:::-;9128:50;9208:1;9198:8;9194:16;9191:451;;;9623:4;9616:5;9612:16;9603:25;;9191:451;9673:4;9667;9663:15;9655:23;;9703:32;9726:8;9703:32;:::i;:::-;9691:44;;9033:712;;;8903:848;;;;;;;:::o;9757:1073::-;9811:5;10002:8;9992:40;;10023:1;10014:10;;10025:5;;9992:40;10051:4;10041:36;;10068:1;10059:10;;10070:5;;10041:36;10137:4;10185:1;10180:27;;;;10221:1;10216:191;;;;10130:277;;10180:27;10198:1;10189:10;;10200:5;;;10216:191;10261:3;10251:8;10248:17;10245:43;;;10268:18;;:::i;:::-;10245:43;10317:8;10314:1;10310:16;10301:25;;10352:3;10345:5;10342:14;10339:40;;;10359:18;;:::i;:::-;10339:40;10392:5;;;10130:277;;10516:2;10506:8;10503:16;10497:3;10491:4;10488:13;10484:36;10466:2;10456:8;10453:16;10448:2;10442:4;10439:12;10435:35;10419:111;10416:246;;;10572:8;10566:4;10562:19;10553:28;;10607:3;10600:5;10597:14;10594:40;;;10614:18;;:::i;:::-;10594:40;10647:5;;10416:246;10687:42;10725:3;10715:8;10709:4;10706:1;10687:42;:::i;:::-;10672:57;;;;10761:4;10756:3;10752:14;10745:5;10742:25;10739:51;;;10770:18;;:::i;:::-;10739:51;10819:4;10812:5;10808:16;10799:25;;9757:1073;;;;;;:::o;10836:281::-;10894:5;10918:23;10936:4;10918:23;:::i;:::-;10910:31;;10962:25;10978:8;10962:25;:::i;:::-;10950:37;;11006:104;11043:66;11033:8;11027:4;11006:104;:::i;:::-;10997:113;;10836:281;;;;:::o;11123:410::-;11163:7;11186:20;11204:1;11186:20;:::i;:::-;11181:25;;11220:20;11238:1;11220:20;:::i;:::-;11215:25;;11275:1;11272;11268:9;11297:30;11315:11;11297:30;:::i;:::-;11286:41;;11476:1;11467:7;11463:15;11460:1;11457:22;11437:1;11430:9;11410:83;11387:139;;11506:18;;:::i;:::-;11387:139;11171:362;11123:410;;;;:::o;11539:224::-;11679:34;11675:1;11667:6;11663:14;11656:58;11748:7;11743:2;11735:6;11731:15;11724:32;11539:224;:::o;11769:366::-;11911:3;11932:67;11996:2;11991:3;11932:67;:::i;:::-;11925:74;;12008:93;12097:3;12008:93;:::i;:::-;12126:2;12121:3;12117:12;12110:19;;11769:366;;;:::o;12141:419::-;12307:4;12345:2;12334:9;12330:18;12322:26;;12394:9;12388:4;12384:20;12380:1;12369:9;12365:17;12358:47;12422:131;12548:4;12422:131;:::i;:::-;12414:139;;12141:419;;;:::o;12566:231::-;12706:34;12702:1;12694:6;12690:14;12683:58;12775:14;12770:2;12762:6;12758:15;12751:39;12566:231;:::o;12803:366::-;12945:3;12966:67;13030:2;13025:3;12966:67;:::i;:::-;12959:74;;13042:93;13131:3;13042:93;:::i;:::-;13160:2;13155:3;13151:12;13144:19;;12803:366;;;:::o;13175:419::-;13341:4;13379:2;13368:9;13364:18;13356:26;;13428:9;13422:4;13418:20;13414:1;13403:9;13399:17;13392:47;13456:131;13582:4;13456:131;:::i;:::-;13448:139;;13175:419;;;:::o;13600:143::-;13657:5;13688:6;13682:13;13673:22;;13704:33;13731:5;13704:33;:::i;:::-;13600:143;;;;:::o;13749:351::-;13819:6;13868:2;13856:9;13847:7;13843:23;13839:32;13836:119;;;13874:79;;:::i;:::-;13836:119;13994:1;14019:64;14075:7;14066:6;14055:9;14051:22;14019:64;:::i;:::-;14009:74;;13965:128;13749:351;;;;:::o;14106:332::-;14227:4;14265:2;14254:9;14250:18;14242:26;;14278:71;14346:1;14335:9;14331:17;14322:6;14278:71;:::i;:::-;14359:72;14427:2;14416:9;14412:18;14403:6;14359:72;:::i;:::-;14106:332;;;;;:::o;14444:180::-;14492:77;14489:1;14482:88;14589:4;14586:1;14579:15;14613:4;14610:1;14603:15;14630:233;14669:3;14692:24;14710:5;14692:24;:::i;:::-;14683:33;;14738:66;14731:5;14728:77;14725:103;;14808:18;;:::i;:::-;14725:103;14855:1;14848:5;14844:13;14837:20;;14630:233;;;:::o;14869:194::-;14909:4;14929:20;14947:1;14929:20;:::i;:::-;14924:25;;14963:20;14981:1;14963:20;:::i;:::-;14958:25;;15007:1;15004;15000:9;14992:17;;15031:1;15025:4;15022:11;15019:37;;;15036:18;;:::i;:::-;15019:37;14869:194;;;;:::o;15069:225::-;15209:34;15205:1;15197:6;15193:14;15186:58;15278:8;15273:2;15265:6;15261:15;15254:33;15069:225;:::o;15300:366::-;15442:3;15463:67;15527:2;15522:3;15463:67;:::i;:::-;15456:74;;15539:93;15628:3;15539:93;:::i;:::-;15657:2;15652:3;15648:12;15641:19;;15300:366;;;:::o;15672:419::-;15838:4;15876:2;15865:9;15861:18;15853:26;;15925:9;15919:4;15915:20;15911:1;15900:9;15896:17;15889:47;15953:131;16079:4;15953:131;:::i;:::-;15945:139;;15672:419;;;:::o;16097:223::-;16237:34;16233:1;16225:6;16221:14;16214:58;16306:6;16301:2;16293:6;16289:15;16282:31;16097:223;:::o;16326:366::-;16468:3;16489:67;16553:2;16548:3;16489:67;:::i;:::-;16482:74;;16565:93;16654:3;16565:93;:::i;:::-;16683:2;16678:3;16674:12;16667:19;;16326:366;;;:::o;16698:419::-;16864:4;16902:2;16891:9;16887:18;16879:26;;16951:9;16945:4;16941:20;16937:1;16926:9;16922:17;16915:47;16979:131;17105:4;16979:131;:::i;:::-;16971:139;;16698:419;;;:::o;17123:221::-;17263:34;17259:1;17251:6;17247:14;17240:58;17332:4;17327:2;17319:6;17315:15;17308:29;17123:221;:::o;17350:366::-;17492:3;17513:67;17577:2;17572:3;17513:67;:::i;:::-;17506:74;;17589:93;17678:3;17589:93;:::i;:::-;17707:2;17702:3;17698:12;17691:19;;17350:366;;;:::o;17722:419::-;17888:4;17926:2;17915:9;17911:18;17903:26;;17975:9;17969:4;17965:20;17961:1;17950:9;17946:17;17939:47;18003:131;18129:4;18003:131;:::i;:::-;17995:139;;17722:419;;;:::o;18147:182::-;18287:34;18283:1;18275:6;18271:14;18264:58;18147:182;:::o;18335:366::-;18477:3;18498:67;18562:2;18557:3;18498:67;:::i;:::-;18491:74;;18574:93;18663:3;18574:93;:::i;:::-;18692:2;18687:3;18683:12;18676:19;;18335:366;;;:::o;18707:419::-;18873:4;18911:2;18900:9;18896:18;18888:26;;18960:9;18954:4;18950:20;18946:1;18935:9;18931:17;18924:47;18988:131;19114:4;18988:131;:::i;:::-;18980:139;;18707:419;;;:::o;19132:224::-;19272:34;19268:1;19260:6;19256:14;19249:58;19341:7;19336:2;19328:6;19324:15;19317:32;19132:224;:::o;19362:366::-;19504:3;19525:67;19589:2;19584:3;19525:67;:::i;:::-;19518:74;;19601:93;19690:3;19601:93;:::i;:::-;19719:2;19714:3;19710:12;19703:19;;19362:366;;;:::o;19734:419::-;19900:4;19938:2;19927:9;19923:18;19915:26;;19987:9;19981:4;19977:20;19973:1;19962:9;19958:17;19951:47;20015:131;20141:4;20015:131;:::i;:::-;20007:139;;19734:419;;;:::o;20159:222::-;20299:34;20295:1;20287:6;20283:14;20276:58;20368:5;20363:2;20355:6;20351:15;20344:30;20159:222;:::o;20387:366::-;20529:3;20550:67;20614:2;20609:3;20550:67;:::i;:::-;20543:74;;20626:93;20715:3;20626:93;:::i;:::-;20744:2;20739:3;20735:12;20728:19;;20387:366;;;:::o;20759:419::-;20925:4;20963:2;20952:9;20948:18;20940:26;;21012:9;21006:4;21002:20;20998:1;20987:9;20983:17;20976:47;21040:131;21166:4;21040:131;:::i;:::-;21032:139;;20759:419;;;:::o;21184:228::-;21324:34;21320:1;21312:6;21308:14;21301:58;21393:11;21388:2;21380:6;21376:15;21369:36;21184:228;:::o;21418:366::-;21560:3;21581:67;21645:2;21640:3;21581:67;:::i;:::-;21574:74;;21657:93;21746:3;21657:93;:::i;:::-;21775:2;21770:3;21766:12;21759:19;;21418:366;;;:::o;21790:419::-;21956:4;21994:2;21983:9;21979:18;21971:26;;22043:9;22037:4;22033:20;22029:1;22018:9;22014:17;22007:47;22071:131;22197:4;22071:131;:::i;:::-;22063:139;;21790:419;;;:::o;22215:168::-;22355:20;22351:1;22343:6;22339:14;22332:44;22215:168;:::o;22389:366::-;22531:3;22552:67;22616:2;22611:3;22552:67;:::i;:::-;22545:74;;22628:93;22717:3;22628:93;:::i;:::-;22746:2;22741:3;22737:12;22730:19;;22389:366;;;:::o;22761:419::-;22927:4;22965:2;22954:9;22950:18;22942:26;;23014:9;23008:4;23004:20;23000:1;22989:9;22985:17;22978:47;23042:131;23168:4;23042:131;:::i;:::-;23034:139;;22761:419;;;:::o;23186:228::-;23326:34;23322:1;23314:6;23310:14;23303:58;23395:11;23390:2;23382:6;23378:15;23371:36;23186:228;:::o;23420:366::-;23562:3;23583:67;23647:2;23642:3;23583:67;:::i;:::-;23576:74;;23659:93;23748:3;23659:93;:::i;:::-;23777:2;23772:3;23768:12;23761:19;;23420:366;;;:::o;23792:419::-;23958:4;23996:2;23985:9;23981:18;23973:26;;24045:9;24039:4;24035:20;24031:1;24020:9;24016:17;24009:47;24073:131;24199:4;24073:131;:::i;:::-;24065:139;;23792:419;;;:::o;24217:240::-;24357:34;24353:1;24345:6;24341:14;24334:58;24426:23;24421:2;24413:6;24409:15;24402:48;24217:240;:::o;24463:366::-;24605:3;24626:67;24690:2;24685:3;24626:67;:::i;:::-;24619:74;;24702:93;24791:3;24702:93;:::i;:::-;24820:2;24815:3;24811:12;24804:19;;24463:366;;;:::o;24835:419::-;25001:4;25039:2;25028:9;25024:18;25016:26;;25088:9;25082:4;25078:20;25074:1;25063:9;25059:17;25052:47;25116:131;25242:4;25116:131;:::i;:::-;25108:139;;24835:419;;;:::o;25260:191::-;25300:3;25319:20;25337:1;25319:20;:::i;:::-;25314:25;;25353:20;25371:1;25353:20;:::i;:::-;25348:25;;25396:1;25393;25389:9;25382:16;;25417:3;25414:1;25411:10;25408:36;;;25424:18;;:::i;:::-;25408:36;25260:191;;;;:::o;25457:180::-;25505:77;25502:1;25495:88;25602:4;25599:1;25592:15;25626:4;25623:1;25616:15;25643:185;25683:1;25700:20;25718:1;25700:20;:::i;:::-;25695:25;;25734:20;25752:1;25734:20;:::i;:::-;25729:25;;25773:1;25763:35;;25778:18;;:::i;:::-;25763:35;25820:1;25817;25813:9;25808:14;;25643:185;;;;:::o
Swarm Source
ipfs://c402b8800d254e9dcfd5c67b06d557dcca42fdf749e00fe59e6bf8eabf981f16
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.