ETH Price: $2,561.59 (+1.48%)

Transaction Decoder

Block:
17888796 at Aug-11-2023 02:55:35 AM +UTC
Transaction Fee:
0.000829342422996535 ETH $2.12
Gas Used:
49,259 Gas / 16.836363365 Gwei

Emitted Events:

119 ModelERC20V2.Approval( owner=[Sender] 0x00df8b31d613db5ed7c3300071f375c08f2f2220, spender=0x7a250d56...659F2488D, value=115792089237316195423570985008687907853269984665640564039457584007913129639935 )

Account State Difference:

  Address   Before After State Difference Code
0x00Df8B31...08f2F2220
0.021585530107827006 Eth
Nonce: 3
0.020756187684830471 Eth
Nonce: 4
0.000829342422996535
(MEV Builder: 0x333...203)
0.413660470786733007 Eth0.413808247786733007 Eth0.000147777
0xDB7b29C5...Eb6352A35

Execution Trace

ModelERC20V2.approve( spender=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, amount=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
  • ModelERC20V2.approve( spender=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, amount=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
    File 1 of 2: ModelERC20V2
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.10;
    import "forge-std/console.sol";
    // Telegram Chat: https://t.me/saintbot_deployers
    // TOKEN DEPLOYED USING Saintbot!
    // CONTRACT RENOUNCED AUTOMATICALLY
    // THIS HAS LIQUIDITY LOCKED FOR 30 DAYS on UNCX, 0 OWNER TOKENS, ANTI-RUG BY DEFAULT!
    // Saintbot
    // Deploy and manage fair launch anti-rug tokens seamlessly and lightning-fast with low gas on our free-to-use Telegram bot.
    // Website: saintbot.app/
    // Twitter: twitter.com/TeamSaintbot
    // Telegram Bot: https://t.me/saintbot_deployer_bot
    // Docs: https://saintbots-organization.gitbook.io/saintbot-docs/
    abstract contract Context {
        function _msgSender() internal view virtual returns (address) {
            return msg.sender;
        }
    }
    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    interface Factory {
        function ethLiquidityTax() external view returns (address);
        function tradingTaxes() external view returns (address);
    }
    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");
            return c;
        }
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return sub(a, b, "SafeMath: subtraction overflow");
        }
        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b <= a, errorMessage);
            uint256 c = a - b;
            return c;
        }
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            if (a == 0) {
                return 0;
            }
            uint256 c = a * b;
            require(c / a == b, "SafeMath: multiplication overflow");
            return c;
        }
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return div(a, b, "SafeMath: division by zero");
        }
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b > 0, errorMessage);
            uint256 c = a / b;
            return c;
        }
    }
    interface IUniswapV2Factory {
        function createPair(address tokenA, address tokenB) external returns (address pair);
    }
    interface IUniswapV2Router02 {
        function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint256 amountIn,
            uint256 amountOutMin,
            address[] calldata path,
            address to,
            uint256 deadline
        ) external;
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidityETH(
            address token,
            uint256 amountTokenDesired,
            uint256 amountTokenMin,
            uint256 amountETHMin,
            address to,
            uint256 deadline
        ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    }
    contract ModelERC20V2 is Context, IERC20 {
        using SafeMath for uint256;
        mapping(address => uint256) private _balances;
        mapping(address => mapping(address => uint256)) private _allowances;
        mapping(address => bool) private _isExcludedFromFee;
        mapping(address => bool) private bots;
        mapping(address => uint256) private _holderLastTransferTimestamp;
        bool public transferDelayEnabled = true;
        address payable public _taxWallet;
        uint256 private constant _initialBuyTax = 5;
        uint256 private constant _initialSellTax = 5;
        uint256 private constant _finalBuyTax = 5;
        uint256 private constant _finalSellTax = 5;
        uint256 private constant _reduceBuyTaxAt = 25;
        uint256 private constant _reduceSellTaxAt = 25;
        uint256 private constant _preventSwapBefore = 5;
        uint256 public _buyCount = 0;
        uint8 private constant _decimals = 9;
        uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
        string private _name;
        string private _symbol;
        uint256 public constant _maxTxAmount = 3_000_000 * 10 ** _decimals;
        uint256 public constant _maxWalletSize = 6_000_000 * 10 ** _decimals;
        uint256 public constant _taxSwapThreshold = 500_000 * 10 ** _decimals;
        uint256 public constant _maxTaxSwap = 500_000 * 10 ** _decimals;
        IUniswapV2Router02 private uniswapV2Router;
        address public uniswapV2Pair;
        address public ref;
        bool private tradingOpen;
        bool private inSwap;
        bool private swapEnabled;
        bool private initialized;
        address public factory;
        // Since our contracts dont have ownership by default, we set this so scanners realize this
        address private constant _owner = address(0);
        event MaxTxAmountUpdated(uint256 _maxTxAmount);
        modifier lockTheSwap() {
            inSwap = true;
            _;
            inSwap = false;
        }
        function init(string memory _nameIn, string memory _symbolIn, address _user, address _refAddress)
            external
            payable
            returns (address poolAddress)
        {
            require(!initialized, "reinit");
            _name = _nameIn;
            _symbol = _symbolIn;
            _taxWallet = payable(_user);
            _balances[address(this)] = _tTotal;
            _isExcludedFromFee[tx.origin] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_taxWallet] = true;
            factory = msg.sender;
            ref = _refAddress;
            inSwap = false;
            initialized = true;
            uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            if (_refAddress != address(0)) {
                // If user has a ref code, take 0.9% fees
                // Send 0.7% to Saintbot
                uint256 saintbot = (7 * msg.value) / 1000;
                // Send 0.2% to ref owner
                uint256 refTax = (2 * msg.value) / 1000;
                // Rev receiver must not be a contract (checked upon ref creation), then 2300 gas forwarded should be enough.
                payable(_refAddress).transfer(refTax);
                // This a gnosis controlled by Saintbot, so needs to use call.
                (bool success,) = payable(Factory(msg.sender).ethLiquidityTax()).call{value: saintbot}("");
                require(success, "failed sending eth");
            } else {
                // If user has not used a ref code, take 1% that go to Saintbot entirely.
                (bool success,) = payable(Factory(msg.sender).ethLiquidityTax()).call{value: msg.value / 100}("");
                require(success, "failed sending eth");
            }
            _approve(address(this), address(uniswapV2Router), _tTotal);
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
            uniswapV2Router.addLiquidityETH{value: address(this).balance}(
                address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp
            );
            IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);
            swapEnabled = true;
            tradingOpen = true;
            emit Transfer(address(0), _msgSender(), _tTotal);
            return uniswapV2Pair;
        }
        function name() public view returns (string memory) {
            return _name;
        }
        function symbol() public view returns (string memory) {
            return _symbol;
        }
        function decimals() public pure returns (uint8) {
            return _decimals;
        }
        function totalSupply() public pure override returns (uint256) {
            return _tTotal;
        }
        function balanceOf(address account) public view override returns (uint256) {
            return _balances[account];
        }
        function transfer(address recipient, uint256 amount) public override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }
        function allowance(address owner, address spender) public view override returns (uint256) {
            return _allowances[owner][spender];
        }
        function approve(address spender, uint256 amount) public override returns (bool) {
            _approve(_msgSender(), spender, amount);
            return true;
        }
        function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(
                sender,
                _msgSender(),
                _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")
            );
            return true;
        }
        function _approve(address owner, address spender, uint256 amount) private {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");
            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }
        function _transfer(address from, address to, uint256 amount) private {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            uint256 taxAmount;
            if (from != _taxWallet && to != _taxWallet) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                if (transferDelayEnabled) {
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] < block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
                if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    _buyCount++;
                }
                if (to == uniswapV2Pair && from != address(this)) {
                    taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
                }
                uint256 contractTokenBalance = balanceOf(address(this));
                if (
                    !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold
                        && _buyCount > _preventSwapBefore
                ) {
                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    if (contractETHBalance > 5000000000000000) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
            if (!tradingOpen) {
                taxAmount = 0;
            }
            if (taxAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(taxAmount);
                emit Transfer(from, address(this), taxAmount);
            }
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount.sub(taxAmount));
            emit Transfer(from, to, amount.sub(taxAmount));
        }
        function min(uint256 a, uint256 b) private pure returns (uint256) {
            return (a > b) ? b : a;
        }
        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount, 0, path, address(this), block.timestamp
            );
        }
        function sendETHToFee(uint256 amount) private {
            Factory _factory = Factory(factory);
            if (ref == address(0)) {
                // If user has not entered a ref code, he will receive 4% fees
                uint256 taxWalletAmount = (amount * 80) / 100;
                _taxWallet.transfer(taxWalletAmount);
                address payable revShareMultisig = payable(_factory.tradingTaxes());
                (bool success,) = revShareMultisig.call{value: amount - taxWalletAmount}("");
                require(success, "failed sending eth");
            } else {
                // If he did enter a ref code, he will receive 4.1% fees
                uint256 taxWalletAmount = (amount * 82) / 100;
                _taxWallet.transfer(taxWalletAmount);
                // 0.15% to ref address, meaning that its 3% out of the 5%
                payable(ref).transfer((amount * 3) / 100);
                address payable revShareMultisig = payable(_factory.tradingTaxes());
                (bool success,) = revShareMultisig.call{value: (amount * 15) / 100}("");
                require(success, "failed sending eth");
            }
        }
        receive() external payable {}
        function manualSwap() external {
            require(_msgSender() == _taxWallet || Factory(factory).tradingTaxes() == _msgSender());
            uint256 tokenBalance = balanceOf(address(this));
            if (tokenBalance > 0) {
                swapTokensForEth(tokenBalance);
            }
            uint256 ethBalance = address(this).balance;
            if (ethBalance > 0) {
                sendETHToFee(ethBalance);
            }
        }
        function owner() public view returns (address) {
            return _owner;
        }
        function updateTaxWallet(address _updateTaxWallet) external {
            require(msg.sender == _taxWallet, "auth");
            require(_updateTaxWallet != address(0), "address(0)");
            _taxWallet = payable(_updateTaxWallet);
        }
    }
    // 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;
            /// @solidity memory-safe-assembly
            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(int p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(int)", p0));
        }
        function logUint(uint p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint)", 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(uint p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint)", 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(uint p0, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
        }
        function log(uint p0, string memory p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
        }
        function log(uint p0, bool p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
        }
        function log(uint p0, address p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
        }
        function log(string memory p0, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint)", 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, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", 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, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint)", 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(uint p0, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
        }
        function log(uint p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
        }
        function log(uint p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
        }
        function log(uint p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
        }
        function log(uint p0, bool p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
        }
        function log(uint p0, bool p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
        }
        function log(uint p0, bool p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
        }
        function log(uint p0, bool p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
        }
        function log(uint p0, address p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
        }
        function log(uint p0, address p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
        }
        function log(uint p0, address p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
        }
        function log(uint p0, address p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
        }
        function log(string memory p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", 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, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
        }
        function log(bool p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
        }
        function log(bool p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
        }
        function log(bool p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
        }
        function log(bool p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", 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, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
        }
        function log(address p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
        }
        function log(address p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
        }
        function log(address p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
        }
        function log(address p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", 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(uint p0, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", 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, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", 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, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", 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));
        }
    }

    File 2 of 2: ModelERC20V2
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.10;
    import "forge-std/console.sol";
    // Telegram Chat: https://t.me/saintbot_deployers
    // TOKEN DEPLOYED USING Saintbot!
    // CONTRACT RENOUNCED AUTOMATICALLY
    // THIS HAS LIQUIDITY LOCKED FOR 30 DAYS on UNCX, 0 OWNER TOKENS, ANTI-RUG BY DEFAULT!
    // Saintbot
    // Deploy and manage fair launch anti-rug tokens seamlessly and lightning-fast with low gas on our free-to-use Telegram bot.
    // Website: saintbot.app/
    // Twitter: twitter.com/TeamSaintbot
    // Telegram Bot: https://t.me/saintbot_deployer_bot
    // Docs: https://saintbots-organization.gitbook.io/saintbot-docs/
    abstract contract Context {
        function _msgSender() internal view virtual returns (address) {
            return msg.sender;
        }
    }
    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    interface Factory {
        function ethLiquidityTax() external view returns (address);
        function tradingTaxes() external view returns (address);
    }
    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");
            return c;
        }
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return sub(a, b, "SafeMath: subtraction overflow");
        }
        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b <= a, errorMessage);
            uint256 c = a - b;
            return c;
        }
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            if (a == 0) {
                return 0;
            }
            uint256 c = a * b;
            require(c / a == b, "SafeMath: multiplication overflow");
            return c;
        }
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return div(a, b, "SafeMath: division by zero");
        }
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b > 0, errorMessage);
            uint256 c = a / b;
            return c;
        }
    }
    interface IUniswapV2Factory {
        function createPair(address tokenA, address tokenB) external returns (address pair);
    }
    interface IUniswapV2Router02 {
        function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint256 amountIn,
            uint256 amountOutMin,
            address[] calldata path,
            address to,
            uint256 deadline
        ) external;
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidityETH(
            address token,
            uint256 amountTokenDesired,
            uint256 amountTokenMin,
            uint256 amountETHMin,
            address to,
            uint256 deadline
        ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    }
    contract ModelERC20V2 is Context, IERC20 {
        using SafeMath for uint256;
        mapping(address => uint256) private _balances;
        mapping(address => mapping(address => uint256)) private _allowances;
        mapping(address => bool) private _isExcludedFromFee;
        mapping(address => bool) private bots;
        mapping(address => uint256) private _holderLastTransferTimestamp;
        bool public transferDelayEnabled = true;
        address payable public _taxWallet;
        uint256 private constant _initialBuyTax = 5;
        uint256 private constant _initialSellTax = 5;
        uint256 private constant _finalBuyTax = 5;
        uint256 private constant _finalSellTax = 5;
        uint256 private constant _reduceBuyTaxAt = 25;
        uint256 private constant _reduceSellTaxAt = 25;
        uint256 private constant _preventSwapBefore = 5;
        uint256 public _buyCount = 0;
        uint8 private constant _decimals = 9;
        uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
        string private _name;
        string private _symbol;
        uint256 public constant _maxTxAmount = 3_000_000 * 10 ** _decimals;
        uint256 public constant _maxWalletSize = 6_000_000 * 10 ** _decimals;
        uint256 public constant _taxSwapThreshold = 500_000 * 10 ** _decimals;
        uint256 public constant _maxTaxSwap = 500_000 * 10 ** _decimals;
        IUniswapV2Router02 private uniswapV2Router;
        address public uniswapV2Pair;
        address public ref;
        bool private tradingOpen;
        bool private inSwap;
        bool private swapEnabled;
        bool private initialized;
        address public factory;
        // Since our contracts dont have ownership by default, we set this so scanners realize this
        address private constant _owner = address(0);
        event MaxTxAmountUpdated(uint256 _maxTxAmount);
        modifier lockTheSwap() {
            inSwap = true;
            _;
            inSwap = false;
        }
        function init(string memory _nameIn, string memory _symbolIn, address _user, address _refAddress)
            external
            payable
            returns (address poolAddress)
        {
            require(!initialized, "reinit");
            _name = _nameIn;
            _symbol = _symbolIn;
            _taxWallet = payable(_user);
            _balances[address(this)] = _tTotal;
            _isExcludedFromFee[tx.origin] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_taxWallet] = true;
            factory = msg.sender;
            ref = _refAddress;
            inSwap = false;
            initialized = true;
            uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            if (_refAddress != address(0)) {
                // If user has a ref code, take 0.9% fees
                // Send 0.7% to Saintbot
                uint256 saintbot = (7 * msg.value) / 1000;
                // Send 0.2% to ref owner
                uint256 refTax = (2 * msg.value) / 1000;
                // Rev receiver must not be a contract (checked upon ref creation), then 2300 gas forwarded should be enough.
                payable(_refAddress).transfer(refTax);
                // This a gnosis controlled by Saintbot, so needs to use call.
                (bool success,) = payable(Factory(msg.sender).ethLiquidityTax()).call{value: saintbot}("");
                require(success, "failed sending eth");
            } else {
                // If user has not used a ref code, take 1% that go to Saintbot entirely.
                (bool success,) = payable(Factory(msg.sender).ethLiquidityTax()).call{value: msg.value / 100}("");
                require(success, "failed sending eth");
            }
            _approve(address(this), address(uniswapV2Router), _tTotal);
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
            uniswapV2Router.addLiquidityETH{value: address(this).balance}(
                address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp
            );
            IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);
            swapEnabled = true;
            tradingOpen = true;
            emit Transfer(address(0), _msgSender(), _tTotal);
            return uniswapV2Pair;
        }
        function name() public view returns (string memory) {
            return _name;
        }
        function symbol() public view returns (string memory) {
            return _symbol;
        }
        function decimals() public pure returns (uint8) {
            return _decimals;
        }
        function totalSupply() public pure override returns (uint256) {
            return _tTotal;
        }
        function balanceOf(address account) public view override returns (uint256) {
            return _balances[account];
        }
        function transfer(address recipient, uint256 amount) public override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }
        function allowance(address owner, address spender) public view override returns (uint256) {
            return _allowances[owner][spender];
        }
        function approve(address spender, uint256 amount) public override returns (bool) {
            _approve(_msgSender(), spender, amount);
            return true;
        }
        function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(
                sender,
                _msgSender(),
                _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")
            );
            return true;
        }
        function _approve(address owner, address spender, uint256 amount) private {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");
            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }
        function _transfer(address from, address to, uint256 amount) private {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            uint256 taxAmount;
            if (from != _taxWallet && to != _taxWallet) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                if (transferDelayEnabled) {
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] < block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
                if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    _buyCount++;
                }
                if (to == uniswapV2Pair && from != address(this)) {
                    taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
                }
                uint256 contractTokenBalance = balanceOf(address(this));
                if (
                    !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold
                        && _buyCount > _preventSwapBefore
                ) {
                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    if (contractETHBalance > 5000000000000000) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
            if (!tradingOpen) {
                taxAmount = 0;
            }
            if (taxAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(taxAmount);
                emit Transfer(from, address(this), taxAmount);
            }
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount.sub(taxAmount));
            emit Transfer(from, to, amount.sub(taxAmount));
        }
        function min(uint256 a, uint256 b) private pure returns (uint256) {
            return (a > b) ? b : a;
        }
        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount, 0, path, address(this), block.timestamp
            );
        }
        function sendETHToFee(uint256 amount) private {
            Factory _factory = Factory(factory);
            if (ref == address(0)) {
                // If user has not entered a ref code, he will receive 4% fees
                uint256 taxWalletAmount = (amount * 80) / 100;
                _taxWallet.transfer(taxWalletAmount);
                address payable revShareMultisig = payable(_factory.tradingTaxes());
                (bool success,) = revShareMultisig.call{value: amount - taxWalletAmount}("");
                require(success, "failed sending eth");
            } else {
                // If he did enter a ref code, he will receive 4.1% fees
                uint256 taxWalletAmount = (amount * 82) / 100;
                _taxWallet.transfer(taxWalletAmount);
                // 0.15% to ref address, meaning that its 3% out of the 5%
                payable(ref).transfer((amount * 3) / 100);
                address payable revShareMultisig = payable(_factory.tradingTaxes());
                (bool success,) = revShareMultisig.call{value: (amount * 15) / 100}("");
                require(success, "failed sending eth");
            }
        }
        receive() external payable {}
        function manualSwap() external {
            require(_msgSender() == _taxWallet || Factory(factory).tradingTaxes() == _msgSender());
            uint256 tokenBalance = balanceOf(address(this));
            if (tokenBalance > 0) {
                swapTokensForEth(tokenBalance);
            }
            uint256 ethBalance = address(this).balance;
            if (ethBalance > 0) {
                sendETHToFee(ethBalance);
            }
        }
        function owner() public view returns (address) {
            return _owner;
        }
        function updateTaxWallet(address _updateTaxWallet) external {
            require(msg.sender == _taxWallet, "auth");
            require(_updateTaxWallet != address(0), "address(0)");
            _taxWallet = payable(_updateTaxWallet);
        }
    }
    // 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;
            /// @solidity memory-safe-assembly
            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(int p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(int)", p0));
        }
        function logUint(uint p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint)", 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(uint p0) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint)", 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(uint p0, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
        }
        function log(uint p0, string memory p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
        }
        function log(uint p0, bool p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
        }
        function log(uint p0, address p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
        }
        function log(string memory p0, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint)", 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, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", 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, uint p1) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint)", 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(uint p0, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
        }
        function log(uint p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
        }
        function log(uint p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
        }
        function log(uint p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
        }
        function log(uint p0, string memory p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
        }
        function log(uint p0, bool p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
        }
        function log(uint p0, bool p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
        }
        function log(uint p0, bool p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
        }
        function log(uint p0, bool p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
        }
        function log(uint p0, address p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
        }
        function log(uint p0, address p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
        }
        function log(uint p0, address p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
        }
        function log(uint p0, address p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
        }
        function log(string memory p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
        }
        function log(string memory p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", 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, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
        }
        function log(bool p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
        }
        function log(bool p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
        }
        function log(bool p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
        }
        function log(bool p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", 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, uint p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
        }
        function log(address p0, uint p1, string memory p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
        }
        function log(address p0, uint p1, bool p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
        }
        function log(address p0, uint p1, address p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
        }
        function log(address p0, string memory p1, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", 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, uint p2) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", 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(uint p0, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, string memory p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, bool p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
        }
        function log(uint p0, address p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
        }
        function log(string memory p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", 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, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
        }
        function log(bool p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", 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, uint p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, string memory p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, bool p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
        }
        function log(address p0, uint p1, address p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, string memory p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, bool p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", 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, uint p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, string memory p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, bool p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, uint p2, address p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
        }
        function log(address p0, address p1, string memory p2, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", 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, uint p3) internal view {
            _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", 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));
        }
    }